Spring Boot 공부용
컨트롤러 : 웹 mvc의 컨트롤러 역할
서비스 : 핵심 비즈니스 로직 구현
레파지토리 : 데이터베이스에 접근
도메인 : 비즈니스 도메인 객체, 예)회원, 주문, 쿠폰 등등
컨트롤러는 서비스에 의존하고, 서비스는 레파지토리에 의존한다.(중요)
스프링에는 객체를 자동으로 추가하고 관리하는데 이때 객체는 Bean으로 명칭한다.
Bean을 담아 관리하는 걸 컨테이너(Container)라고 부른다.
자동으로 담아주기도 하지만 @Autowired를 사용하면 수동으로도 가능하다.
IoC(제어 역전, Inversion of Control)
위에 컨테이너와 빈을 설명한것 처럼 개발자가 직접 라이브러리를 만들어서 관리하는게아닌, 외부 프로그램에 의해서 빈이 컨테이너 안에서 관리되어지는 형태 즉, 개발자가아닌 프로그램이 제어하는걸 제어 역전이라 부른다)
DI(Dependency Injection)
의존성 주입, 개발자가 임의로 의존성을 부여하는걸 의미한다.
방식으로는
Field Injection(필드 주입)
Setter Injection(수정자 주입)
Constructor Injection(생성자 주입)
이 있다.
SOLID
객체 지향 설계의 5가지 원리
-객체지향? Object-Oriented Programming, OOP,객체지향 프로그래밍 이라고 불리며, 필요한 데이터를 추상화 시켜 상태와 행위를 가진 객체를 만들고, 그 객체들간 상호작용을 통해 로직을 구성하는걸 의미한다.