9. 어플리케이션 만들기

DAEILLIM·2023년 12월 3일
0
post-thumbnail

어플리케이션 구현은 넘어갑니다.

1. 레이어별 컴포넌트

image-20231203192727700
  • 어플리케이션 레이어
    클라이언트에서 받은 요청을 제어하고 도메인 레이어를 사용하여 어플리케이션을 제어합니다.

    1. Controller:
      요청을 처리레 매핑하고 결과를 뷰에 넘겨주는 제어를 수행합니다.
      주요 처리는 Controller 안에서 실행하지 않고 '도메인 레이어'의 Service를 호출합니다.
    2. Form:
      화면의 폼을 표현합니다. 화면에서 입력한 값을 Controller에 넘겨줍니다. 또한 Controller에서 화면에 결과를 출력할 때도 사용합니다. 도메인 레이어가 어플리케이션 레이어에 의존하지 않도록 Form에서 도메인 객체로 변환하거나 도메인 객체에서 Form으로 변환하는 것을 어플리케이션 레이어에서 수행해야 합니다.
    3. View:
      화면 표시를 담당합니다.
  • 도메인 레이어
    도메인 객체에 대해 어플리케이션의 서비스 처리를 실행합니다.

    1. 도메인 객체
      서비스 처리를 실행할 때 필요한 자원입니다.(Entity 등)
    2. Service
      어플리케이션의 서비스 처리를 담당합니다.
    3. Repository
      Repository는 인터페이스입니다. 데이터베이스의 데이터 조작 내용만 정의합니다.(구현 내용은 작성하지 않습니다.)
  • 인프라스트럭처 레이어
    도메인 객체에 대헤 CRUD 조작을 해서 데이터의 영속화(데이터를 영구 저장하는)를 담당합니다.

    1. RepositroyImpl
      도메인 레이어에서 정의한 Repository의 구현 클래스입니다.
      'O/R Mapper'가 Repository의 구현 클래스를 생성하는 경우도 있습니다.
    2. O/R Mapper
      객체와 관계형 데이터베이스 간의 데이터를 매핑합니다.

레이어를 나누는 엄격한 규칙으로서 어플리케이션 레이어도 인프라스트럭처 레이어도 도메인 레이어에 의존하지만 도메인 레이어는 다른 레이어에 의존해서는 안 된다는 규칙이 있습니다. 즉, 도메인 레이어의 변경에 의해 '어플리케이션 레이어'의 변경은 허용하지만 어플리케이션 레이어의 변경으로 도메인 레이어의 변경이 발생해서는 안된다는 것입니다.

profile
필기하고, 타이핑하고, 말하면서 읽고, 코딩하고, 눈으로 읽고 오감으로 공부하기

0개의 댓글