Spring19 Spring Security์์ ๋ฐ์ํ ์์ธ๊ฐ ControllerAdvice์์ ํธ๋ค๋ง๋๋ ๋ฌธ์ Spring Security์์ ๋ฐ์ํ ์์ธ๊ฐ ControllerAdvice์์ ํธ๋ค๋ง๋๋ ๋ฌธ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ฐ์ํ Exception์ด ControllerAdvice์ ํธ๋ค๋ง๋๋ ๊ฒ์ด ๋ญ๊ฐ ๋ฌธ์ ์ผ๊น์? ์ต๊ทผ์ Client์๊ฒ ์ ๋ฌํ๋ error ๋ฉ์ธ์ง๋ฅผ ๊ณตํตํํ๊ธฐ ์ํด Rest Controller Advice์ ๋ค์๊ณผ ๊ฐ์ ๋ฉ์๋๋ฅผ ์ฝ๋๋ฅผ ์ถ๊ฐํ์์ต๋๋ค.@RestControllerAdvicepublic class GlobalExceptionHandler extends ResponseEntityExceptionHandler { ... @ExceptionHandler(Exception.class) public ResponseEntity handleException(HttpServletRequest .. 2024. 4. 25. [Spring] Filter์ Interceptor ์ฐจ์ด Spring์์๋ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌ๋์ด ๊ณตํต์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ ํ๋ ์ ๋ฌด๋ฅผ ์ํํ๊ธฐ ์ํ ๋ช๊ฐ์ง์ ๊ธฐ๋ฅ๋ค์ ์ง์ํ๋ค. Filter (ํํฐ) Interceptor(์ธํฐ์ ํฐ) AOP(๊ด์ ์งํฅ ํ๋ก๊ทธ๋๋ฐ) ์์ ๊ฐ์ ๊ธฐ๋ฅ์ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ ๋ชจ๋ํํ์ฌ ๋น์ฆ๋์ค ๋ก์ง๊ณผ ๋ถ๋ฆฌํ์ฌ ์ฌ์ฌ์ฉ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ๋์ด๊ณ ์ค๋ณต ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ค. AOP๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด์ ๊ฑธ์ณ ๊ณตํต์ผ๋ก ์ฌ์ฉ๋๋ ๊ธฐ๋ฅ์ ์ง์ํ๋ค๋ฉด, Filter์ Interceptor๋ ์ฃผ๋ก Controller ๋ ์ด์ด์์ ์ฌ์ฉ๋๋ฉฐ ํด๋ผ์ด์ธํธ์ ์์ฒญ๊ณผ ์๋ต์ ๊ฐ๋ก์ฑ ์ฒ๋ฆฌํ๊ฒ ๋๋ค. Filter์ Interceptor์ ์ฐจ์ด์ ์ ์ค์ ์ ์ผ๋ก ์ ๋ฆฌํด๋ณด์. Filter J2EE ํ์ค ์คํ ๊ธฐ๋ฅ์ผ๋ก ๋์คํจ์ฒ ์๋ธ๋ฆฟ(Dispatcher Servlet)์ ์์ฒญ์ด .. 2023. 4. 22. [Spring] Spring MVC โป Spring MVC ๋ฐํ ์๋ฃ์ ๋๋ค! Spring MVC ๋? Spring ํ๋ ์์ํฌ ์ค์ ์น ๊ณ์ธต์ ๋ด๋นํ๋ ๋ชจ๋ ์ค ํ๋๋ก ์ ์ ๋ช ์นญ์ Spring Web MVC ์ ๋๋ค. ๐ก Spring MVC๋ Servlet API์์์ ๋์ํ๋ฉฐ Model, View, Controller ์ธ๊ฐ์ง ๊ตฌ์ฑ์์๋ฅผ ์ฌ์ฉํด ํด๋ผ์ด์ธํธ์ ๋ค์ํ ์์ฒญ์ ์ฒ๋ฆฌํ๊ณ ๋จ์ ํ ์คํธ ํ์๋ถํฐ REST ํ์, View ํ์์ ์๋ต์ ํ ์ ์๋๋ก ํธ๋ฆฌํ๊ฒ ๊ตฌ์ฑ๋ ํ๋ ์์ํฌ์ ๋๋ค. Spring MVC๊ฐ ์ด๋ค ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์๋ฅผ ํธํ๊ฒ ํด์คฌ๋์ง ์์ธํ ์์๋ณด๊ธฐ ์ํด ๋ฑ์ฅ ๋ฐฐ๊ฒฝ๊ณผ ๋์ ๋ฐฉ์์ ์ค์ฌ์ผ๋ก ๋ฐํ๋ฅผ ์งํํ๊ฒ ์ต๋๋ค. ๋ฑ์ฅ ๋ฐฐ๊ฒฝ Spring MVC๊ฐ ์๊ธฐ ์ ์๋ HTML ์ฝ๋์ JAVA ์ฝ๋๋ฅผ ๋ฃ์ด ๋์ ์น ํ์ด์ง๋ฅผ ์์ฑํ๋ JSP์ ์.. 2023. 2. 18. [Spring] Map Struct ์ฌ์ฉํ๊ธฐ Map Struct https://mapstruct.org/ ๐ก MapStruct๋ ๊ตฌ์ฑ ์ ๊ทผ๋ฒ์ ๋ํ ๊ท์ฝ์ ๊ทผ๊ฑฐํ์ฌ Java Bean ์ข ๋ฅ ๊ฐ์ ๋งคํ ๊ตฌํ์ ํฌ๊ฒ ๋จ์ํํ code generator ์ด๋ค. ๊ฐ๋จํ๊ฒ ๋งํ๋ฉด Dto ์ Entity์ ๋ณํ์ ์ฝ๊ฒ ๋์์ฃผ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด Map Struct๋ฅผ ์ ์ฌ์ฉํ ๊น? ์ฅ์ ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ์ฌ ์ปดํ์ผ์ ๋งคํ์ฝ๋๊ฐ ์์ฑ๋๊ธฐ๋๋ฌธ์ ์ปดํ์ผ ์ค๋ฅ ํ์ธ์ด ๊ฐ๋ฅํ๋ค. (์ปดํ์ผ ์์ ์ ๋งคํ ์ ๋ณด๊ฐ ํ์ ์ธ์ดํํ ์ง๋ฅผ ๊ฒ์ฆ) ๋ฆฌํ๋ ์ ์ด ์๋ ์ง์ ๋ฉ์๋๋ฅผ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ๋์ํ์ฌ ์๋๊ฐ ๋น ๋ฅด๋ค. ๋๋ฒ๊น ์ด ์ฝ๋ค. ๊ตฌํ์ฒด๋ฅผ ์๋์ผ๋ก ์์ฑ ๋๊ธฐ๋๋ฌธ์ ์์ฑ๋ ๋งคํ ์ฝ๋๋ฅผ ๋์ผ๋ก ํ์ธ ํ ์ ์๋ค. → ์ค์ ๊ฑฐ๋ํ ์์คํ ์ ๋ง๋ค๋ค๋ณด๋ฉด, ๋ค์ํ ๋๋ฉ์ธ ์์ญ๋ค์ด ์.. 2023. 1. 21. [TIL] 221209 - JPA : REST-API, API ๋ฌธ์ํ SpringBoot Part4 (5) ํ์ต๋ชฉํ ์ํฐํฐ (์ฃผ๋ฌธ๊ด๋ฆฌ vs ๊ฒ์ํ) API ๊ฐ๋ฐ (JUnit, Lombok, OSIV) API ๋ฌธ์ํ (๋ ์คํธ ๋ฅ์ค, ์ค์จ๊ฑฐ) org.springframework.restdocs spring-restdocs-mockmvc test ์ฃผ๋ฌธ๊ด๋ฆฌ API ๊ฐ๋ฐ ์ฃผ๋ฌธ์์ฑ(POST) ์ฃผ๋ฌธ์กฐํ(GET) ๋ฆฌ์คํธ(PAGING) ๋จ๊ฑด (ONE) Service layer converter entity๋ฅผ Transaction ๋ฌถ์ ๋ฐ์ ๊น์ง ๋๊ณ ๋๊ฐ๋ ๊ฒ์ ์ข์ง ์๋ค. entity๋ RDB์ ์ด๋ ์ ๋ ํต์ ์ ํ๊ณ ์๋ ๊ฐ์ฒด์ด๊ธฐ ๋๋ฌธ์ entity๊ฐ ๋ฌถ์ ๋ฐ์ผ๋ก ๋น ์ ธ๋๊ฐ๋ฉด ์์์น ๋ชปํ ๊ณณ์์ ์ฟผ๋ฆฌ๊ฐ ๋ฐ์ํ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. (OSIV) → dto ๊ฐ์ฒด๋ฅผ ๋ง๋ค์ด์ ํต์ ํ๋ค. Orde.. 2022. 12. 20. [TIL] 221207 - JPA : ์ฐ๊ด๊ด๊ณ ๋งคํ, ๊ณ ๊ธ ๋งคํ, ํ๋ก์ SpringBoot Part4(3) ์ฐ๊ด๊ด๊ณ ๋งคํ ๊ฐ์ฒด ์ฐ๊ด๊ด๊ณ VS ํ ์ด๋ธ ์ฐ๊ด๊ด๊ณ ํ ์ด๋ธ์ ์ธ๋ํค๋ก ์ฐ๊ด ๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ๊ฐ์ฒด๋ ์ฐธ์กฐ(์ฃผ์)๋ก ์ฐ๊ด ๊ด๊ณ๋ฅผ ๋งบ๋๋ค. ํต์ฌ ํค์๋ ๋ฐฉํฅ์ฑ (๋จ๋ฐฉํฅ, ์๋ฐฉํฅ) ํ ์ด๋ธ์์ ๊ด๊ณ๋ ํฅ์ ์๋ฐฉํฅ์ด๋ค. ์ธ๋ํค๋ฅผ ์ด์ฉํด์ ์๋ฐฉํฅ์ผ๋ก ์กฐ์ธ์ด ๊ฐ๋ฅ SELECT * FROM orders AS o JOIN member AS m ON o.member._id = m.id ๊ฐ์ฒด์์์ ๋จ,์๋ฐฉํฅ ๊ด๊ณ // ํ์ -> ์ฃผ๋ฌธ ๋จ๋ฐฉํฅ ๋งคํ ๊ฒฝ์ฐ. ํ์์์ ์ฃผ๋ฌธ๋ง ์ฐธ์กฐ๊ฐ ๊ฐ๋ฅํ๋ค. class Member { private long id; private List orders; // ํ์ -> ์ฃผ๋ฌธ } class Order { private String id; } Member member .. 2022. 12. 14. ์ด์ 1 2 3 4 ๋ค์