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