1.Express
Express ๋
Node.js๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์๋ค. ์ฆ, Node.js์ ๋์ผํ ๋น๋๊ธฐ ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋๋ฐ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ์ด์์ ์ด๋ค.
๋ก๊น , ์ค๋ฅ ์ฒ๋ฆฌ, ์ธ์ฆ ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ถ๊ฐํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๊ด๋ฒ์ํ ๋ฏธ๋ค์จ์ด ๋ชจ๋์ ์ ๊ณตํ๋ค. ๋ํ ๊ณ ์ ํ ๋ฏธ๋ค์จ์ด ํจ์๋ฅผ ์์ฑํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์์ ์ฌ์ฉ์ ์ ์ํ ์ ์๋ค.
๋์ HTML ํ์ด์ง๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ Pug(์ด์ ์ Jade), EJS ๋ฐ Handlebars๋ฅผ ๋น๋กฏํ ๋ค์ํ ํ ํ๋ฆฟ ์์ง์ ์ง์ํ๋ค.
์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ URL ๊ฒฝ๋ก๋ฅผ ์ ์ํ๊ณ ์ด๋ฅผ ํน์ ์์ ๋๋ ํธ๋ค๋ฌ์ ๋งคํํ ์ ์๋ ๊ฐ๋ ฅํ ๋ผ์ฐํ ์์คํ ์ ์ ๊ณตํ๋ค. ์ด๋ฅผ ํตํด RESTful API๋ฅผ ์ฝ๊ฒ ์์ฑํ๊ณ ๋ณต์กํ HTTP ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋ค.
ํฌ๊ณ ํ๋ฐํ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ๊ฐ ์๋ค. ์ฆ, ๊ธฐ๋ฅ์ ํ์ฅํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ง์ ํ์ฌ ๋ชจ๋๊ณผ ํ๋ฌ๊ทธ์ธ์ด ์๋ค. npm(Node.js ํจํค์ง ๊ด๋ฆฌ์)์ ์ฌ์ฉํ์ฌ ์ฝ๊ฒ ์ค์นํ ์ ์๋ค.
URL ๊ตฌ์กฐ
URL(Uniform Resource Locator)์ ์ธํฐ๋ท์์ ๋ฆฌ์์ค๋ฅผ ์๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ ๋ฌธ์์ด์ด๋ค.
protocol://domain_name_or_IP_address:port/path?query_string#fragment_identifier
ํ๋กํ ์ฝ(Protocol): ํ๋กํ ์ฝ์ HTTP, HTTPS, FTP ๋๋ SSH์ ๊ฐ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๋ ๋ฐ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ(์ปดํจํฐ ๋ด๋ถ์์, ๋๋ ์ปดํจํฐ ์ฌ์ด์์ ๋ฐ์ดํฐ์ ๊ตํ ๋ฐฉ์์ ์ ์ํ๋ ๊ท์น ์ฒด๊ณ)์ ์ง์ ํ๋ค.
๋๋ฉ์ธ ์ด๋ฆ ๋๋ IP ์ฃผ์(Domain Name or IP Address): ๋๋ฉ์ธ ์ด๋ฆ ๋๋ IP ์ฃผ์๋ ๋ฆฌ์์ค๋ฅผ ํธ์คํ ํ๋ ์๋ฒ๋ฅผ ์๋ณํ๋ค. ๋๋ฉ์ธ ์ด๋ฆ์ DNS(๋๋ฉ์ธ ์ด๋ฆ ์์คํ )์ ์ํด IP ์ฃผ์๋ก ๋ณํ๋๋ ์ฌ๋์ด ์ฝ์ ์ ์๋ ์ด๋ฆ์ด๋ค. ์๋ฅผ ๋ค์ด 'www.google.com'์ IP ์ฃผ์ '216.58.194.174'์ ํด๋นํ๋ ๋๋ฉ์ธ ์ด๋ฆ์ด๋ค.
ํฌํธ(Port): ํฌํธ ๋ฒํธ๋ ์์ฒญ์ ์์ ํ๊ธฐ ์ํด ์๋ฒ์์ ์ฌ์ฉํ๋ ๋คํธ์ํฌ ํฌํธ๋ฅผ ์๋ณํ๋ค. ํฌํธ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ํ๋กํ ์ฝ์ ๊ธฐ๋ณธ ํฌํธ๊ฐ ์ฌ์ฉ๋๋ค(์: HTTP์ ๊ฒฝ์ฐ ํฌํธ 80).
๊ฒฝ๋ก(Path): ๊ฒฝ๋ก๋ ์๋ฒ์์ ๋ฆฌ์์ค์ ์์น๋ฅผ โโ์ง์ ํ๋ค. ์ผ๋ฐ์ ์ผ๋ก ์ฌ๋์๋ก ๊ตฌ๋ถ๋ ์ผ๋ จ์ ๋๋ ํฐ๋ฆฌ ๋ฐ ํ์ผ ์ด๋ฆ์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค์ด URL http://www.example.com/images/logo.png์์ ๊ฒฝ๋ก๋ /images/logo.png์ด๋ค.
์ฟผ๋ฆฌ ๋ฌธ์์ด(Query String): ์ฟผ๋ฆฌ ๋ฌธ์์ด์ ๊ฒ์ ๋งค๊ฐ๋ณ์ ๋๋ ์์ ๋ฐ์ดํฐ์ ๊ฐ์ ๋ฆฌ์์ค์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํ๋ค. ๋ฌผ์ํ๋ก ์์ํ๊ณ ์ฐํผ์๋๋ก ๊ตฌ๋ถ๋ ์ผ๋ จ์ ํค-๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค์ด URL http://www.example.com/search?q=example&limit=10์์ ์ฟผ๋ฆฌ ๋ฌธ์์ด์๋ q=example ๋ฐ limit=10์ด๋ผ๋ ๋ ๊ฐ์ ํค-๊ฐ ์์ด ํฌํจ๋์ด ์๋ค.
์กฐ๊ฐ ์๋ณ์(Fragment Identifier): ์กฐ๊ฐ ์๋ณ์๋ HTML ๋ฌธ์ ๋ด์ ์น์ ๊ณผ ๊ฐ์ ๋ฆฌ์์ค์ ํน์ ๋ถ๋ถ์ ์๋ณํ๋ค. ํด์ ๊ธฐํธ(#)๋ก ์์ํ๊ณ ๋ฌธ์์ด๋ก ๊ตฌ์ฑ๋๋ค. ์๋ฅผ ๋ค์ด URL http://www.example.com/page.html#section2์์ ํ๋๊ทธ๋จผํธ ์๋ณ์๋ section2์ด๋ค.
URL ๊ตฌ์กฐ๋ ์ธํฐ๋ท์์ ๋ฆฌ์์ค๋ฅผ ์ฐพ๊ณ ์ก์ธ์คํ๋ ํ์คํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์๊ฐ ์น์ ์ฝ๊ฒ ํ์ํ๊ณ ํ์ํ ์ ๋ณด์ ์ก์ธ์คํ ์ ์๋๋ก ํด์ค๋ค
REST API
REST API๋ Representational State Transfer Application Programming Interface์ ์ฝ์์ด๋ค.
REST๋ ์ผ๋ จ์ ์ ์ฝ ์กฐ๊ฑด์ ๊ธฐ๋ฐ์ผ๋ก ์น ์๋น์ค๊ฐ ์๋ํ๋ ๋ฐฉ์์ ์ ์ํ๋ ์ํคํ ์ฒ ์คํ์ผ์ด๋ค.
REST๋ ์ฒ์์ ์ธํฐ๋ท๊ณผ ๊ฐ์ ๋ณต์กํ ๋คํธ์ํฌ์์ ํต์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํ ์ง์นจ์ผ๋ก ๋ง๋ค์ด์ก๋ค. ์ธํฐ๋ท์ ํตํด ๋ชจ๋ ์ฅ์น ๋๋ ํ๋ซํผ์์ ์ก์ธ์คํ ์ ์๋ ๊ฐ๋ณ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ง ๊ด๋ฆฌ ๊ฐ๋ฅํ ์น ์๋น์ค๋ฅผ ๊ตฌ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.
API๋ ์๋ก ๋ค๋ฅธ ์ํํธ์จ์ด ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๋ก ํต์ ํ ์ ์๋๋ก ํ๋ ๊ท์น ๋๋ ํ๋กํ ์ฝ ์งํฉ์ด๋ค.
REST ์ํคํ ์ฒ ์คํ์ผ์ ๋ฐ๋ฅด๋ API๋ฅผ REST API๋ผ๊ณ ํ๋ค.
REST API์๋ ์ํคํ ์ฒ๋ฅผ ์ ์ํ๊ณ ์น ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๋ ๋ฐ ๋๋ฆฌ ์ฌ์ฉ๋๋ ๋ช ๊ฐ์ง ํน์ฑ์ด ์๋ค. ์ฃผ์ ํน์ง ์ค ์ผ๋ถ๋ ๋ค์๊ณผ ๊ฐ๋ค.
์ํ ๋น์ ์ฅ(Stateless): REST API๋ ์ํ ๋น์ ์ฅ์ด๋ฏ๋ก ์์ฒญ ๊ฐ์ ํด๋ผ์ด์ธํธ ์ปจํ ์คํธ๋ฅผ ์ ์ฅํ์ง ์๋๋ค. ํด๋ผ์ด์ธํธ์ ๊ฐ ์์ฒญ์๋ ์๋ฒ๊ฐ ์์ฒญ์ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ ๋ณด๊ฐ ํฌํจ๋์ด ์๋ค.
ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ(Client-server architecture): REST API๋ ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ์๋ก ๋ถ๋ฆฌ๋๊ณ ๋ ๋ฆฝ์ ์ธ ํด๋ผ์ด์ธํธ-์๋ฒ ์ํคํ ์ฒ๋ฅผ ๋ฐ๋ฅธ๋ค. ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ์์ฒญ(request)์ ๋ณด๋ด๊ณ ์๋ฒ๋ ์๋ต(response)์ ๋ค์ ๋ณด๋ธ๋ค.
ํต์ผ๋ ์ธํฐํ์ด์ค(Uniform interface): REST API์๋ ํต์ผ๋ ์ธํฐํ์ด์ค๊ฐ ์๋ค. ์ฆ, GET, POST, PUT, DELETE ๋ฑ๊ณผ ๊ฐ์ ํ์ค HTTP ๋ฉ์๋ ์งํฉ์ ์ฌ์ฉํ์ฌ ๋ฆฌ์์ค์ ์ํธ ์์ฉํ๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ API๋ฅผ ๋ ์ฝ๊ฒ ์ฌ์ฉํ๊ณ ์ดํดํ ์ ์๋ค.
๋ฆฌ์์ค ๊ธฐ๋ฐ(Resource-based): REST API๋ ๋ฆฌ์์ค ๊ธฐ๋ฐ์ด๋ค. ์ฆ, API์ ๋ชจ๋ ๊ตฌ์ฑ ์์๋ ๊ณ ์ ํ URI(Uniform Resource Identifier)๋ก ์๋ณ๋๋ค. ์ด๋ฌํ ๋ฆฌ์์ค๋ ํ์ผ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋๋ ๊ธฐํ ์ ํ์ ๋ฐ์ดํฐ์ผ ์ ์๋ค. ๋ฐ์ดํฐ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ค์ํ ํ๋ซํผ์์ ์ฝ๊ฒ ์ดํดํ ์ ์๋ ๋ฒ์ฉ ๋ฐ์ดํฐ ํ์์ธ JSON ๋๋ XML ํ์์ด๋ค.
์บ์ ๊ฐ๋ฅ: REST API๋ ์บ์ ๊ฐ๋ฅํ๋๋ก ์ค๊ณ๋์๋ค. ์ฆ, ์๋ฒ์ ์๋ต์ ํด๋ผ์ด์ธํธ๊ฐ ์บ์ํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ค.
๊ณ์ธตํ๋ ์์คํ : REST API๋ ๊ณ์ธตํ๋ ์์คํ ์ผ๋ก ์ค๊ณ๋์๋ค. ์ฆ, ํด๋ผ์ด์ธํธ๋ ์๋ฒ์ ๊ธฐ๋ณธ ๊ตฌํ์ ๋ํด ์ ํ์๊ฐ ์๋ค. ์ด๋ ๊ฒ ํ๋ฉด ํด๋ผ์ด์ธํธ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ์๋ฒ๋ฅผ ์ฝ๊ฒ ์ ๋ฐ์ดํธํ๊ฑฐ๋ ์์ ํ ์ ์๋ค.
์ ๋ฐ์ ์ผ๋ก REST API๋ ๋จ์ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ์ ์ฐํ๋๋ก ์ค๊ณ๋์ด ์น ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ๋๋ฆฌ ์ฌ์ฉ๋๋ค.
HTTP Method(CRUD)
HTTP(Hypertext Transfer Protocol)๋ ์น ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ํต์ ์ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ด๋ค. HTTP๋ ๋ฆฌ์์ค์์ ์ํํ ์ํ๋ ์์ ์ ๋ํ๋ด๋ ์์ฒญ ๋ฉ์๋(๋๋ ๋์ฌ) ์งํฉ์ ์ ์ํ๋ค. HTTP ๋ฉ์๋๋ URL๋ก ์๋ณ๋๋ ๋ฆฌ์์ค์์ ์ํํ ์์ ์ ์ง์ ํ๋ค.
GET: GET ๋ฐฉ์์ ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด๊ฒ์ ์์ ํ๊ณ ๋ฉฑ๋ฑ์ ์ธ(idempotent) ๋ฐฉ๋ฒ์ด๋ค. ์ฆ, ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ์์ฒญ์ด ๋์ผํ ์๋ต์ ์์ฑํ๋ค๋ ์๋ฏธ์ด๋ค. GET ๋ฉ์๋๋ ์๋ฒ์ ๋ฆฌ์์ค ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์๋ค.
POST: POST ๋ฐฉ์์ ์๋ก์ด ๋ฆฌ์์ค๋ฅผ ์์ฑํ๊ฑฐ๋ ๊ธฐ์กด ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธํ๊ธฐ ์ํด ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ถํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ ์์ ํ๊ฑฐ๋ ๋ฉฑ๋ฑ์ฑ์ด ์๋๋ค. ์ฆ, ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ์์ฒญ์ด ๋ค๋ฅธ ์๋ต์ ์์ฑํ๊ฑฐ๋ ์๋ฒ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์์ ํ ์ ์๋ค.
PUT: PUT ๋ฉ์๋๋ ์๋ฒ์ ๊ธฐ์กด ๋ฆฌ์์ค๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ ๋ฉฑ๋ฑ์ (idempotent)์ด๋ฉฐ ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ์์ฒญ์ด ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํ๋ค๋ ์๋ฏธ์ด๋ฉฐ ์์ ํ์ง ์์ ์๋ฒ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์์ ํ ์ ์์์ ์๋ฏธํ๋ค.
DELETE: DELETE ๋ฉ์๋๋ ์๋ฒ์ ๋ฆฌ์์ค๋ฅผ ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ๋ฉฑ๋ฑ์ฑ(idempotent)์ ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ์์ฒญ์ด ๋์ผํ ๊ฒฐ๊ณผ๋ฅผ ์์ฑํจ์ ์๋ฏธํ๋ฉฐ ์์ ํ์ง ์์ ์๋ฒ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์์ ํจ์ ์๋ฏธํ๋ค.
PATCH: PATCH ๋ฐฉ์์ ์๋ฒ์ ๋ฆฌ์์ค ์ผ๋ถ๋ฅผ ์ ๋ฐ์ดํธํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์ด๋ ์์ ํ๊ฑฐ๋ ๋ฉฑ๋ฑ์ฑ์ด ์๋๋ค. ์ฆ, ์ฌ๋ฌ ๊ฐ์ ๋์ผํ ์์ฒญ์ด ๋ค๋ฅธ ์๋ต์ ์์ฑํ๊ฑฐ๋ ์๋ฒ์ ๋ฆฌ์์ค ์ํ๋ฅผ ์์ ํ ์ ์๋ค.
HEAD: HEAD ๋ฉ์๋๋ ๋ฆฌ์์ค ์์ฒด๋ฅผ ๊ฒ์ํ์ง ์๊ณ ๋ฆฌ์์ค์ ๋ํ ํค๋ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์์ ํ๊ณ ๋ฉฑ๋ฑ์ ์ธ(idempotent) ๋ฐฉ๋ฒ์ด๋ค.
OPTIONS: OPTIONS ๋ฉ์๋๋ ์ง์๋๋ ๋ฉ์๋ ๋ฐ ๋ฆฌ์์ค์ ๋ํ ๊ธฐํ ์ ๋ณด๋ฅผ ๊ฒ์ํ๋ ๋ฐ ์ฌ์ฉ๋๋ค. ์์ ํ๊ณ ๋ฉฑ๋ฑ์ ์ธ(idempotent) ๋ฐฉ๋ฒ์ด๋ค.
๋ฉฑ๋ฑ์ฑ(Idempotent)
๋์ผํ ์์ฒญ์ ํ ๋ฒ ๋ณด๋ด๋ ๊ฒ๊ณผ ์ฌ๋ฌ ๋ฒ ์ฐ์์ผ๋ก ๋ณด๋ด๋ ๊ฒ์ด ๊ฐ์ ํจ๊ณผ๋ฅผ ์ง๋๊ณ , ์๋ฒ์ ์ํ๋ ๋์ผํ๊ฒ ๋จ์ ๋, ํด๋น HTTP ๋ฉ์๋๊ฐ ๋ฉฑ๋ฑ์ฑ์ ๊ฐ์ก๋ค๊ณ ๋งํ๋ค.
์ฆ, ๋ฉฑ๋ฑ์ฑ ์ฐ์ฐ์ ํ ๋ฒ ๋๋ ์ฌ๋ฌ ๋ฒ ์ํํด๋ ๊ฒฐ๊ณผ๋ ๋์ผํ๋ค.
์๋ฅผ ๋ค์ด ๋ ๊ฐ์ ์ซ์๋ฅผ ๋ํ๋ ๊ณ์ฐ๊ธฐ๋ฅผ ์๊ฐํด ๋ณด์. 2 + 3์ ํ ๋ฒ ๋ํ๋ฉด ๊ฒฐ๊ณผ๋ 5๊ฐ ๋๋ค. ๋ค์ 2 + 3์ ๋ํด๋ ๊ฒฐ๊ณผ๋ ์ฌ์ ํ 5๋ค. ์ด ์์ ์ ์ฌ๋ฌ ๋ฒ ์ํํด๋ ๊ฐ์ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋ฏ๋ก ์ด ์์ ์ ๋ฉฑ๋ฑ์ ์ด๋ค.
์น ๊ฐ๋ฐ์ ๋งฅ๋ฝ์์ ๋ฉฑ๋ฑ์ฑ์ ์๋ฒ์ ๋ํ ๋ฐ๋ณต ์์ฒญ์ด ๋จ์ผ ์์ฒญ๊ณผ ๋์ผํ ํจ๊ณผ๋ฅผ ๊ฐ๋๋ก ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ ์ค์ํ๋ค. ์๋ฅผ ๋ค์ด HTTP GET ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ๊ฒ์ํ๋ ๊ฒฝ์ฐ ๋ฆฌ์์ค๊ฐ ์๋ฒ์์ ์์ ๋์ง ์๊ธฐ ๋๋ฌธ์ ๋ฉฑ๋ฑ์ฑ ์์ ์ด๋ค. ๋ฆฌ์์ค ์ํ๋ฅผ ๋ณ๊ฒฝํ์ง ์๊ณ ์ํ๋ ๋งํผ GET ์์ฒญ์ ๋ฐ๋ณตํ ์ ์๋ค.
๋ฐ๋ฉด์ HTTP POST ๋ฉ์๋๋ ์์์ ์ฌ๋ฌ ๋ฒ ์ ์ถํ๋ฉด ์๋ฒ์์ ๋ฆฌ์์ค๋ฅผ ๋ง๋ค๊ฑฐ๋ ์์ ํ๋ผ๋ ์ฌ๋ฌ ์์ฒญ์ด ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ ๋ฉฑ๋ฑ์ฑ์ด ์๋๋ค. ์ด๋ ์๋ฒ๊ฐ ์ฌ๋ฌ ์์ฒญ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์ง ์์ ๊ฒฝ์ฐ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์๋ค.
์์ฝํ๋ฉด ๋ฉฑ๋ฑ์ฑ์ ํตํด ์๋ํ์ง ์์ ๊ฒฐ๊ณผ ์์ด ์์ ์ ์ฌ๋ฌ ๋ฒ ์ํํ ์ ์๋ค. ์๋ฒ๊ฐ ์๊ธฐ์น ์์ ๋์์ ์ผ์ผํค์ง ์๊ณ ๋ฐ๋ณต๋๋ ์์ฒญ์ ์ฒ๋ฆฌํ ์ ์๋๋ก ๋ณด์ฅํ๋ ๊ฒ์ ์น ๊ฐ๋ฐ์์ ์ค์ํ ๊ฐ๋ ์ด๋ค.
Last updated