์ค๋ ํ ๊ณต๋ถ ๐ง
๊ฐ์ธ ๊ณต๋ถ (BaseEntity, GlobalExceptionHandler)
- BaseEntity
- ์ํฐํฐ(Entity) : ๋ฐ์ดํฐ๋ฒ ์ด์ค ํ ์ด๋ธ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ์ดํด๊ฐ ํธํ๋ค.
- ์ธ์คํด์ค(Instance) : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ ์ฅ๋ ๋ฐ์ดํฐ ๋ด์ฉ์ ์ ์ฒด ์งํฉ์ ์๋ฏธํ๋ค.
- ์์ฑ(Attribute) : ์ธ์คํด์ค์ ๊ตฌ์ฑ์์๋ก์จ ๋ ์ด์ ๋ถ๋ฆฌ๋์ง ์๋ ๋จ์๋ก, ์ ๋ฌด์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋ค.
- JPA๋ฅผ ์ฌ์ฉํ๋ฉฐ ์ํฐํฐ ํด๋์ค๋ฅผ ์ค๊ณํ ๋ ๊ณตํต ์์ฑ์ธ created_at, updated_at ์ปฌ๋ผ์ ๋ํด ๋ชจ๋ ์ํฐํฐ ํด๋์ค์์ ๊ณตํต์ ์ผ๋ก ์์ ํ ๊ฐ๋ฅ์ฑ์ด ๋ณด์ฌ ํด๋์ค๋ฅผ ๋ถ๋ฆฌํ ๊ฒ์ด๋ค.
- ์์ฑ์ผ, ์์ ์ผ์ด ๊ณตํต ์์ฑ์ผ๋ก ํด๋นํ๋ค. ์ด ์ฝ๋๋ค์ ์ํฐํฐ์ ๋ชจ๋ ์ ์ด์ค ๊ฒฝ์ฐ ์ฝ๋์ ์ค๋ณต์ด ๋ฐ์ํ๋ค. ์ด๋ฐ ์ฝ๋์ ์ค๋ณต์ ์ค์ด๊ธฐ ์ํด์ BaseEntity๋ฅผ ์ฌ์ฉํ๋ค.
- GlobalExceptionHandler
- Spring Boot ๊ธฐ๋ฐ์ RESTful API์์ ์์ธ์ฒ๋ฆฌ์ ์ ์ง๋ณด์์ฑ๊ณผ ํ์ฅ์ฑ์ ํฅ์ํ๋ฉฐ, ๋ช ํํ ์๋ฌ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ๋๋ก ๋์์ค๋ค. ์๋ฌ์ฝ๋์ ๋ฉ์์ง๋ฅผ ๊ด๋ฆฌํ๋ฉฐ GlobalExceptionHandler๋ฅผ ํตํด ์ด๋ฌํ ์์ธ๋ค์ ์ค์์์ ์ฒ๋ฆฌํ๋๋ก ํด์ค๋ค.
- @ControllerAdvice
- @Controller๋ก ์ ์ธํ ์ง์ ์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ๋์ค์ @ControllerAdvice๋ก ์ ์ธํ ํด๋์ค ๋ด์์ ์ด๋ฅผ ์บ์นํ์ฌ Controller ๋ด์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ์ด๋ ธํ ์ด์ ์ด๋ค.
- @ControllerAdvice๋ Spring AOP๋ฅผ ์ด์ฉํ ์ด๋ ธํ ์ด์ ์ด๋ค.
- @RestControllerAdvice (@ControllerAdvice + @ResponseBody)
- @RestControllerAdvice๋ก ์ ์ธํ ์ง์ ์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ๋์ค์ @RestControllerAdvice๋ก ์ ์ธํ ํด๋์ค ๋ด์์ ์ด๋ฅผ ์บ์นํ์ฌ Controller ๋ด์์ ๋ฐ์ํ ์๋ฌ๋ฅผ ์ฒ๋ฆฌํ ์ ์๋๋ก ํ๋ ์ด๋ ธํ ์ด์ ์ด๋ค.
- @RestControllerAdvice๋ Spring AOP๋ฅผ ์ด์ฉํ ์ด๋ ธํ ์ด์ ์ด๋ค.
- ์ฐจ์ด์
- @RestControllerAdvice๋ @ResponseBody ์ด๋ ธํ ์ด์ ์ด ํฌํจ๋์ด ์์ด์ ์๋ต(Response)์ JSON์ผ๋ก ์ ๊ณต์ ํด์ค๋ค๋ ์ฐจ์ด์ ์ด ์๋ค.
- @ExceptionHandler
- ํน์ ์๋ฌ ๋ฐ์ ์ Controller์ ๋ฐ์ํ์์ ๊ฒฝ์ฐ ํด๋น ์๋ฌ๋ฅผ ์บ์นํ์ฌ ํด๋ผ์ด์ธํธ๋ก ์ค๋ฅ๋ฅผ ๋ฐํํ๋๋ก ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ์ํํ๋ค.
- @Controller, @RestController๊ฐ ์ ์ฉ๋ Bean ๋ด์์ ๋ฐ์ํ๋ ์์ธ๋ฅผ ์ก์์ ํ๋์ ๋ฉ์๋์์ ์ฒ๋ฆฌํด์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ค.
- Controller ๋ด๋ถ์์ ํธ์ถํ Service์์ ์์ธ๊ฐ ๋ฐ์ํ๋๋ผ๋ ์ก์๋ผ ์ ์๋ค.
์ค๋ ํ๋ฃจ ์ ๋ฆฌ โ๏ธ
์ค๋์ ํ๋ฃจ์ข ์ผ ๋ด์ผ ๋ฐํํ ๋ฏธ๋ ์ธ์ ์ค๋น๋ฅผ ํ๋ค.
BaseEntity์ GlobalExceptionHandler์ ๋ํด ๊ณต๋ถํ๊ณ ์ ๋ฆฌํ ํ PPT๊น์ง ๋ง๋ค๊ณ ๋๋ ํ๋ฃจ๊ฐ ๋๋ฑ ์ง๋๊ฐ๋ค..
๋ด์ผ ๋ฐํ ์ํ๊ณ ๊ณต๋ถ๋ ์ด์ด์ ์ด์ฌํ ํด๋ณด์!!
๋ด์ผ ๊ณํ โฐ
- ์ธ์ ๋ฃ๊ธฐ
- ๋ฏธ๋ ์ธ์ ๋ฐํ
- ๊ณผ์ ์งํ
+ ์ถ๊ฐ ๊ณํ์ด ์๊ธธ ์๋ ์์ด๋น~_~
'โ๏ธ Today I Learned(TIL) > ๐ฑ ์คํ๋ฅดํ ๋ด์ผ๋ฐฐ์์บ ํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 4 (1) | 2025.01.24 |
---|---|
[ TIL ] Kotlin ๋ฌธ๋ฒ ๊ธฐ์ด/์ฌํ_Day 3 (2) | 2025.01.23 |
[ TIL ] JPA ์ฌํ_Day 7 (0) | 2025.01.20 |
[ TIL ] JPA ์ฌํ_Day 6 (0) | 2025.01.19 |
[ TIL ] JPA ์ฌํ_Day 4 (2) | 2025.01.17 |