Spring- 3 Layer Architecture

송민지·2024년 8월 21일

spring

목록 보기
1/4

3 layer Architecture

  • 3 layer architecture는 스프링 뿐만 아니라 대부분의 개발에서 사용되는 디자인 패턴입니다.
  • 이런 디자인은 어플리케이션을 3개의 층으로 분리시켜 모듈화, 유지보수성, 확장성을 높히는데 목적이 있습니다.

3 layer

presentation layer

  • controller layer 혹은 web 레이어라고도 합니다.
  • 클라이언트에서 request 요청이 들어오면 간단한 유효성 검사, 데이터 형식을 검사합니다.

service layer

  • 클라이언트에서 요청한 요구사항을 실질적으로 처리하는 역할입니다.
  • presentation layer에서 요청을 받은 데이터를 가공하거나, 실행하여 결과를 넘겨줍니다.

data access layer

  • presistance layer 혹은 repository layer라고 합니다.
  • 데이터베이스와 소통하여 데이터를 저장, 수정, 조회, 삭제하여 결과를 service layer로 넘겨줍니다.

그럼 3 layer architecture는 왜 사용하는 걸까?


사진출처는 제 깃허브 레포지토리중 하나 입니다하핫

자바스크립트로 만든 게시판 백엔드 로직중 댓글을 저장하는 부분입니다.
짧은 코드이기 때문에 오류가 발생해도 바로 원인을 찾을 수 있습니다.

하지만 이렇게 작성된 코드가 100줄이 넘는다면 개발자는 오류를 쉽게 찾을 수 있을까요?
대댓글 같은 새로운 기능이 추가된다면 어떻게 해야 될까요?
담당자가 퇴사한 후 새로 업무를 받은 기존/신입 직원이 코드가 어떻게 구성이 되었는지 바로 인식할 수 있을까요??
이렇게 작성된 코드는 다시 사용이 가능할까요?
테스트코드를 작성한다면, 어떻게 작성해야 할까요?

이러한 문제들을 해결하기 위해, 각 클래스간의 단일책임 원칙을 지키기 위해 spring에서는 서버 개발관점에서 3 layer architecture로 역할을 분리하였습니다.


Three-Layer Architecture Pattern | Spring Boot Application Three-Layer Architecture

profile
항상 밝게

0개의 댓글