μΉ μλ²λ₯Ό μ½κ² λ§λ€μ΄μ£Όλ λꡬ μμμ΄λ€.
볡μ‘ν μ€μ μμ΄ λΉ λ₯΄κ² μΉ μ ν리μΌμ΄μ μ κ°λ°ν μ μλλ‘ λμμ€λ€.
μΌλ° javaλ‘ μΉ μλ²λ₯Ό λ§λ€λ €λ©΄ μλ§μ μ€μ κ³Ό μ½λκ° νμνμ§λ§, Spring bootλ₯Ό μ¬μ©νλ©΄ λ¨ λͺ μ€λ‘ μΉ μλ²λ₯Ό ꡬλν μ μλ€.
νΉμ§
main() λ©μλλ§ μ€ννλ©΄ λ°λ‘ μΉ μλ²κ° λ¬λ€.@SpringBootApplication μ΄λ
Έν
μ΄μ
νλλ‘ μμ£Ό μ°μ΄λ μ€ν μμ€ λΌμ΄λΈλ¬λ¦¬(JPA, Security λ±)λ₯Ό μ€νλ§μ΄ μμμ μΈν
νλ€.Spring-boot-starter-webλ±)λ‘ λ¬Άμ΄μ κ΄λ¦¬ν΄ μ€λ€.@SpringBootApplication
public class MyApp {
public static void main(String[] args) {
SpringApplication.run(MyApp.class, args); // μΉ μλ² μμ!
}
}
Spring Frameworkμ Spring Bootλ₯Ό λΉλ‘―νμ¬ μλ° κ°λ°μ νΈλ¦¬νκ² ν΄μ£Όλ λͺ¨λ νμ νλ‘μ νΈλ€μ μμ°λ₯΄λ λ¨μ΄μ΄λ€.μμ¦
Springμ΄λΌκ³ νλ€λ©΄Springμ΄ μλλΌSpring Bootλ₯Ό λ»νλ€.
| κ΅¬λΆ | Spring Framework | Spring Boot |
|---|---|---|
| κ°λ μ μμΉ | μλ° λ°±μλ κ°λ°μ ν΅μ¬ μμ§ μν μ νλ κΈ°λ° κΈ°μ | Spring Frameworkλ₯Ό νΈλ¦¬νκ² μ¬μ©νλλ‘ λλ νμ₯ λꡬ |
| μΉ μλ²(Tomcat) | λ΄μ₯ μλ²κ° μμ(μΈλΆμ ν°μΊ£μ μ§μ μ€μΉνκ³ μλ μ°λ | λ΄μ₯ μλ²(Embedded Tomcat) νμ¬λ‘ λ³λ μ€μΉ μμ΄ μ¦μ ꡬλ |
| μΈνλΌ μ€μ | λλμ XML λλ Java Coγ fig μ€μ μ κ°λ°μκ° μ§μ μμ± | μ€νν°(Starter)ν¨ν€μ§μ μλμ€μ (Auto Config)μΌλ‘ μλ΅ κ°λ₯ |
| νμ λͺ©μ | λΉμ¦λμ€ λ‘μ§ μΈμλ λ¬΄κ±°μ΄ κΈ°μ μ²λ¦¬ λΆλ΄μ ν΄κ²° | μ€νλ§ νλ‘μ νΈμ μ΄κΈ° ꡬ죽 λΉμ©μ μ€μ΄κ³ μμ°μ± κ·Ήλν |
β π‘νμ€ μμ½ : Springμ μλ° κ°λ° λꡬλ€μ λ€ λͺ¨μλμ μ 체 λΈλλμ΄κ³ , Spring Framework κ·Έ λΈλλμ μ€μ¬μ΄ λλ ν΅μ¬ κΈ°μ μ΄λ©° Spring Bootλ λꡬλ λ²νΌ νλλ‘ λ°λ‘ μΈ μ μκ² λͺ¨λν°μ ν€λ³΄λκΉμ§ λ€ μ‘°λ¦½ν΄μ λμ¨ μ»΄ν¨ν° μμ νμ΄λ€.
μ°λ¦¬κ° νν λ§νλ λΌμ΄λΈλ¬λ¦¬(Library)λ Lombokμ΄λ Jacksonμ²λΌ "νΉμ κΈ°λ₯ νλλ₯Ό μννκΈ° μν΄ κ°μ Έλ€ μ°λ μ½λ μ‘°κ°/λꡬ"μ κ°κΉλ€.
λ°λ©΄ μ€νλ§μ Spring Securityλ Spring Dataλ λ¨μν λꡬ νλκ°κ° μλλΌ νλμ κ±°λν νλ μμν¬ μμ€μ κ·λͺ¨λ₯Ό κ°μ§κ³ μλ€.
λΌμ΄λΈλ¬λ¦¬ : λ¨μΌ λͺ©μ μ κ°μ§ λΆν(μ : JSON νμ±λ§ ν΄μ£Όλ λΌμ΄λΈλ¬λ¦¬)
μ€νλ§ νμ νλ‘μ νΈ : μμ²΄λ‘ μλ§μ λΌμ΄λΈλ¬λ¦¬λ€μ λ΄λΆμ ν¬ν¨νκ³ μλ κ±°λν λ 립 λ¨μ
Spring Securityμμλ μΈμ¦, μΈκ°, μνΈν, μΈμ
κ΄λ¦¬ λ±μ κΈ°λ₯μ νλ λΌμ΄λΈλ¬λ¦¬λ€μ΄ λ€μ΄κ° μλ€.πΏ SPRING (μ€νλ§ μνκ³ μ 체)
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β β
β π± Spring Framework (λͺ¨λ κ²μ μ€μ¬μ΄ λλ ν΅μ¬ μμ§) β
β β
β π Spring Boot (μ€μ μ μλνν΄μ£Όλ νΈλ¦¬ν λꡬ) β
β β
β π Spring Security (보μ, μΈμ¦, μΈκ° μ λ΄ λΆμ) β
β β
β ποΈ Spring Data (JPA, Redis λ± DB μ κ·Ό μ λ΄ λΆμ) β
β β
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
1. DB μ κ·Ό κΈ°μ λ€μ ν΅μ¬ μ°¨μ΄μ μμ½
2. JPAμ Spring Data JPAμ λͺ νν μ°¨μ΄
EntityManagerλ₯Ό νΈμΆν΄μΌ ν©λλ€.