왜 자동생성(외부구성)을 사용하면 좋을까? 처럼 생각 많이 하기!!
Bean 생성 - Configuration / Component
2가지 Bean 등록 / 3가지 Bean 사용 방법은 까먹지 않기!!
- 2가지 Bean 등록 방법 : XML 설정 / Java Config 클래스 기반 설정
- Bean 사용 방법 : 생성자 주입 / 세터 주입 / 필드 주입
@EnableAutoConfiguration = Spring Boot의 자동 구성 기능을 활성화
@ComponentScan = 스프링 프레임워크에서 자동으로 스테레오타입 어노테이션(@Component, @Service, @Repository
, @Controller 등)이 붙은 클래스들을 검색하고 빈으로 등록하는데 사용
= Spring Boot 프로젝트가 코드를 어디까지 해석할 지를 결정
= 스프링부트가 어디까지 동작을 할건지를 결정하는 중요한 역할
5장의 내용은 어려운 내용으로 거의 면접같은 곳에서도 물어보지 X
스프링으로 작성된 코드가 동작하는 구조
1. 스프링 컨테이너는 애플리케이션에서 사용할 객체를 관리하고, 빈의 생명주기와 의존성 주입을 처리
2. 애플리케이션이 시작되면 빈들이 초기화되고, 의존성 주입을 통해 필요한 객체들을 주입
3. AOP와 같은 부가적인 기능을 활용하여 비즈니스 로직 외에도 다양한 처리(트랜잭션 관리, 로깅 등)를 할 수 O
4. 애플리케이션 종료 시 빈 객체들의 소멸 메서드가 호출되어 자원이 해제
@ComponentScan 이 동작하는 구조(패키지 스캔을 확장하거나, 구체적인 필터를 통해 빈을 선택적으로 등록)
1. 여러 개의 @ComponentScan 어노테이션이 있을 경우, 스캔할 패키지 범위가 합쳐져 최종적으로 하나의 스캔 목록이 생성
2. 중복된 패키지는 1번만 스캔되며, 각각의 @ComponentScan은 패키지를 병합하여 스캔 대상 범위를 확장
➡ 체인 확장 방식 : 여러 @ComponentScan이 만나면 그 범위가 자연스럽게 합쳐지고, 하나의 큰 패키지 범위로 스캔이 이뤄짐
3. 이 코드로 인해 코드를 해석할 수 있음
spring-boot-starter-parent : 라이브러리의 버전관리. 라이브러리의 충돌, 호환성 체크를 안 해도 테스트 잘 된 버전으로 이용 가능 O
spring-boot-starter : 추가 시, core, context, logging 등 자주 사용하는 라이브러리를 자동으로 추가
spring boot 의 실행을 편하게 하기 위해서, 빌드 할 때 간섭하는 플러그인이 존재 O
@Value 바인딩
= 속성값(properties)을 @Value 애너테이션으로 바인딩하여 사용
@ConfigurationProperties 바인딩
= 속성값(properties)을 @ConfigurationProperties로 바인딩하여 사용
= @ConfigurationProperties 로 설정된 클래스는 Dependency Injection으로 참조하여 사용
프레임워크 = 스프링부트의 규칙들, 이 규칙들을 지키면 스프링에서 알아서 호출시켜주는 것
자동 구성
= maven에 외부의 파일만 삽입해도 자동적으로 환경설정이 O
= 파일을 추가하면 자동적으로 코드가 변경되는 것
플러그인
= 단독으로 실행 가능 O
= 내장형 웹 애플리케이션 서버 지원 O

Proxy
: 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게
해 주는 컴퓨터 시스템이나 응용 프로그램
: 서버와 클라이언트 사이에 중계기, 대리로 통신을 수행하는 것
: Proxy 서버 = 중계 기능을 하는 것
- AOP(Aspect Oriented Programming, 관점지향 프로그래밍)란 프로그램 구조를 다른 방식으로 생각하게 함
- AOP가 OOP(Object Oriented Programming, 객체지향 프로그래밍)를 보완한다.


































































'✎NHN Academy | JAVA' 카테고리의 다른 글
| NHN Academy - 2024.11.11(Mon) (0) | 2024.11.11 |
|---|---|
| NHN Academy - 2024.11.06(Wed) (5) | 2024.11.06 |
| NHN Academy - 2024.11.04(Mon) (3) | 2024.11.04 |
| NHN Academy - 2024.10.25(Fri) (1) | 2024.10.25 |
| NHN Academy - 2024.10.24(Thu) (0) | 2024.10.24 |