개발/Spring14 [스프링 캠프 2024] MSA 실전 가이드 2024 스프링캠프에서 삼성SDS 김용욱 연사님의 "실전 MSA 개발 가이드" 강연에 대한 내용입니다.인용 부분은 연사님의 말씀이고 그외 내용은 강연과 제 생각을 추가한 것입니다. 실무에서 MSA를 사용했던 경험이 있는데, 두루뭉술하게 생각했던 해법이나 사수의 조언이나 서치로 알아냈던 해법을 정리해볼 수 있었던 시간이었습니다. 뿐만 아니라 고민되었던 부분의 해답도 말씀해주셔서 MSA를 사용해봤다면 얻을게 많았던 유익한 시간이었습니다.MSA에서 조회MSA환경에선 분산 데이터베이스를 사용하므로 조인이 필요한 경우 네트워크 통신을 하게된다. 실제 유저가 판단할 만큼의 성능 저하는 발생하지 않는다. 다만, N+1 문제에는 주의가 필요하다. 업무환경에선 MSA환경에서 조회 서비스로 graphql을 사용했는데, g.. 2024. 5. 26. [JPA] 스프링부트 Could not write JSON: Infinite recursion 에러 해결 에러 내용 Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through r.. 2021. 12. 31. [스프링] 스프링 핵심원리 - 빈 생명주기 콜백 스프링 빈의 시작이나 끝에 함수를 호출하여 작업을 해야될 수도 있다. 빈 생명주기 콜백으로 이를 수행할 수 있다. 스프링 빈의 이벤트 라이프 사이클 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백 -> 사용 -> 소멸전 콜백 -> 스프링 종료 빈 생명주기 콜백의 방법 1. 인터페이스 (InitializingBean, DisposableBean) 2. 설정정보에 초기화 메서드, 종료 메서드 지정 @Bean(initMethod="", destroyMethod="") 3. @PostConstruct, @PreDestroy 어노테이션 3번 방법을 기본으로 사용하고, 코드를 고칠 수 없는 외부 라이브러리를 초기화, 종료해야 하면 2번 방법을 사용한다. 인터페이스 (Initializ.. 2021. 12. 10. [스프링] 스프링 핵심원리 - 의존관계 자동주입 의존관계 주입 방법 4 가지 생성자 주입 수정자 주입 (setter 주입) 필드 주입 일반 메서드 주입 기본적으로 생성자 주입을 사용하고, 가끔 옵션이 필요하면 수정자 주입을 선택한다. 생성자 주입 생성자에 @Autowired를 붙여 사용 생성자가 딱 1개 있을 경우 @Autowired를 생략해도 됨 생성자 호출 시점에 딱 1번만 호출되는 것이 보장된다. 불변, 필수 의존관계에 사용 (필수는 null 값이 들어가면 안되는 걸 의미) 생성자 주입을 사용하면 필드에 final 키워드를 사용할 수 있다. -> 값이 설정되지 않으면 오류를 컴파일 시점에서 막아줌 롬복 @RequiredArgsConstructor를 사용하여 간단하게 생성자 주입을 설정할 수 있음 수정자 주입 (setter 주입) setter에 @.. 2021. 12. 6. 이전 1 2 3 4 다음