Spring MVC 패턴

Pr_C1oser·2024년 10월 25일
0

웹 애플리케이션의 전체 구조 비유

주제: 웹 애플리케이션의 각 역할을 레스토랑 비유를 통해 쉽게 이해하기

컨트롤러 (Controller) = 레스토랑의 웨이터

컨트롤러는 사용자의 요청을 받고, 해당 요청을 처리하는 역할을 담당합니다.

  • 비유: 웨이터는 고객의 주문을 받아 주방에 전달하고, 주방에서 준비된 음식을 고객에게 가져다 줍니다.
  • 역할: 사용자(고객)의 요청을 받아 서비스(주방)에 전달하고, 처리된 결과를 사용자에게 응답합니다.

서비스 (Service) = 주방장

서비스 계층은 사용자의 요청을 처리하고, 필요한 데이터를 가공하는 역할을 합니다.

  • 비유: 주방장은 웨이터에게 받은 주문을 보고, 어떤 재료를 사용할지 결정하며 요리를 준비합니다.
  • 역할: 비즈니스 로직에 따라 데이터를 가공하고 처리한 후, 결과를 DTO로 포장하여 전달합니다.

리포지토리 (Repository) = 주방 보조

리포지토리는 데이터베이스와 상호작용하여 데이터를 CRUD(생성, 읽기, 수정, 삭제)하는 역할을 담당합니다.

  • 비유: 주방 보조는 주방장의 지시에 따라 냉장고에서 재료를 가져오거나, 새로운 재료를 추가하고 보관합니다.
  • 역할: 데이터베이스와 직접 상호작용하며, 데이터를 조회하거나 저장하고 관리합니다.

엔티티 (Entity) = 냉장고 속 재료 목록

엔티티는 데이터베이스의 테이블과 매핑된 객체로, 저장된 데이터를 표현합니다.

  • 비유: 냉장고 안의 재료 목록을 확인할 수 있는 것처럼, 엔티티는 데이터베이스에 저장된 각 데이터의 상태를 반영합니다.
  • 역할: 데이터베이스 테이블의 구조를 나타내며, 저장된 데이터의 상태를 관리합니다.

DTO (Data Transfer Object) = 데이터 전달용 그릇

DTO는 서비스 계층에서 가공한 데이터를 다른 계층(컨트롤러, 뷰 등)으로 전달하기 위해 사용하는 객체입니다.

  • 비유: 주방장이 가공한 음식을 담아 배달원(컨트롤러)에게 전달하기 위한 포장된 음식 그릇입니다. DTO는 데이터를 안전하게 전달하고, 민감한 정보나 불필요한 정보를 가립니다.
  • 역할: 다른 계층 간 데이터를 안전하고 효율적으로 전달하는 용도로 사용됩니다.

HTML = 포장지/데코레이션

HTML은 사용자가 데이터를 시각적으로 확인할 수 있는 최종 결과물의 외부 표현을 담당합니다.

  • 비유: 고객이 최종적으로 보게 되는 음식의 포장지와 같습니다. 포장지는 내용물을 보호하면서도, 고객이 필요한 정보를 쉽게 확인할 수 있도록 표시합니다.
  • 역할: 사용자에게 데이터를 보기 좋게 표현하여 전달하고, CSS와 JavaScript와 함께 사용자 인터페이스(UI)를 구성합니다.

최종 정리

  • 컨트롤러는 웨이터처럼 사용자와 서비스 계층 간의 요청과 응답을 연결합니다.
  • 서비스 계층은 주방장처럼 데이터를 가공하고 처리하며, 필요한 데이터를 리포지토리에서 가져옵니다.
  • 리포지토리는 주방 보조처럼 데이터베이스와 상호작용하여 데이터를 관리합니다.
  • 엔티티는 냉장고의 재료 목록처럼 데이터베이스의 상태를 반영합니다.
  • DTO는 음식 그릇처럼 데이터를 안전하게 전달하는 역할을 합니다.
  • HTML은 포장지처럼 데이터를 시각적으로 보기 좋게 표현하여 사용자에게 전달합니다.
profile
g2jkj0274@gmail.com

0개의 댓글