Spring Boot는 Spring Framework를 기반으로 하는 웹 어플리케이션 개발을 위한 도구이며, 일반적으로 MVC (Model-View-Controller) 아키텍처 패턴을 따릅니다. 이 아키텍처는 다음과 같은 구성 요소로 이루어져 있습니다.
Controller: 사용자의 요청을 받아들이고 응답을 반환하는 컴포넌트입니다.
Service: 비즈니스 로직을 담당하는 컴포넌트입니다.
Repository: 데이터 저장소에 대한 접근을 담당하는 컴포넌트입니다.
Domain: 어플리케이션에서 사용하는 데이터 모델을 정의하는 컴포넌트입니다.
작성 순서는 다음과 같습니다.
Domain 클래스 작성
데이터 모델을 정의하는 클래스를 작성합니다.
이 클래스는 데이터베이스에 저장될 필드를 정의하며, Getter/Setter 메서드가 필요할 수 있습니다.
Repository 인터페이스 작성
데이터베이스에 접근하는 메서드를 정의하는 Repository 인터페이스를 작성합니다.
이 인터페이스는 Spring Data JPA를 사용하여 구현할 수 있습니다.
Service 클래스 작성
비즈니스 로직을 담당하는 Service 클래스를 작성합니다.
이 클래스는 Repository 인터페이스를 주입받아 데이터 저장소에 접근할 수 있습니다.
이 클래스는 Controller에서 요청을 받아 Repository를 통해 데이터를 가져오거나 저장하는 등의 작업을 수행합니다.
Controller 클래스 작성
사용자의 요청을 받아들이고 응답을 반환하는 Controller 클래스를 작성합니다.
이 클래스는 Service 클래스를 주입받아 Service 메서드를 호출하여 작업을 수행합니다.
Spring Boot는 이러한 구성 요소들을 자동으로 인식하고 관리해주므로, 각 컴포넌트를 작성한 후에는 Spring Boot에서 이를 자동으로 인식하도록 설정 파일에 등록하면 됩니다.
이를 위해 각 컴포넌트의 클래스에는 다음과 같은 어노테이션을 추가해야 합니다.
@Entity: Domain 클래스에 추가합니다.
@Repository: Repository 인터페이스에 추가합니다.
@Service: Service 클래스에 추가합니다.
@Controller: Controller 클래스에 추가합니다.
위의 어노테이션들은 Spring Boot에서 각 컴포넌트를 인식하는 데 필요한 어노테이션입니다.
따라서 각 컴포넌트를 작성할 때 반드시 이 어노테이션을 추가해주어야 합니다.