스프링부트의 디렉토리(패키지) 구조와 역할
프로젝트마다 디렉토리(패키지) 이름은 변경되거나 추가될 수 있습니다.
처음 스프링부트를 공부할 때, 무작정 게시판 만들기를 따라했다.
하지만 MVC 패턴에 대해 제대로 알지 못했던 나는 너무나도 생소한 패키지 이름들에 이해가 하나도 안 갔었다.
그 기억을 되살려 간단하게 정리해보려고 한다.
Model… Repository… Service… 다 처음 듣는 이름의 디렉토리들이였다.
물론 패키지 이름은 딱 이거다!라고 정해진 게 아니라서 이름이 제각각이지만, 결국 하는 역할은 비슷하다.
이름은 가장 자주 듣는다고 생각하는 패키지 이름으로 써놓았지만 위에서도 말했듯이 절대 절대적이지 않다.
각 패키지가 하는 일
Model(또는 Domain 또는 Post … )
- 테이블의 필드가 DB에서 매핑하는 역할을 담당한다.
- DTO가 들어있다.
주로 이런 역할을 하며, 나 같은 경우에는 Entity 클래스를 이곳에서 만든다.
Repositroy(또는 Persistance)
- 데이터베이스가 연결되는 레파지토리(DAO)
나 같은 경우에는 JPA를 사용하기 때문에 여기에서 주로 JpaRepository를 이곳에서 상속받는다.
Service
비즈니스 로직이 들어가는 부분(메소드 같은)
주로 기능을 수행하는 메소드를 이곳에 넣는다.
실제 동작하는 로직이 들어간다.
- Controller(또는 web)
- 컨트롤러가 붙어있다.
- 사용자에게 입력을 받고 돌려주는 역할을 한다.
실제로 사용자에게 입력을 받고 처리하는 역할이 들어간다.
이외에도 필요한 경우, 추가하지만 기본적으로 이 4개를 베이스로 깔고 간다.
DTO, DAO의 개념을 잘 모른다면
를 참고하면 좋을 것 같다.
'Backend > SpringBoot' 카테고리의 다른 글
Spring Boot Map Struct Gradle 사용해보기 (3) | 2019.11.18 |
---|---|
Spring Boot Validation을 사용하여 요청 값 검증하기 (0) | 2019.11.07 |
DAO, DTO 차이점 (0) | 2019.11.04 |
SpringBoot + JPA + Thymeleaf로 간단한 CRUD + Travis CI 사용해보기 프로젝트 (1) | 2019.04.06 |
IoC, DI 개념과 간단한 예제 (2) | 2019.04.04 |