자바 웹 개발을 처음 배울 때 많은 초보자가 서블릿, JSP, JDBC, Ajax, MVC를 각각 따로 외우려 합니다. 그런데 막상 프로젝트를 만들면 요청은 어디서 받고, 화면은 어디서 만들고, 데이터베이스 처리는 어디에 둬야 하는지 금방 헷갈립니다.

이 혼란의 핵심은 문법 부족보다 구조 이해 부족에 가깝습니다. MVC는 단순히 Model, View, Controller라는 단어를 외우는 개념이 아니라, 웹 애플리케이션에서 책임을 나누는 방식이기 때문입니다.

MVC를 배우기 전에 먼저 정리할 것

MVC를 이해하려면 자바 웹의 기본 흐름을 먼저 봐야 합니다. 브라우저가 요청을 보내면 WAS가 이를 받고, 서블릿이 요청을 처리하며, JSP가 동적인 화면을 만들어 응답합니다. 여기에 데이터베이스 처리가 들어가면 JDBC나 myBatis 같은 기술이 함께 등장합니다.

초보자가 어려움을 느끼는 지점은 기술 이름이 많아서가 아닙니다. 각각이 어느 위치에서 어떤 역할을 하는지 연결되지 않기 때문입니다. 서블릿은 요청을 제어하고, JSP는 화면 출력을 담당하며, Java 클래스는 비즈니스 로직과 데이터 처리를 맡는 식으로 역할을 나누어 봐야 합니다.

Model, View, Controller는 무엇을 나누는가

Model은 데이터와 핵심 로직을 다룹니다. 게시글 목록을 가져오거나 회원 정보를 저장하는 작업처럼 실제 처리가 이 영역에 들어갑니다.

View는 사용자가 보는 화면입니다. JSP가 대표적인 예입니다. View는 데이터를 보기 좋게 표현하는 데 집중하고, 복잡한 처리 로직을 많이 넣지 않는 것이 좋습니다.

Controller는 사용자의 요청을 받아 흐름을 결정합니다. 어떤 Model을 호출할지, 처리 결과를 어떤 View에 넘길지 정합니다. 서블릿 기반 MVC에서 Controller는 전체 요청 흐름을 조율하는 중심 역할을 합니다.

서블릿과 JSP만으로 MVC가 헷갈리는 이유는?

초보자가 자주 하는 실수

첫 번째 실수는 JSP에 모든 코드를 넣는 것입니다. 화면 코드와 데이터베이스 코드, 조건 처리 코드가 한 파일에 섞이면 작은 기능은 빨리 만들 수 있지만 유지보수가 어려워집니다.

두 번째 실수는 Controller를 단순 이동 경로 정도로만 보는 것입니다. Controller는 단순히 페이지를 넘기는 곳이 아니라 요청을 해석하고 필요한 처리를 연결하는 곳입니다.

세 번째 실수는 MVC를 스프링에서만 배우려는 것입니다. 스프링 MVC를 바로 시작하면 프레임워크가 많은 일을 대신 처리하기 때문에 오히려 내부 흐름이 잘 보이지 않을 수 있습니다. 서블릿과 JSP 기반의 MVC 흐름을 먼저 이해하면 스프링 MVC의 구조도 훨씬 자연스럽게 받아들일 수 있습니다.

스프링 MVC로 넘어가기 전에 필요한 감각

스프링 MVC는 갑자기 등장한 별개의 기술이 아닙니다. 자바 웹 개발에서 반복되던 요청 처리, 객체 생성, 의존성 관리, 화면 연결 방식을 더 체계적으로 정리한 프레임워크에 가깝습니다.

따라서 서블릿, JSP, JDBC, myBatis, Ajax, MVC 흐름을 단계적으로 연결해 보면 스프링의 DispatcherServlet, Controller, Service, DAO 같은 구조가 왜 필요한지 이해하기 쉬워집니다.

특히 기업 웹 시스템이나 전자정부프레임워크를 다뤄야 한다면 MVC의 기본 구조를 건너뛰기 어렵습니다. 화면만 만드는 수준을 넘어 요청, 처리, 응답의 흐름을 설명할 수 있어야 실무 코드도 읽을 수 있습니다.

어떤 순서로 공부하면 좋을까

먼저 웹 개발 환경을 구성하고 Tomcat 같은 WAS가 어떤 역할을 하는지 확인합니다. 그다음 서블릿으로 요청과 응답의 기본 구조를 익히고, JSP로 화면을 동적으로 만드는 방식을 봅니다.

이후 JDBC나 myBatis로 데이터베이스 연동을 붙여보고, 코드가 복잡해지는 지점을 직접 경험해보는 것이 좋습니다. 그때 MVC로 책임을 나누면 왜 구조가 필요한지 체감할 수 있습니다.

마지막으로 Ajax를 이용해 서버와 비동기 통신을 해보면, 전통적인 페이지 이동 방식과 부분 갱신 방식의 차이도 이해할 수 있습니다. 이 흐름까지 잡히면 스프링 Web MVC를 배울 때 단순 암기가 아니라 구조의 연장선으로 받아들일 수 있습니다.

정리

MVC는 이름보다 흐름이 중요합니다. 사용자의 요청이 Controller로 들어오고, Model에서 필요한 처리를 한 뒤, View가 결과를 보여주는 구조를 반복해서 그려보면 서블릿과 JSP가 훨씬 덜 막연해집니다.

자바 웹 개발을 배우는 단계라면 스프링부터 급하게 들어가기보다, 서블릿과 JSP 기반 MVC가 어떤 문제를 해결하려고 나왔는지 먼저 이해하는 편이 좋습니다. 그 기초가 잡히면 스프링 MVC도 단순한 설정과 어노테이션 모음이 아니라 자연스러운 발전 과정으로 보입니다.


더 깊게 배워보고 싶다면

이 글에서 다룬 서블릿, JSP, MVC 흐름을 실제 자바 웹 프로젝트 구조 안에서 차근차근 익히고 싶다면, 아래 강의도 함께 참고해볼 만합니다. https://inf.run/Rekz4

[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]| 박매일 – 인프런 강의

이 링크를 통해 수강하면 작성자가 소정의 수수료를 받을 수 있습니다.