Purple Bobblehead Bunny

Backend/JSP SERVLET

[Servlet]MVC Pattern

준영어린이 2022. 7. 1. 16:21

 

 

디자인 패턴

소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적 문제가 또 발생 했을 때 재사용할 수 있는 해결책

이미 만들어 진 것을 처음부터 다시 만들 필요가 없다는 의미

패턴은 공통의 언어를 만들어주며, 팀원 사이의 의사 소통을 원활하게 해주는 중요한 역할을 한다.

 

디자인 패턴 종류

생성(Creational) 패턴 구조(Structural) 패턴 행위(Behavioral) 패턴
추상 팩토리(Abstract Factory)
빌더(Builder)
팩토리 메서드(Factory Method)
프로토 타입(Prototype)
싱글톤(Singleton)
어댑터(Adapter)
브리지(Bridge)
컴퍼지트(Composite)
데커레이터(Decorator)
퍼사드(Facade)
플라이웨이트(Flyweight)
프록시(Proxy)
책임 연쇄(Chain of Responsibility)
커맨드(Command)
인터프리터(Interpreter)
미디에이터(Mediator)
메멘토(Memento)
옵저버(Observer)
스테이트(State)
스트레티지(Strategy)
템플릿 메서드(Template Method)
비지터(Visitor)

 

  • 생성(Creational) 패턴
    • 객체 생성에 관련된 패턴
    • 객체의 생성과 조합을 캡슐화 해 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성을 제공한다
  • 구조(Structural) 패턴
    • 클래스나 객체를 조합 해 더 큰 구조를 만드는 채턴
    • 서로 다른 인터페이스를 지닌 2개의 객체를 묶어 단일 인터페이스를 제공하거나 객체들을 서로 묶어 새로운 기능을 제공하는 패턴
  • 행위(Behavioral) 패턴
    • 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴
    • 한 객체가 혼자 수행할 수 없는 작업을 여러 개의 객체로 어떻게 분배하는지, 객체 사이의 결함도를 최소화 하는 것에 중점을 둔다

 싱글톤 패턴

전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴

import dao.memberDAO;

public class memberservice {

		// SingleTon Pattern
        private static memberservice instance = new memberservice();
        private memberservice() {}
        public static memberservice getInstance() {
        	if(instance==null) {
            	instance=new memberservice();
            }
            return instance;
        }
}

 


MVC 패턴

MVC란 Model View Controller의 약자로 어플리케이션을 세 가지의 역할로 구분한 개발 방법론이다.

사용자가 Controller를 조작하면 Controoler는 Model을 통해 데이터를 가져오고, 그 정보를 바탕으로 시각적인 표현을 담당하는 View를 제어해서 사용자에게 전달한다.

 

 

  • Controller
    • 사용자가 접근 한 URL에 따라서 사용자의 요청사항을 파악한 후, 그 요청에 맞는 데이터를 Model에 의뢰하고, 데이터를 View에 반영해서 사용자에게 알려준다.
  • Model
    • 일반적으로 CI의 모델은 데이터베이스 테이블에 대응된다. Topic이라는 테이블은 topic_model이라는 Model을 만든다. 이 관계가 강제적이지 않기 때문에 규칙을 일관성 있게 정의하는 것이 필요하다.
  • View
    • View는 클라이언트 측 기술인 html/css/javascript들을 모아둔 컨테이너이다.

 

WEB과 MVC

 

  • 사용자가 웹사이트에 접속한다. (Uses)
  • Controller는 사용자가 요청한 웹페이지를 서비스 하기 위해서 모델을 호출한다.(Manipulates)
  • 모델은 데이터베이스나 파일과 같은 데이터 소스를 제어한 후에 그 결과를 리턴한다.
  • Controller는 Model이 리턴한 결과를 View에 반영한다. (Updates)
  • 데이터가 반영된 View는 사용자에게 보여진다. (Sees)

MVC2

  • 들어오는 요청을 다루는 서블릿 단이 있고, 이 서블릿 단이 Controller의 역할을 수행한다.
  • Controller는 다음에 어떤 작업이 될지, Model이 어떤 작업을 할 지 결정하고 모든 작업 후 JSP 단어에 어떻게 뿌려질 지를 결정하는 것이다.
  • 서블릿은 요청 결과가 들어있는 Beans를 인스턴스화 한다.
  • 클라이언트의 요청을 Servlet이 받아 Controller 역할을 수행하고 JSP가 View 역할을 수행하고 Response를 처리한다.
  • 어플리케이션이 복잡해도 Controller와 view의 분리로 개발과 유지보수, 확장이 용이하다.
  • 구조 설계를 위한 충분한 시간이 필요하며, 높은 수준의 이해가 필요하다.

 

 

'Backend > JSP SERVLET' 카테고리의 다른 글

[Servlet] 서블릿 이해  (0) 2022.07.04
[JSP] JDBC  (0) 2022.07.02
[JSP] 쿠키, Cookie  (0) 2022.06.30
[JSP] request.getParameter(), getAttribute()  (0) 2022.06.28
[JSP] 세션(Session)  (0) 2022.06.28