[Spring] 예제를 통해 프록시(Proxy), 데코레이터(Decorator) 패턴에 대해 알아보기
·
Web
프록시를 알아보기 전 먼저 클라이언트와 서버에 대한 개념을 알아보자. 클라이언트와 서버클라이언트와 서버라고하면 보통 서버 컴퓨터를 생각한다. 사실 클라이언트와 서버의 개념은 상당히 넓게 사용된다. 클라이언트는 의뢰인이라는 뜻이고, 서버는 '서비스나 상품을 제공하는 사람이나 물건' 을 뜻한다.클라이언트: 서버에 필요한 것을 요청서버: 클라이언트의 요청을 처리클라이언트는 일반적으로 서버를 호출하고 직접 결과를 받는다. 이것을 직접 호출이라고 한다.클라이언트가 요청을 서버에 직접하는 것이 아니라 어떤 대리자를 통해서 대신 간접적으로 서버를 요청할 수 있다. 이것을 프록시(Proxy)라고 한다.   프록시(Proxy)여기서 중요한점은 객체에서 프록시가 되려면, 클라이언트는 서버에게 요청한 것인지, 프록시에게 요..
[Spring] 예제를 통해 전략 패턴(Strategy Pattern)에 대해 알아보기
·
Web
개요템플릿 메서드는 상속을 이용한 패턴이다보니 상속에 관한 단점들을 그대로 안고갔다. 이러한 문제를 전략 패턴을 통해 풀어보겠다.템플릿 메서드 패턴을 알고싶다면 여기 를 클릭하면 된다.  전략 패턴(Strategy Pattern)이란?실행 중에 알고리즘을 선택할 수 있게 하는 디자인 패턴이다. 캡슐화한 특정 계열의 알고리즘들을 정의하고 이 알고리즘들을 해당 계열 안에서 상호 교체가 가능하게 만든다. 쉽게 설명하자면 변하지 않는 부분(Context)라는 곳에 두고, 변하는 부분을 Strategy라는 인터페이스를 만들고 해당 인터페이스를 구현하도록 해서 문제를 해결한다. 상속이 아니라 위임으로 문제를 해결하는  것이다.  예제를 통한 전략패턴 알아보기말로 이해하기 어려우므로 예제를 통해 알아보자. Strat..
[Spring] 예제를 통해 템블릿 메서드 패턴에 대해 알아보기
·
Web
개요만약 잘 만들어진 애플리케이션에서 각각의 클래스안에 있는 메서드에 실행시간 등 정형화된 로그를 추가하라는 미션이 주어졌을 때 제일 쉬운 방법은 각 메서드마다 로그를 출력하는 코드를 추가하는 것 일것이다.예) private final OrderServiceV3 orderService; private final LogTrace trace; @GetMapping("/v3/request") public String request(String itemId) { TraceStatus status = null; try { status = trace.begin("OrderController.request()"); // 로그 출력 시작 ..
[Spring Boot] Test 클래스에서 lombok을 사용하고 싶을 때
·
Web
bulid.gradle에 다음과 같은 코드를 dependencies에 추가하면 됩니다.  //테스트에서 lombok 사용 testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok'
서블릿과 멀티쓰레드 이해 및 HTTP API, CSR/SSR 개념 정리
·
Web
[서블릿]A. 서블릿이란?서블릿(Servlet)은 자바 기반의 웹 애플리케이션을 개발하기 위한 기술로, 웹 서버에서 실행되며 클라이언트의 요청을 처리하고 동적인 웹 콘텐츠를 생성한다.HTTP 프로토콜을 지원하며, 클라이언트의 요청에 따라 다양한 응답을 생성할 수 있다.웹 애플리케이션를 직접 구현을 해야한다면?위 사진에 나와있는 목로과 같이 서버 TCP/IP 연결대기 및 소켓을 연결, HTTP 메시지를 모두 파싱해서 읽기 등등 모든것을 구현을 해야한다.서블릿을 사용함으로써 개발자는 비즈니스 로직만 개발하면 된다.   서블릿 특징:플랫폼 독립성: 자바로 작성되어 어떤 운영체제에서도 실행 가능하다.성능 향상: 초기화 후 싱글톤으로 관리되어 반복적인 객체 생성 비용을 절약한다.확장성: 다양한 기능을 추가하여 웹..