- Entity / Value Object (+ DTO, DAO 등등의 용어?)
- Entity : 다른 엔터티와 구별할 수 있느 식별자를 가지고 시간의 흐름에 따라 지속적으로 변경이 되는 객체이다.
- Value Object : 각 속성이 개별적으로 변화하지 않고 그 자체로 고유한 불변 객체
- DAO : DB의 data에 접근하기 위한 객체로 직접 DB에 접근하여 데이터를 삽입, 삭제, 조회 등을 조작할 수 있는 기능을 수행한다.
- DTO : 계층간(Controller, View, Business Layer) 데이터 교환을 위한 데이터 전송 객체, getter/setter 메서드만 가짐
- Dependency (+ Injection)
- IoC(Inversion Of Control)
- 컨테이너도 상위 개념에 포함되는 걸로 볼께요
- ApplicationContext
- Components Scan
- Bean Scope
- 스프링 빈이 존재할 수 있는 범위
- Singleton : 스프링 빈을 기본적으로 싱글톤 스코프로 생성된다.
- 스프링 컨테이너에서 한 번만 생성된다.
- 컨테이너가 사라질 때 bean도 사라진다.
- Prototype : 모든 요청에서 새로운 객체를 생성하는 것
- 의존성 관계의 빈에 주입될 때 새로운 객체가 생성되어 주입된다.
- Bean Life Cycle
- 빈 생성 생명 주기 콜백
- @PostConstruct 애노테이션이 적용된 메서드 호출
- 빈이 InitializingBean 인터페이스 구현시 afterPropertiesSet 호출
- @Bean 애노테이션의 initMethod에 설정한 메서드 호출
- 빈 소멸 생성 주기 콜백
- @PreDestory 애노테이션이 적용된 메서드 호출
- 빈이 DisposableBean 인터페이스 구현시 destory 호출
- @Bean 애노테이션의 destoryMethod에 설정한 메서드 호출
- Enviroment Profile
- Environment :스프링 환경이자 설정과 관련된 인터페이스
- Profile 설정과 Property 설정에 접근할 수 있다.
- 애플리케이션에 등록되어있는 여러 환경들을 제어하고 이용할 수 있다.
- Profile
- 스프링에서 특정 Profile에서만 특정한 빈을 등록하고 싶다거나, 애플리케이션 동작을 특정 Profile에서 설정을 다르게 하고 싶을 때 사용하는 기능
- 프로파일을 이용하면 여러 빈 정의들이 특정 프로파일에서만 동작하게 할 수도 있고 특정 프로퍼티들을 특정 프로파일로 정의해서 해당 프로파일이 엑티브일 때 적용되게 할 수도 있다.