## `Spring` μ΄λž€? **μ—”ν„°ν”„λΌμ΄μ¦ˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ κ°œλ°œν•˜λ €κ³  개발된 κ²½λŸ‰ ν”„λ ˆμž„μ›Œν¬ λͺ¨μŒ**. κΈ°μ‘΄ λ³΅μž‘ν•˜κ³  νμ‡„μ μ΄λ˜ EJB의 λŒ€μ•ˆμœΌλ‘œ 개발된 μ˜€ν”ˆμ†ŒμŠ€ ν”„λ ˆμž„μ›Œν¬μ΄λ‹€. νŠΉμ • κΈ°μˆ μ„ κ΅¬ν˜„ν•  ν•„μš” 없이 순수 μžλ°” ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ“― κ°œλ°œν•  수 μžˆλ‹€λŠ” 점(1), μ‰½κ²Œ ν™•μž₯ν•  수 μžˆλŠ” μƒνƒœκ³„κ°€ κ°–μΆ”μ–΄μ‘Œλ‹€λŠ” 점(2), μ˜€ν”ˆ μ†ŒμŠ€ κΈ°μ—¬ ν™œλ™μ΄ μ™•μ„±ν•˜μ—¬ μœ μ§€ λ³΄μˆ˜κ°€ 잘 λœλ‹€λŠ” 점(3), κ·ΈλŸ¬λ©΄μ„œλ„ λͺ¨νšŒμ‚¬μΈ VMWare의 관리λ₯Ό 톡해 ν”„λ ˆμž„μ›Œν¬μ˜ 질이 보μž₯이 λœλ‹€λŠ” 점(4) λ“± 수 λ§Žμ€ μž₯점을 κ°–μΆ° **사싀상(de facto) μžλ°” ν‘œμ€€ 개발 ν”„λ ˆμž„μ›Œν¬**이닀. 특히 κ΅­λ‚΄μ˜ 경우 [[1. μ „μžμ •λΆ€ ν”„λ ˆμž„μ›Œν¬λž€|μ „μžμ •λΆ€ ν”„λ ˆμž„μ›Œν¬]]의 쑴재둜 인해 μžλ°” κ°œλ°œμžλŠ” κ³§ μŠ€ν”„λ§ 개발자λ₯Ό μ˜λ―Έν•˜κΈ°λ„ ν•œλ‹€. ## Spring의 νŠΉμ§• ### POJO 기반의 κ²½λŸ‰ μ»¨ν…Œμ΄λ„ˆ μŠ€ν”„λ§μ˜ κ°€μž₯ 큰 νŠΉμ§•μ€ [[IT μš©μ–΄ 정리 πŸ“•#`POJO`|POJO]] 와 μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆμ΄λ‹€. μŠ€ν”„λ§μ—μ„œ κ°œλ°œμžλŠ” 순수 μžλ°” ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ“―μ΄ 객체λ₯Ό κ°œλ°œν•  수 있고, κ·Έλ ‡κ²Œ 개발된 κ°μ²΄λ“€μ˜ 생λͺ…μ£ΌκΈ°λŠ” μŠ€ν”„λ§ μ»¨ν…Œμ΄λ„ˆκ°€ κ΄€λ¦¬ν•œλ‹€. 이와 κ΄€λ ¨λœ κ°œλ…μ΄ μŠ€ν”„λ§μ˜ 3 μš”μ†Œ 쀑 ν•˜λ‚˜μΈ [[A. μ œμ–΄μ˜ μ—­μ „(Inversion of Control)|μ œμ–΄μ˜ μ—­μ „(IoC)]]이닀. ![[IT μš©μ–΄ 정리 πŸ“•#`POJO`]] ### λͺ¨λ“ˆμ‹ ν”„λ ˆμž„μ›Œν¬ μŠ€ν”„λ§μ€ μ—”ν„°ν”„λΌμ΄μ¦ˆ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ— ν•„μš”ν•œ μ—¬λŸ¬ κΈ°λŠ₯을 ν¬ν•¨ν•œλ‹€. 이 κΈ°λŠ₯듀은 성격에 따라 λΆ„λ₯˜λ˜μ–΄ `Spring Data`, `Spring Web` 같은 λͺ¨λ“ˆλ‘œ λ¬Άμ—¬ μžˆλ‹€. 덕뢄에 κ°œλ°œμžλŠ” ν•„μš”ν•œ λͺ¨λ“ˆλ§Œ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ λΆ€μ°©ν•˜μ—¬ μ‚¬μš©ν•  수 μžˆλ‹€. ### 높은 ν™•μž₯μ„±κ³Ό λ²”μš©μ„± μ•žμ„  [[5. Springκ³Ό νŠΉμ§• 🌿#λͺ¨λ“ˆμ‹ ν”„λ ˆμž„μ›Œν¬|λͺ¨λ“ˆμ‹ ν”„λ ˆμž„μ›Œν¬]]와 λΉ„μŠ·ν•œ μž₯점으둜 μŠ€ν”„λ§μ—λŠ” λ§Žμ€ κΈ°λŠ₯을 μ œκ³΅ν•˜λŠ” λ‹€μ–‘ν•œ ν”„λ‘œμ νŠΈκ°€ μ‘΄μž¬ν•œλ‹€. 인증, 인가λ₯Ό μœ„ν•œ μŠ€ν”„λ§ μ‹œνλ¦¬ν‹°μ™€ λ°μ΄ν„°λ² μ΄μŠ€ 연결을 μœ„ν•œ μŠ€ν”„λ§ 데이터 JDBC λ“± λ§Žμ€ ν”„λ‘œμ νŠΈλ₯Ό 톡해 ν•„μš”ν•œ κΈ°λŠ₯을 λΉ λ₯΄κ³  μ‰½κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€.