java 2

[JDK 파헤치기 - JVM] 1. 클래스로더(Class Loader)

클래스로더 JVM은 자바 바이트 코드 파일(.class)을 읽어서 실행하는데, 이 class 파일을 동적으로 런타임 데이터 영역에 로딩해주는 것이 클래스로더이다. HelloWorld.java 파일에 HelloWorld 출력소스가 있다고 가정해보자. 이 자바소스를 실행하면 OS는 가상 머신 프로세스(자바 바이너리)를 구동한다. 자바 가상 환경이 구성되고 스택 머신이 초기화된 다음 HelloWorld 클래스 파일이 실행된다. 알다시피 애플리케이션의 진입점은 HelloWorld.class에 있는 main() 메서드이다. 제어권을 이 클래스로 넘기려면 이 클래스를 로드해야 한다. 자바 프로세스가 새로 초기화되면 사슬처럼 줄지어 연결된 클래스로더가 차례차례 작동한다. 클래스로더는 3가지 단계로 작동하는데 로딩(L..

덕개 2024.04.02

[Json/Java Serializer] 이슈해결 - No serializer found for class...

1. 어떤 에러인가. Spring Boot 를 처음부터 다시 설정하는데 DB에서 select 하는 도중 해당 이슈가 터졌다. 에러 로그를 보면 수상해 보이는것이 하나 있다. "Serializer". VO , DTO 객체가 Serializer를 상속받고 있을때가 있는데, 데이터를 json형태로 변환하기 위해 직렬화하는것이다. 해당 이슈는 직렬화 하는 과정에서 접근 제한자가 public 이거나 getter/setter를 이용하기 때문에 인스턴스 필드를 private으로 선언하면 json으로 변환하는 과정에서 에러가 발생한다고 한다. 2. 이슈해결 롬복을 사용하는 경우 @Getter가 있지 않아서 JSON으로 파싱이 불가해서 안된다는 글도 있었는데, @Data 를 사용하고있었기 때문에 이건 아니라고 생각되어 ..

덕개 2022.07.04