λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
πŸ’» DEV/Computer Science

[CS] 라이브러리 & ν”„λ ˆμž„μ›Œν¬

by vodkassi 2021. 5. 13.
728x90

✨ Library λž€?

ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜λŠ”λ° ν•„μš”ν•œ μ—¬λŸ¬ κΈ°λŠ₯을 ν™œμš©ν•  수 μžˆλ„λ‘ 묢어놓은 ν•¨μˆ˜λ‚˜ κΈ°λŠ₯의 집합이닀.

자주 ν™œμš©ν•˜κ±°λ‚˜ ν•„μš”ν•œ κΈ°λŠ₯을 νŽΈλ¦¬ν•˜κ²Œ μ‚¬μš©ν•  수 μžˆλ„λ‘ ν•΄μ€€λ‹€.

μ œμ–΄κΆŒμ΄ κ°œλ°œμžμ—κ²Œ 주어진닀.

예 : JS 의 React 와 jQuery, Python 의 numpy

 

 

Library 와 Module 의 μ°¨μ΄λŠ”?

 

Module 은 ν•¨μˆ˜μ™€ 클래슀, λ³€μˆ˜κ°€ 슀크립트둜 이루어져어 μžˆλŠ” ν•˜λ‚˜μ˜ 파일이자 객체. import ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ‹€.

Library λŠ” module 의 μ§‘ν•©μ²΄λ‘œ λΆˆλ¦¬κΈ°λ„ ν•˜λ‚˜, κ·Έ λ²”μœ„κ°€ λ‹€μ–‘ν•˜μ—¬ κ°œλ°œμ—μ„œλŠ” 같은 κ°œλ…μœΌλ‘œ μ‚¬μš©λ˜κ³€ ν•œλ‹€.

 

✨ Framework λž€?

ν”„λ‘œκ·Έλž¨μ„ κ°œλ°œν•˜κΈ° μœ„ν•œ ꡬ쑰λ₯Ό μ œκ³΅ν•˜λŠ” 개발 ν™˜κ²½μ΄λ‹€. (& κ·Έ 자체둜 Application 이닀.)

자주 μ‚¬μš©λ˜λŠ” μ—¬λŸ¬ 클래슀 (λ³€μˆ˜μ™€ ν•¨μˆ˜μ˜ 묢음) λ₯Ό μ •ν•΄λ‘” 흐름에 맞좰 μ“Έ 수 μžˆλ„λ‘ 지원해쀀닀.

Application 을 μ™„μ„±ν•  수 μžˆλŠ” 기본적인 λΌˆλŒ€λ₯Ό μ œκ³΅ν•΄μ€€λ‹€.

예 : JS 의 Vue.js 와 Angular, Java 의 Spring, Python 의 Django

 

Library vs Framework

✨ Library vs Framework:

IoC (Inversion of Control): 

Library λ₯Ό μ‚¬μš©ν•  λ•Œ μ œμ–΄κΆŒ(control)을 가지고 μžˆλŠ” μ£Όμ²΄λŠ” μ½”λ“œ μž‘μ„±μžμ΄λ‹€. μ½”λ“œ μž‘μ„± 쀑 ν•„μš”μ— 따라 Library λ₯Ό ν˜ΈμΆœν•˜κΈ° λ•Œλ¬Έμ΄λ‹€. Framework 을 μ‚¬μš©ν•  λ•ŒλŠ” Framerwork κ°€ μ œμ–΄κΆŒμ„ 가지고 μžˆλ‹€. λ”°λΌμ„œ μ½”λ“œ μž‘μ„±μžλŠ” μ½”λ“œ μœ„μΉ˜, μ½”λ“œ μž‘μ„±λ²• λ“± Framework 의 κ·œμΉ™μ„ 따라야 ν•œλ‹€.

 

✨ 마무리

Reactκ°€ Framework인쀄 μ•Œκ³  μž‘μ—…ν–ˆμ—ˆλŠ”λ°, React λŠ” Library κ°€ λ§žλ‹€. (κ³΅μ‹λ¬Έμ„œμ—λ„ "μ‚¬μš©μž μΈν„°νŽ˜μ΄μŠ€λ₯Ό λ§Œλ“€κΈ° μœ„ν•œ JavaScript 라이브러리"둜 ν‘œκΈ°λ˜μ–΄ μžˆλ‹€. ν•˜μ§€λ§Œ 더 μ•Œμ•„λ³Όμˆ˜λ‘ React λŠ” Library κ°€ μ•„λ‹Œ Framework 라고 μ£Όμž₯ν•˜λŠ” μ§„μ˜λ„ μžˆλ‹€λŠ” 점을 λ°œκ²¬ν–ˆλ‹€. μ‹€μ§ˆμ μœΌλ‘œ ν™œμš©λ˜λŠ” 방식이 Framework 와 μœ μ‚¬ν•΄μ„œ 그런 λ“― ν•˜λ‹ˆ, 관심을 가지고 λ…Όμ˜λ₯Ό μ§€μΌœλ³΄μ•„μ•Ό ν•  것이닀. 

 

참고자료

λŒ“κΈ€