본문 바로가기

전체 글

(19)
[메모] Spring 원리 (2) 컴포넌트 스캔, 의존관계 자동주입 - 스프링 Annotation - 스프링에서는 컴포넌트 스캔을 통해 자동적으로 의존관계를 주입하도록 할 수 있다. @Controller: 스프링 MVC 컨트롤러로 인식한다. @Repository: 스프링 데이터 접근 계층으로 인식하고, 데이터 계층의 예외를 스프링 예외로 변환해준다. @Configuration: 앞서 보았듯이 스프링 설정 정보로 인식하고, 스프링 빈이 싱글톤을 유지하도록 추가 처리를 한다. @Service: 특별한 처리를 하지 X, 개발자들이 핵심 비즈니스 걔층을 인식하는데 도움을 준다. - ComponentScan FilterType - FilterType은 5가지 옵션이 있다. ANNOTATION: 기본값, annotation을 인식해서 동작 ASSIGNABLE_TYPE: 지정한 타입..
[메모] Spring 원리 (1) 싱글톤 - 싱글톤 패턴 - 순수한 DI 컨테이너인 AppConfig를 통해 요청을 하면, 매 트래픽마다 객체를 생성 -> 기존 방식은 메모리 낭비가 심해질 수 있다. 해결방안: 해당 객체가 딱 1개만 생성되고, 공유하도록 설계 -> 싱글톤 패턴 싱글톤 패턴 구성 package springprinciple.core.singleton; public class SingletonServiceTest { // 1. static 영역에 객체 instance를 미리 하나 생성 private static final SingletonServiceTest instance = new SingletonServiceTest(); // 2. 이 객체 인스턴스가 필요하면 오직 getInstance() 메서드를 통해서만 조회가능 publi..
[메모] Spring 입문(2) - 스프링 DB - @SpringBootTest DB연동 config를 Spring이 들고 있기 때문에 테스팅 진행에 있어 스프링 컨테이너와 테스트를 함께 실행할 수 있게 해줌 DB연동 이후 Testing 진행 시 @Transaction 적용하면 DB에 실제 데이터 반영 없이(다음 테스트에 영향 없이) 테스팅 진행 가능 (@AfterEach, BeforeEach 사용 불필요) JPA 스프링 Repository 관련 예제 코드 package winterlimited.hellospring.repository; import jakarta.persistence.EntityManager; import jakarta.persistence.TypedQuery; import winterlimited.hellosprin..