์๋ก
API์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ ํ๋ ์์ํฌ ์ธ ๋จ์ด์ ์ฐจ์ด์ ์ ๋ํด์ ๋จธ๋ฆฟ์์ผ๋ก๋ ์ฝ๊ฒ ๋ ์ค๋ฅด์ง๋ง ๋ง์ ์ ํํ ์ฐจ์ด๊ฐ ๋ญ๋๊ณ ๋ฌผ์ด๋ณด๋ฉด ๋ ผ๋ฆฌ์ ์ผ๋ก ์ค๋ช ํ๊ธฐ๊ฐ ํ๋ญ๋๋ค. ๊ทธ๋์ ์ด๋ฒ ๊ธฐํ์ ๊ธ์ ์ ๋ฆฌํจ์ผ๋ก์จ ํ๋ฒ ๋จ๋จํ ๊ฐ๋ ์ ์ก๊ณ ์ ํฉ๋๋ค.
๋ชฉ์ฐจ
1. API๋?
2. ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋?
3. ํ๋ ์์ํฌ๋?
4. API์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด
5. ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ์ฐจ์ด
API(Application Programming Interface)
API(Application Programming Interface)๋ ์์ฉ ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ ์ ์๋๋ก, ์ด์์ฒด์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์ ์ดํ ์ ์๊ฒ ๋ง๋ ์ธํฐํ์ด์ค๋ฅผ ๋ปํฉ๋๋ค. - ์ํค๋ฐฑ๊ณผ
์ฝ๊ฒ ์์๋ฅผ ๋ค์ด์ ์ค๋ช ํ๋ฉด API๋ ๋ ์คํ ๋์ '์ ์'์ ๋๋ค.
๋ ์คํ ๋์์ ์๋์๊ฒ ์ฃผ๋ฌธ ๊ฐ๋ฅํ(์ ํ ๊ฐ๋ฅํ) ๋ฉ๋ด๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ์๋์ด ๊ณ ๋ฅธ ์์์ ์ฃผ๋ฐฉ์ ์ ๋ฌ ํ, ์์์ด ๋์ค๋ฉด ๊ณ ๊ฐ์๊ฒ ์ ๋ฌํ๋ '์ ์'์ด API์ ๋๋ค.
ํ์ฌ ๊ธ์ต, ์์ , ์ ์ ์๊ฑฐ๋, ๋ฑ ๊ธฐํ ์ฌ๋ฌ ์ ์ข ์ ์ํ ์๋ฐฑ ๊ฐ์ API๊ฐ ์์ผ๋ฉฐ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํํ๋ ๋ชจ๋ ์์ ์ ๋ฌผ๋ก ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํจ๊ป ์ํํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ํ๋ก๊ทธ๋๋ฐํ๋ ์์ ๋ ํฌํจํ๊ณ ์์ต๋๋ค. open API๋ ๊ฐ๋ฐ์๋ผ๋ฉด ๋๊ตฌ๋ ์ฌ์ฉํ ์ ์๋๋ก ๊ณต๊ฐ๋ API๋ฅผ ๋งํฉ๋๋ค. ์๋์ ๊ตฌ๊ธ ๋งต, ์์ ๋ก๊ทธ์ธ(๋ค์ด๋ฒ, ์นด์นด์ค, ํ์ด์ค๋ถ ๋ฑ)์ด openAPI์ ๋ํ์ ์ธ ์๋ผ๊ณ ํ ์ ์์ต๋๋ค.
ํน์ง
API๋ ํ์ํ ๋ถ๋ถ์ ์์ฒญํ์ฌ ์๋ต๋ฐ๋ ์๋น์ค ๊ฐ์ ๋ค๋ฆฌ์ ๊ฐ์ ์ญํ ์ ํ๋ค.
- ๊ตฌํ๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์ฌ์๋ง ์ ์๋์ด ์๋ค.
- API์ ๋ฐ๋ผ ์ ๊ทผ ๊ถํ์ด ํ์ํ ์ ์๋ค.
- ๋ง ๊ทธ๋๋ ์ธํฐํ์ด์ค์ด๊ธฐ์ ์์๋ ๋ฌด์์ด ๋ค์ด์๋์ง ์ ์ ์๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ(Libary)
๋ผ์ด๋ธ๋ฌ๋ฆฌ(Libary)๋ ์์ฉ ํ๋ก๊ทธ๋จ ๊ฐ๋ฐ์ ์ํด ํ์ํ ๊ธฐ๋ฅ(ํจ์)์ ๋ชจ์ ๋์ ์ํํธ์จ์ด์ ๋๋ค. ๊ตฌ์ฑ ๋ฐ์ดํฐ, ๋ฌธ์, ๋์๋ง ์๋ฃ, ๋ฉ์์ง ํ, ๋ฏธ๋ฆฌ ์์ฑ๋ ์ฝ๋, ์๋ธ๋ฃจํด(ํจ์), ํด๋์ค, ๊ฐ, ์๋ฃํ ๋ฑ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ฆ, ํ๋ก๊ทธ๋จ ์ ์ ์ ํ์ํ ๊ธฐ๋ฅ์ด๋ผ๊ณ ํ ์ ์์ผ๋ฉฐ, ์๋์ฐจ ๋ฐํด, ์๋์ฐจ ํค๋๋ผ์ดํธ, ์๋์ฐจ ์์ด๋ฐฑ ๋ฑ์ ์๋ก ๋ค ์ ์์ต๋๋ค.
์ฌ์ฉ ์ฌ๋ถ๋ ์ฝ๋ ์์ฑ์ ์ ํ ์ฌํญ์ด๋ฉฐ, ์๋ก์ด ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ์ ์์๋ ์๊ฒฉํ ๊ท์น์ด ์กด์ฌํ์ง ์๊ธฐ์ ์ ์ ์๋์ ๋ง๊ฒ ์์ฑ๋ง ํ๋ฉด ๋ฉ๋๋ค.
ํน์ง
- ๋ ๋ฆฝ์ฑ์ ๊ฐ์ง๋ค.
- ์์ฉ ํ๋ก๊ทธ๋จ์ด ๋ฅ๋์ (ํ์ํ ๋)์ผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
- Apache Commons, Guava, Lombok, jQuery ๋ฑ์ด ์๋ค.
ํ๋ ์์ํฌ(Framework)
ํ๋ ์์ํฌ(Framework)๋ ์์ฉํ๋ก๊ทธ๋จ์ด๋ ์ํํธ์จ์ด์ ์๋ฃจ์ ๊ฐ๋ฐ์ ์์ํ๊ฒ ํ๊ธฐ ์ํด ์ ๊ณต๋ ์ํํธ์จ์ด ํ๊ฒฝ์ ๋๋ค.
ํ๋ก๊ทธ๋จ์ ๊ธฐ๋ณธ ๊ตฌ์กฐ(๋ผ๋)๋ฅผ ์๋ฏธํ๋ฉฐ, ์๋์ฐจ๋ก ์๋ฅผ ๋ค์์ ๋ ์๋์ฐจ์ ํ๋ ์์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค. ์ํ๋ ๊ธฐ๋ฅ ๊ตฌํ์๋ง ์ง์คํ์ฌ ๋น ๋ฅด๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ํ ๊ธฐ๋ฅ์ ๊ฐ์ถ๊ณ ์๋ ๊ฒ์ผ๋ก ์์์ ์ค๋ช ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. ํ๋ ์์ํฌ๋ง์ผ๋ก๋ ์คํ๋์ง ์์ผ๋ฉฐ ๊ธฐ๋ฅ์ ์ถ๊ฐํด์ผ ํ๊ณ , ํ๋ ์์ํฌ์ ์์กดํ์ฌ ํ๋ ์์ํฌ๊ฐ ์ ์ํ ๊ท์น์ ์ค์ํ์ฌ ๊ฐ๋ฐํด์ผ ํฉ๋๋ค.
ํน์ง
- ์ํธ ํ๋ ฅํ๋ ํด๋์ค์ ์ธํฐํ์ด์ค์ ์งํฉ์ด๋ค.
- ์์ฉ ํ๋ก๊ทธ๋จ์ด ์๋์ ์ผ๋ก ํ๋ ์์ํฌ์ ์ํด ์ฌ์ฉ๋๋ค. (๊ท์น์ ์ง์ผ๊ฐ๋ฉฐ ์ฌ์ฉํ๋ ๊ฒ)
- ์ํํธ์จ์ด์ ํ์ ์ ๊ณต(๊ท์น์ด ์ ํด์ ธ ์์)
- Spring, Django, React, Angular ๋ฑ์ด ์๋ค.
API์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ์ฐจ์ด
๊ตฌํ ๋ก์ง์ ์ ๋ฌด์ ๋ฐ๋ผ ๊ฐ๋ฆฝ๋๋ค.
- API: ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ ๊ท์ฝ ๋ฐ ํธ์ถ์ ์ํ ์๋จ์ผ๋ก์จ ๊ตฌํ ๋ก์ง์ด ํ์ํ์ง ์์ต๋๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ์ปดํฌ๋ํธ ์์ฒด๋ก์จ, ๊ตฌํ ๋ก์ง์ด ์กด์ฌํฉ๋๋ค.
๋น์ ๋ฅผ ํ์๋ฉด, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋๊ตฌ ์์ฒด์ด๊ณ API๋ "๋๊ตฌ ์ฃผ์ธ์!"๋ผ๊ณ ์์ฒญํ๋ ๊ฒ์ด๋ผ ๋ณผ ์ ์์ต๋๋ค.
๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ์ ์ฐจ์ด
์์ฉํ๋ก๊ทธ๋จ์ ํ๋ฆ ์ฃผ๋๊ถ์ ๋๊ฐ ๊ฐ์ง๊ณ ์๋์ง, ์ฆ ๋๊ฐ ๋๊ตฌ๋ฅผ ์ปจํธ๋กคํ๋๊ฐ์ ๋ฐ๋ผ ๊ฐ๋ฆฝ๋๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ: ๊ฐ๋ฐ์๊ฐ ์ฝ๋๋ฅผ ์ปจํธ๋กคํฉ๋๋ค. ์ฆ, ๊ฐ๋ฐ์๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํธ์ถํฉ๋๋ค.
- ํ๋ ์์ํฌ: ๊ฐ๋ฐ์๊ฐ ํ๋ ์์ํฌ์ ๊ท์น์ ๋ฐ๋ผ ์ฝ๋ฉ์ ํฉ๋๋ค. ์ฆ ํ๋ ์์ํฌ๊ฐ ๊ฐ๋ฐ์๋ฅผ ํธ์ถํฉ๋๋ค.
'BackEnd๐ฑ > Etc' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CI/CD] CI/CD๋?, ์ง์์ ํตํฉ(Continuous Integration) ๊ณผ ์ง์์ ๋ฐฐํฌ(Continuous Deployment) (0) | 2022.05.31 |
---|---|
[AWS] ec2 ์ธ์คํด์ค ๋ฐ RDS ์ฌ๋ผ์ง ํ์ (3) | 2022.05.30 |
ํด๋ผ์ฐ๋์ ์ดํด: IaaS, PaaS, SaaS (0) | 2022.04.25 |
Nginx๋ ๋ฌด์์ธ๊ฐ? (3) | 2022.04.20 |
Forward Proxy์ Reverse Proxy (0) | 2022.04.18 |
URI, URL, ๊ทธ๋ฆฌ๊ณ URN (3) | 2022.04.16 |
๋๊ธ