๊ฐ๋ฐ/Web5 RESTful API ์ค๊ณ ์์น / ๋ค์ด๋ฐ ๊ท์น RESTful API ํด๋ผ์ด์ธํธ์ ์๋ฒ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ฐฉ์์ ๋ํ ์ํคํ ์ฒ ์คํ์ผ RESTful API Naming ๋ฆฌ์์ค ํํ์ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๋ผ. ๊ณ์ธต๊ด๊ณ๋ฅผ ๊ตฌ๋ถ์ง๊ธฐ ์ํด ์ฌ๋์(/)๋ฅผ ์ฌ์ฉํ๋ผ. URI ๋ง์ง๋ง์ ์ฌ๋์๋ฅผ ๋ถ์ด์ง ๋ง๋ผ. ํ์ดํ(-) ๊ธฐํธ๋ฅผ ์ฌ์ฉํด ๊ฐ๋ ์ฑ์ ๋์ฌ๋ผ. ์ธ๋์ค์ฝ์ด๋ฅผ ์ฌ์ฉํ์ง ๋ง๋ผ. ์๋ฌธ์๋ง์ ์ฌ์ฉํ๋ผ. ๋ฆฌ์์ค ํํ์ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๋ผ. RESTful URI ๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฆฌ์์ค๋ ์ํ๋๋ ํ์๊ฐ ์๋๋ผ ๊ฐ์ฒด์ด๋ค. ์ด ๋ฆฌ์์ค๊ฐ ์ด๋ ๋ฒ์ฃผ์ ํด๋นํ๋์ง ํ์ธํ๊ณ ๊ทธ ๋ฒ์ฃผ์ ๋ง๋ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ์ผ๊ด๋๊ฒ ์ฌ์ฉํด์ผ ํ๋ค. โ๏ธ ๋ฌธ์(Document) ๋จ์ผ ๊ฐ๋ (ํ์ผ ํ๋, ๊ฐ์ฒด ์ธ์คํด์ค, ๋ฐ์ดํฐ๋ฒ ์ด์ค row) ๋จ์ ์ฌ์ฉ(/device-management, /user-managemen.. 2023. 5. 8. HTTP RESTful API / ์์ ์ฑ๊ณผ ๋ฉฑ๋ฑ์ฑ REST(Representational State Transfer) ์์์ ์ด๋ฆ์ผ๋ก ๊ตฌ๋ถํ์ฌ ํด๋น ์์์ ์ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ๋ชจ๋ ๊ฒ์ ์๋ฏธํ๋ค. HTTP ์์์ REST ๋? 1. HTTP URI(Uniform Resource Identifier)๋ก ์์(Resource)์ ๋ช ์ 2. HTTP Method(POST, GET, PUT, DELETE, PATCH ๋ฑ)๋ก 3. ํด๋น ์์(URI)์ ๋ํ CRUD Operation์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธ HTTP REST ๊ตฌ์ฑ์์ ์์(Resource): HTTP URI ์์์ ๋ํ ํ์(Verb): HTTP Method ํํ(Representations) HTTP REST ํน์ง ์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ(Server-Client) ๋ฌด์ํ์ฑ(Stateless) ์บ์ ์ฒ๋ฆฌ.. 2023. 2. 22. in-memory / cache / redis / memcached in-memory ์ปดํจํฐ ๋ฉ์ธ ๋ฉ๋ชจ๋ฆฌ์ธ RAM์ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ ค์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด๋ค. in-memory DB ๋ฉ๋ชจ๋ฆฌ์ ๋์คํฌ ๊ฐ ๋ณ๋ชฉ์ด ์์ด SSD, HDD ๊ฐ์ ์ ์ฅ๊ณต๊ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ฒ๋ณด๋ค ์๋๊ฐ ๋น ๋ฅด๋ค. ์๋๊ฐ ๋น ๋ฅธ ๋์ ๋น์ฉ์ด ๋น์ธ ํฐ ์ฉ๋์ผ๋ก ์ฌ์ฉํ๊ธฐ์๋ ๋ฌด๋ฆฌ๊ฐ ์๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ฑ์ ๋ณด์ฅํ์ง ์์ ๋ฐ์ดํฐ๊ฐ ์ ์ค๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค. ๋ฉ๋ชจ๋ฆฌ์ ๋ฐ์ดํฐ๋ฅผ ์ฝ๊ณ ์ฐ๋ DB๋ฉด in-memory DB๋ผ๊ณ ํ๋ค. RDBMS์ธ MySQL์์๋ in-memory ๋ชจ๋๋ฅผ ์ง์ํ๊ณ , NoSQL์ธ Redis๋ in-memory DB์ด๋ค. โ disk-based DB ์ธ๋ถ ์ ์ฅ ์ฅ์น์ ์๋ ๋ฐ์ดํฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ฆฌ๊ณ , ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฝ์ด์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ์๋๊ฐ ๋๋ฆฌ๋ค. in-memor.. 2022. 7. 10. HTTP๋ ๋ฌด์์ผ๊น์? ๋ชฉ์ฐจ HTTP๋? HTTP ํน์ง HTTP ๋ฉ์์ง ๊ตฌ์กฐ HTTP ์์ฒญ ๋ฉ์๋ HTTP ์๋ต ์ํ์ฝ๋ HTTP๋? Hyper Text Transfer Protocol์ ๋๋ฌธ์์ด๋ก ์ธํฐ๋ท์์ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ํ๋กํ ์ฝ์ด๋ค. ์ด๊ธฐ์๋ HTML๊ณผ ๊ฐ์ ํ์ดํผํ ์คํธ๋ฅผ ์ฃผ๋ก ์ ์กํ์ง๋ง, ์ต๊ทผ์๋ Plain text, JSON, XML ๋ฑ ๋ค์ํ ํํ์ ์ ๋ณด๋ ์ ์กํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ ์ด์ด ํ๋กํ ์ฝ์ด๋ค. * ํ์ดํผ ํ ์คํธ: ์ฐธ์กฐ(ํ์ดํผ๋งํฌ)๋ฅผ ํตํด ํ ๋ฌธ์์์ ๋ค๋ฅธ ๋ฌธ์๋ก ์ฆ์ ์ ๊ทผํ ์ ์๋ ํ ์คํธ์ด๋ค. ๊ธฐ์กด์ ๋ฌธ์๊ฐ ์์ฐจ์ ์ด๋ฉด์ ์์ดํ ๊ตฌ์กฐ๋ผ๋ฉด, ํ์ดํผํ ์คํธ๋ ๋งํฌ์ ๋ฐ๋ผ ๊ทธ ์ฐจ๋ก๊ฐ ๋ฐ๋๋ ์์์ ์ด๋ฉด์ ๋์ดํ์ธ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๋ค. * ์ดํ๋ฆฌ์ผ์ด์ ๋ ์ด์ด ํ๋กํ ์ฝ: ์ปดํจํฐ ๋คํธ์ํฌ์์ ์ธํฐ๋ท ํ๋กํ ์ฝ ์ปดํจํฐ ๋คํธ.. 2021. 10. 16. ์ธํฐ๋ท์ ์ด๋ป๊ฒ ์๋๋ ๊น์? ๋ชฉ์ฐจ ์ธํฐ๋ท์ ์ดํด ๋ผ์ฐํฐ ๋ชจ๋ ๋ผ์ฐํฐ์ ๋ชจ๋์ ์ฐจ์ด IP ์ธํฐ๋ท์ ์ดํด ์ธํฐ๋ท์ ์ปดํจํฐ๋ค์ด ํต์ ๊ฐ๋ฅํ ๊ฑฐ๋ํ ๋คํธ์ํฌ๋ก, TCP/IP ํ๋กํ ์ฝ ์ค์ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ์ธ๊ณ์ ์ผ๋ก ์ฐ๊ฒฐ๋ ์ปดํจํฐ ๋คํธ์ํฌ ํต์ ๋ง์ด๋ค. ์๋ ์์ด๋ ์น(์ค์ฌ์ ์น), ์ ์ ๋ฉ์ผ, ํ์ผ ๊ณต์ , ๋์์ ์คํธ๋ฆฌ๋ฐ, ์จ๋ผ์ธ ๊ฒ์ ๋ฑ ๋ค์ํ ์๋น์ค๋ค์ ํฌํจํ๋ค. * ํ๋กํ ์ฝ: ์ปดํจํฐ ๋คํธ์ํฌ ํ๊ฒฝ ๋ด ๊ธฐ๊ธฐ๊ฐ ์๋ก ํต์ ํ๋ฉฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ฌ์ ํ์๋ ํต์ ํ์ฝ/๊ท์ฝ * ์ธํฐ๋ท ํ๋กํ ์ฝ ์ค์ํธ(Internet Protocol Suite): ์ธํฐ๋ท์์ ์ปดํจํฐ๋ค์ด ์๋ก ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์ฐ์ด๋ ํต์ ๊ท์ฝ(ํ๋กํ ์ฝ)์ ๋ชจ์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ ์ด์์ ์ปดํจํฐ๊ฐ ํต์ ํ๊ธฐ ์ํด์๋ ์ ์ (์ด๋๋ท ์ผ์ด๋ธ ๋ฑ) ๋๋ ๋ฌด์ (์์ดํ์ด, ๋ธ๋ฃจํฌ์ค ๋ฑ)์ผ๋ก .. 2021. 10. 7. ์ด์ 1 ๋ค์