최근 사내 프레임워크 구조를 설명할 일이 있었는데,
그 핵심이 바로 MVC 모델이었다.
CodeIgniter, Laravel, Spring 등 많은 웹 프레임워크들이 채택하고 있는 이 구조는
처음에는 다소 헷갈릴 수 있지만, 제대로 이해하면 유지보수, 확장성, 협업 효율성 면에서 큰 장점을 준다.
이번 글에서는 MVC 모델이 무엇인지, 왜 쓰이는지, 실제 예시
🧭 MVC란 무엇인가?
MVC는 Model-View-Controller의 약자로,
웹 애플리케이션의 구조를 세 가지 역할로 나누는 설계 패턴이다.
핵심 목적:
코드를 역할별로 분리해 더 명확하고 유지보수하기 쉽게 만들기 위함
🔍 각 구성 요소 설명
구성 요소 | 역할 | 예시 |
Model | 데이터와 관련된 처리 | DB 접근, 저장, 수정, 삭제 등 |
View | 사용자에게 보여지는 화면 | HTML, 화면 출력, 디자인 |
Controller | 사용자 요청 처리 및 흐름 제어 | 사용자의 요청을 받고, 필요한 Model을 호출, 결과를 View에 전달 |
📌 간단 예시로 살펴보기
사용자가 /mypage에 접속하면 "내 정보"가 보이는 구조
- Controller: 사용자의 /mypage 요청을 받음
→ MypageController.php의 index() 함수 실행 - Model: DB에서 로그인한 사용자의 정보를 가져옴
→ UserModel.php의 getUserInfo() 호출 - View: mypage.php 파일을 로드해서 사용자 정보를 HTML로 보여줌
[User Request]
↓
[Controller]
↓
[Model] ←→ [DB]
↓
[View]
↓
[Response: 브라우저에 출력]
✨ MVC 구조의 장점
장점 | 설명 |
역할 분리 | 코드가 깔끔하고 명확해짐 |
유지보수 용이 | 한쪽 로직만 수정해도 다른 영역에 영향 적음 |
협업 효율성 ↑ | 백엔드 개발자, 프론트엔드 개발자 간 작업 분리 가능 |
테스트 및 확장성 ↑ | 모듈화되어 테스트/추가 개발 용이 |
🧱 실제 회사에서는 어떻게 사용되나?
CodeIgniter나 Laravel 같은 프레임워크에서는
MVC 구조가 디렉토리로도 명확히 나뉘어 있음:
/application
├── controllers/
├── models/
└── views/
- 신규 기능 추가 시, 보통 다음 흐름으로 작업함:
- 컨트롤러 생성
- 모델에서 DB 연동
- 뷰 페이지에서 출력 디자인
회사 시스템이 복잡해질수록 이 구조를 잘 이해하는 것만으로도 업무 이해도가 훨씬 높아진다.
🎯 느낀 점 / 회고
처음엔 Controller에 모든 코드를 몰아넣고 싶어진다.
하지만 시간이 갈수록 코드는 섞이지 않고 나뉘어 있어야 유지보수가 쉽다는 걸 실감하게 된다.
MVC는 단순한 "이론"이 아니라, 모든 웹 프로젝트에서 가장 많이 쓰이는 실질적인 개발 방식이다.
지금 내가 다루는 프레임워크가 어떻게 MVC 구조를 활용하는지 살펴보는 것만으로도 실력이 한 단계 올라간다.
'개발공부' 카테고리의 다른 글
npm start 명령어, 정확히 뭘 하는 걸까? (3) | 2025.07.11 |
---|---|
React 설치 방식 3가지 비교 가이드 (0) | 2025.07.10 |
Tailwind CSS 설정 중 만난 오류들, 이렇게 해결했어요! (0) | 2025.05.10 |
Tailwind CSS, 왜 개발자들이 열광할까? (0) | 2025.05.10 |
PHP 경량 프레임워크 CodeIgniter 기본 개념 정리 (0) | 2025.05.09 |