Home 웹 애플리케이션 구조
Post
Cancel

웹 애플리케이션 구조

여러가지 애플리케이션 구조가 있지만 가장 단순하면서 많이 사용하는 방식은 역할에 따라 위 3가지 계층으로 나누는 것이다.

  • 프레젠테이션 계층
    • UI와 관련된 처리 담당
    • 웹 요청과 응답
    • 사용자 요청을 검증
    • 주 사용 기술 : 서블릿과 같은 HTTP 웹 기술, 스프링 MVC
  • 서비스 계층
    • 비즈니스 로직을 담당
    • 주 사용 기술 : 가급적 특정 기술에 의존하지 않고, 순수 자바 코드로 작성.
  • 데이터 접근 계층
    • 실제 데이터베이스에 접근하는 코드
    • 주 사용 기술 : JDBC, JPA, File, Redis, Mongo …

이 3가지 계층 중 가장 중요한 곳은 어디일까?

바로 서비스 계층이다.

  • 핵심 비즈니스 로직이 들어있는 서비스 계층은 시간이 흘러서 UI(웹)와 관련된 부분이 변하고, 데이터 저장 기술이 변해도 변경 없이 유지되어야 한다.
  • 이렇게 하려면 서비스 계층은 특정 기술에 종속적이지 않도록 개발해야 한다.
    • 계층을 나누는 이유도 서비스 계층을 최대한 순수하게 유지하기 위한 목적이 크다.
    • 기술에 종속적인 부분은 프레젠테이션 계층, 데이터 접근 계층에서 가진다.
    • 예를 들어 HTTP API를 쓰다가 GRPC 같은 기술로 변경해도 프레젠테이션 계층만 변경하면 되고, JDBC를 쓰다가 JPA로 변경해도 데이터 접근 계층만 바꾸고 서비스 계층은 유지하는 것이다.
  • 서비스 계층이 특정 기술에 종속되지 않기 때문에 비즈니스 로직을 유지보수하기도 쉽고, 테스트도 쉽다.
This post is licensed under CC BY 4.0 by the author.