ํ์ ๊ตฌ์ฑ ์์
Spring Framework
: Spring Framework๋ ์ ์ฒด Spring ์ํ๊ณ์ ํต์ฌ์ด๋ฉฐ, IoC(Inversion of Control), DI(Dependency Injection), AOP(Aspect-Oriented-Programming) ๋ฑ ํต์ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ์ฉ์ดํ๊ฒ ํ๋ค
Spring Boot
: Spring Boot๋ Spring ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋น ๋ฅด๊ณ ์ฝ๊ฒ ๊ฐ๋ฐํ๊ณ ๋ฐฐํฌํ ์ ์๋๋ก ๋์์ฃผ๋ ํ๋ ์์ํฌ
- ์๋ ๊ตฌ์ฑ, ๋ด์ฅ ์น ์๋ฒ, ๊ฐํธํ ์์กด์ฑ ๊ด๋ฆฌ ๋ฑ์ ๊ธฐ๋ฅ์ ํตํด ๊ฐ๋ฐ ์์ฐ์ฑ์ ํฌ๊ฒ ํฅ์์ํด
์ ํ ๊ตฌ์ฑ ์์
Spring Data
: Spring Data๋ ๋ฐ์ดํฐ ์ ๊ทผ ๊ณ์ธต์ ์ถ์ํํ์ฌ ๋ค์ํ ๋ฐ์ดํฐ ์ ์ฅ์(๊ด๊ณํ DB, NoSQL DB ๋ฑ)์ ์ผ๊ด๋ ์ ๊ทผ ๋ฐฉ์์ ์ ๊ณตํ๋ค.
- ๊ฐ๋ฐ์๊ฐ DB ๊ด๋ จ ์ฝ๋๋ฅผ ์ง์ ์์ฑํ๋ ๋ถ๋ด์ ์ค์ด๊ณ ์์ฐ์ฑ์ ๋์ฌ์ค๋ค.
ex) JPASpring Session
: Spring Session์ HTTP ์ธ์ ๊ด๋ฆฌ๋ฅผ ์ํ ์ ์ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์๋ฃจ์ ์ ์ ๊ณต.
- ์ธ์ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ชจ๋ฆฌ, DB, Redis ๋ฑ ๋ค์ํ ์ ์ฅ์์ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ํด๋ฌ์คํฐ๋ง ํ๊ฒฝ์์๋ ์ธ์ ๊ด๋ฆฌ๋ฅผ ์ฉ์ดํ๊ฒ ํ๋ค.
Spring Security
: Spring Security๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ธ์ฆ ๋ฐ ๊ถํ ๋ถ์ฌ๋ฅผ ์ํ ๊ฐ๋ ฅํ๊ณ ์ ์ฐํ ํ๋ ์์ํฌ
- ๋ค์ํ ์ธ์ฆ๋ฐฉ์(ํผ ๊ธฐ๋ฐ ๋ก๊ทธ์ธ, OAuth 2.0, JWT ๋ฑ)์ ์ง์ํ๋ฉฐ, ์ธ๋ถํ๋ ๊ถํ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณต
Spring Batch
: Spring Batch๋ ๋์ฉ๋ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฐฐ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ํ๋ ์์ํฌ.
- ๋ฐ์ดํฐ ์ฝ๊ธฐ, ์ฒ๋ฆฌ, ์ฐ๊ธฐ ๋ฑ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ ์์ ์ ์ด๊ณ ํ์ฅ ๊ฐ๋ฅํ ๋ฐฐ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ๊ฐ๋ฅ
Spring Cloud
: Spring Cloud ๋ ๋ถ์ฐ ์์คํ ๋ฐ ๋ง์ดํฌ๋ก ์๋น์ค ์ํคํ ์ฒ ๊ตฌ์ถ์ ์ํ ๋ค์ํ ๋๊ตฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ ๊ณต.
- ์๋น์ค ๋ฑ๋ก ๋ฐ ๊ฒ์, ๊ตฌ์ฑ ๊ด๋ฆฌ, ๋ถํ ๋ถ์ฐ, ํ๋ก ์ฐจ๋จ ๋ฑ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ํ ๊ธฐ๋ฅ์ ์ง์
ํต์ฌ ๊ธฐ์
: ์คํ๋ง DI ์ปจํ ์ด๋, AOP, ์ด๋ฒคํธ, ๊ธฐํ
์น ๊ธฐ์
: ์คํ๋ง MVC, ์คํ๋ง WebFlux
๋ฐ์ดํฐ ์ ๊ทผ ๊ธฐ์
: ํธ๋์ญ์ , JDBC, ORM ์ง์, XML ์ง์
๊ธฐ์ ํตํฉ
: ์บ์, ์ด๋ฉ์ผ, ์๊ฒฉ ์ ๊ทผ, ์ค์ผ์ค๋ง
ํ ์คํธ
: ์คํ๋ง ๊ธฐ๋ฐ ํ ์คํธ ์ง์
์ต๊ทผ์๋ ์คํ๋ง ๋ถํธ๋ฅผ ํตํด์ ์คํ๋ง ํ๋ ์์ํฌ์ ๊ธฐ์ ๋ค์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉ
- ์คํ๋ง์ ํธ๋ฆฌํ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ง์, ์ต๊ทผ์๋ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉ
- ๋จ๋ ์ผ๋ก ์คํํ ์ ์๋ ์คํ๋ง ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ์์ฑ
- Tomcat ๊ฐ์ ์น ์๋ฒ๋ฅผ ๋ด์ฅํด์ ๋ณ๋์ ์น ์๋ฒ๋ฅผ ์ค์นํ์ง ์์๋ ๋จ
- ์์ฌ์ด ๋น๋ ๊ตฌ์ฑ์ ์ํ starter ์ข ์์ฑ ์ ๊ณต
- ์คํ๋ง๊ณผ 3rd parth(์ธ๋ถ) ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์๋ ๊ตฌ์ฑ
- ๋ฉํธ๋ฆญ, ์ํ ํ์ธ, ์ธ๋ถ ๊ตฌ์ฑ ๊ฐ์ ํ๋ก๋์ ์ค๋น ๊ธฐ๋ฅ ์ ๊ณต
- ๊ด๋ก์ ์ํ ๊ฐ๊ฒฐํ ์ค์
์คํ๋ง์ ์ข์ ๊ฐ์ฒด ์งํฅ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๊ฒ ๋์์ฃผ๋ ํ๋ ์์ํฌ
์คํ๋ง ์ด์ ์๋ ํน์ ๊ธฐ์ ๊ณผ ํ๊ฒฝ(EJB = Enterprise Java Beans)์ ์ข ์๋์ด ์์กดํ๊ฒ ๋ ์๋ฐ ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ ์ง๋ณด์๊ฐ ์ด๋ ต๊ณ , ํ์ฅ์ฑ๊ณผ ๊ฐ๋ ์ฑ์ด ๋จ์ด์ก๋ค.
=> ์ด๋ ๊ฐ์ฒด ์งํฅ ์ธ์ด์ธ ์๋ฐ์ ์ฅ์ ๋ค์ด ์ฌ๋ผ์ง๊ฒ ๋๋ ๊ฒ์ด๋ฏ๋ก POJO ๋ผ๋ ๊ฐ๋ ์ด ๋ฑ์ฅํ๊ฒ ๋์๋ค.POJO(Plain Old Java Object)
Getter, Setter๋ก ๊ตฌ์ฑ๋ ๊ฐ์ฅ ์์ํ ํํ์ ์๋ฐ ๊ฐ์ฒด๋ฅผ POJO ๋ผ ํ๋ค.
โ Spring์ POJO๋ฅผ ์ฌ์ฉํ๋ ์ฅ์ ๊ณผ EJB์์ ์ ๊ณตํ๋ ์ํฐํ๋ผ์ด์ฆ ์๋น์ค์ ๊ธฐ์ ์ ๊ทธ๋๋ก ์ฌ์ฉํ ์ ์๋๋ก ํด์ฃผ๋ ๋ํ์ ์ธ POJO ํ๋ ์์ํฌ ์ด๋ค.
https://www.youtube.com/watch?v=q_QEh3fz0zw&list=PLumVmq_uRGHi8y6hVKM5-bELNTyg5b6dV&index=2