์ต์คํ๋ ์ค ๊ตฌ์กฐ ์ดํดํ๊ธฐ
์ต์คํ๋ ์ค๋ ์ฝ๋๊ฐ ์ฌ๋ฌ ๊ฐ์ ํ์ผ๋ก ๋ถ์ฐ๋์ด ์๋ค. ๊ฐ ๋ถ๋ถ๋ง๋ค ๋งก์ ์ญํ ์ด ๋๋์ด์ ธ ์์ด ๋ณด๊ธฐ์๋ ์ข๊ณ , ๊ด๋ฆฌํ๊ธฐ๋ ์ข๋ค.
1. bin/www
bin/www ํ์ผ์ http ๋ชจ๋์ express ๋ชจ๋์ ์ฐ๊ฒฐํ๊ณ , ํฌํธ๋ฅผ ์ง์ ํ๋ ๋ถ๋ถ์ด๋ค. ํฌํํ๊ฒ๋ www ํ์ผ์๋ js ํ์ฅ์๊ฐ ๋ถ์ด์์ง ์๋ค. ๋ํ #!/usr/bin/env node ๋ผ๋ ์ฃผ์์ด ์ฒซ ์ค์ ๋ฌ๋ ค ์๋ค. www ํ์ผ์ ์ฝ์ ๋ช ๋ น์ด๋ก ๋ง๋ค ์ ์๋๋ฐ, ์ด๋ ์ด ์ฃผ์์ด ์ฌ์ฉ๋๋ค. ์ ์ญ ์ค์น ํ rimraf์ ๊ฐ์ด ๋ช ๋ น์ด๋ก๋ ์คํํ ์ ์๋ ๊ฒ์ด๋ค.
- ๋จผ์ app. debug, http ๋ชจ๋๋ค์ ๊ฐ์ ธ์จ๋ค.
- debug ๋ชจ๋์ ์ฝ์์ ๋ก๊ทธ๋ฅผ ๋จ๊ธฐ๋ ๋ชจ๋์ด๋ค.
- app.set('port', port)๋ก ์๋ฒ๊ฐ ์คํ๋ ํฌํธ๋ฅผ ์ค์ ํ๋ค. process.env ๊ฐ์ฒด์ PORT ์์ฑ์ด ์๋ค๋ฉด ๊ทธ ๊ฐ์ ์ฌ์ฉํ๊ณ ์๋ค๋ฉด ๊ธฐ๋ณธ๊ฐ์ผ๋ก 3000๋ฒ ํฌํธ๋ฅผ ์ด์ฉํ๋๋ก ๋์ด ์๋ค.
- ์ด๋ ๊ฒ app.set(ํค, ๊ฐ)์ ์ฌ์ฉํด์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ๋์ค์ ๋ฐ์ดํฐ๋ฅผ app.get(ํค)๋ก ๊ฐ์ ธ์ฌ ์ ์๋ค.
- http.createServer์ ๋ถ๋ฌ์จ app ๋ชจ๋์ ๋ฃ์ด์ค๋ค. app ๋ชจ๋์ด createServer ๋ฉ์๋์ ์ฝ๋ฐฑ ํจ์ ์ญํ ์ ํ๋ค.
- listen์ ํ๋ ๋ถ๋ถ์ http ์น ์๋ฒ์ ๋์ผํ๋ค. ์ต์คํ๋ ์ค๋ ๊ทธ์ ์ฝ๋ฐฑ ํจ์ ๋ถ๋ถ์ ์กฐ๊ธ ๋ค๋ฅด๊ฒ ๋ง๋ ๊ฒ์ด๋ค.
2. app ๋ชจ๋
- express ํจํค์ง๋ฅผ ํธ์ถํ์ฌ app ๋ณ์ ๊ฐ์ฒด๋ฅผ ๋ง๋ค์๋ค. ์ด์ ์ด ๋ณ์์ ๊ฐ์ข ๊ธฐ๋ฅ์ ์ฐ๊ฒฐํ๋ค.
- app.set ๋ฉ์๋๋ก ์ต์คํ๋ ์ค ์ฑ์ ์ค์ ํ ์ ์๋ค.
- ์ค๊ฐ ๋ถ๋ถ์ app.user๋ก ์์ํ๋ ์ฝ๋๊ฐ ๋ง์๋ฐ, ๋ฏธ๋ค์จ์ด๋ฅผ ์ฐ๊ฒฐํ๋ ๋ถ๋ถ์ด๋ค.
- ๋ง์ง๋ง์๋ app ๊ฐ์ฒด๋ฅผ ๋ชจ๋๋ก ๋ง๋ค์๋ค. ์ด๊ฒ์ด bin/www์์ ์ฌ์ฉ๋ app ๋ชจ๋์ด๋ค.
๊ตฌ์กฐ๋ฅผ ๊ทธ๋ฆผ์ผ๋ก ํํํ๋ฉด ์๋์ ๊ฐ๋ค.