
Early Return
๋ถํ์ํ if-else ํผํ๊ธฐ
์ฝ๋ ๊ฐ์ - Validation
N+1 ๋ฌธ์
์ฆ์๋ก๋ฉ, ์ง์ฐ๋ก๋ฉ ์์ ๋ฐ๊ฒฌํ ์ ์๋ ์ฑ๋ฅ ๋ฌธ์
fetch join, @EntityGraph ์ผ๋ก ํด๊ฒฐ ๊ฐ๋ฅ
์์ํ๋๋ก ์ฑ๊ณตํ๋์ง ํ์ธ
์์ํ๋๋ก ์์ธ์ฒ๋ฆฌ๋ฅผ ํ๋์ง ํ์ธ
Interceptor ๋๋ AOP ํ์ฉ
ex) ํน์ API์ ์ ๊ทผํ ๋๋ง๋ค ์ ๊ทผ ๋ก๊ทธ๋ฅผ ๊ธฐ๋ก
์์ฒญ์ ๋ณด(HttpServletRequest)๋ฅผ ์ฌ์ ์ฒ๋ฆฌ
๊ถํ ์ฌ๋ถ๋ฅผ ํ์ธํ์ฌ ์ธ์ฆ๋์ง ์์ ์ฌ์ฉ์ ์ ๊ทผ ์ฐจ๋จ
์ธ์ฆ ์ฑ๊ณต ์ ์์ฒญ ์๊ฐ๊ณผ URL ๋ก๊น ๊ตฌํ
์ธ์ฆ ์ฌ๋ถ ํ์ธ โ ์ธ์ฆ๋์ง ์์ ๊ฒฝ์ฐ ์์ธ์ฒ๋ฆฌ
API ๋ฉ์๋ ์คํ ์ /ํ ์์ฒญ/์๋ต ๋ฐ์ดํฐ ๋ก๊น
๋ก๊น ๋ด์ฉ
์์ฒญ์ ID
API ์์ฒญ ์ ๋ณด
์์ฒญ/์๋ต ๋ณธ๋ฌธ ์ ๋ณด
@Around ์ด๋
ธํ
์ด์
์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ๋ก๊น
JSON ํ์์ผ๋ก ์ฌ์ฉ
๋ก๊น
์ Logger ํด๋์ค ํ์ฉํ์ฌ ๊ธฐ๋ก
N+1๋ฌธ์
ํ ์คํธ ์ฝ๋
ํ ์คํธ ์ฝ๋ ๊ฐ์, ์ค์ต ํ ์ํ
NullPointerException์ ์ํ๋ ์์ธ์ฒ๋ฆฌ๋ก ๋ณ๊ฒฝํ๊ธฐ ์ํด
DTO ๊ฐ์ ๊ฐ์ง๊ณ ์ค๋ ์ฝ๋์์ Null์ ์์ธ์ฒ๋ฆฌํ ์ง
DTO ๊ฐ์ ๋ฐ๋ก ๊ฐ์ง๊ณ Null์ ์์ธ์ฒ๋ฆฌํ ์ง ๊ณ ๋ฏผ
Interceptor
AOP
Interceptor๋ ๊ฐ์ด ์ธ ์ ์๋์ง ๊ฒํ ํด๋ณด์์ง๋ง ํ์ฌ ์๊ตฌ์ฌํญ์์๋ ์ฌ์ฉํ๊ธฐ ์ด๋ ต๋ค๊ณ ํ๋จ
2๊ฐ ์ค ํ๋๋ง ์ฌ์ฉํ๋ฉด ๊ณตํต์ ์ผ๋ก ์ฒ๋ฆฌ๊ฐ ๋๋ค๊ณ ํ๋จ
Interceptor์ ๋ง์ฐฌ๊ฐ์ง๋ก ๊ธฐ๋ณธ์ ์ธ ๋ด์ฉ ํ์ต