inblog logo
|
devleekangho
    스프링부트

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

    KangHo Lee's avatar
    KangHo Lee
    Nov 15, 2024
    [스프링 부트] 3. 레이어(Layer) 구성
    Contents
    1. BoardController2. BoardService3. BoardRepository
    💡
    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
    Contents
    1. BoardController2. BoardService3. BoardRepository

    devleekangho

    RSS·Powered by Inblog