프로그래밍/SPRING

스프링 구조 짜기 예시 (MVC 패턴)

Cognivox 2025. 5. 22. 12:22
반응형

🍽️ MVC 패턴이란?

Model-View-Controller의 약자
역할을 분리해서 개발의 효율성과 유지보수를 좋게 만든 구조


🎭 MVC 패턴 구성요소 비유

구성 요소실제 역할비유 (배달 앱 기준)
Model 데이터 처리, 비즈니스 로직 배달기사 + 음식 + 주문정보
View 사용자에게 보여지는 화면 배달 완료된 음식 사진
Controller 사용자의 요청 처리 알바생 (김반장)

 

🍜 스프링 & 마이바티스 구조 - 배달의 민족 버전


🎬 등장인물 (역할별 비유)

개념실제 역할비유
@Controller 요청 처리 알바생 (ex. 김반장)
@Repository DAO구현 명찰 요리사 명찰 (ex. 김도영)
@Inject 의존성 주입 무전기
@RequestMapping URL 매핑 주문지/포스트잇
@ModelAttribute 모델에 값 담기 주문서 출력기계 (예쁘게 포장)
 
개념실제 객체비유
DTO 데이터 전달 객체 주문서
DAO 인터페이스 냄비 (조리도구)
DAOImpl 실제 DB작업 구현체 요리사
DB 데이터베이스 스마트 냉장고
Mapper.xml SQL 모음 레시피북
Model 화면에 넘길 데이터 배달기사 (ex. 이해찬)
JSP View 배달 완료된 웹 화면
 

📦 주문 흐름 순서 (전체 구조 흐름도)

  1. 고객 정재백이 배달의민족 앱에서 주문한다
    "칼국수 주세요!"
  2. DTO = 주문서 작성
  3.  
  4. Controller = 알바생 김반장 등장
    • 주문서 받아서 요리사에게 무전기(@Inject)로 전달
    • @RequestMapping = 고객이 요청한 주문지
    • @ModelAttribute = 보기 좋게 정리된 주문서 출력
  5. DAO = 냄비 등 조리도구
    • 김반장이 냄비에 전달해 요리 준비
  6. DAOImpl = 요리사 김도영 (@Repository)
    • 무전기로 받은 주문서 보고
    • 냉장고(DB)에서 재료 꺼내 요리
  7. DB = 스마트 냉장고
    • 각종 재료(데이터) 저장
    • 시퀀스: 주문 번호 순서 관리
    • regiDate: 재료 저장/출고 시간
  8. Mapper = 레시피북
    • 요리사가 참고하는 SQL 조리법 모음
  9. Model = 배달기사 이해찬
    • 완성된 칼국수 들고 고객에게 배달
  10. JSP = 웹화면 = 배달완료
    • 웹에서 결과 확인 가능

✅ 결과 확인 예시

🍽️ 단위 프로그램과 컨트롤러

  • **단위 프로그램마다 컨트롤러(알바생)**를 하나씩 둠
    • 칼국수Controller → 칼국수 알바생
    • 수제비Controller → 수제비 알바생
    • 돈까스Controller → 돈까스 알바생
  • 각각 해당 메뉴만 전담해서 주문 받고, 조리사에게 전달!

#SpringFramework #MyBatis #MVC패턴 #DTO #DAO #Controller #Repository #ModelAttribute #RequestMapping #Java웹개발 #JSP #스마트냉장고비유 #웹개발비유 #백엔드개발 #DB연동 #MapperXML #의존성주입 #배달의민족비유 #프로그래밍입문 #웹서비스구조

반응형

'프로그래밍 > SPRING' 카테고리의 다른 글

스프링 전체 구조 + 칼국수집 비유 정리표  (0) 2025.05.23
프로젝트 만들기 순서  (0) 2025.05.20
sts 다섯개 설정 언어셋  (0) 2025.05.19