Skip to content
/ jwp-was Public
forked from woowacourse/jwp-was

웹 애플리케이션 서버 개발 미션을 위한 저장소

Notifications You must be signed in to change notification settings

yk1028/jwp-was

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

웹 애플리케이션 서버

진행 방법

  • 웹 애플리케이션 서버 요구사항을 파악한다.
  • 요구사항에 대한 구현을 완료한 후 자신의 github 아이디에 해당하는 브랜치에 Pull Request(이하 PR)를 통해 코드 리뷰 요청을 한다.
  • 코드 리뷰 피드백에 대한 개선 작업을 하고 다시 PUSH한다.
  • 모든 피드백을 완료하면 다음 단계를 도전하고 앞의 과정을 반복한다.

우아한테크코스 코드리뷰

1단계 - HTTP 웹 서버 구현

  1. http://localhost:8080/index.html 로 접속했을 때 webapp 디렉토리의 index.html 파일을 읽어 클라이언트에 응답한다.
    • Request Header 출력하기
    • Header의 첫번째 라인에서 요청 URL 추출하기
    • path에 해당하는 파일 읽어서 응답하기
  2. "회원가입" 메뉴를 클릭하면 http://localhost:8080/user/form.html 으로 이동하면서 회원가입할 수 있다. 회원가입한다.
    • "회원가입" 메뉴를 클릭하면 http://localhost:8080/user/form.html 으로 이동한다.
    • 요청 URL에서 접근 경로와 이름=값을 추출
    • 추출한 이름=값을 User 클래스에 담는다.
  3. http://localhost:8080/user/form.html 파일의 form 태그 method를 get에서 post로 수정한 후 회원가입 기능이 정상적으로 동작하도록 구현한다.
    • Post 요청인 경우 Request Body에서 회원가입시 입력한 모든 데이터를 추출해 User 객체를 생성한다.
  4. "회원가입"을 완료하면 /index.html 페이지로 이동한다.
    • "회원가입"을 완료하면 /index.html 페이지로 리다이렉트한다. (302 code 사용)
  5. 지금까지 구현한 소스 코드는 stylesheet 파일을 지원하지 못하고 있다. Stylesheet 파일을 지원하도록 구현하도록 한다.
    • Stylesheet인 경우 응답 헤더의 Content-Type을 text/css로 전송한다. (Accept로 Stylesheet 판단 확장자로 판단)

1단계 리펙터링

  1. HttpRequest 리펙토링
    • Http 요청을 Parsing하는 기능 분리
    • QueryParams 리펙토링
  2. Response 생성 기능 분리
    • Status에 따라 Http Response 만드는 기능 분리
  3. RequestHandler 리펙토링
    • controller 분리
    • ResponseEntity 분리
  4. 다수의 사용자 처리
    • 다수의 사용자 요청에 대해 Queue 에 저장한 후 순차적으로 처리가 가능하도록 해야 한다.

의문사항

  • HTTP response version이 어떻게 결정되는지? request로 온 HTTP버전에 맞춰서 결정되는지 아니면 server에서 정해진 버전으로만 응답하는지?

About

웹 애플리케이션 서버 개발 미션을 위한 저장소

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 50.7%
  • HTML 42.9%
  • CSS 6.2%
  • JavaScript 0.2%