๐Ÿ“Œ ์Šคํ”„๋ง์ด๋ž€?


โœ… ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ (Spring Framework)

์ž๋ฐ” ๊ธฐ๋ฐ˜์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ํ”„๋ ˆ์ž„์›Œํฌ. 2000๋…„ ์ดˆ๋ฐ˜, ๋„ˆ๋ฌด ๋ณต์žกํ–ˆ๋˜ ์ž๋ฐ” ๊ฐœ๋ฐœ ๋ฐฉ์‹์— ๋ฐ˜๊ธฐ๋ฅผ ๋“ค๊ณ  โ€œ๋” ํŽธํ•˜๊ฒŒ ๊ฐœ๋ฐœํ•˜์žโ€๋Š” ์ทจ์ง€๋กœ ํƒ„์ƒํ–ˆ๋‹ค (POJO : Plain Old Java Object ์ง€ํ–ฅ)

ํ•ต์‹ฌ ๊ฐœ๋…

โ‡’ ์„ค์ •์ด ๋งค์šฐ ๋ณต์žก

โœ… ์Šคํ”„๋ง ๋ถ€ํŠธ (Spring Boot)

์Šคํ”„๋ง์˜ ๋ณต์žกํ•œ ์„ค์ • ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜์˜จ ์Šคํ”„๋ง์˜ ํ™•์žฅํŒ. โ€œ์ƒ๊ฐํ•˜์ง€ ๋ง๊ณ  ์ผ๋‹จ ์‹œ์ž‘(Opinionated)โ€ ์ด๋ผ๋Š” ์ฒ ํ•™์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค

๐Ÿ“’ NOTE


IntelliJ IDEA ์„ค์น˜ ๋ฐ ์„ค์ •

1. ์Šคํ”„๋ง๋ถ€ํŠธ ์ž…๋ฌธ


์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์™€ IoC/DI

ํ•ต์‹ฌ ์–ด๋…ธํ…Œ์ด์…˜ ํ•™์Šต

application.yml ์„ค์ •

Lombok ์‚ฌ์šฉ๋ฒ•

@RestController์™€ HTTP ๋ฉ”์„œ๋“œ ๋งคํ•‘

์š”์ฒญ ๋ฐ์ดํ„ฐ ๋ฐ”์ธ๋”ฉ

์‘๋‹ต ์ฒ˜๋ฆฌ

์š”์ฒญ/์‘๋‹ต DTO ์„ค๊ณ„

Postman์œผ๋กœ API ํ…Œ์ŠคํŠธ

2. MySQL + Spring Data JPA


MySQL ์„ค์น˜ ๋ฐ ์Šคํ”„๋ง๋ถ€ํŠธ ์—ฐ๋™

JPA ํ•ต์‹ฌ ๊ฐœ๋…๊ณผ JpaRepository CRUD

์—ฐ๊ด€๊ด€๊ณ„ ๋งคํ•‘ : @ManyToOne / @OneToMany

N+1 ๋ฌธ์ œ์™€ ํ•ด๊ฒฐ

@Transactional ์ดํ•ด

์ฟผ๋ฆฌ ๋ฉ”์„œ๋“œ์™€ @Query

3๊ณ„์ธต ์•„ํ‚คํ…์ฒ˜ ์™„์„ฑ : ๋ฆฌํŒฉํ† ๋ง๊ณผ Auditing

3. ์ธ์ฆ/์ธ๊ฐ€ & ์‹ค์ „ ๊ธฐ๋Šฅ


Spring Security ๊ธฐ๋ณธ ๊ตฌ์กฐ

ํšŒ์›๊ฐ€์ž… API์™€ JWT ํ† ํฐ

ํ˜„์žฌ ์‚ฌ์šฉ์ž ์ •๋ณด ํ™œ์šฉ๊ณผ ๊ถŒํ•œ ์ฒดํฌ

์ „์—ญ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ์™€ ์œ ํšจ์„ฑ ๊ฒ€์ฆ

๋ถ€๊ฐ€ ๊ธฐ๋Šฅ (CORS, Swagger, ๋กœ๊น…, ํ”„๋กœํ•„ ๊ด€๋ฆฌ)

4. ํ…Œ์ŠคํŠธ