스프링부트 패키지 구조

안민기·2023년 11월 9일

스프링부트는 위 그림과 같은 구조로 작동하고, 프로젝트를 관리할 때 이러한 디렉토리 구조를 만들어 관리한다.

Domain
DB의 테이블과 직접 매핑되는 클래스로 JPA를 사용할 시 Entity를 통해 표현된다.

DTO
Data Transfer Object의 약자로 데이터를 전송하기 위해 사용하는 객체이다. 로직 없이 사용할 데이터 객체에 대한 정보만 가지고 있다.

Repository
데이터베이스에 접근하는 메소드들을 사용하기 위한 인터페이스를 말한다. DAO와 혼동하는 경우가 있는데 Repository는 자바 객체를 테이블에 매핑하고 DAO는 SQL에 대한 매핑이기에 역할은 비슷해도 엄연히 다른 개념이다.

Service
실제 비즈니스 로직이 저장되어 있는 클래스를 말한다.

Controller
Client의 요청을 처리해주는 역할을 하고 있다.

데이터 흐름을 살펴보면 Client에서 DTO를 이용해 요청을 보내면 Controller에서 Service에서 필요한 로직을 호출하고 Service는 Repository를 통해 DB에 매핑된Entity를 원하는 기능에 맞게 관리해준다.

profile
개발 블로그

0개의 댓글