본문 바로가기

개발 패턴

(5)
[개발패턴] <Factory> Singleton과의 차이 Factory 목적 ◎ 객체 생성을 캡슐화한다. ◎ 클라이언트 코드로부터 객체 생성 로직을 분리하는 것이 주된 목적이다. 특징 ◎ 클라이언트 코드는 객체를 직접 생성하는 대신에 팩토리에게 객체 생성을 요청하고, 팩토리는 요청에 맞는 객체를 반환한다. ◎ 객체 생성 로직을 숨기기 때문에 클라이언트 코드는 객체의 구체적인 클래스에 대한 지식이 없어도 된다. ◎ 인터페이스를 사용하여 여러 종류의 객체를 생성할 수 있다. 예제 코드 // 인터페이스: 생성될 객체의 공통 동작을 정의합니다. public interface Shape { void draw(); } // 구체적인 클래스: 인터페이스를 구현하여 도형을 그리는 방법을 정의합니다. public class Circle implements Shape { @Ov..
[개발패턴] <MVC2> Servlet의 .doGet, .doPost, .doAction은 누가하는가 문제 doAction() 메서드가 static이 아니다. 즉, 객체가 실행 중이다. 하지만 객체화를 한 적이 없다. 그럼 new FrontCoroller()를 누가 하는가 톰캣 웹서버 서블릿 컨테이너 서블릿 .java 서블릿 파일 not POJO 컨테이너 객체화를 해주는 주체이다. 객체를 생성하는 주체이다. new를 수행하는 주체이다. 서블릿 컨테이너는 신호를(설정을) 받으면 해당 서블릿을 new 해주기로 약속되어있다. 이 신호(설정)이 @WevServlet("*.do")이다. @(컨테이너)으로 new를 수행하면 좋은 이유 싱글톤 패턴을 유지시켜준다. 전체 프로그램에 해당 객체가 단 1개 존재하는 것이다. 현재 우리가 직접 new 한 거들은 싱글톤 패턴이 전혀 지켜지지 않는다. 컨테이너를 활용하면, 기존..
[개발패턴] <MVC2> Web MVC2 PATTERN NO Spring M DTO > 테이블 DAO 인자를 DTO boolean DTO AL 결합도를 낮추기 위함 V 사용자 편의성 UI/UX 유효성 검사 안내 웹 접근성 표준 지침 C MVC1에서는 controller.jsp에서 action 파라미터를 받아서 if 분기처리하여 코드를 작성한다. 문제점 1) 하나의 기능을 수정한다 해도, 전체 프로그램이 동작하지 않는다. 응집도가 낮아서 문제인 상황이다. 기능별로 묶어놔야 하는 상황이다. 2).jsp는 V를 의미함 C는 JAVA 코드를 사용한다. .java 페이지를 활용하는 것이 바람직하다. 대안 MVC2 사용 controller.jsp를 controller.java로 변경한다. 각각의 if문 내부의 기능들을 클래스화(모듈화, 컴포넌트화) 응집도가 높아짐 == 유지보수가 용이해..
[개발패턴] <MVC1> 웹 MVC1 PATTERN NO SPRING 흐름 시작은 client가 아닌 index.jsp 응답 리다이렉트 새로은 요청 request 유지 x 포워드 request 유지o 데이터를 가진 상태로 VIEW 이동을 원한다면 사용
[개발 패턴] <MVC> 기초 MVC 개발 패턴이란 MVC란 Model View Controller의 약자이다. MVC는 서비스하는 방식에 대한 하나의 아이디어 디자인 패턴이다. 이미지로 보기 패턴 특징 개발 파트가 Model, View, Controller로 나뉘어 있다. 한 프로그램에서 Model, View, Controller의 객체는 1개씩만 사용한다.(싱글톤 패턴) 파트별 특징 Model(DAO) 데이터와 관련된 로직을 처리하는 부분이다. 항상 정확한 값을 받았다라고 가정하고 데이터 처리한다. 출력 처리가 일절 존재하지 않는다. // 사용자와는 전혀 상호작용을 하지 않기 때문에 // 출력이 단 한개도 없다 public class CalcModel { public int plus(int num1, int num2) { retu..