본문 바로가기

전체 글

(17)
I. 인터페이스 분리 원칙(Interface Segregation Principle) 인터페이스 분리 원칙이란? 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다 라는 원칙이다. 어떠한 인터페이스가 서로 다른 메서드를 사용하는 클라이언트가 사용한다면 좋은 설계가 아니다. 인터페이스의 변화에 따라 모든 클라이언트에 영향을 줄 수 있기 때문에 사용 기능에 따라 인터페이스를 분리하는 것이 내부 의존도를 낮출 수 있고, 구현 클래스가 관심있는 메소드에 대해서만 관심을 가질 수 있다. 인터페이스 분리 원칙이 지켜지지 않은 코드 public enum Duty { PERSONAL_FINANCE("개인 금융 업무"), ENTERPRISE_FINANCE("기업 금융 업무"), PB("Private Banking 업무"); private final String desc; Duty(String..
Servlet Container란 Web Server 웹 서버는 클라이언트로부터 HTTP 요청을 받아들이고, 웹 페이지를 HTTP 프로토콜을 통해 반환하는 역할을 합니다. Servlet Container 웹 서버는 클라이언트는 정적 웹 페이지만 요청을 할 수 있습니다. 서블릿 컨테이너는 Java를 사용하여 서버 측에서 동적으로 웹 페이지를 생성합니다. 사용자 요청에 의해 웹 페이지를 생성하는 것은 서블릿이 담당합니다. 서블릿 컨테이너는 이 서블릿들을 웹 서버와 상호작용을 할 수 있도록 해주는 기능을 담당하고 있습니다. Servlet 서블릿은 init, service, destory의 라이프 사이클을 가지고 있습니다. init() 서블릿이 처음 요청될 때 초기화를 하는 메서드입니다. 초기화된 서블릿은 싱글톤으로 관리됩니다. service(..
Template Method Pattern(템플릿 메서드 패턴) Template Method Pattern 이란? 상속을 통해 기능을 확장하는 디자인 패턴으로 변하지 않는 기능을 슈퍼클래스(대부분 추상클래스)에 만들어두고 확장할 기능을 서브클래스에 구현하는 디자인 패턴이다. 슈퍼클래스는 추상 메소드 또는 오버라이드 가능한 메소드를 통해 기본 알고리즘을 담고 있는 템플릿 메서드를 만든다. 서브 클래스는 템플릿 메서드를 통해 기능을 확장할 수 있다. Template Method Code 슈퍼클래스 public abstract class Beverage { public final void prepareRecipe() { boilWater(); brew(); pourInCup(); addCondiments(); //hook method } private void boilWa..