✎NHN Academy | JAVA

NHN Academy - 2024.10.16(Wed)

박순돌 2024. 10. 16. 11:04
StringBuffer StringBuilder
 - 각 메서드별로 Synchronized Keyword가 존재
 - 멀티스레드 환경에서도 동기화를 지원
 - 스레드에 안전한 프로그램이 필요할 때나, 개발 중인 시스템의 부분이 스레드에 안전한지 모를 경우 사용
 - 동기화를 보장 X
 - 스레드에 안전 여부가 전혀 관계 없는 프로그램을 개발할 때 사용

 

public class HttpJob implements Executable {

    private final Socket client;

    private static final String CRLF="\r\n";

 

CRLF : 서로 다른 개행문자를 보낼 때 서버가 혼란이 올 경우를 방지해, 개행문자를 CRLF 라고 그냥 지정해서 사용

 

responseHeader.append(String.format("Content-Length: %d %s%s",responseBody.toString().getBytes(StandardCharsets.UTF_8).length,CRLF,CRLF));

<html><body><h1>안녕하세요!</h1></bo <- 이렇게 잘리는 것을 방지

Content-Length : 중요!

 

bufferedWriter.flush(); // flush() : 버퍼를 비워주면서 클라이언트에게 응답을 한다. == printWriter

 

try(BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(client.getInputStream()));

    BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(client.getOutputStream()));

) { // 구문 이름 편의성때문에 사용

 

Step3 : 작업의 불균형

(이를 보완 - 스레드풀)

Step4 : 작업의 공유 - 채널(스레드를 제어)

 

스레드풀의 동작을 완벽 이해하기

 

Step6

IndexHttpService / InfoHttpService - doGet 구현 O

HttpService - doPost 존재 X, 오류 발생

(이 구성 이해하기)

 

객체 공유 환경 = Context.java + ContextHolder.java

 

메소드별로 기능구현

: context.setAttribute("/index.html", new IndexHttpService());

 

Context = 어플리케이션 내에서 객체들이 구동되는(공유하고 싶은) 환경

 

서블릿

= 동적 웹 페이지를 만들 때 사용되는 자바 기반의 웹 애플리케이션 프로그래밍 기술이다.

= 웹 요청과 응답의 흐름을 간단한 메서드 호출만으로 체계적으로 다룰 수 있게 해준다.

'✎NHN Academy | JAVA' 카테고리의 다른 글

NHN Academy - 2024.10.25(Fri)  (1) 2024.10.25
NHN Academy - 2024.10.24(Thu)  (0) 2024.10.24
NHN Academy - 2024.10.14(Mon)  (3) 2024.10.14
NHN Academy - 2024.10.11(Fri)  (1) 2024.10.14
NHN Academy - 2024.10.10(Thu)  (1) 2024.10.11