์น ์๋น์ค๋ฅผ ๊ฐ๋ฐํ๋ค๋ณด๋ฉด ์์ฃผ WAS ๋ผ๋ ์ฉ์ด๊ฐ ๋ฑ์ฅํ๋๋ฐ์. ์ค๋์ WAS ๋ผ๋ ๊ฐ๋ ์ ๋ํด ์์๋ณด๋ ค๊ณ ํฉ๋๋ค.
WAS ๋ฅผ ์ดํดํ๊ธฐ ์ํด์๋ ์ฐ์ , ์ ์ ์นํ์ด์ง์ ๋์ ์นํ์ด์ง์ ๊ฐ๋ ์ ์ดํดํ ํ์๊ฐ ์์ต๋๋ค.

1. ์ ์ ์นํ์ด์ง (Static Web Page)
- ์๋ฏธ: ์๋ฒ์ ์ ์ฅ๋ HTML ํ์ผ ๊ทธ๋๋ก ๋ธ๋ผ์ฐ์ ์ ์ ๋ฌ๋๋ ํ์ด์ง
- ํน์ง:
- ๋ด์ฉ์ด ๊ณ ์ → ์์ฒญํ ๋๋ง๋ค ๊ฐ์ HTML ์๋ต
- ์๋ฒ๋ ๋จ์ํ ํ์ผ์ ์ ๋ฌ๋ง ํจ (์ถ๊ฐ ์ฐ์ฐ ์์)
- ๋น ๋ฅด๊ณ ๊ฐ๋ณ๋ค
- ์์:
- about.html, contact.html ๊ฐ์ ๋จ์ ์ ๋ณด ํ์ด์ง
- GitHub Pages, S3+CloudFront์์ ๋ฐฐํฌํ๋ ์ ์ ์ฌ์ดํธ
2. ๋์ ์นํ์ด์ง (Dynamic Web Page)
- ์๋ฏธ: ์์ฒญ ์์ ์ ์๋ฒ๊ฐ ํ๋ก๊ทธ๋จ์ ์คํํด์ HTML์ ์์ฑํด ์ ๋ฌํ๋ ํ์ด์ง
- ํน์ง:
- ์์ฒญ๋ง๋ค ๋ค๋ฅธ ๊ฒฐ๊ณผ → ์ฌ์ฉ์/์๊ฐ/์ํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง
- ์๋ฒ๊ฐ DB์ ํต์ ํ๊ฑฐ๋ ๋ก์ง ์คํ ํ ๊ฒฐ๊ณผ๋ฅผ HTML๋ก ๋ณํ
- ์๋์ ์ผ๋ก ๋ฌด๊ฒ์ง๋ง ๊ฐ์ธํ/์ค์๊ฐ ์๋น์ค ๊ฐ๋ฅ
- ์์:
- ๋ก๊ทธ์ธ ํ “OOO๋ ํ์ํฉ๋๋ค” ๋ผ๊ณ ํ์๋๋ ๋์๋ณด๋
- ์ผํ๋ชฐ ์ํ ๋ชฉ๋ก (DB์์ ๋ถ๋ฌ์ ๋์ ์ผ๋ก ์ถ๋ ฅ)
- ๊ฒ์ํ, ๋ธ๋ก๊ทธ ํ๋ซํผ
๋น๊ต ์ ๋ฆฌ
๊ตฌ๋ถ
| ์ ์ ์นํ์ด์ง (Static) | ๋์ ์นํ์ด์ง (Dynamic) | |
| ์์ฑ ๋ฐฉ์ | ๋ฏธ๋ฆฌ ์์ฑ๋ HTML ๊ทธ๋๋ก ์๋ต | ์๋ฒ๊ฐ ์์ฒญ๋ง๋ค HTML ์์ฑ |
| ๋ด์ฉ ๋ณ๊ฒฝ | HTML ํ์ผ ์์ ํ์ | DB/์๋ฒ ๋ก์ง์ ๋ฐ๋ผ ์๋ ๋ณ๊ฒฝ |
| ์๋ฒ ์ญํ | ํ์ผ ์ ๋ฌ์ | ์ฐ์ฐ์ (๋ก์ง ์ํ + DB ์ฐ๋) |
| ์๋ | ๋น ๋ฆ (์บ์ฑ ์ฌ์) | ์๋์ ์ผ๋ก ๋๋ฆผ (์ฐ์ฐ ๋น์ฉ ์์) |
| ์์ | ํ์ฌ ์๊ฐ ํ์ด์ง, ๋ธ๋ก๊ทธ ํ ํ๋ฆฟ | ์ผํ๋ชฐ ์ํ ํ์ด์ง, ๋ง์ดํ์ด์ง |
์ฆ, ์ ์ ํ์ด์ง๋ ์ ์ ์์์ ๋ฐํ์ผ๋ก ํญ์ ๊ฐ์ ๊ฒ์ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง์ด๊ณ , ๋์ ํ์ด์ง๋ ์์ฒญ์๋ง๋ค ๋ก์ง์ ์ํํด์ ์ฌ์ฉ์ ์์ฒญ์ ๊ฑธ๋ง๋ HTML ์ ๋์ ์ผ๋ก ์์ฑํ๋ ํ์ด์ง๋ผ๊ณ ํ ์ ์์ต๋๋ค.
- ์ ์ ํ์ด์ง: ๊ณ ์ ๋ HTML, ๋ณํ์ง ์๋ ์ ๋ณด ์ ๊ณต.
- ๋์ ํ์ด์ง: ์์ฒญ๋ง๋ค ๋ค๋ฅด๊ฒ ์์ฑ, ์ฌ์ฉ์ ๋ง์ถค ์๋น์ค ์ ๊ณต.
ํ๋ SPA ์น ์ํคํ ์ฒ? ์ ์ vs ๋์
- ํ๋ SPA(React, Vue, Angular)๋ ์ ์ HTML + JS๋ฅผ ๋จผ์ ๋ด๋ ค์ฃผ๊ณ ,
JS๊ฐ ์คํ๋๋ฉด์ API๋ฅผ ํธ์ถํด ๋์ ์ผ๋ก ํ๋ฉด์ ์ฑ์๋๋ค. - ์ฆ, ์ ์ + ๋์ ์ ํ์ด๋ธ๋ฆฌ๋ ๊ตฌ์กฐ๋ฅผ ๋ง์ด ์๋๋ค.
- ์:
- /index.html ์์ฒด๋ ์ ์ ์ด์ง๋ง,
- ํ๋ฉด ๋ด์ฉ(ํผ๋, ๋๊ธ, ์๋ฆผ)์ API ํธ์ถ๋ก ๋์ ์ผ๋ก ์ฑ์์ง๋๋ค
์น(WEB)์๋ฒ๋?
ํด๋ผ์ด์ธํธ๋ก๋ถํฐ HTTP ์์ฒญ์ ๋ฐ์ ์ ์ ์ธ HTML, CSS, JS ๊ฐ์ ํ์ผ์ ๋ด๋ ค์ฃผ๋ ์น ์๋ฒ(์: Apache, Nginx)๋ฅผ ๋งํฉ๋๋ค.
WAS(Web application Server)์ ์ ์
๋ฐ๋ฉด, WAS๋ ์ ์ ์น์๋ฒ์ ๋ฌ๋ฆฌ ๋์ ์ธ ์์ฒญ๋ ์ฒ๋ฆฌํ ์ ์๊ณ ๋น์ฆ๋์ค ๋ก์ง์ ์คํํด์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ Application Server ์ ๋๋ค.
WAS๋ ์ ํต์ ์ธ ๋ชจ๋๋ฆฌ์ ์๋ฒ ๊ตฌ์กฐ์์ ๋์จ ๊ฐ๋ ์ธ๋ฐ WAS ๋ฅผ ํ์ฉํ ์ํคํ ์ฒ๋ ํ๋ก ํธ ์น ์๋ฒ + ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ์ ๊ฒฐํฉํ ๊ฐ๋ ์ด๋ผ๊ณ ๋ณผ ์ ์์ต๋๋ค.
- ์น ์๋ฒ๋ ์ ์ ๋ฆฌ์์ค (HTML, CSS, JS)๋ ์๋นํ๊ณ
- WAS ๋ ๋์ ์์ฒญ(๋ก๊ทธ์ธ, DB ์กฐํ ๋ฑ)์ ์ฒ๋ฆฌํฉ๋๋ค.
์๋ฅผ ๋ค์ด Tomcat, WebLogic, JBoss ๊ฐ์ ๊ธฐ์ ์ ์ด ์์ฒด๋ง ๋์๋ HTML, CSS, JS ๊ฐ์ ์ ์ ํ์ผ์ ์๋นํ ์ ์๊ณ , ๋์์ Servlet/JSP ๊ฐ์ ๋์ ์์ฒญ๋ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
WAS ์์์ ํ๋ฆ

