표현 영역과 응용 영역

표현 영역

  • 사용자가 보고 상호작용하는 부분
  • 사용자가 입력한 ID 와 비밀번호 같은 정보를 받아서 서버에 전달한다.

응용 영역

  • 사용자의 요청을 받아서 실제로 처리하는 부분
  • 웹 사이트에서 회원가입을 요청
    • 표현 영역이 해당 요청을 받아서 응용 영역의 서비스에 전달
    • 응용 영역은 해당 정보를 사용하여 실제로 회원 가입을 처리하고 결과를 반환
@PostMapping("/member/join")
public ModelAndView join(HttpServletRequest request) {
    String email = request.getParameter("email");
    String password = request.getParameter("password");
    // 사용자 요청을 응용 서비스에 맞게 변환 (4)
    JoinRequest joinReq = new JoinRequest(email, password);
    // 변환한 객체(데이터)를 이용해서 응용 서비스 실행
    joinService.join(joinReq);
    ...
}

동작

  1. 사용자가 웹 브라우저에서 회원가입 양식을 채우고, 가입 버튼을 누른다
  1. 표현 영역은 사용자가 입력한 이메일과 비밀번호를 받아서 HTTP 요청으로 서버에 전송
  1. 서버의 표현 영역은 이 요청을 받아서 사용자가 무엇을 하고 싶어하는지 파악
  1. 표현 영역은 사용자의 요청을 응용 영역이 이해할 수 있는 형태로 변환
    1. JoinRequest 객체를 만들어 응용 서비스에 전달
  1. JoinService.join(Req) 코드를 통해 회원가입을 처리
  1. 처리 후, 표현 영역은 사용자에게 결과를 HTML 혹은 JSON 형식으로 응답한다.

중요

  • 응용 서비스는 사용자가 어떤 방식으로 요청을 보냈는지 신경쓰지 않음.
  • 필요한 정보를 받아서 요청된 기능을 수행, 결과 반환하는 것이 전부
    • 응용 서비스는 다양한 표현 영역과 연동 (웹, 모바일뷰) 이 가능해진다.

Uploaded by N2T

'도메인주도개발' 카테고리의 다른 글

[DDD] 인터페이스가 필요한가?  (0) 2024.01.19
[DDD] 표현 영역과 응용 영역  (0) 2024.01.19
밸류를 이용한 ID의 매핑  (0) 2024.01.05
밸류 매핑 애그리거트  (0) 2024.01.05
Image 생성 관련 최적화  (0) 2024.01.05