๐ป ์น ์ํคํ ์ฒ์์ ๊ฐ ํค์๋๊ฐ ์๋ฏธํ๋ ๋ฐ๋ ๋ฌด์์ผ๊น?
๋ธ๋ผ์ฐ์ ์ ์ญํ ์ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์ฝ๋๊ฐ ์ปดํจํฐ๊ฐ ์ดํดํ ์ ์๋๋ก ํด์ฃผ๋ ์ญํ ์ด๋ค. ์ฐ๋ฆฌ๊ฐ HTML
, CSS
, JavaScript
๋ก ์์ฑํ ์ฝ๋๋ฅผ ์ปดํจํฐ์์ ๋ณผ ์ ์๋ ์ด์ ๋ ๋ฐ๋ก ๋ธ๋ผ์ฐ์ ๋๋ถ์ด๋ค.
๋ธ๋ผ์ฐ์ ์ ์ฃผ์ ๊ธฐ๋ฅ์ ์ฌ์ฉ์๊ฐ ์ ํํ ์์์ ์๋ฒ์ ์์ฒญํ๊ณ ๋ธ๋ผ์ฐ์ ์ ํ์ํ๋ ๊ฒ์ด๋ค. ์์์ ์ฃผ์๋ URI(Uniform Resource Identifier)
์ ์ํด ์ ํด์ง๋ค. ๋ธ๋ผ์ฐ์ ๋ HTML
๊ณผ CSS
๋ช
์ธ์ ๋ฐ๋ผ HTML
ํ์ผ์ ํด์ํด์ ํ์ํ๋๋ฐ ์ด ๋ช
์ธ๋ ์น ํ์คํ ๊ธฐ๊ตฌ์ธ W3C(World Wide Web Consortium)
์์ ์ ํ๋ค.
๋ธ๋ผ์ฐ์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์๋ก ๋ฎ์ ์๋๋ฐ ๋ค์๊ณผ ๊ฐ์ ์์๋ค์ด ์ผ๋ฐ์ ์ด๋ค.
URI
๋ฅผ ์
๋ ฅํ ์ ์๋ ์ฃผ์ ํ์ ์ค๋ธ๋ผ์ฐ์ ์ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ํ์ค ๋ช
์ธ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ ๋
๊ฐ ์๋ก์ ์ฅ์ ์ ๋ชจ๋ฐฉํ๋ฉด์ ํ์ฌ์ ์ด๋ฅด๊ฒ ๋์๋ค. HTML5
๋ช
์ธ๋ ์ฃผ์ ํ์์ค, ์ํ ํ์์ค, ๋๊ตฌ ๋ชจ์๊ณผ ๊ฐ์ ์ผ๋ฐ์ ์ธ ์์๋ฅผ ์ ์ธํ๊ณ ๋ธ๋ผ์ฐ์ ์ ํ์ UI
๋ฅผ ์ ์ํ์ง ์์๋ค.
HTML
์ ์์ฒญํ๋ฉด HTML
๊ณผ CSS
๋ฅผ ํ์ฑํ์ฌ ํ๋ฉด์ ํ์ํจ.HTTP
์์ฒญ๊ณผ ๊ฐ์ ๋คํธ์ํฌ ํธ์ถ์ ์ฌ์ฉ๋จ. ์ด๊ฒ์ ํ๋ซํผ ๋
๋ฆฝ์ ์ธ ์ธํฐํ์ด์ค์ด๊ณ ๊ฐ ํ๋ซํผ ํ๋ถ์์ ์คํ๋จ.HTML5
๋ช
์ธ์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ง์ํ๋ '์น ๋ฐ์ดํฐ ๋ฒ ์ด์ค'๊ฐ ์ ์๋์ด ์๋ค.์๋ฒ๋ ํ๋ง๋๋ก ์ ๋ฆฌํ๋ฉด ์์์ serve
ํ๋ ์ฃผ์ฒด์ด๋ค. ์ฌ๊ธฐ์ ๋งํ๊ณ ์ ํ๋ ์๋ฒ๋ ์น ์๋น์ค์์์ HTTP
์น ์๋ฒ์ด๋ค. WEB Server
๋ ํ๋์จ์ด, ์ํํธ์จ์ด ํน์ ๋ ๊ฐ ๋ชจ๋๋ฅผ ์๋ฏธํ ์ ์๋ค.
ํ๋์จ์ด ์ธก๋ฉด์์, web server
๋ website
์ ์ปดํฌ๋ํธ ํ์ผ๋ค(HTML
๋ฌธ์, images
, CSS stylesheets
, JavaScript files
)์ ์ ์ฅํ๋ ์ปดํจํฐ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ์ด ํ์ผ๋ค์ ์ต์ข
์ฌ์ฉ์์ ๋๋ฐ์ด์ค์ ์ ๋ฌํ๋ค. web server
๋ ์ธํฐ๋ท์ ์ฐ๊ฒฐ๋์ด ์๊ณ , velog.io/@heeseok
์ ๊ฐ์ domain name
์ ํตํด ์ ์ํ ์ ์๋ค.
์ํํธ์จ์ด ์ธก๋ฉด์์, web server
๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์น ์ฌ์ฉ์๊ฐ ์ด๋ป๊ฒ ํธ์คํธ ํ์ผ๋ค์ ์ ๊ทผํ๋์ง๋ฅผ ๊ด๋ฆฌํ๋ค. web server
๋ฅผ HTTP
์๋ฒ๋ก ๊ตญํํด์ ์๊ฐํด๋ณด๋ฉด HTTP
์๋ฒ๋ URL(Web addresses)
๊ณผ HTTP
(๋ธ๋ผ์ฐ์ ๊ฐ ์น ํ์ด์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ธฐ ์ํด ์ฌ์ฉํ๋ ํ๋กํ ์ฝ)๋ฅผ ์ดํดํ๋ ์ํํธ์จ์ด์ด๋ค.
๋ธ๋ผ์ฐ์ ๊ฐ ์น ์๋ฒ์์ ๋ถ๋ ค์ง ํ์ผ์ ํ์๋ก ํ ๋, ๋ธ๋ผ์ฐ์ ๋ HTTP
๋ฅผ ํตํด ํ์ผ์ ์์ฒญํ๋ค. ์์ฒญ์ด ์ฌ๋ฐ๋ฅธ ์น ์๋ฒ(ํ๋์จ์ด)์ ๋๋ฌํ์์ ๋, HTTP
์๋ฒ(software
)๋ ์์ฒญ๋ ๋ฌธ์๋ฅผ HTTP
๋ฅผ ์ด์ฉํด ๋ณด๋ด์ฃผ๊ฒ ๋๋ค.
์น ์๋ฒ๋ฅผ ์คํ๋ฒ ์ค์ ๋น์ ํด๋ณด์.
๋จผ์ , ์น ์ํคํ ์ฒ์ ์ ๋ฐ์ ์ธ ๊ตฌ์ฑ๋์ด๋ค. ์น ์๋น์ค๋ ํด๋ผ์ด์ธํธ, ์๋ฒ, ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๊ตฌ์ฑ๋์ด์๋ค.
ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋์ด ์๋ ์ปคํผ ์๋๋ฅผ ์๋ฃ๋ก ๋ง๋ค์ด ๋จน์ผ๋ ค๋ฉด ์ด๋ป๊ฒ ํด์ผ๋ ๊น? ์ด ๋, ์คํ๋ฒ
์ค(์๋ฒ
)๊ฐ ํ์ํ ๊ฒ์ด๋ค.
์๋ฅผ ๋ค์ด, ์ ๊ทธ๋ฆผ์ฒ๋ผ ๊ณ ๊ฐ(ํด๋ผ์ด์ธํธ
)์ด "์ฐ๋ฏธ ์๋ ์ปคํผ ์ฃผ์ธ์" ๋ผ๋ ์์ฒญ
์ ๋ณด๋ด๋ฉด ์คํ๋ฒ
์ค(์๋ฒ
)๋ ์ฐฝ๊ณ (๋ฐ์ดํฐ๋ฒ ์ด์ค
)์์ ์ฐ๋ฏธ ์๋ ์๋๋ฅผ ๊บผ๋ด์ค๊ณ , ์๋ฃ๋ฅผ ์ ์กฐํ๋ค. ์ ์กฐํ ์๋ฃ๋ฅผ ๊ณ ๊ฐ(ํด๋ผ์ด์ธํธ
)์๊ฒ ์ ๊ณต(์๋ต
)ํ๋ ๊ฒ๊น์ง๊ฐ ์คํ๋ฒ
์ค(์๋ฒ
)์ ์ญํ ์ธ ๊ฒ์ด๋ค.
๋ค์ ์น ์๋น์ค ์ํคํ
์ฒ๋ก ๋์์์, ํด๋ผ์ด์ธํธ์์ user message
๋ฅผ ๋ฌ๋ผ๋ ์์ฒญ
์ ํ๊ฒ ๋๋ฉด ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ message
๋ฅผ ๊บผ๋ด์ค๊ฒ ๋๊ณ , ๋ค์ ํด๋ผ์ด์ธํธ์๊ฒ ๊ทธ message
๋ฅผ ์๋ต
ํ๊ฒ ๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ์๋ฒ์์๋ ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ์ด๋ป๊ฒ ๋ฐ์ ์ ์์๊น?
ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ๊ตฌ์ฑ์ ๋ชจ๋ฅธ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฆฌ์์ค๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ์ ์ฅ๋์ด ์๋์ง๋ ๋ชจ๋ฅธ๋ค. ํด๋ผ์ด์ธํธ๋ ๊ทธ ๋ฆฌ์์ค๋ฅผ ์ด๋ป๊ฒ ํ์ฉํ ์ ์์๊น์ ๋ํด ์์๋ณด์. ์๋ฒ๋ ํด๋ผ์ด์ธํธ์๊ฒ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ ํ์ฉํ ์ ์๋๋ก ์ด๋ ํ Interface
๋ฅผ ์ ๊ณตํด์ผ ํ๋ค. ๊ทธ๊ฒ์ ๋ฐ๋ก API
๋ผ๊ณ ํ๋ค.
์ฆ, ์๋ฒ ์์์ ์ ๊ฐ์ ธ๋ค ์ธ ์ ์๊ฒ ๋ง๋ค์ด ๋์ Interface
์ด๋ค. ์๋ฒ ๋ถ๋ถ์์ ์์๋ก ๋ค์๋ ์คํ๋ฒ
์ค๋ฅผ ๋ค์ ๋ ์ฌ๋ ค๋ณด๋ฉด API
๋ ๋ฐ๋ก ๋ฉ๋ดํ
์ด๋ผ๊ณ ํ ์ ์๋ค.
์ด๋ค ํด๋ผ์ด์ธํธ๋ ํ๋ผํธ์น๋
ธ๋ฅผ ์์ฒญํ๊ณ , ์ด๋ค ํด๋ผ์ด์ธํธ๋ ์ฝ๋๋ธ๋ฃจ๋ฅผ ์์ฒญํ ์ ์๋ ๊ฒ์ ์๋ฒ๊ฐ ๋ฉ๋ดํ(API
)์ ์ค๊ณํด๋์๊ธฐ ๋๋ฌธ์ด๋ค. ๋ฐ๋๋ก ์๋ฒ๋ ๋ฉ๋ดํ์ด ์์ด์ผ ์๋๋ฅผ ๋ฐํ์ผ๋ก ์๋ฃ(๋ฆฌ์์ค)๋ฅผ ๋ง๋ค์ด ์ ๊ณตํ ์ ์๋ค. ์ฆ, ์๋ฒ๋ ๋ฉ๋ดํ์ด ํ์ํ๊ฒ ๋๋ ๊ฒ์ด๋ค.
๋ง์ฐฌ๊ฐ์ง๋ก ์น ์ํคํ
์ฒ๋ก ๋์์์, ์๋ฒ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ ๋ฆฌ์์ค๋ค์ ์ ๋ฌํ๊ธฐ ์ํด์ ์ ์ฌ์ง๊ณผ ๊ฐ์ ํํ์ API
๋ฅผ ๊ตฌ์ถํด๋์์ผ ํ๊ณ , ํด๋ผ์ด์ธํธ๋ ์ด๋ฌํ API
๋ฅผ ํตํด ์๋ฒ์ ์์์ ํ์ฉ(์์ฒญ ๋ฐ ์์ฑ ๋ฑ)ํ ์ ์๊ฒ ๋๋ค.