| 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 |