1. ์น ๋ธ๋ผ์ฐ์ ๊ฐ HTTP ์์ฒญ์ ๋ ๋ฆฌ๋ฉด ์น ์๋ฒ๋ ์ ์ ํ์ผ์ ๋น ๋ฅด๊ฒ ์๋ตํฉ๋๋ค.
2. ๋์ ์์ฒญ(GET /users, POST /login)์ WAS๋ก ์์ํฉ๋๋ค.
3. WAS๋ ๋ด๋ถ์์ ๋น์ฆ๋์ค ๋ก์ง ์คํ → DB์ ํต์ → HTML/JSON ์๋ต์ ์์ฑํฉ๋๋ค.
4. ์น ์๋ฒ๋ ์ด๋ฅผ ๋ฐํ๋ฐ์ ์น ๋ธ๋ผ์ฐ์ ์๊ฒ ์๋ตํฉ๋๋ค.
๐ FE/BE ๋ถ๋ฆฌ ๊ตฌ์กฐ vs WAS (์ ํต์ /ํตํฉ ๊ตฌ์กฐ) ๋น๊ต
ํ๋์ ์ผ๋ฐ์ ์ธ ์น์ ์ข
์ข
FE์ BE๋ฅผ ์์ ๋
๋ฆฝ๋ ๋ฐฐํฌ ๋จ์๋ก ๋๋ ์ํคํ
์ฒ๋ฅผ ์ทจํฉ๋๋ค.
ํ๋ ์น ์๋น์ค์์ ํํ ์ฌ์ฉํ๋ ๋ฐฉ์์ด๊ณ ๋ค์์ฒ๋ผ FE๋ ํ๋ฉด๊ณผ ๊ด๋ จํ ์ ์ ์์ ๋ฐฐํฌ + BE๋ API ์๋ฒ๋ก ์์ ํ ์ญํ ์ ๋๋๊ณ ๋ณ๋๋ก ๋ฐฐํฌํ๋ ๋ฐฉ์์ธ๋ฐ์.
๊ทธ๋ฌ๋ฉด ํ๋์ ์์๋ BE API ์๋ฒ = WAS ๋ผ๊ณ ๋ณผ ์ ์๋๊ฑด๊ฐ? ๊ถ๊ธ์ฆ์ด ๋ค์์ด์.
์ด์ ๋ํ ์ ์ ์๊ฒฌ์ ์ด๋์ ๋ ์ญํ ์ด ๊ฒน์น๋ ๋ถ๋ถ๋ ์์ง๋ง ์์ ํ ๊ฐ๋ค๊ณ ํ๊ธฐ๋ ์ด๋ ต๋ค๋ ๊ฒ์ ๋๋ค.
- WAS(Web Application Server) ๋ ์๋ ์น ์๋ฒ(Web Server) + ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ์ ํฉ์น ๊ฐ๋ ์ด์์.
- ์์ ์๋ Tomcat, JBoss, WebLogic ๊ฐ์ WAS๊ฐ ์ ์ ๋ฆฌ์์ค ์๋น + ๋์ ํ์ด์ง ์์ฑ + ๋น์ฆ๋์ค ๋ก์ง ์คํ์ ํ๊บผ๋ฒ์ ๋งก์์ด์.
- ๋ฐ๋ผ์ ํ๋ SPA ์ํคํ ์ฒ์์๋ BE๋ “WAS์์ ์ ์ ๋ฆฌ์์ค/SSR ์ญํ ์ ์ ๊ฑฐํ, API ์ ์ฉ ์๋ฒ๋ผ๊ณ ๋ณด๋ ๊ฒ์ด ๋ ์ ํํ ๊ฒ ๊ฐ์ต๋๋ค. ( ํ์ด์ง ์์ฑ์ ์ํด์ฃผ๊ณ ์ค๋ก์ง API๋ง ์๋ตํ๊ธฐ ๋๋ฌธ )
๋ํ, ์ด์ธ์๋ FE/BE ๋ถ๋ฆฌ๊ตฌ์กฐ์ ์ ํต์ ์ธ WAS ๊ฐ์ ํต์ฌ์ ์ธ ์ฐจ์ด์ ์
์ ์ ํ์ผ์ ์ ๊ณตํ๋ ์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ฒ๋ฆฌํ๋ ์๋ฒ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌํ๊ณ
์ ์ ์์ / API ์์ฒญ์ด ๊ฐ๊ฐ ๋ค๋ฅธ ์๋ฒ๋ก ์์ฒญ์ด ๊ฐ๊ฒ๋ ํ๋๊ฐ vs ๋ชจ๋ ์์ฒญ์ ํ๋์ entry point ์๋ฒ๋ก ๋ณด๋ด๊ณ , ๊ฑฐ๊ธฐ์ ์ ์ /๋์ ๋ฆฌ์์ค๋ฅผ ๊ตฌ๋ถํด์ ์ ์ ๋ฆฌ์์ค๋ ๋ฐ๋ก ์ ๊ณตํ๊ณ , ๋์ ์์ฒญ์ WAS ๋ก ๋ณด๋ด์ด ์ฒ๋ฆฌํ๋๊ฐ ๋ผ๊ณ ์ดํดํ์ต๋๋ค.
์ด๋ป๊ฒ ๋ณด๋ฉด WAS ๊ตฌ์กฐ๋ ํญ์ ๋ชจ๋ ์์ฒญ์ด ์น ์๋ฒ๋ฅผ ๊ฑฐ์ณ๊ฐ์ผํ๋ ๋ฐ๋ก BE ๋ก ๋์ ์์ฒญ์ ๋ณด๋ผ ์ ์๋ ๊ตฌ์กฐ์ ๋นํด ๋ ๋นํจ์จ์ ์ธ๊ฑฐ ์๋๊ฐ? ํ๋ ์๊ฐ์ ํ๊ฒ ๋์์ต๋๋ค. ์ด๊ฒ ๋์ ์์ฒญ์ธ ๊ฒ์ ํ๋จํ ์ ๋ง ์๋ค๋ฉด ์ ์ด๋ถํฐ BE ์๋ฒ์ API ์์ฒญ์ ๋ฐ๋ก ๋ ๋ฆด ์ ์์ผ๋ฉด ๋ ํจ์จ์ ์ด๊ธฐ์ ์ด๊ฒ ํ๋์ ์์ FE/BE๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ฐฐํฌํ๋ ์ด์ ๊ฐ ์๋๊น ์๊ฐํด๋ณด๊ฒ ๋์์ต๋๋ค.
| FE/BE ๋ถ๋ฆฌ ๊ตฌ์กฐ | WAS (์ ํต์ /ํตํฉ ๊ตฌ์กฐ) | |
| FE ์ญํ | ์ ์ ๋น๋ ๊ฒฐ๊ณผ๋ฌผ๋ง ์ ๊ณต (CDN/์ ์ ์๋ฒ) | ์๋ฒ์์ HTML๊น์ง ์์ฑํด์ ์ ๊ณต |
| BE ์ญํ | API ์ ์ฉ ์๋ฒ (JSON, GraphQL) | API + HTML + ์ ์ ๋ฆฌ์์ค ๋ชจ๋ ์ฒ๋ฆฌ |
| ์ฅ์ | ํ์ฅ์ฑ, ๋ฐฐํฌ ๋ ๋ฆฝ, ํ๋ก ํธ-๋ฐฑ ๋ถ์ ๋ช ํ | ๊ฐ๋จํ ๋ฐฐํฌ, ํ ์๋ฒ์์ ์๊ฒฐ |
| ๋จ์ | ์ธํ๋ผ ๋ณต์ก, CORS ๋ฌธ์ ๊ณ ๋ ค | ์๋ฒ ๋ถํ ์ง์ค, ํ์ฅ์ฑ ๋จ์ด์ง |
| ์์ | React + Nginx + Express | JSP+Tomcat, Spring Boot, Node.js EJS |
- FE/BE ๋ถ๋ฆฌ ๊ตฌ์กฐ: FE๋ CDN์ ์ฌ๋ ค๋๊ณ , BE๋ API๋ง ์ ๊ณต → ํ๋ SPA ๊ตฌ์กฐ
- WAS ๊ตฌ์กฐ: ํ ์๋ฒ๊ฐ ์ ์ ํ์ผ + API + HTML ๋ชจ๋ ๋ด๋น → ์ ํต์ ๋ชจ๋๋ฆฌ์ ๊ตฌ์กฐ
์น ์๋น์ค ๊ตฌ์กฐ - WEB ์๋ฒ์ WAS ์ ๋ถ๋ฆฌ
์๊ฐํด๋ณด๋ฉด ๋จ์ํ WAS ์์ ์ ์ ์์์ ์ ๊ณตํ๋ ์ญํ ์ ๊ฐ์ด ์ํํด๋ ๋ ํ ๋ฐ, ์ ๊ตณ์ด ์น์๋ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ์๋ฒ๋ฅผ ๋ถ๋ฆฌํ์๊น์?

