CS

ν”„λ ˆμž„μ›Œν¬μ™€ 라이브러리

moaoh 2024. 3. 22. 01:13

ν”„λ ˆμž„μ›Œν¬λž€ 무엇이고 λΌμ΄λΈŒλŸ¬λ¦¬λž€ 무엇인가?

 

ν”„λ ˆμž„ μ›Œν¬

ν”νžˆ μ‚¬λžŒλ“€μ΄ 많이 μ΄μ•ΌκΈ°ν•˜λŠ” Spring, Django, React 같이 이미 μ •ν•΄μ§„ ꡬ쑰가 μžˆμ–΄μ„œ κ·Έ ꡬ쑰 자체λ₯Ό λ°”κΏ€ μˆ˜λŠ” μ—†κ³  μ •ν•΄μ§„ ꡬ쑰에 μˆœμ‘ν•˜λ©° λ”°λΌκ°€λŠ” 방식을 μ΄μ•ΌκΈ°ν•œλ‹€.

κ·Έλž˜μ„œ ν”„λ ˆμž„μ›Œν¬κ°€ μ œκ³΅ν•˜λŠ” 틀에 λ”°λΌμ„œ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Όν•˜λ‹€λ³΄λ‹ˆ ν†΅μ œκΆŒμ΄ μ‚¬μš©μžμ—κ²Œ μžˆμ§€μ•Šκ³  ν”„λ ˆμž„ μ›Œν¬κ°€ κ°€μ§€κ³  μžˆλ‹€κ³  이야기 ν•œλ‹€.

 

라이브러리

κ°œλ°œμžκ°€ 직접 μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ„œ λ§Œλ“œλŠ” class같은 것듀을 μ΄μ•ΌκΈ°ν•œλ‹€κ³ ν•œλ‹€.

상황에 λ”°λΌμ„œ μ–΄λ–€ 상황에 μ–΄λ– ν•œ classλ₯Ό μ‚¬μš©ν•  것인지 λ“± μ‚¬μš©μžμ˜ λ§ˆμŒλŒ€λ‘œ μ’Œμ§€μš°μ§€ν•  수 있기 λ•Œλ¬Έμ— ν†΅μ œκΆŒμ΄ λΌμ΄λΈŒλŸ¬λ¦¬μ—κ²Œ μžˆμ§€μ•Šκ³  μ‚¬μš©μžκ°€ κ°€μ§€κ³  μžˆλ‹€κ³  μ΄μ•ΌκΈ°ν•œλ‹€.

 

ν”„λ ˆμž„μ›Œν¬μ™€ 라이브러리의 차이점

β€œμ œμ–΄νλ¦„μ„ λˆ„κ°€ κ°€μ§€κ³  μžˆλŠ”κ°€β€λ‘œ 차이점이 갈리게 λœλ‹€.

ν”„λ ˆμž„ μ›Œν¬λŠ” 직접 ν†΅μ œκΆŒμ„ κ°€μ§€κ³ μžˆλŠ” 반면 λΌμ΄λΈŒλŸ¬λ¦¬μ— ν†΅μ œκΆŒμ€ μ‚¬μš©μžμ—κ²Œ λ‹¬λ €μžˆλ‹€.

 

μ œμ–΄μ˜ μ—­μ „ IoC(Inversion of Contorl)

ν•΄λ‹Ή κ°œλ…μ— λŒ€ν•΄ 곡뢀λ₯Ό ν•˜λ‹€κ°€ ν”„λ ˆμž„μ›Œν¬κ³Ό 라이브러리의 차이점에 λŒ€ν•΄μ„œ μ•Œμ•„λ³΄κ²Œ λ˜μ—ˆλ‹€.

ν•˜λ‚˜μ˜ κ΅¬ν˜„κ°μ²΄κ°€ ν”„λ‘œκ·Έλž¨μ˜ μ œμ–΄ 흐름을 슀슀둜 μ‘°μ’…ν•˜λŠ”κ²ƒμ΄ μžμ—°μŠ€λŸ¬μš΄ νλ¦„μ΄μ—ˆμ§€λ§Œ,

AppConfigλΌλŠ” κ°œλ…μ΄ λ‚˜μ˜€κ³ λΆ€ν„°λŠ” κ΅¬ν˜„κ°μ²΄λŠ” μžμ‹ μ˜ λ‘œμ§μ„ μ‹€ν–‰ν•˜λŠ” 역할을 λ‹΄λ‹Ήν•˜κ³ , ν”„λ‘œκ·Έλž¨μ˜ μ œμ–΄ 흐름을 AppConfigκ°€ κ°€μ Έκ°€λŠ” ν˜•μ‹μ„ μ‚¬μš©ν•¨μœΌλ‘œμ„œ

객체가 직접 μ œμ–΄ 흐름을 μ œμ–΄ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μ™ΈλΆ€μ—μ„œ κ΄€λ¦¬ν•˜λŠ”κ²ƒμ„ μ œμ–΄μ˜ μ—­μ „(IoC)라고 ν•œλ‹€κ³ ν•œλ‹€.


ν”„λ ˆμž„μ›Œν¬ vs 라이브러리

@μš°μ•„ν•œν˜•μ œλ“€ μ΅œμ—°μ†Œ κΈ°μˆ μ΄μ‚¬ μΆœμ‹  κΉ€μ˜ν•œμ˜ μŠ€ν”„λ§ μ™„μ „ 정볡