상세 컨텐츠

본문 제목

웹 애플리케이션 계층 구조를 쉽게 알아볼까요?

Spring(프레임워크)

by 헬로제이콥 2025. 1. 16. 15:26

본문

웹 애플리케이션은 우리가 매일 사용하는 웹사이트나 앱처럼 인터넷을 통해 사용하는 프로그램이에요. 이런 프로그램들은 여러 개의 층으로 이루어져 있는데, 마치 높은 건물처럼 각 층마다 맡은 일이 다르답니다.

각 층의 역할

  • 컨트롤러 (Controller):
    • 역할: 사용자의 요청을 받아서 어떤 일을 해야 할지 결정하는 역할을 해요. 마치 레스토랑의 웨이터 같아요. 손님(사용자)이 메뉴(요청)를 주문하면 주방(서비스)에 전달하는 거죠.
    • 예시: 웹사이트에서 버튼을 누르면 컨트롤러가 그 버튼에 해당하는 기능을 실행하도록 서비스에 요청을 보내요.
  • 서비스 (Service):
    • 역할: 컨트롤러로부터 받은 요청을 처리하는 실제 작업을 수행해요. 레스토랑의 주방장과 같이 음식을 만드는 일을 하죠.
    • 예시: 사용자가 상품을 주문하면 서비스는 상품 정보를 가져오고, 결제를 처리하고, 주문 내역을 저장하는 등의 일을 해요.
  • 리포지토리 (Repository):
    • 역할: 데이터를 저장하고 불러오는 역할을 해요. 레스토랑의 냉장고나 창고와 같이 재료(데이터)를 보관하는 곳이라고 생각하면 돼요.
    • 예시: 사용자 정보, 상품 정보, 주문 정보 등을 데이터베이스에 저장하고, 필요할 때 다시 가져와서 사용해요.
  • 데이터베이스 (Database):
    • 역할: 리포지토리가 저장한 데이터를 실제로 저장하는 공간이에요. 마치 도서관의 책장처럼 많은 정보를 체계적으로 보관하는 곳이죠.
    • 예시: 사용자의 이름, 주소, 비밀번호 등의 정보를 저장해요.
  • 도메인 (Domain):
    • 역할: 애플리케이션이 다루는 문제 영역을 정의하고, 그 영역에 대한 개념과 규칙을 나타내요. 마치 레스토랑의 메뉴판처럼 어떤 음식을 제공하는지 정의하는 거죠.
    • 예시: 온라인 쇼핑몰의 도메인은 상품, 주문, 회원 등이 될 수 있어요.

간단한 예시

우리가 좋아하는 햄버거를 주문한다고 생각해볼까요?

  1. 컨트롤러: "햄버거 주문" 버튼을 누르면 컨트롤러가 이 요청을 받아요.
  2. 서비스: 컨트롤러는 서비스에게 "햄버거를 만들어 달라"고 요청해요.
  3. 리포지토리: 서비스는 리포지토리에게 "햄버거 재료가 있는지 확인해 달라"고 요청하고, 리포지토리는 데이터베이스에서 재료 정보를 가져와요.
  4. 데이터베이스: 데이터베이스는 햄버거 재료가 충분히 있다고 알려줘요.
  5. 서비스: 서비스는 햄버거를 만들고, 컨트롤러에게 완성된 햄버거를 전달해요.
  6. 컨트롤러: 컨트롤러는 우리에게 햄버거를 제공해요.

이처럼 웹 애플리케이션은 여러 층이 서로 협력하여 사용자의 요청을 처리하고, 원하는 결과를 제공하는 복잡한 시스템이에요.

'Spring(프레임워크)' 카테고리의 다른 글

API 서비스 운영  (0) 2025.01.16
스프링부트에서 List  (0) 2025.01.16
의존성 주입, 제어 역전, 관점 지향  (0) 2025.01.16
메이븐에 대한 이해  (0) 2025.01.08
스프링의 의존성과 역 의존성  (0) 2025.01.08

관련글 더보기