βš™οΈ 기타 개발 자료

ν”„λ ˆμž„μ›Œν¬ vs 라이브러리 κ°œλ…

μ†Œμ˜ πŸ€ 2025. 2. 16. 22:57
λ°˜μ‘ν˜•

 

λ“€μ–΄κ°€λ©΄μ„œ
μ•ŒκΈ°λŠ” μ•„λŠ”λ°
λˆ„κ΅°κ°€ ꡬ술둜 물어보면, λ­”κ°€ μ‹œμ›ν•˜κ²Œ λŒ€λ‹΅ν•˜κΈ° νž˜λ“  질문.
"ν”„λ ˆμž„μ›Œν¬μ™€ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” λ‹€λ₯Έκ±°μ•Ό?"
였늘 λ‹΅ν•΄λ³Έλ‹€..

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

πŸ”ν”„λ ˆμž„μ›Œν¬
μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ 보닀 효율적으둜 κ°œλ°œν•  수 μžˆλ„λ‘ ν•˜λŠ” μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ†Œν”„νŠΈμ›¨μ–΄ ꡬ성 μš”μ†Œμ˜ λͺ¨μŒμ΄λ‹€.

μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ ˆμž„μ›Œν¬μ—λŠ” νŠΉμ • μ†Œν”„νŠΈμ›¨μ–΄ ν‘œμ€€ 및 ν”„λ‘œν† μ½œμ„ 기반으둜 μž¬μ‚¬μš© κ°€λŠ₯ν•œ μ½”λ“œ λͺ¨λ“ˆμ΄ ν¬ν•¨λ˜μ–΄ μžˆλ‹€. λ”°λΌμ„œ μƒˆλ‘œμš΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ ν‘œμ€€ν™”λœ λ°©μ‹μœΌλ‘œ κ°œλ°œν•  수 μžˆλ‹€.


πŸ“šλΌμ΄λΈŒλŸ¬λ¦¬
미리 κΈ°λŠ₯λ“€(μ±…)을 ν•„μš”ν•  λ•Œλ§ˆλ‹€ 기둝된 μ½”λ“œλ₯Ό λΉΌμ™€μ„œ μž¬μ‚¬μš©ν•  수 μžˆλ„λ‘ ν΄λž˜μŠ€λ‚˜ ν•¨μˆ˜κ°€ λͺ¨μ—¬μžˆλŠ” μ§‘ν•©μ†Œ(λ„μ„œκ΄€)이닀.

κ°œλ°œμžκ°€ λͺ¨λ“  κΈ°λŠ₯을 맀번 직접 κ°œλ°œν•˜κΈ°μ—” 생산성이 λ–¨μ–΄μ§€λ‹ˆ 라이브러리λ₯Ό μ‚¬μš©ν•œλ‹€.


ν”„λ ˆμž„μ›Œν¬μ™€ λΌμ΄λΈŒλŸ¬λ¦¬λŠ” λͺ¨λ‘ μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ 반볡적인 μž‘μ—…μ„ μ—†μ•  μ½”λ“œ 쀑볡을 μ€„μ—¬μ£ΌλŠ” λ„κ΅¬μ΄μ§€λ§Œ, "μ œμ–΄ νλ¦„μ˜ 주체와 μ‚¬μš© 방식"에 λŒ€ν•œ 차이가 μžˆλ‹€.

μ œμ–΄ νλ¦„μ˜ 주체의 차이

πŸ”ν”„λ ˆμž„μ›Œν¬
μ œμ–΄ νλ¦„μ˜ 주체가 ν”„λ ˆμž„μ›Œν¬ μžμ²΄μ΄λ‹€.
κ°œλ°œμžλŠ” ν”„λ ˆμž„μ›Œν¬μ—μ„œ μ œκ³΅ν•˜λŠ” κ·œμΉ™κ³Ό ꡬ쑰에 맞좰 μ½”λ“œλ₯Ό μž‘μ„±ν•˜κ³ , κ·Έ κ³Όμ •μ—μ„œ ν”„λ ˆμž„μ›Œν¬κ°€ ν•„μš”ν•œ μ‹œμ μ— 개발자의 μ½”λ“œλ₯Ό ν˜ΈμΆœν•œλ‹€.
즉, ν”„λ ˆμž„μ›Œν¬κ°€ μ œμ–΄ 흐름을 μ£Όλ„ν•˜κ³ , κ°œλ°œμžλŠ” κ·Έ 흐름에 맞좰 μ½”λ“œλ₯Ό μ‚½μž…ν•˜λŠ” ν˜•νƒœμ΄λ‹€.

 

