- 구현 단계에서는 각 요구사항을 구현하는데 집중한다.
- 구현을 완료한 후 구현 과정에서 새롭게 알게된 내용, 궁금한 내용을 기록한다.
- 각 요구사항을 구현하는 것이 중요한 것이 아니라 구현 과정을 통해 학습한 내용을 인식하는 것이 배움에 중요하다.
requirements-1: http://localhost:8080/index.html로 접속시 응답
- maven to gradle로 변환 후 서버 실행
- gradle .gradle 폴더 차이
- WebServer, RequestHandler 코드 분석
- 새로운 스레드가 생성 될 때마다 포트가 바뀌는 이유는 뭔가요 ?
- 동적 포트를 하는 이유는 뭔가요?
- 웹 서버 접근 시 2번 로그가 찍히는 이유
- localhost:8080 접근 시 index.html 응답하기
- thread에서 InputStream, OutputStream in하고 out의 역할은 무엇인가요?
- ServerSocket이란 무엇인가요?
- Socket 객체는 무엇인가요?
- Socket이 어떻게 서버에 연결 요청을 할 수 있는건가요?
- 왜 연결 할 땐 3-way handshake고 연결 종료 할 때는 4-way handshake 인가요 ?
- class DataOutputStream는 무엇인가요?
- class FilterOutputStream는 무엇인가요?
- interface DataOutput은 무엇인가요?
- 데코레이터 패턴이란?
- 객체 조합이란게 뭔가요?
- Thread의 private static native void registerNatives() 는 무슨 역할을 하나요 ?
- static { registerNatives(); } 블록은 어떤건가요 ?
- Thread하고 Runnable의 차이점
- File 클래스는 어떻게 되어 있나요?
- FileInputStream에서 생성자에서 File을 받아서 뭘 하나요?
- SecurityManager는 무슨 역할을 하나요?
- Socket에서 QueryString 받기
- HTTP Request Header 정보
- HTTP GET Method란 무엇인가요?
- private static Map<String, User> users = Maps.newHashMap()는 어떤식으로 작동이 되는건가요?
- Sec-Fetch-Dest 헤더를 사용하여 요청을 식별하는게 정확한 방법 인가요?
- 클라이언트가 GET으로 웹 서버에 요청 했을 때 어떻게 웹 서버가 요청을 받는거죠 ?
- 왜 프리플라이트는 TCP 핸드 쉐이크를 안하죠 ?
- Connection: keep-alive 연결을 유지한다는게 어떤 개념인가요?
- Socket에서 Body 받기
- GET은 응답헤더를 읽는데 POST는 대기중으로 뜨는 이유는 뭔가요?
- HTTP POST Method란 무엇인가요?
- HTTP Request POST Body를 Web Server에서 받을 때 왜 꼭 Length에 맞게 읽어야하나요?
- HTTP POST는 왜 GET보다 안전하다고 하나요?
- HTTPS가 어떻게 암호화하고 탈취는 어떻게 해서 확인을 한다는건가요 ?
- HTTP 데이터 탈취 예시가 있나요 ?
- HTTP 상태 코드 유래
- Content-Type, Cache-Control, Authorization, Set-Cookie에 대해
- Body 불러온 후 Request 첫번째 줄 NULL 오류
- 어노테이션, 리플랙션 정리
- ServerSocket 접근 시 Client IP, Port
- String, StringBuffer 차이
- HTTP 통신과 소켓 통신의 차이
- Openfeign, RestTemplate 차이
- 자바 스레드 상호 배제 동기화 기법 확인
- 스레드의 start()와 run()
- JUnit5 시작하기
- JUnit5 No matching tests found in any candidate test task. 오류
- JUnit5 assert 사용
- gradle useJUnitPlatform은 무슨 역할을 하나요 ?