반응형
🍽️ 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 | 배달 완료된 웹 화면 |
📦 주문 흐름 순서 (전체 구조 흐름도)
- 고객 정재백이 배달의민족 앱에서 주문한다
→ "칼국수 주세요!" - DTO = 주문서 작성
-
- Controller = 알바생 김반장 등장
- 주문서 받아서 요리사에게 무전기(@Inject)로 전달
- @RequestMapping = 고객이 요청한 주문지
- @ModelAttribute = 보기 좋게 정리된 주문서 출력
- DAO = 냄비 등 조리도구
- 김반장이 냄비에 전달해 요리 준비
- DAOImpl = 요리사 김도영 (@Repository)
- 무전기로 받은 주문서 보고
- 냉장고(DB)에서 재료 꺼내 요리
- DB = 스마트 냉장고
- 각종 재료(데이터) 저장
- 시퀀스: 주문 번호 순서 관리
- regiDate: 재료 저장/출고 시간
- Mapper = 레시피북
- 요리사가 참고하는 SQL 조리법 모음
- Model = 배달기사 이해찬
- 완성된 칼국수 들고 고객에게 배달
- 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 |