πŸ“šλΌμ΄λΈŒλŸ¬λ¦¬
λΌμ΄λΈŒλŸ¬λ¦¬λŠ” κ°œλ°œμžκ°€ ν˜ΈμΆœν•˜λŠ” 도ꡬ이닀.
κ°œλ°œμžκ°€ ν•„μš”ν•  λ•Œ 라이브러리의 ν•¨μˆ˜λ‚˜ λ©”μ„œλ“œλ₯Ό ν˜ΈμΆœν•˜μ—¬ κΈ°λŠ₯을 μ‚¬μš©ν•œλ‹€.
즉, μ œμ–΄ 흐름은 κ°œλ°œμžμ—κ²Œ μžˆμŠ΅λ‹ˆλ‹€. κ°œλ°œμžκ°€ 라이브러리λ₯Ό ν˜ΈμΆœν•˜λ©΄ κ·Έλ•Œ λΌμ΄λΈŒλŸ¬λ¦¬κ°€ μˆ˜ν–‰ν•˜κ³ , λ‹€μ‹œ μ œμ–΄κΆŒμ΄ κ°œλ°œμžμ—κ²Œ λŒμ•„κ°„λ‹€.

μ‚¬μš© λ°©μ‹μ˜ 차이

πŸ”ν”„λ ˆμž„μ›Œν¬
ν”„λ ˆμž„μ›Œν¬λŠ” νŠΉμ •ν•œ ꡬ쑰와 νŒ¨ν„΄μ„ μš”κ΅¬ν•œλ‹€. ν”„λ ˆμž„μ›Œν¬λŠ” κ°œλ°œμžκ°€ μ½”λ“œλ₯Ό μž‘μ„±ν•  λ•Œ 이λ₯Ό νŠΉμ •ν•œ λ°©μ‹μœΌλ‘œ κ΅¬μ„±ν•˜λ„λ‘ μœ λ„ν•œλ‹€.
예λ₯Ό λ“€μ–΄, Spring FrameworkλŠ” MVC(Model-View-Controller) νŒ¨ν„΄μ„ λ”°λ₯΄λ©°, κ°œλ°œμžλŠ” 이 νŒ¨ν„΄μ— λ§žλŠ” ꡬ쑰둜 μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ μž‘μ„±ν•΄μ•Ό ν•œλ‹€.

 

πŸ“šλΌμ΄λΈŒλŸ¬λ¦¬
λΌμ΄λΈŒλŸ¬λ¦¬λŠ” 보톡 λ‹¨λ…μœΌλ‘œ μ‚¬μš©λ˜λ©°, κ°œλ°œμžκ°€ μžμ‹ μ΄ μ›ν•˜λŠ” κΈ°λŠ₯만 μ„ νƒμ μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€.
예λ₯Ό λ“€μ–΄, Javaμ—μ„œ λ‹€μ–‘ν•œ μœ ν‹Έλ¦¬ν‹°λ₯Ό μ œκ³΅ν•˜λŠ” λΌμ΄λΈŒλŸ¬λ¦¬λ“€μ΄ μžˆμ„ λ•Œ, κ·Έ 쀑 ν•„μš”ν•œ λΆ€λΆ„λ§Œ μ‚¬μš©ν•˜κ³  λ‚˜λ¨Έμ§€λŠ” λ¬΄μ‹œν•  수 μžˆλ‹€.

μ˜ˆμ‹œ: Spring Framework vs Java Library

Spring Framework
μ €λ²ˆ κΈ€μ—μ„œ μŠ€ν”„λ§μ˜ νŠΉμ§•μ„ λ‹€λ£¨μ—ˆκ³ , κ·Έ 쀑 "μ œμ–΄μ˜ μ—­μ „"으둜 μŠ€ν”„λ§μ΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ˜ 흐름을 κ΄€λ¦¬ν•œλ‹€λŠ” 것을 λ°°μ› λ‹€.μ°Έκ³ : Spring Framework의 λ“±μž₯ λ°°κ²½κ³Ό νŠΉμ§•

 

