본문 바로가기

I/O Stream

(4)
[Java] 4. HTTP 웹서버 구현 - HTTP 응답 데이터 처리 2. HTTP 웹서버 구현 - 요청에 대한 응답 처리와 책임 분리에서 클라이언트의 요청 처리하는 객체의 책임을 분리를 다음과 같이 하였다. HTTP 요청 데이터 처리는 3. HTTP 웹 서버 구현 - HTTP 요청 데이터 처리에서 작성하였고, 다음으로 HTTP 응답 데이터를 처리를 담당하는 HttpResponse 객체를 구현할려고한다.HTTP 응답 데이터 생성HTTP 응답 메세지의 데이터를 어떻게 만들것인가?HTTP 응답 메세지는 다음과 같은 포맷이다.  HTTP 응답 메세지는 크게 Status Line, Response Headers, Response Message Body 구조로 분리할수 있으며, 각 구조의 여러 요소들이 존재한다. 그러므로 다음 3가지 구조를 객체로 다루어서 HTTP 응답 데이터를 ..
[Java] 3. HTTP 웹 서버 구현 - HTTP 요청 데이터 처리 2. HTTP 웹서버 구현 - 요청에 대한 응답 처리와 책임 분리에서 클라이언트의 요청 처리하는 객체의 여러 책임에 대한 분리를 다음과 같이 하였다. 이번에는 그중에서 HTTP 요청 데이터를 처리를 담당하는 HttpRequest 객체를 작성할려고한다.  아래의 코드들은 지속적인 리펙토링과 테스트를 통해서 구현된것이다. 모든 과정을 적기에는 글의 내용이 너무나 길어져, 지금까지 가장 잘 정리된 코드를 기재하였다.HTTP 요청 데이터 파싱HTTP 요청 메세지에서 데이터를 어떻게 추출할것인가?HTTP 요청 메세지는 다음과 같은 포맷이다.  HTTP 요청 메세지는 크게 Request Line, Request Headers, Request Message Body 구조로 분리할수 있으며, 각 구조의 여러 요소들이 ..
[Java] 2. HTTP 웹서버 구현 - 요청에 대한 응답 처리와 책임 분리 1. HTTP 웹 서버 구현 - 클라이언트 요청과 처리에서 아주 간단히 클라이언트의 요청이 왔을때, 어떠한 요청인지 해석하지 않고 응답만 주도록 구현해보았다. 이번에는 HTTP 요청을 읽어서 해석하여 응답을 주도록 구현해볼려고한다.클라이언트의 간단한 GET 요청 처리 구현이전에 작성한 클라이언트의 요청을 처리하는 역할을 하는 RequestHandler 클래스에다가, 이어서index.html 리소스에 대한 GET 요청을 수행하도록 구현하였더니 다음과 같은 코드가 작성되었다. 한눈에 봐도 좋지 않은 코드라는 생각이 든다.import org.hello_webserver.webserver;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io..
[Java] 데코레이터 패턴 (Decorator Pattern) 데코레이터 패턴이란?데코레이터 패턴(Decorator Pattern)은 객체의 기존 코드를 수정하지 않고 확장하면서 기능을 동적으로 추가하고 싶을 때 쓰는 디자인 패턴이다. 이 패턴은 상속을 사용하는 대신 객체를 "감싸는" 방식으로, 기존 객체의 기능을 더 유연하게 확장할 수 있다. 프록시 패턴(Proxy Pattern)에서도 프록시 객체에서 실제 객체를 '감싸서' 실제 객체의 접근을 제어하거나 추가적인 기능을 수행한다. 데코레이터 패턴이 쓰이는 대표적인 경우는 입출력 스트림(I/O Stream), 압축, 암호화 등의 기존의 베이스 클래스를 그대로 사용하면서 다양한 기능을 동적으로 추가해야 할 때이다.데코레이터 패턴 예제메서지 기능을 수행하는 기존의 객체를 만들기 위해 필요한 인터페이스와 클래스이다.//..