1) ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Library)
(1) ์ ์
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด ํ์ํ ๊ธฐ๋ฅ์ ๋ชจ์ ๋์ ์ํํธ์จ์ด์ด๋ฉฐ, ๊ฐ๋จํ๊ฒ ๋งํ์๋ฉด ํ๋ก๊ทธ๋๋จธ๊ฐ ๊ฐ๋ฐํ๋๋ฐ ์์ด ์ ์ฉํ ์ปดํฌ๋ํธ๋ค(Components)์ ์งํฉ์ด๋ผ๊ณ ๋ณผ ์ ์๋ค.
์ฌ๊ธฐ์ ์ปดํฌ๋ํธ๋ ํด๋์ค, ํจ์, ๋ณ์ ๋ฑ ๊ทธ ๋ชจ๋ ๊ฒ๋ค์ด ๋ ์ ์๋ค.
(2) ํน์ง
- ์ฌ์ฌ์ฉ์ฑ
๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ฌ์ฌ์ฉ์ด ํ์ํ ๊ธฐ๋ฅ์ผ๋ก ๋ฐ๋ณต์ ์ธ ์ฝ๋ ์์ฑ์ ์์ ๊ธฐ ์ํด ์ธ์ ๋ ์ง ํ์ํ ๊ณณ์์ ํธ์ถํ์ฌ ์ฌ์ฉํ ์ ์๋๋ก ์ฃผ๋ก Class๋ Function์ผ๋ก ๋ง๋ค์ด์ง๋ค.
๋ํ, ๊ธฐ์กด์ ๋ง๋ค์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌํ์ฉํจ์ผ๋ก์จ ๊ฐ๋ฐ ์๊ฐ๊ณผ ๋ ธ๋ ฅ์ ์ค์ผ ์ ์๋ค.
- ๋ ๋ฆฝ์ฑ
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ ์ฌ๋ถ๋ ๊ฐ๋ฐ์ ์ ํ์ฌํญ์ด๋ฉฐ, ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๊ฐ๋ฐ ์์๋ ์๊ฒฉํ ๊ท์น์ ๋ฐ๋ก ์ธ์ธ ํ์๊ฐ ์๊ธฐ์ ๊ฐ๋ฐ ์๋์ ๋ง๊ฒ ์ฝ๋ฉํ๋ฉด ๋๋ค.
ํ๋ ์์ํฌ์ ๋ฌ๋ฆฌ ์๊ฒฉํ ๊ท์น์ด ์กด์ฌํ์ง ์์ผ๋ฉฐ ๊ฐ๋ฐ ์๋์ ๋ง์ถ์ด ๋ฅ๋์ ์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
(3) ์์
๋ํ์ ์ธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก๋ JDBC, jQuery, Lombok, Guava ๋ฑ์ด ์์ผ๋ฉฐ, ์ง๊ด์ ์ธ ์ดํด๋ฅผ ๋๊ธฐ ์ํด ๊ฐ๋จํ ์์๋ฅผ ๋ค์ด๋ณด์.
Java ์ดํ๋ฆฌ์ผ์ด์ ์์ DB์ ์ฐ๋ํ๋ ๊ฒฝ์ฐ์ ์ฃผ๋ก JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ๋๋ฐ ๊ฐ๋ฐ์๊ฐ ์ง์ DB ์ฐ๋์ ์ํ ํจ์๋ค์ ๋ง๋ค์ง ์์๋ ๋๊ตฐ๊ฐ ๋ง๋ค์ด๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ ๊ฐ๋ฐ ์๊ฐ์ ๋จ์ถํ ์ ์๋ ๊ฒ์ด๋ค.
๋ํ, JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ ๋ฉ์๋(ํจ์) ํ๋กํ ํ์ ๋ค์ JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API๋ผ๊ณ ๋ ๋ถ๋ฅด๋ฉฐ ๋ค์์ผ๋ก ์ด API์ ๋ํด ์์๋ณด์.
[์ฐธ๊ณ ] ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Library) vs ๋ชจ๋ (Module), ํ๋ฌ๊ทธ์ธ (Plug-In)
- ๋ชจ๋ (Module)
๋ชจ๋์ ์๋ฏธ ๊ทธ๋๋ก “๊ตฌ์ฑ ๋จ์” or “๊ตฌ์ฑ ๋ถ๋ถ”์ด๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋์๊ด์ด๋ผ๋ ๋ป์ ๊ฐ์ง๊ณ ์๊ณ ๊ฐ๋ฐ์์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ชจ๋์ ๋์ผํ ์๋ฏธ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง๋ค!
๋ ๋ค ์์ฃผ ์ฌ์ฉํ๊ฒ ๋๋ ์ฝ๋๋ฅผ Class๋ Function ๋จ์๋ก ๋ฌถ์ด์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๋ค๋ ๊ฒ์ ์ด์ ์ ๋ง์ถ๊ณ ์๊ณ ๊ฐ๋ฐ์๋ง๋ค ๋ถ๋ฅด๋ ์ฉ์ด๊ฐ ์ ๊ฐ๊ฐ ๋ค๋ฅผ ์๋ ์์ผ๋ ์ฐธ๊ณ ํ๋๋ก ํ์!
- ํ๋ฌ๊ทธ์ธ (Plug-In)
ํ๋ฌ๊ทธ์ธ์ ์ด๋ค ํน์ ํ ํ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ปดํฌ๋ํธ์ด๋ค.
์ฆ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋น์ทํ ์ฑ๊ฒฉ์ ๊ฐ์ง Plug-in์ ์งํฉ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค!
๐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ = jQuery, ํ๋ฌ๊ทธ์ธ = jQuery์ Slider, Modal
๐ jQuery์ ๋ค์ํ plug-in์ด ์กด์ฌํ๋๋ฐ, ์ด๋ค์ ์ฃผ๋ก ์ด๋ค ํ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํ ์ปดํฌ๋ํธ๋ค์ด๋ค. ex) Slider, Modal
2) API (Application Programming Interface)
(1) ์ ์
์ง์ญํ์๋ฉด “์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ ํ๋ก๊ทธ๋๋ฐ ์ธํฐํ์ด์ค”๋ก ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋๋ก ์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ ์ธํฐํ์ด์ค๋ฅผ ๋ปํ๋ค. (์ํค๋ฐฑ๊ณผ)
๊ต์ฅํ ์ถ์์ ์ด์ด์ ์ง๊ด์ ์ธ ์ดํด๊ฐ ์ด๋ ค์ธ ์ ์๋๋ฐ ์ผ๋จ ์ธํฐํ์ด์ค๋ ๋จ์ด๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผํ ์์๊ฐ๋ณด์.
์ธํฐํ์ด์ค๋ “์ฌ๋ฌผ๊ณผ ์ฌ๋ฌผ ์ฌ์ด ๋๋ ์ฌ๋ฌผ๊ณผ ์ฌ๋ ์ฌ์ด์ ๊ฒฝ๊ณ์์ ์ํธ ๊ฐ์ ์ํต์ ์ํด ๋ง๋ค์ด์ง ๋ฌผ๋ฆฌ์ ๋งค๊ฐ์ฒด๋ ํ๋กํ ์ฝ”์ ๋ปํ๊ณ ์ฌ์ฉ์ด ํธ๋ฆฌํ๋ค๋ “์ฌ์ฉ์ฑ”๊ณผ ๋ด๋ถ ๊ตฌํ์ ์จ๊ฒจ์ ธ ์๋ “์ ๋ณด์๋์ฑ”์ ๋ ๊ฐ์ง ํน์ง์ ์ง๋๋ค.
์ฝ๊ฒ ์์๋ก ๋ค์๋ฉด ์ธํฐํ์ด์ค๋ ์๋์ฐจ์ ๋ธ๋ ์ดํฌ ๊ฐ์ ๊ฒ์ผ๋ก ์ด์ ์(์ฌ๋)๋ ๋ธ๋ ์ดํฌ ํ๋ฌ(์ธํฐํ์ด์ค)์ ๋ฐ์ ์์ฝ๊ฒ ์ฐจ๋(์ฌ๋ฌผ)์ ์๋ ฅ์ ์ค์ผ ์ ์๋ค! [์ฌ์ฉ์ฑ]
๋ํ, (๋ธ๋ ์ดํฌ์ ๊ด๋ จ๋) ์๋์ฐจ ์์ง๊ณผ ์ฐจ๋์ ์ ์ดํ๋ ๋ณต์กํ ๊ธฐ์ , ๊ธฐ๋ฅ๋ค์ ๋ด๋ถ์ ์จ๊ฒจ์ ธ ์์ด ์ด์ ์๋ ์ ์ ์๋ค. [์ ๋ณด์๋์ฑ]
๋ฐ๋ผ์ ์ด์ ์๋ ์ฐจ๋์ ๋ํ ์ ๋ฌธ ์ง์ ์์ด๋ ๋ธ๋ ์ดํฌ ํ๋ฌ(์ธํฐํ์ด์ค)์ ํตํด ์ฐจ๋์ ์๋๋ฅผ ์ ์ดํ ์ ์๋ค๋ ๊ฒ์ด๋ค!
์ด์ฒ๋ผ ์ธํฐํ์ด์ค๋ ๊ตฌํ๊ณผ ์ฌ์ฉ์ ๋ถ๋ฆฌํ๊ณ ๊ธฐ๋ฅ์ ์ถ์ํํ์ฌ ์ฌ์ฉํ๊ธฐ ์ฝ๊ฒ ๋ง๋ ๋ค.
์ด ์ธ์๋ ํด๋ํฐ์ ํฐ์น ํจ๋๋ TV์ ๋ฆฌ๋ชจ์ฝ ๊ทธ๋ฆฌ๊ณ ์ปดํจํฐ์ ํค๋ณด๋, ๋ง์ฐ์ค ๋ฑ ์ค์ํ์์ ๋ค์ํ ์ธํฐํ์ด์ค๋ฅผ ์ฐพ์๋ณผ ์ ์๋ค!!
์ด์ ๋ค์ API๋ก ๋์ด์๋ณด์...์ฐธ๊ณ ๋ก ์์์ ์ธ๊ธ๋ ์ธํฐํ์ด์ค๋ ๋ชจ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค (User Interface)์ ์ฌ๋ก๋ค์ด๊ณ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ์ฌ์ฉ์ (User)์ ์ต์ข ์ฌ์ฉ์ (End-User)๊ฐ ์ผ์นํ๋ค๋ ํน์ง์ด ์๋ค.
์ฆ, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ ํด๋น ๊ธฐ๋ฅ์ ๋จ์ํ ์ด์ฉํ๊ธฐ๋ง ํ๋ ์ต์ข ์ฌ์ฉ์๋ฅผ ์ํด์ ์ค๊ณ๋๋ค๋ ๋ง์ด๋ค.
๋ฐ๋ฉด์ API (Application Programming Interface)๋ ๋ง ๊ทธ๋๋ก ์ดํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๊ทธ๋๋ฐํ๋๋ฐ ์ฐ์ด๋ ์ธํฐํ์ด์ค๋ก API์ ์ฌ์ฉ์๊ฐ ์ต์ข ์ฌ์ฉ์์ธ ๊ฒฝ์ฐ๋ ๋๋ฌผ๊ณ , ๋๋ถ๋ถ์ ๊ฒฝ์ฐ API์ ์ฌ์ฉ์๋ “๊ฐ๋ฐ์”์ด๋ค.
API๋ ํจ์, ํ๋กํ ์ฝ, ๋๊ตฌ๋ฑ์ ์งํฉ ํํ๋ก ์ ๊ณต๋๊ณ API ์ญ์ ์ธํฐํ์ด์ค์ด๊ธฐ ๋๋ฌธ์ ์ฌ์ฉ์(๊ฐ๋ฐ์)๋ ํจ์, ํ๋กํ ์ฝ, ๋๊ตฌ๋ค์ ์งํฉ, ๊ตฌํ์ ๋ํด์๋ ์ ๊ฒฝ์ ์ฐ์ง ์์๋ ๋๋ค.
๊ฐ๋ฐ์๊ฐ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ด๋ถ ๊ตฌํ์ ๊ฐ์ถฐ์ ธ ์๊ณ ๋จ์ง API๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ด์ฉํด์ ๊ฐ๋ฐ์๊ฐ ์ํ๋ ์๋ก์ด ๊ธฐ๋ฅ(ํ๋ก๊ทธ๋จ)์ ๋ง๋ค๋ฉด ๋๋ ๊ฒ์ด๋ค.
[์ฐธ๊ณ ] ์ธํฐํ์ด์ค
- ์ธํฐํ์ด์ค๋ ํฌ๊ฒ ํ๋์จ์ด ์ธํฐํ์ด์ค, ์ํํธ์จ์ด ์ธํฐํ์ด์ค, ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ก ๊ตฌ๋ถ๋๋ค.
(2) ํน์ง
- ๊ตฌํ๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์๋ง ์ ์๋์ด ์๋ค.
๐ ํด๋น API๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํ API ๋ฌธ์๊ฐ ์ ๊ณต๋๋ค.
- API์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ์ด ํ์ํ ์ ์๋ค.
๐ ์ถํ์ ๋ฐฐ์ธ “์ธ์ฆ๊ณผ ์ธ๊ฐ”๋ฅผ ํ์ตํ๋ฉด ์์ฝ๊ฒ ์ดํดํ ์ ์๋ค.
(3) ์์
- ์์ ๋ก๊ทธ์ธ
์ฌ๋ฌ ์น ์ฌ์ดํธ์์ ์์ ๋ก๊ทธ์ธ์ ํตํด ์ด์ฉํ ์ ์๋๋ฐ ์ด ๋ํ ๋ค์ด๋ฒ, ์นด์นด์ค, ํ์ด์ค๋ถ์์ ๊ด๋ จ๋ API๋ฅผ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฅํ ๊ฒ์ด๋ค.
(4) API์ ์ข ๋ฅ
- Private API
Private API๋ ๋ด๋ถ API๋ก, ๊ธฐ์ ์ด๋ ์ฐ๊ตฌ ๋จ์ฒด ๋ฑ์์ ์์ฒด ์ ํ๊ณผ ์ด์ ๊ฐ์ ์ ์ํด ๋จ์ฒด ๋ด๋ถ์์๋ง ์ฌ์ฉ. ๋ฐ๋ผ์ ์ ์ผ์์๊ฒ ๋ ธ์ถ๋์ง ์์.
- Public API
Public API๋ ๋ง ๊ทธ๋๋ก public, ์ฆ ๊ฐ๋ฐฉํ API๋ก ๋ชจ๋์๊ฒ ๊ณต๊ฐ๋๊ณ Public API ์ค์์๋ ์ ์ํ๋ ๋์์ ๋ํ ์ ์ฝ์ด ์๋ ๊ฒฝ์ฐ๋ฅผ OpenAPI๋ผ ํ๋ค.
๐ ๊ธฐ์์ฒญ API, ๋ฌธํ๋ฐ์ดํฐ ๊ด์ฅ, ๊ณต๊ณต๋ฐ์ดํฐ ํฌํธ ๋ฑ
- Partner API
Partner API๋ ํน์ ๋น์ฆ๋์ค ํํธ๋ ๊ฐ์ ๋ฐ์ดํฐ ๊ณต์ . ๊ทธ๋ฌ๋ฏ๋ก ๋์ํ๋ ํน์ ์ธ๋ค๋ง ์ฌ์ฉํ ์ ์๋ค.
(5) ์ํคํ ์ฒ ์คํ์ผ์ ๋ฐ๋ฅธ API ์ข ๋ฅ
SOAP, RPC, REST API, GraphQL ๋ฑ ์ํคํ ์ฒ ์คํ์ผ์ ๋ฐ๋ผ ๋ค์ํ API๊ฐ ์กด์ฌํ์ง๋ง ๊ฐ๊ฐ์ ์ ํ๊ณผ ๊ธฐ๋ฅ, ๋ณด์ ์ง์๋ฐฉ์ ๋ฑ์ ์ฐจ์ด์ ์ด ์์ง๋ง ์ฌ๊ธฐ์๋ ๋ค๋ฃจ์ง ์๋๋ค.
๋๋ถ๋ถ Restful API๋ฅผ ์ฌ์ฉํ๋ฉฐ ์์ฆ์๋ GraphQL๋ฅผ ์ฌ์ฉํ๋ ์ถ์ธ์ด๋ค.
[์ฐธ๊ณ ] ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Library)์ API (Application Programming Interface)์ ๋ํด ํผ๋ํ์ง ๋ง์
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API์ ๋ํด ๊ฐ๋จํ๊ฒ ๊ฐ๋ ์ Remind ํด๋ณด์! ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์์ด ์ ์ฉํ ์ปดํฌ๋ํธ๋ค์ ์งํฉ์ด๊ณ ์ปดํฌ๋ํธ๋ ํจ์, ๋ณ์, ํด๋์ค๊ฐ ๋ ์ ์์ผ๋ฉฐ API๋ ํจ์, ํ๋กํ ์ฝ ๋ฑ์ ์งํฉ ํํ๋ก ์ ๊ณต๋๋ค๊ณ ํ์๋ค.
(์์์ ๊ฐ์ ์์๋ฅผ ๋ค์์ง๋ง) Java ์ดํ๋ฆฌ์ผ์ด์ ์์ DB์ ์ฐ๋์ ์ํด ๊ฐ๋ฐ์๋ ์ง์ DB ์ฐ๋์ ์ํ ํจ์๋ค์ ๋ง๋ค์ง ์๊ณ ๋ค๋ฅธ ๊ฐ๋ฐ์๊ฐ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํ์ฉํ์ฌ DB ์ฐ๋์ ํ๊ฒ ๋ ๊ฒ์ด๋ค.
์ด ๋, JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํฌํจ๋ ๋ฉ์๋(ํจ์) ํ๋กํ ํ์ ๋ค์ “JDBC ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API” ๋ผ๊ณ ๋ถ๋ฅธ๋ค.
์ฆ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ปดํฌ๋ํธ ์์ฒด๋ฅผ ์๋ฏธํ๊ณ API๋ ๊ทธ ์ปดํฌ๋ํธ๋ฅผ ํ์ฉํ๊ธฐ ์ํ ๊ท์ฝ ๋ฐ ํธ์ถ์ ์ํ ์๋จ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค!
[์ฐธ๊ณ ] API ๋ฌธ์ (API Document)
- ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์์ด ๊ฐ๋ฐ์๋ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ๋ค ์ฐ๋ฉด ๋์ง๋ง ํด๋น ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฒ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ผ๋ฉด ์ฌ์ฉ ๋ฉ๋ด์ผ์ด๋ API์ ๋ํ ๊ธฐ๋ฅ ๋ช ์ธ๊ฐ ํ์ํ๋ฐ ์ด๋ฐ ๊ธฐ๋ฅ ๋ช ์ธ๊ฐ ์ ํ ๊ฒ์ด API ๋ฌธ์ (API Document)์ด๋ค.
<JDBC API ๋ฌธ์ ์ค Connection๊ณผ ๊ด๋ จ๋ API ๊ธฐ๋ฅ ๋ช ์ธ>
3) SDK (Software Development Kit)
(1) ์ ์
์ง์ญํ์๋ฉด ์ํํธ์จ์ด ๊ฐ๋ฐ ํคํธ๋ก SDK ์์๋ ๊ฐ๋ฐ์ ๋์์ด ๋ ๋งํ ๊ฐ๋ฐ ๋๊ตฌ ํ๋ก๊ทธ๋จ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๋๋ฒ๊ฑฐ, ๋ฌธ์, API, ์ฝ๋ ์ํ, ๊ธฐํ ์ ํธ๋ฆฌํฐ ๋ฑ์ด ํฌํจ๋์ด ์๋ค.
SDK๋ ๋ชจ๋ ๋์์ด ๋๋ “ํน์ ” ์ด์์ฒด์ ๋๋ ์๋น์ค ๋ฑ์ด ์กด์ฌํ๋ค. → ํด๋น SDK๊ฐ ์ด๋ค ๋ชฉ์ ์ ๊ฐ์ง๋ ์ง ํ์ ํ๋ ๊ฒ ์ค์ํ๋ค.
(2) ์์
- Android SDK, iOS SDK, Windows SDK
- AWS SDK, Azure SDK
4) ํ๋ ์์ํฌ (Framework)
(1) ์ ์
ํ๋ ์์ํฌ๋ ์ง์ญํ์๋ฉด ๋ผ๋(๊ธฐ๋ฐ ๊ตฌ์กฐ)๋ฅผ ๋ปํ๋ฉฐ “์ํํธ์จ์ด์ ํน์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด์ ์ํธ ํ๋ ฅํ๋ ํด๋์ค์ ์ธํฐํ์ด์ค์ ์งํฉ”์ด๋ค
์ํํธ์จ์ด์ ๊ตฌ์ฒด์ ์ธ ๋ถ๋ถ์ ํด๋นํ๋ ์ค๊ณ์ ๊ตฌํ์ ์ฌ์ฌ์ฉ์ด ๊ฐ๋ฅํ๊ฒ๋ ์ผ๋ จ์ ํ์ ํ๋ ํํ๋ก ํด๋์ค๋ค์ ์ ๊ณตํ๋ฉฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌ๋ฆฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๊ณผ ๊ตฌ์กฐ๋ฅผ ๊ฒฐ์ ํ ๋ฟ๋ง ์๋๋ผ ๊ทธ ์์ ์์ฑ๋ ๊ฐ๋ฐ์์ ์ฝ๋๊น์ง ์ ์ดํ๋ค.
ํ๋ ์์ํฌ๋ ๊ตฌ์ฒด์ ์ด๋ฉฐ ํ์ฅ ๊ฐ๋ฅํ ๊ธฐ๋ฐ ์ฝ๋๋ฅผ ๊ฐ์ง๊ณ ์์ผ๋ฉฐ, ์ค๊ณ์๊ฐ ์๋ํ๋ ์ฌ๋ฌ ๋์์ธ ํจํด์ ์งํฉ์ผ๋ก ๊ตฌ์ฑ๋์ด ์๋ค.
์ฆ, ๊ฐ๋จํ ๋งํ์๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์์ด ๊ธฐ๋ณธ์ ์ธ ์ค๊ณ๋ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ๊ณตํด์คํ ๋ ๊ฐ๋ฐ์๋ ๊ธฐ๋ฅ ๊ตฌํ์๋ง ์ง์คํ์๋ ์ทจ์ง์์ ๋ง๋ค์ด์ง ๊ฒ์ด๋ค.
(2) ํน์ง
- ํ๋ ์์ํฌ์ ์์กดํ์ฌ ๊ฐ๋ฐํด์ผ ํ๊ณ , ํ๋ ์์ํฌ๊ฐ ์ ์ํ ๊ท์น์ ์ค์ํด์ผ ํ๋ค.
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ฐ ๊ตฌ์กฐ๋ฅผ ์ด๋ ์ ๋ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ๊ฐ๋ฐ์๋ ๊ธฐ๋ฅ ๊ตฌํ์๋ง ๋งค์งํ ์ ์๋ค.
(3) ์์
- Spring, Django, React, Angular
[์ฐธ๊ณ ] ๋ผ์ด๋ธ๋ฌ๋ฆฌ (Library) vs ํ๋ ์์ํฌ (Framework)
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ ๊ฐ์ ์ฐจ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ๋ฆ์ด ๋๊ตฌ์๊ฒ ์ฃผ์ด์ ธ ์๋ ์ง์ ๋ฌ๋ ค์๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๊ฐ๋ฐ์๊ฐ ์ ์ฒด์ ์ธ ํ๋ฆ์ ๊ฐ์ง๊ณ ์์ด ์ํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํ๊ณ ์ ํ ๋, ๊ฐ์ ธ๋ค ์ฌ์ฉํ๋ ๊ฒ์ด์ง๋ง ํ๋ ์์ํฌ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธฐ๋ณธ ๋ผ๋์ ๊ตฌ์กฐ๋ฅผ ์ด๋์ ๋ ์ ๊ณตํด์ฃผ๊ธฐ ๋๋ฌธ์ ์ ์ฒด์ ์ธ ํ๋ฆ ์์ฒด๊ฐ ํ๋ ์์ํฌ์ ์์ด ๊ฐ๋ฐ์๋ ํ๋ ์์ํฌ์ ๊ท์น์ ๋ฐ๋ผ์ผ ํ๋ค.
- ์ฆ, ํ๋ ์์ํฌ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฌ๋ฆฌ ๊ฐ์ ธ๋ค ์ฌ์ฉํ๋ค๋ ๊ฐ๋ ๋ณด๋ค๋ ๊ฐ๋ฐ์๊ฐ ํ๋ ์์ํฌ๋ผ๋ ํน์ ๊ณต๊ฐ์ ๋ค์ด๊ฐ๋ค๋ ๊ฐ๋ ์ด๋ค.
Reference
https://yozm.wishket.com/magazine/detail/727/
https://goldfishhead.tistory.com/27
https://cerulean85.tistory.com/322
https://lily-im.tistory.com/16
https://jokergt.tistory.com/89
ํ๋ ์์ํฌ๋?
ํ๋ ์์ํฌ์ ๊ฐ๋ ์ ํ๋ฒ์ ์ก์์ฃผ๋ ์ข์ ๊ธ์ด๋ค.. ํ๋ ์์ํฌ๋ ๋จ์ด์ฒ๋ผ ๋ง์ด ์ฐ์ด๋ฉด์๋ ์ ๋งคํ ๋จ์ด๊ฐ ์๋ ๊ฒ ๊ฐ๋ค. ์ผ๋จ ๊ตฌ๊ธ๋ง์ ํด ๋ณธ ๊ฒฐ๊ณผ ๋ค์๊ณผ ๊ฐ์ ์ ์๋ฅผ ์ฐพ์ ์ ์์๋ค. =======
jokergt.tistory.com
ํ์ต ํ์ด์ง
www.inflearn.com
๋ผ์ด๋ธ๋ฌ๋ฆฌ, API, SDK, ํ๋ ์์ํฌ์ ๋ํด์
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ API์ ๋ํด๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ์ ์ฉํ ์ปดํฌ๋ํธ๋ค์ ์งํฉ์ด๋ผ๊ณ ๋ณผ ์์๋ค. ์ฌ๊ธฐ์์ ์ปดํฌ๋ํธ๋ ํด๋์ค, ํจ์, ๋ณ์ ๋ฑ ๊ทธ ๋ชจ๋ ๊ฒ๋ค์ด ๋ ์ ์๋ค.๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฌ์ฉ์๋ ์ด ์ปดํฌ๋ํธ
cerulean85.tistory.com
[Frontend] ํ๋ ์์ํฌ/ ๋ผ์ด๋ธ๋ฌ๋ฆฌ /ํ๋ฌ๊ทธ์ธ ๊ฐ๋ ๋ฐ ์ฐจ์ด์
ํ๋ ์์ํฌ/ ๋ผ์ด๋ธ๋ฌ๋ฆฌ /ํ๋ฌ๊ทธ์ธ 1. Framework(ํ๋ ์์ํฌ) ํ๋ ์์ํฌ๋ ๋ผ๋๋ ๊ธฐ๋ฐ๊ตฌ์กฐ๋ฅผ ๋ปํ๋๋ฐ, Application ๊ฐ๋ฐ ์ ํ์์ ์ธ ์ฝ๋, ์๊ณ ๋ฆฌ์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฐ๋ ๋ฑ๊ณผ ๊ฐ์ ๊ธฐ๋ฅ๋ค์ ์ํด
lily-im.tistory.com
'๐ ์ฐ์ฌ ์๋ฆฌ์ฆ > ์ฃผ๋์ด ๊ฐ๋ฐ์๊ฐ ์๋ฉด ์ข์ ๋ด์ฉ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฉํฐ ์ค๋ ๋ - ์์์ฑ (Atomicity) (0) | 2023.05.03 |
---|---|
๋ฉํฐ ์ค๋ ๋ - ๊ฐ์์ฑ (Visibility) (0) | 2023.05.03 |
๋์์ฑ (Concurrency) ๋ฐ ๋ณ๋ ฌ์ฑ (Parallelism) (0) | 2023.05.02 |
์ฝ๋ ์ปจ๋ฒค์ (Code Convention) (2) | 2023.03.08 |
๊ตฌ๋ฌธ ์๋ฌ, ๋ ผ๋ฆฌ ์๋ฌ, ๋ฐํ์ ์๋ฌ (0) | 2023.02.13 |