[스프링 부트] 3. 레이어(Layer) 구성

KangHo Lee's avatar
Nov 15, 2024
[스프링 부트] 3. 레이어(Layer) 구성
💡
SRP 원칙에 따라 각 레이어는 1개의 책임만 가지고 있습니다.

1. BoardController

- 책임: 외부 클라이언트에게 요청을 받으면 응답을 해주는 객체

@Controller . public class BoardController { private final BoardService boardService; public BoardController(BoardService boardService) { // BoardController 인스턴스 생성 확인 System.out.println("BoardController"); this.boardService = boardService; } }
  • final
    • boardService 필드는 초기화된 후 변경할 수 없습니다.
    • 객체의 불변성을 유지하고 의도치 않은 수정으로부터 보호할 수 있습니다.
  • 생성자를 이용한 의존성 주입(Dependency Injection, DI)
    • 생성자 매개변수에 BoardService 을 넣어서 의존성을 해결합니다.

2. BoardService

- 책임: 비즈니스 로직

@Service public class BoardService { private final BoardRepository boardRepository; public BoardService(BoardRepository boardRepository) { this.boardRepository = boardRepository; System.out.println("BoardService"); } }

3. BoardRepository

- 책임: DB와 상호작용

@Repository public class BoardRepository { public BoardRepository() { System.out.println("BoardRepository"); } }
  • Repository
    • 도메인과 데이터 매핑 계층을 구분하는 패턴입니다.
    • DAO보다 좀 더 광범위한 내용을 포함합니다.
  • DAO (Data Access Object)
    • 데이터베이스의 데이터에 접근하고 조작하는 작업을 추상화하기 위한 패턴
 
Share article

devleekangho