[10๋ถ„ ํ…Œ์ฝ”ํ†ก] ๐Ÿ™†โ€โ™€๏ธํ‹ฐ๋ฒ„์˜ API vs Library vs Framework

KIM YONG GUยท2023๋…„ 9์›” 29์ผ
0

์šฐ์•„ํ•œํ…Œํฌ

๋ชฉ๋ก ๋ณด๊ธฐ
10/41

API(Application Programming Interface)

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์šด์˜ ์ฒด์ œ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ์ธํ„ฐํŽ˜์ด์Šค. API์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค

  • ๊ตฌํ˜„๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ์‚ฌ์–‘๋งŒ ์ •์˜๋˜์–ด ์ž‡๋‹ค.
  • API์— ๋”ฐ๋ผ ์ ‘๊ทผ ๊ถŒํ•œ์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • JAVA API, ์—ฌ๋Ÿฌ ๊ธฐ์—…๋“ค์˜ ์˜คํ”ˆ API.

Library

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์„ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ธฐ๋Šฅ(ํ•จ์ˆ˜)์„ ๋ชจ์•„ ๋†“์€ ์†Œํ”„ํŠธ์›จ์–ด

  • ๋…๋ฆฝ์„ฑ์„ ๊ฐ€์ง„๋‹ค.
  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ๋Šฅ๋™์ ์œผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
  • Apache Commons, Guava, Lombok, jQuery

๋Šฅ๋™์ ์ด๋ž€?
1. ํ•™์ƒ๋“ค์˜ ์„ฑ์ ์ด ๋‹ด๊ธด ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ๋ฐ›๋Š”๋‹ค.
2. ํ•„์š”ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์›ํ•˜๋Š” ๊ฐ’์„ ๋ฐ›๋Š”๋‹ค.

Framework

์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์†Œํ”„ํŠธ์›จ์–ด ์†”๋ฃจ์…˜ ๊ฐœ๋ฐœ์„ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ์ œ๊ณต๋œ ์†Œํ”„ํŠธ์›จ์–ด ํ™˜๊ฒฝ.

Level 2 : Spring ํ”„๋ ˆ์ž„์›Œํฌ ๊ธฐ๋ฐ˜์œผ๋กœ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •
Level 3 : Java๋ฅผ ์ด์šฉํ•ด ์›น ์„œ๋ฒ„, ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๊ฐœ๋ฐœํ•˜๋Š” ๊ณผ์ •

ํ”„๋ ˆ์ž„์›Œํฌ์˜ ํŠน์ง•์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • ์ƒํ˜ธํ˜‘๋ ฅํ•˜๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ง‘ํ•ฉ์ด๋‹ค.
  • ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์ˆ˜๋™์ ์œผ๋กœ ํ”„๋ ˆ์ž„์›Œํฌ์— ์˜ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.
  • Spring Framework, Junit, Ruby on Rails

๋งบ์œผ๋ฉฐ

  • Library์™€ API์˜ ์ฐจ์ด์ ์€ ๊ตฌํ˜„ ๋กœ์ง์˜ ์œ ๋ฌด์ด๋‹ค.
  • Library์™€ Framework์˜ ์ฐจ์ด์ ์€ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ํ๋ฆ„ ์ฃผ๋„๊ถŒ์„ ๋ˆ„๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š๋ƒ ์ด๋‹ค. (์‘์šฉํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ€์ง€๊ณ  ์žˆ๋Š๋ƒ vs ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ๊ฐ€์ง€๊ณ  ์žˆ๋Š๋ƒ)
profile
Engineer, Look Beyond the Code.

0๊ฐœ์˜ ๋Œ“๊ธ€