전체 글

행복한띠용이의 코딩 블로그입니다.
·Programming/JAVA
Mapper이제 URL 을 통한 요청이 들어올 경우 Method 와 URL 을 사용해 필요한 요청을 각각 수행할 수 있도록 해주어야한다.결국 라우팅을 해주는 객체가 필요하다확장성을 위해 컨트롤러를 한 번 등록하면 이후에 요청이 들어왔을 때 찾을 수 있도록 하고 싶다.모든 컨트롤러들은 인터페이스를 구현해 하나의 메서드를 실행할 수 있게 한다.HttpMapperpublic interface HttpMapper { MyHttpResponse handle(MyHttpRequest httpRequest) throws IOException;}가장 기본이 되는 인터페이스를 하나 생성하자.이전에 만들었던 요청 객체를 파라미터로 받아 handle 메서드 내에서 이를 실행하고 응답 객체를 반환한다.큰 틀을 유지하며 ..
·Programming/JAVA
HTTP RequestHTTP 응답을 처리하기 위해서는 HTTP Request 부터 완벽하게 받아내야한다.(HTTP REQUEST - RFC2616)[https://datatracker.ietf.org/doc/html/rfc2616#section-5]HTTP 를 정의해놓은 공식 문서를 참고해보자. HTTP Request 는 총 3가지로 나눌 수 있다.Request LineRequest-headermessage-bodyPOST /cgi-bin/process.cgi HTTP/1.1User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)Host: www.tutorialspoint.comContent-Type: application/x-www-form-urlenc..
·Programming/JAVA
WAS 를 구현하는 과정에서 정적 파일을 String 으로 읽어 처리했었다. HTML 이나 CSS, SVG 파일같은 경우에는 모두 문자열로 표현할 수 있기 때문에 아무 문제 없었지만 ico 같은 이미지 파일같은 경우에는 바이트 단위로 이루어져있어 String 으로 읽으면 파일이 깨지는 현상이 발생했다. 추가적으로 이미지 파일은 38505 바이트인데, String 으로 받을 경우 70259 바이트가 된다는 점이 이상했다.temp1 은 이미지 파일을 String 으로 읽은 것byteArray 는 이미지를 바이트 단위로 읽은 정상 로드된 경우이다.String 도 결국에는 byte[] 인데 도대체 왜 깨지는 것인지 하나하나 알아보도록 하자!Byte to String 실제 favicon.ico 파일은 PNG 파일..
·Programming/JAVA
개요Spring 없이 웹 서버를 구축하는 과정이다. 이전에는 Socket 을 연결하고 HTTP Request 를 추출해 정적 파일 접근 시 해당 파일을 전달해주었다.하지만 이때, Content-Type 이 text/html 로 고정되어있기 때문에 css 혹은 이미지 파일이 정상적으로 로드되지 않는다.이번에는 다양한 타입의 파일을 전달해주도록 하자!타입 추출가장 먼저 해야할 일은 요청에 따라 타입을 추출하는 것이다."/index.html""/favicon.ico"등의 요청이 주어질 때마다 적절한 Content-Type 을 Request 헤더에 추가해 보내주어야한다.AcceptGET /index.html HTTP/1.1Host: localhost:8080Connection: keep-alivesec-ch-u..
·Algorithm/PS
💡 풀이 과정해당 문제는 점화식을 세울 수 있기에 DP 문제로 볼 수 있다.i + 1 번째를 타일로 채울 수 있는 방법은 위에 삼각형이 있냐 없냐에 따라 또 다르다.삼각형이 있는 경우i 번째 경우의 수 * 삼각형 3개로 이루어진 마름모를 채울 경우의 수i 번째에서 가장 오른쪽 삼각형이 없을 때의 경우의 수 * 삼각형 4개로 이루어진 정삼각형을 채울 경우의 수두 경우가 겹치는 경우는 사이의 작은 삼각형이 정삼각형 타일로 이루어진 경우i 번째에서 가장 오른쪽 삼각형이 없을 때의 경우의 수 * 삼각형 3개로 이루어진 마름모를 채울 경우의 수총 경우의 수를 계산하자면dp[i][0] * 3 + dp[i][1] * 4 - dp[i][1] * 3삼각형이 있는 경우와 없는 경우, 가장 오른쪽 삼각형이 채워진 경우 없..
행복한띠용이
행복한띠용이의 코딩