! 이 내용은 책 스프링 부트 3 백엔드 개발자 되기 (자바편)을 참고하여 작성하였습니다 !
spring 은 프레임워크 !
서버를 별도로 수동 설정한다.
spring boot는 스프링 프레임워크를 기반으로 둔 도구 !
내장현 서버를 제공해 별도의 설정이 필요 없다.
: 다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 것이다. 객체를 관리하기 위해서 사용한다.
public class A {
b = new B(); // 다른 객체를 직접 생성. 제어의 역전 X
}
public class A {
private B b; // 제어의 역전 O
}
: 어떤 클래스가 다른 클래스에 의존하게 만든다.
스프링 컨테이너가 객체를 만들어서 클래스에게 객체를 보내는 것이다.
: bean을 생성하고 관리한다. @Autowired annotation을 사용하여 빈을 주입받을 수 있다. 이렇게 주입을 받는 것을 의존성 주입이다.
: 스프링 컨테이너가 생성하고 관리하는 객체
클래스에 @Component annotation을 붙이면 클래스가 빈에 등록된다.
빈의 이름은 클래스 이름의 첫글자를 소문자로 바꾼 것이다.
프레젠테이션 계층 <-> 비즈니스 계층 <-> 퍼시스턴스 계층 <-> DB
(1) 프로젠테이션 계층 - 컨트롤러
: HTTP 요청을 받고 이 요청을 비즈니스 계층으로 전송하는 역할이다.
컨트롤러 예) TestController 클래스
(2) 비즈니스 계층 - 서비스
: 모든 비즈니스 로직을 처리한다. 웹 사이트에서 벌어지는 모든 작업.
(3) 퍼시스턴스 계층 - 리포지토리
: 모든 데이터베이스 관련 로직을 처리한다. 이 과정에서 DAO객체를 사용할 수 있다. DAO는 데이터 베이스 계층과 상호작용하기 위한 객체이다.
객체는 개념의 영역,
역할(컨트롤러, 서비스, 리포지토리)는 실제 구현을 위한 영역