- μ΄ νλ‘μ νΈλ 'μλ° μΉ νλ‘κ·Έλλ° Next Step'μ νμ΅νκΈ° μν Repositoryμ΄λ€.
- μ΄ μ± μ μ μμΈ λ°μ¬μ±λμκ² κ°μ¬μ λ§μμ λλ¦¬κ³ μΆλ€.
μꡬμ¬ν 1 - http://localhost:8080/index.htmlλ‘ μ μμ μλ΅
- InputStream - InputStreamReader - BufferedReader.
- BufferedReaderμ charsetμ μ€μ νλ€.
- readLine() μ ν΄λΉ νμ λ°μ΄ν°λ₯Ό 보μ¬μ£Όλ κ²μ νμΈνλ€.
- μ κ·ννμ "?" λ¬Όμν ꡬλΆμ .*[\?].*λ‘ νλ©΄ λλ€.
- λ¬Έμμ΄ λΉκ΅ μμλ .equalsλ₯Ό μ¬μ©νλ€.
- HTTP 302 μλ΅μ ν΅ν΄ Redirectλ₯Ό μ¬μ©ν μ μλ€.
- https://github.com/slipp/web-application-server νλ‘μ νΈλ₯Ό μμ μ κ³μ μΌλ‘ Forkνλ€. Github μ°μΈ‘ μλ¨μ Fork λ²νΌμ ν΄λ¦νλ©΄ μμ μ κ³μ μΌλ‘ Forkλλ€.
- Forkν νλ‘μ νΈλ₯Ό eclipse λλ ν°λ―Έλμμ clone νλ€.
- Forkν νλ‘μ νΈλ₯Ό eclipseλ‘ importν νμ Maven λΉλ λꡬλ₯Ό νμ©ν΄ eclipse νλ‘μ νΈλ‘ λ³ννλ€.(mvn eclipse:clean eclipse:eclipse)
- λΉλκ° μ±κ³΅νλ©΄ λ°λμ refresh(fn + f5)λ₯Ό μ€νν΄μΌ νλ€.
- webserver.WebServer λ μ¬μ©μμ μμ²μ λ°μ RequestHandlerμ μμ μ μμνλ ν΄λμ€μ΄λ€.
- μ¬μ©μ μμ²μ λν λͺ¨λ μ²λ¦¬λ RequestHandler ν΄λμ€μ run() λ©μλκ° λ΄λΉνλ€.
- WebServerλ₯Ό μ€νν ν λΈλΌμ°μ μμ http://localhost:8080μΌλ‘ μ μν΄ "Hello World" λ©μμ§κ° μΆλ ₯λλμ§ νμΈνλ€.
- ꡬν λ¨κ³μμλ κ° μꡬμ¬νμ ꡬννλλ° μ§μ€νλ€.
- ꡬνμ μλ£ν ν ꡬν κ³Όμ μμ μλ‘κ² μκ²λ λ΄μ©, κΆκΈν λ΄μ©μ κΈ°λ‘νλ€.
- κ° μꡬμ¬νμ ꡬννλ κ²μ΄ μ€μν κ²μ΄ μλλΌ κ΅¬ν κ³Όμ μ ν΅ν΄ νμ΅ν λ΄μ©μ μΈμνλ κ²μ΄ λ°°μμ μ€μνλ€.