Spring
-
스프링부트 테스트관련 코드에서 테스트코드를 실행했더니 Error creating bean with name 'jpaAuditingHandler' 이와 같은 오류가 발생했다. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument at app//org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReferenc..
Error creating bean with name 'jpaAuditingHandler' 에러 해결스프링부트 테스트관련 코드에서 테스트코드를 실행했더니 Error creating bean with name 'jpaAuditingHandler' 이와 같은 오류가 발생했다. Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jpaAuditingHandler': Cannot resolve reference to bean 'jpaMappingContext' while setting constructor argument at app//org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReferenc..
2024.02.01 -
멀티모듈의 패키지 구성요소에 따라서 서비스 레이어를 분리해서 서비스 계층의 책임을 재분배하는 리팩토링을 거칠려고한다. 그 전에는 필요한 의존성만 가져와서 써야하는데 계층의 책임이 맞지 않게 가져다 사용해서 여러 문제가 발생했다.. 우선 CustomOAuth2UserService 부터 변경해보자. 기존 코드는 package sellyourunhappiness.core.user.application; import static sellyourunhappiness.core.user.domain.enums.SocialType.*; import java.util.Collections; import java.util.Map; import org.springframework.security.core.authority...
멀티모듈 서비스 레이어 분리멀티모듈의 패키지 구성요소에 따라서 서비스 레이어를 분리해서 서비스 계층의 책임을 재분배하는 리팩토링을 거칠려고한다. 그 전에는 필요한 의존성만 가져와서 써야하는데 계층의 책임이 맞지 않게 가져다 사용해서 여러 문제가 발생했다.. 우선 CustomOAuth2UserService 부터 변경해보자. 기존 코드는 package sellyourunhappiness.core.user.application; import static sellyourunhappiness.core.user.domain.enums.SocialType.*; import java.util.Collections; import java.util.Map; import org.springframework.security.core.authority...
2024.02.01 -
SellyourunhappinessApiApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:802 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:802 Caused by: org.springframework.beans..
ApplicationTests > contextLoads() FAILED 에러 해결SellyourunhappinessApiApplicationTests > contextLoads() FAILED java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:180 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:802 Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException at ConstructorResolver.java:802 Caused by: org.springframework.beans..
2024.02.01 -
크래프톤 정글 2기의 마지막 커리큘럼인 "나만의 무기 갖기" 단계에서 개발하면서 겪었던 기술적 챌린지를 정리하려고 합니다. 우선 우리의 서비스는 개발자의 GitHub 활동을 분석하여 개인화된 이력서 템플릿을 제공하며, 기업과 개발자 간의 채용 과정을 간편하고 효율적으로 만들어주는 시스템입니다. 개발자의 GitHub를 분석해야 하다 보니 많은 API 호출 및 GPT API를 호출하는 과정이 발생합니다. 처음에는 기능만 목표로 구현을 했기 때문에 동기적으로 데이터를 호출하고 데이터 베이스에 저장했습니다. 하지만 GitHub계정을 분석하는데 시간이 너무 오래 걸렸기 때문에 이 속도를 줄이기 위해 리액티브 프로그래밍인 Flux와 Mono를 사용해서 비동기 호출로 코드를 변경하였습니다. 아래는 관련 코드들 중 하..
메세지 큐를 활용한 트랜잭션 관리 - 기술적 챌린지크래프톤 정글 2기의 마지막 커리큘럼인 "나만의 무기 갖기" 단계에서 개발하면서 겪었던 기술적 챌린지를 정리하려고 합니다. 우선 우리의 서비스는 개발자의 GitHub 활동을 분석하여 개인화된 이력서 템플릿을 제공하며, 기업과 개발자 간의 채용 과정을 간편하고 효율적으로 만들어주는 시스템입니다. 개발자의 GitHub를 분석해야 하다 보니 많은 API 호출 및 GPT API를 호출하는 과정이 발생합니다. 처음에는 기능만 목표로 구현을 했기 때문에 동기적으로 데이터를 호출하고 데이터 베이스에 저장했습니다. 하지만 GitHub계정을 분석하는데 시간이 너무 오래 걸렸기 때문에 이 속도를 줄이기 위해 리액티브 프로그래밍인 Flux와 Mono를 사용해서 비동기 호출로 코드를 변경하였습니다. 아래는 관련 코드들 중 하..
2023.08.22 -
1️⃣ 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Jetty, Undertow 웹 서버, 웹 애플리케이션 서버의 차이점 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 사실은 둘의 용어도 경계도 모호함 웹 서버도 프로그램을 실행하는 기능을 포함하기도 함 웹 애플리케이션 서버도..
웹 애플리케이션 이해1️⃣ 웹 서버(Web Server) HTTP 기반으로 동작 정적 리소스 제공, 기타 부가기능 정적(파일) HTML, CSS, JS, 이미지, 영상 예) NGINX, APACHE 웹 애플리케이션 서버(WAS - Web Application Server) HTTP 기반으로 동작 웹 서버 기능 포함 + (정적 리소스 제공 가능) 프로그램 코드를 실행해서 애플리케이션 로직 수행 동적 HTML, HTTP API(JSON) 서블릿, JSP, 스프링 MVC 예) 톰캣(Tomcat) Jetty, Undertow 웹 서버, 웹 애플리케이션 서버의 차이점 웹 서버는 정적 리소스(파일), WAS는 애플리케이션 로직 사실은 둘의 용어도 경계도 모호함 웹 서버도 프로그램을 실행하는 기능을 포함하기도 함 웹 애플리케이션 서버도..
2023.07.06 -
스프링이란? 스프링 부트 스프링 Rest Docs, 스프링 시큐리티 핵심 개념 - 이 기술을 왜 만들었는가 / 이 기술의 핵심 컨셉은 ? : 스프링은 자바 언어 기반의 프레임워크, 스프링은 객체 지향 언어가 가장 강력한 특징을 살려내는 프레임워크, 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체 지향 프로그래밍이란? - 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 다형성(Polymorphism) 실세계와 객체 지향을 1:1로 매핑X 그래도 실세계의 비유로 이해하기에는 좋음 역할과 구현으로 세상을 구분 자동차가 바껴도 운전을 할 수 있다 -> 새로운 자동차가 나와도 클라이언트는 새로운 걸 안배워도 되..
객체 지향 설계와 스프링스프링이란? 스프링 부트 스프링 Rest Docs, 스프링 시큐리티 핵심 개념 - 이 기술을 왜 만들었는가 / 이 기술의 핵심 컨셉은 ? : 스프링은 자바 언어 기반의 프레임워크, 스프링은 객체 지향 언어가 가장 강력한 특징을 살려내는 프레임워크, 스프링은 좋은 객체 지향 애플리케이션을 개발할 수 있게 도와주는 프레임워크 좋은 객체 지향 프로그래밍이란? - 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다. 다형성(Polymorphism) 실세계와 객체 지향을 1:1로 매핑X 그래도 실세계의 비유로 이해하기에는 좋음 역할과 구현으로 세상을 구분 자동차가 바껴도 운전을 할 수 있다 -> 새로운 자동차가 나와도 클라이언트는 새로운 걸 안배워도 되..
2023.07.03