Home > Backend Development > πŸ“š[Backend Development] μŠ€ν”„λ§κ³Ό μŠ€ν”„λ§ λΆ€νŠΈ πŸ™Œ

πŸ“š[Backend Development] μŠ€ν”„λ§κ³Ό μŠ€ν”„λ§ λΆ€νŠΈ πŸ™Œ
Backend Ddevelopment Spring Spring Boot Server Framework

βœ… Intro.

Springκ³Ό Spring BootλŠ” μ„œλ‘œ λ°€μ ‘ν•œ 관계에 μžˆμ§€λ§Œ, λͺ©μ κ³Ό μ‚¬μš© 방식, 개발 νŽΈμ˜μ„±μ—μ„œ 큰 차이가 μžˆμŠ΅λ‹ˆλ‹€.
μ•„λž˜μ— ꡬ쑰적으둜 차이점을 μ •λ¦¬ν•΄λ“œλ¦΄κ²Œμš” πŸ™Œ


βœ… μš”μ•½: ν•œ 쀄 차이

ꡬ뢄 μ„€λͺ…
Spring μˆœμˆ˜ν•œ ν”„λ ˆμž„μ›Œν¬, μœ μ—°ν•˜μ§€λ§Œ 섀정이 많음
Spring Boot Spring을 μ‰½κ²Œ μ“°κΈ° μœ„ν•œ μžλ™ μ„€μ • 기반의 도ꡬ μ„ΈνŠΈ

βœ… 1. Spring Frameworkλž€?

  • μžλ°” 기반 μ›Ή μ• ν”Œλ¦¬μΌ€μ΄μ…˜ κ°œλ°œμ„ μœ„ν•œ μ˜€ν”ˆμ†ŒμŠ€ ν”„λ ˆμž„μ›Œν¬
  • 핡심 κ°œλ…: IoC (μ œμ–΄μ˜ μ—­μ „), DI (μ˜μ‘΄μ„± μ£Όμž…), AOP (관점 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ°)
  • μ‚¬μš© μ‹œμ—λŠ” XML λ˜λŠ” μžλ°” μ½”λ“œλ‘œ 직접 λ§Žμ€ 섀정을 ν•΄μ•Ό 함
<!-- Spring (전톡적) 방식 μ˜ˆμ‹œ -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">...</bean>

βœ… 2. Spring Bootλž€?

  • Spring을 더 쉽고 λΉ λ₯΄κ²Œ κ°œλ°œν•˜κΈ° μœ„ν•΄ λ‚˜μ˜¨ ν™•μž₯ λ„κ΅¬μž…λ‹ˆλ‹€.
  • μžλ™ μ„€μ •(AutoConfiguration), λ‚΄μž₯ μ„œλ²„(Embedded Tomcat), μŠ€νƒ€ν„°(Starter)등을 톡해 μ„€μ • 없이도 λ°”λ‘œ μ‹€ν–‰ κ°€λŠ₯ν•œ μŠ€ν”„λ§ ν™˜κ²½μ„ μ œκ³΅ν•©λ‹ˆλ‹€.
@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

βœ… 3. 차이점 λΉ„κ΅ν‘œ

ν•­λͺ© Spring Spring Boot
πŸ’‘ λͺ©μ  μœ μ—°ν•˜κ³  ν™•μž₯ κ°€λŠ₯ν•œ ν”„λ ˆμž„μ›Œν¬ 제곡 μ„€μ • 없이 λΉ λ₯Έ 개발 ν™˜κ²½ 제곡
βš™οΈ μ„€μ • μˆ˜λ™ μ„€μ • 많음 (XML, JavaConfig λ“±) μžλ™ μ„€μ • 쀑심 (AutoConfiguration)
πŸš€ μ‹€ν–‰ ν†°μΊ£ μ„€μΉ˜ ν•„μš” λ‚΄μž₯ ν†°μΊ£μœΌλ‘œ 단독 μ‹€ν–‰ κ°€λŠ₯ (java -jar)
πŸ“¦ μ˜μ‘΄μ„± 직접 관리 Starter둜 κ°„λ‹¨νžˆ 관리 (예: spring-boot-starter-web)
πŸ› οΈ ν”„λ‘œμ νŠΈ ꡬ쑰 ꡬ쑰 섀계뢀터 직접 ꡬ성 κ΄€λ‘€ 기반 κΈ°λ³Έ ꡬ쑰 제곡
πŸ§ͺ ν…ŒμŠ€νŠΈ ν™˜κ²½ λ³΅μž‘ν•˜κ²Œ ꡬ성 λ‚΄μž₯된 ν…ŒμŠ€νŠΈ 도ꡬ μ‰½κ²Œ μ‚¬μš© κ°€λŠ₯
πŸ“ˆ 생산성 초반 μ§„μž… μž₯λ²½ 있음 맀우 λ†’μŒ (κ°„νŽΈν•œ μ„€μ •, λΉ λ₯Έ μ‹€ν–‰)

βœ… κ²°λ‘ : μ–Έμ œ μ‚¬μš©ν•˜λ‚˜?

상황 μΆ”μ²œ
μœ μ—°ν•œ μ•„ν‚€ν…μ²˜ ν•„μš”, 라이브러리 직접 μ œμ–΄ πŸ”Ή Spring (Core Framework)
λΉ λ₯΄κ²Œ μ›Ή μ„œλΉ„μŠ€ μ‹œμž‘, 싀무 생산성 μ€‘μ‹œ πŸ”Έ Spring Boot (ν˜„λŒ€ 개발의 ν‘œμ€€)

🎯 μ΅œμ’… μš”μ•½

Spring BootλŠ” Spring Frameworkλ₯Ό 기반으둜 κ°œλ°œμ„ 더 μ‰½κ²Œ λ§Œλ“€μ–΄μ£ΌλŠ” β€œμžλ™ν™” 도ꡬ μ„ΈνŠΈβ€μž…λ‹ˆλ‹€.
λ”°λΌμ„œ Spring Bootλ₯Ό μ‚¬μš©ν•˜λ©΄ Spring을 더 효율적이고 κ°„νŽΈν•˜κ²Œ ν™œμš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.