2026/01/04 3

스프링 MVC

MVC는 애플리케이션 설계 패턴이다.Model = 데이터View = 화면Controller = 요청 처리을 뜻한다. 과거에는 웹 애플리케이션에는 MVC의 역할이 분리되지 않았다. 예를들면 자바의 서블릿이 있다. 그러나 웹 서비스가 복잡해 지면서 로직과 UI가 뒤섞인 서블릿만으로는 코드 가독성과 유지 보수의 어려워졌고 웹 애플리케이션에 MVC패턴을 도입하자는 의견이 생겨났다. 그리하여 JSP같은 템플릿엔진이 등장했고 JSP가 View, 비즈니스 데이터를 표현하는 도메인 객체가 Model, 서블릿이 Controller를 담당하게 되었다. 그러나 여전히 서블릿의 컨트롤러에는 요청 처리 뿐만아니라 비즈니스 로직도 함께 녹아있다는 한계가 있었다. 스프링 MVC는 프론트 컨트롤러 패턴을 사용하여 이 문제를 해..

Spring 2026.01.04

프록시 패턴

프록시 패턴 — 객체 생성을 지연시키는 구조프록시 패턴은 어떤 객체에 대한 접근을 다른 객체가 대신 제어하는 구조다.클라이언트는 실제 객체를 직접 다루지 않고, 대리 객체(Proxy) 를 통해 간접적으로 접근한다.이 패턴은 다음과 같은 상황에서 자주 사용된다.객체 생성 비용이 매우 클 때실제 객체 사용이 항상 필요한 것이 아닐 때접근 시점에 부가 로직을 끼워 넣고 싶을 때Hibernate의 지연 로딩(Lazy Loading) 이 대표적인 실사용 사례다.예제로 볼 프록시 구조이번 예제는 이미지 로딩을 예로 든 전형적인 프록시 패턴이다.역할 분리역할클래스 공통 인터페이스Image실제 객체 (Target)RealImage프록시 객체ProxyImage클라이언트ProxyMain공통 인터페이스 package com..

디자인패턴 2026.01.04

객체지향의 4대요소

추상화, 상속, 캡슐화, 다형성1. 추상화공통성과 본질을 모아 추출한다.추상 클래스와 인터페이스로 구현가능하다.어떠한 객체가 수행해야하는 핵심적인 역할만 추상 메소드로 만든다.예를들면 차량 인터페이스와 자동차, 오토바이 구현체가 있을때 시동, 전진, 후진의 공통기능을 뽑아 추상 메소드에 등록한다.이를 객체지향프로그래밍에서 역할과 구현의 분리라고 한다.2. 상속기존의 클래스를 재활용하여 새로운 클래스를 작성한다.상위 클래스를 확장한 하위 클래스들이 상위 클래스의 속성과 기능을 사용할 수 있다.예를들면 차량 클래스를 상속받은 자동차, 오토바이 클래스가 있을 때 시동, 전진과 후진은 차량 클래스의 메서드를 이용하고 창문을 내리는 자동차 고유의 기능은 자동차 클래스가 구현한다.3. 다형성객체의 속성이나 기능이 ..

객체지향 2026.01.04