[Java 풀스택 과정 강의] 2월 24일

부트캠프 일지/Java 풀스택 과정 강의
2026.03.02
※ TIL와는 별개로 적는 개인 개발 일지라서 말은 좀 편하게하는 페이지입니다.
일지이기 때문에 일기의 성격이 더 강합니다.

 

 

MVC 패턴

위키피디아 그림

 

MVC패턴이란, Model-View-Controller 세 가지에 의한 패턴으로, 유저는 View를 보고 입력(사용)하면 그것이 Controller로 전해진다. Controller는 그 사항을 Model에 명령하여 Model의 상태를 변경한다. 그러면 Model은 업데이트 된 것을 View에 전달한다. 

이러한 패턴은 1979년에 최초로 소개된 이후로 계속 사용되고 있는데, 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있기 때문이다. 여기서 중요한 역할은 사실상 CONTROLLER인데, 모든 것을 컨트롤러를 통해 통제가 가능하게 함으로써, View는 화면 표시와 입력 처리에만 집중하고, Model은 데이터·비즈니스 로직만 책임지도록 역할을 깨끗하게 나눌 수 있다.

 

수업 내에서는 DTO와 DAO가 모델이고, 거기에 Controller라는 다른 클래스를 분리하고, View에 메인 메서드를 넣어서 사용하였다.

 

MVC 패턴 사용 JDBC 프로그래밍

오늘 배운 것은 이전에 배운 CRUD와 비슷하면서도 다르다.

일단 패키지가 다음처럼 이루어져 있었다.

 

// VIEW
src/view/main
src/view/create
src/view/read
src/view/update
src/view/delete

// CONTROLLER
src/controller/controller

// MODEL
src/model/IDAO
src/model/DAO
src/model/DTO

 

VIEW에 있는 CRUD의 경우는 컨트롤러에 전하고 그 뷰를 받기 위해서 존재한다고 보면 좋다. 예를 들어 create일 경우,

public class create {
	Controller controller = Controller.getInstance();
	public void insert(Scanner sc){
    	//여기서 입력을 받는다.
        controller.create(new DTO(입력 받은 정보값));
    }
}

 

이런형태로 controller 객체를 생성하고 그쪽으로 DTO를 보낸다.

그렇다면 controller는 어떻게 생겼을까?

 

 

Controller

컨트롤러는 싱글톤으로 이루어져 있는 경우가 많다. 그러므로 static이 된다. 대신 instance를 생성해서, getInstance()라는 메서드를 통하여 외부에서 접근이 가능하도록 되어 있다.

 

public class Controller {
	private static Controller instance = new Controller();
    IDAO dao = new DAO();
    
    private Controller() {
    	// new 연산자 활용한 객체 생성 등이 불가능하도록 생성자 오버로딩을 해둔다.
    }
    
    //외부에서 인스턴스 사용이 가능하도록 만든다.
    public static Controller getInstance()  {
        return instance;
    }
    
    // … 이 이후로는 CRUD를 DAO에 넘기는 것과 함께 View 반환 또한 처리한다.

}

 

 

DAO의 경우 지난 시간에 배웠던 것과 비슷하게 진행이 된다.

 

메인으로 보이는 메인 VIEW의 경우는 while문 등으로 순회하면서 만들면 편하게 프로그램을 만들수 있게 된다.

이 이후에는 관련 실습을 했는데, 과제 제출 기한이 끝나면 그때 올려보기로 한다.