WAS๊ฐ ๋๋ฌด ๋ง์ ์ญํ ์ ๋ด๋นํ๊ธฐ ๋๋ฌธ์ ์๋ฒ ๊ณผ๋ถํ ์ํ์ด ์์ ์ ์๊ณ ๊ฐ์ฅ ๋น์ผ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ด ์ ์ ๋ฆฌ์์ค ๋๋ฌธ์ ์ํ์ด ์ด๋ ค์ธ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ง์ฝ WAS์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ค๋ฉด ์ ์ ๋ฆฌ์์ค๋ฅผ ์ ๋ฌํ ์ ์๊ธฐ ๋๋ฌธ์ ์ค๋ฅ ํ๋ฉด๋ ๋ ธ์ถ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๋จ์ ์ด ์์ต๋๋ค.
๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ด, Web Server ์ WAS ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ๋ถ๋ฆฌํ๊ฒ ๋ฉ๋๋ค.

Web ์๋ฒ๋ ์ ์ ์ธ ๋ฆฌ์์ค๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง๊ฐ์ ๋์ ์ธ ์ฒ๋ฆฌ๊ฐ ํ์ํ๋ฉด WAS์ ์์ฒญ์ ํฉ๋๋ค.
WAS๋ ์ค์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ ๋ดํ์ฌ ์ฒ๋ฆฌํฉ๋๋ค.
์ด๋ ๊ฒ Web๊ณผ WAS๋ฅผ ๋ถ๋ฆฌํ๋ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ์ ์ป์ ์ ์์ต๋๋ค.
- WAS์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ Web ์๋ฒ๊ฐ ์ค๋ฅํ๋ฉด HTML์ ์ ๊ณต ๊ฐ๋ฅ => ์ ์ ๋ฆฌ์์ค๋ง์ ์ ๊ณตํ๋ Web์๋ฒ๋ ์ ์ฃฝ์ง ์์ง๋ง ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์ํํ๋ WAS ์๋ฒ๋ ์ ์ฃฝ์.
- ํจ์จ์ ์ธ ๋ฆฌ์์ค ํ์ฅ => ๊ฐ๊ฐ, ์์์ ๋ฐ๋ผ ์ํ ํ์ฅ(Load Balancing) ๊ฐ๋ฅ
- ์ ์ ํธ๋ํฝ ๊ธ์ฆ ์ → Web ์๋ฒ๋ง ํ์ฅ
- ๋์ ์์ฒญ ๊ธ์ฆ ์ → WAS ์ธ์คํด์ค๋ง ํ์ฅ
๋ํ, ์ ์ ๋ฆฌ์์ค ์๋น์ ๋น ๋ฅธ I/O, ์บ์ฑ, SSL ์ฒ๋ฆฌ ์ต์ ํ ์ฒ๋ฆฌ๊ฐ ๋ ์น ์๋ฒ(Nginx, Apache)๊ฐ ๋ ํจ์จ์ ์ผ๋ก ์ฒ๋ฆฌํ ์ ์๊ธฐ๋ ํฉ๋๋ค.
๊ทธ๋์ ๋๊ท๋ชจ ์๋น์ค์์๋ WAS๋ฅผ ์ ์ ์์ ์๋น์ ์ฐ์ง ์๊ณ , ์ค๋ก์ง ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ(๋น์ฆ๋์ค ๋ก์ง ์ฒ๋ฆฌ, DB ์ฐ๋)์ผ๋ก๋ง ์ฌ์ฉํฉ๋๋ค.
์ด๋๋ Web ↔ WAS๋ฅผ ๋ถ๋ฆฌํด์
- Web ์๋ฒ: ์ ์ ํ์ผ ์ ๊ณต, ๋ฆฌ๋ฒ์ค ํ๋ก์
- WAS: API, ๋์ ์ฒ๋ฆฌ ์ ๋ด
์ ์ ๋ฆฌ์์ค๋ Web ์๋ฒ์ ์์ํ๊ณ , WAS๋ ์ฌ์ค์ ๋์ ๋ก์ง ์ ์ฉ์ผ๋ก ์ด์ํฉ๋๋ค.
๊ทธ๋์ “WAS = ์ ํ๋ฆฌ์ผ์ด์ ์คํ ํ๊ฒฝ”์ด๋ผ๊ณ ์ดํดํ๋ ๊ฒ ๋ ํ์ค์ ์ธ ์ดํด ๊ฐ์ต๋๋ค.
๋ํ, ๊ณผ๊ฑฐ์ WAS ๋ Tomcat ๊ฐ์ ๊ธฐ์ ์ผ๋ก ์นํ์ด์ง๋ฅผ ์์ฑํด์ฃผ๋ ์ญํ ๊น์ง ์ ๊ณตํ์ง๋ง,
์ค๋ฌด/ํ๋์ ์ธ ๊ด์ ์์๋ SPA ๊ฐ ๋ง์ด ๋ฐ์ ํ๋ฉด์ WAS ์ญํ ์ด ๋ง์ด ์ถ์๋๊ณ , SSR ์ ์ ์ธํ๊ณ API ๋ฅผ JSON ํํ๋ก ์๋ตํด์ฃผ๋ WAS ๊ตฌ์กฐ๊ฐ ์๋ฆฌ์ก๊ฒ ๋ฉ๋๋ค.
WAS ์์์ ํด๋๊ตฌ์กฐ
WAS์์ SPA๋ฅผ ๋ง๋ ๋ค๊ณ ํ์ ๋ ํด๋ ๊ตฌ์กฐ๊ฐ ์ด๋ป๊ฒ ๊ตฌ์ฑํ๋ฉด ์ข์๊น์?
์ฐ์ 1. ์ ์ ํ์ผ์ ์ ๊ณตํด์ค ์๋ฒ 2. ๋์ API ๋ฅผ ์ ๊ณตํด์ค ์๋ฒ๊ฐ ํ์ํฉ๋๋ค.
๊ทธ๋์ ํ๋ก ํธ์๋ ๋น๋ ๊ฒฐ๊ณผ๋ฌผ(dist)์ด WAS ์์ ๋ค์ด๊ฐ๊ณ , ์ด๋ฅผ ์๋ฒ ์ฝ๋์ ํจ๊ป ๋ฐฐํฌํด์ผ ํฉ๋๋ค.
๋ค์์ ์์ WAS + SPA ํด๋ ๊ตฌ์กฐ์ ๋๋ค.
project-root/
โโ backend/ # ์๋ฒ ์์ค์ฝ๋ (Java, Node.js ๋ฑ)
โ
โโ frontend/ # SPA ์์ค (React, Vue, Angular ๋ฑ)
โ โโ src/ # FE ์ปดํฌ๋ํธ, ๋ผ์ฐํฐ
โ โโ public/ # index.html (๊ฐ๋ฐ์ฉ)
โ
โโ build/ or dist/ # FE ๋น๋ ์ฐ์ถ๋ฌผ (index.html, bundle.js, css ๋ฑ)
โ โโ index.html
โ โโ assets/
โ โ โโ bundle.js
โ โ โโ style.css
โ โ โโ images/
โ
โโ static/ or public/ # WAS๊ฐ ์ ์ ํ์ผ ์๋นํ๋ ํด๋
โ โโ (๋น๋ ์ฐ์ถ๋ฌผ์ด ๋ณต์ฌ๋จ)
โ
โโ app.js # WAS ์คํ ์ํธ๋ฆฌํฌ์ธํธ ( ์ ์ ์น ์๋น + ๋์ ์์ฒญ ๋ฆฌ๋ค์ด๋ ํธ )
๋์ ๋ฐฉ์
- ์ฌ์ฉ์๊ฐ ๋ธ๋ผ์ฐ์ ์์ / ๋๋ /index ์ ์
→ WAS๊ฐ static/index.html (๋น๋๋ SPA entry point)์ ์๋ต - ๋ธ๋ผ์ฐ์ ๊ฐ ๋ก๋๋ index.html ์์์ JS ๋ฒ๋ค(bundle.js) ์คํ
→ SPA ๋ผ์ฐํฐ๊ฐ /register, /login, /mypage ๊ฐ์ ํด๋ผ์ด์ธํธ ๋ผ์ฐํ ์ฒ๋ฆฌ - ๋ง์ฝ ๋ฐ์ดํฐ ์์ฒญ ํ์ → WAS์ /api/** ์๋ํฌ์ธํธ ํธ์ถ (JSON ์๋ต)
Ref
Web๊ณผ WAS๋ ? ์น ์๋น์ค์ ๊ตฌ์กฐ์ ๋ํด ์์๋ณด์
Web Server (์น ์๋ฒ)์น ์๋ฒ๋, HTTP ํ๋กํ ์ฝ์ ๊ธฐ๋ฐ์ผ๋ก ๋์ํ๋ ์๋ฒ๋ก,๋์ํ๋ ๋ฐฉ์์ ํด๋ผ์ด์ธํธ๊ฐ ์น ์๋ฒ์ HTTP ์์ฒญ์ ๋ณด๋ด๋ฉด ์น ์๋ฒ๋ HTTP๋ก ์๋ตํ์ฌ ์ ์ ๋ฆฌ์์ค๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ
hstory0208.tistory.com
https://helloworld-88.tistory.com/71
[๊ธฐ๋ณธ] WEB ๊ณผ WAS ์ฐจ์ด
WEB, WAS ๋? โ ์น์๋ฒ(WEB)๋? ์น์๋ฒ๋ ๋ง๊ทธ๋๋ ์์ฑ๋ htmlํ์ด์ง ๋ฑ์ ๋คํธ์ํฌ๋ง์ ์ข ์๋์ง ์๊ณ , ์น์๋น์ค๋ฅผ ํ ์ ์๋๋ก ์ดํ๋ฆฌ์ผ์ด์ - ์น ์๋ฒ(์ํํธ์จ์ด): ์น ๋ธ๋ผ์ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถ
helloworld-88.tistory.com
'๐ WEB' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์น ์ฌ์ดํธ ์ต์ ํ ๋ฐฉ๋ฒ (0) | 2026.01.19 |
|---|---|
| HTTP Multipart/form-data ์ง์ ํ์ ๋ง๋ค๋ฉฐ ์๋ฆฌ ์ดํดํ๊ธฐ (0) | 2025.10.01 |
| Node.js๋ก ๊ณ ์ฑ๋ฅ ์น์๋ฒ ๋ง๋ค๊ธฐ: Cluster์ Worker Threads (0) | 2025.09.28 |
| HTTP ํจํท ๋ถ์ํ๊ธฐ (0) | 2025.09.18 |
| HTTP ํจํท ๊ตฌ์กฐ, ์์ฒญ ํค๋/๋ฐ๋ (0) | 2025.09.17 |