[Spring] WP 4-1. Spring을 μ“°λŠ” 이유: Spring의 λ“±μž₯ λ°°κ²½κ³Ό νŠΉμ§• feat. EJB

μŠ€ν”„λ§, μ–΄λ–€ 점이 쒋은데?

velog.io

https://syleeblog.tistory.com/20?category=1149957

 

[Spring] WP 4-1. Spring을 μ“°λŠ” 이유: Spring의 λ“±μž₯ λ°°κ²½κ³Ό νŠΉμ§• feat. EJB

πŸ€ λ“€μ–΄κ°€λ©΄μ„œμ™œ Spring을 μ‚¬μš©ν• κΉŒ? ν˜„μž¬ ν˜„μ—…μ—μ„œ κ°€μž₯ 많이 μ“°μ΄λŠ” ν”„λ ˆμž„μ›Œν¬λŠ” 단연 Spring이 1μœ„μ΄λ‹€.κ·Έλž˜μ„œ λ‚˜λ„ Spring, SpringBootλ₯Ό 배우고 μžˆμ§€λ§Œ Spring의 μ–΄λ–€ 점이 쒋은지, Spring을 μ™œ μ“°λŠ”

syleeblog.tistory.com

 

 

 κ°μ²΄μ˜ 생λͺ… μ£ΌκΈ°λŠ” κ°œλ°œμžκ°€ μ•„λ‹ˆλΌ μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬κ°€ κ΄€λ¦¬ν•˜λ©° μ œμ–΄μ˜ μ£Όλ„κΆŒμ€ μŠ€ν”„λ§ ν”„λ ˆμž„μ›Œν¬κ°€ κ°€μ§„λ‹€.

λ˜ν•œ MVC νŒ¨ν„΄μ²˜λŸΌ 컨트둀러-μ„œλΉ„μŠ€-λ ˆν¬μ§€ν† λ¦¬ μ•„ν‚€ν…μ²˜ λ“± ν”„λ ˆμž„μ›Œν¬μ— λ§žλŠ” ꡬ쑰에 κ°œλ°œμžκ°€ 따라야 ν•œλ‹€.

 

Java Libirary
 μžλ°” μ½”λ“œμ—μ„œ μ–΄λ–€ νŠΉμ •ν•œ 라이브러리λ₯Ό μ“°κ³  μ‹Άλ‹€λ©΄ μ•„λž˜μ²˜λŸΌ importλ₯Ό ν•΄μ•Όν•œλ‹€.
μ΄λŸ¬ν•œ μ½”λ“œλŠ” κ°œλ°œμžκ°€ 직접 μž‘μ„±ν•˜λŠ” κ²ƒμœΌλ‘œ μ œμ–΄μ˜ μ£Όλ„κΆŒμ΄ κ°œλ°œμžμ—κ²Œ μžˆλ‹€.

λΌμ΄λΈŒλŸ¬λ¦¬λž€ κ°œλ°œμžκ°€ 전체적인 κ·œμΉ™μ„ λ”°λ₯΄λŠ” 것이 μ•„λ‹ˆλΌ κ°œλ°œμžκ°€ μ›ν•˜λŠ” λΆ€λΆ„λ§Œ κ°€μ Έμ˜€λŠ” 것이닀.

 

import java.util.ArrayList;
import java.util.List;

μš”μ•½

λΌμ΄λΈŒλŸ¬λ¦¬λŠ” μ œμ–΄ 흐름이 κ°œλ°œμžμ—κ²Œ 있으며, ν•„μš”ν•œ κΈ°λŠ₯을 μ„ νƒμ μœΌλ‘œ ν˜ΈμΆœν•˜μ—¬ μ‚¬μš©ν•œλ‹€.
ν”„λ ˆμž„μ›Œν¬λŠ” μ œμ–΄ 흐름이 ν”„λ ˆμž„μ›Œν¬μ—κ²Œ 있으며, κ°œλ°œμžλŠ” κ·Έ 흐름에 맞좰 μ½”λ“œλ₯Ό μž‘μ„±ν•œλ‹€.

λ°˜μ‘ν˜•