Boot(25)
-
[Spring Boot] @Order
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ @Order์ ๋ํด์ ํ๋ฒ ์์๋ณผ ๊ฒ์ด์์. ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ @Order Order์ ๊ธฐ๋ณธ๊ฐ์ Ordered.LOWEST_PRECEDENCE๊ฐ ์ง์ ๋๋ ๊ฒ์ด์์. ๐ @Order ์์๊ฐ ๐ @Order ์์๊ฐ ๋ณ ์คํ์์ ๊ฐ์ฅ ๋ฎ์ ์์๋๋ก Ordered.HIGHEST_PRECEDENCE ๊ฐ์ 1์ ๋ํ๋ฉด์ ์ ์ ์์๊ฐ ๋ฎ์์ง๋ ๊ฒ์ด์์. ๐ ์ฐธ๊ณ ์๋ฃ https://javafactory.tistory.com/1516
2021.12.21 -
[Spring Framwork] LazyInitializationException / @EntityGraph
๐ LazyInitializationException โ ๋ฌธ์ ๋ฐ์! ๐ป Repository Code ๐ป Test Code โ ๋ฌธ์ ์ดํด ์ด๊ฒ์ Review Class์ Member์ ๋ํ Fetch ๋ฐฉ์์ด LAZY(์ง์ฐ ๋ก๋ฉ)์ด๊ธฐ ๋๋ฌธ์ ํ ๋ฒ์ Review ๊ฐ์ฒด์ Member ๊ฐ์ฒด๋ฅผ ์กฐํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ์ํ Exception์ธ ๊ฒ์ด์์. @Transactional์ ์ ์ฉํ๋ค๊ณ ํด๋ ๊ฐ Review ๊ฐ์ฒด์ getMember().getEmail()์ ์ฒ๋ฆฌํ ๋๋ง๋ค Member ๊ฐ์ฒด๋ฅผ Lodingํด์ผ ํ๋ ๋ฌธ์ ๊ฐ ์๋ต๋๋ค! ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ ์ ์๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ์๋์ ๊ฐ์ด ํฌ๊ฒ ๋ ๊ฐ์ง๋ก ๋๋ ์ ์๋ ๊ฒ์ด์์. @Query๋ฅผ ์ด์ฉํด์ Join์ฒ๋ฆฌ @EntityGraph๋ฅผ ์ด์ฉํด์ Review ๊ฐ์ฒด๋ฅผ..
2021.11.16 -
[Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ Spring์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์ธํ๋ฐ - ๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ ํ์์ต๋๋ค. ๐ ๋ชฉ์ฐจ 01. [Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ 02. [Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID) 03. [Spring] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง 04. [Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ 05. [Spring] ๊ฐ์ฒด ์งํฅ ์๋ฆฌ ์ ์ฉ - ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ 06. [Spring] AppConfig ๋ฆฌํฉํฐ๋ง 07. [Spring] Ioc, DI Container 08. [Spring] ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ 09. [Spring] ์ฑ๊ธํค ์ปจํ ์ด๋ 10. [Spring] Compone..
2021.09.10 -
[๋์ ๊ธฐ์ !] REST API
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ๋ณธ ๋ด์ฉ์ ์ฃผ๋ํ๋์ด Web ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๋์ ํ๋ ๊ธฐ์ ๋ค์ ๋ํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ณณ ์ ๋๋ค! ์ด ๊ธ์ ํจ๊ป ํ๋ก์ ํธ ํ๋ Back End ๊ฟ๋๋ฌด Crew๊ฐ ์์ฑํ ๊ฒ์ด์์. ์ฃผ๋ํ๋๋ Back End ๊ฐ๋ฐ์ ๋งก์์๋ต๋๋ค! ์ด๋ฒ ์ฐ๋๋ (์ฐ๋ฆฌ๋ ๋ ์!) ํ๋ก์ ํธ์์๋ RESTfulํ API๋ฅผ ์ค๊ณํ๊ธฐ ์ํด ๊ทธ๋ฐ API๋ก ๊ด์ฐฎ์๊ฐ ( https://www.youtube.com/watch?v=RP_f5dMoHFc )๋ผ๋ ์ธ๋ฏธ๋ ์์์ ๋ณด๋ฉฐ REST์ ์ถํ ๊ณ๊ธฐ์ REST์์ ์ ์ํ ์ ์ฝ ์กฐ๊ฑด๋ค์ ์์๋ณด์๊ณ , ์ด๋ฌํ ์ ์ฝ ์กฐ๊ฑด์ ์ง์ผ API๋ฅผ ์ค๊ณํ๋ ค๊ณ ๋ ธ๋ ฅํ์ต๋๋ค. ๐ RESTfulํ API๋ฅผ ์ค๊ณํ๊ณ ์ ํ ์ด์ ? ๋ถ์ฐ ํ์ดํผ๋ฏธ๋์ด ์์คํ ์ ์ํ ์ํคํ ์ฒ ์คํ์ผ์ธ R..
2021.08.26 -
[๋์ ๊ธฐ์ !] JPA์ Querydsl
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ๋ณธ ๋ด์ฉ์ ์ฃผ๋ํ๋์ด Web ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๋์ ํ๋ ๊ธฐ์ ๋ค์ ๋ํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ณณ ์ ๋๋ค! ์ด ๊ธ์ ํจ๊ป ํ๋ก์ ํธ ํ๋ Back End ๊ฟ๋๋ฌด Crew๊ฐ ์์ฑํ ๊ฒ์ด์์. ์ฃผ๋ํ๋๋ Back End ๊ฐ๋ฐ์ ๋งก์์๋ต๋๋ค! [์์ด์ฝ์ถํ]์คํ๋ง๊ณผ JPA๋ฅผ ํ์ฉํ ์๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ธํธ - ์ 3๊ถ COUPANG www.coupang.com "์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค." โ ์ด๋ฒ ํ๋ก์ ํธ์์ ์ฐ๋ฆฌ๋ JPA๋ฅผ ์ ์ฌ์ฉํ๋๊ฐ? sql ์ค์ฌ์ ์ธ ๊ฐ๋ฐ์์ ๊ฐ์ฒด ์ค์ฌ์ ์ธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅ ์์ฐ์ฑ์ด ์ฆ๊ฐํ๊ณ ๊ฐ๋จํ ๋ฉ์๋๋ก CRUD๊ฐ ๊ฐ๋ฅ ์ ์ง๋ณด์๊ฐ ์ฝ๋คJPA: ํ๋๋ง ์ถ๊ฐ, SQL์ JPA๊ฐ ์ฒ๋ฆฌ ๊ธฐ์กด: ํ..
2021.08.25 -
[๋์ ๊ธฐ์ !] ํ ์คํธ ์ฝ๋
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ๋ณธ ๋ด์ฉ์ ์ฃผ๋ํ๋์ด Web ๊ฐ๋ฐ ํ๋ก์ ํธ๋ฅผ ํ๋ฉด์ ๋์ ํ๋ ๊ธฐ์ ๋ค์ ๋ํ ๋ด์ฉ์ ์ ๋ฆฌํ๋ ๊ณณ ์ ๋๋ค! ์ด ๊ธ์ ํจ๊ป ํ๋ก์ ํธ ํ๋ Back End ๊ฟ๋๋ฌด Crew๊ฐ ์์ฑํ ๊ฒ์ด์์. ์ฃผ๋ํ๋๋ Back End ๊ฐ๋ฐ์ ๋งก์์๋ต๋๋ค! ์ ํฌ ํ๋ก์ ํธ์์๋ JUnit ๊ณผ Mockito๋ฅผ ์ฌ์ฉํ์ฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ์์ต๋๋ค. ๐จ๐ป ๊ฒฐ๋ก ํ ์คํธ ์ฝ๋๋ฅผ ๊ฐ ๊ณ์ธต๋ง๋ค ์์ฑํจ์ผ๋ก์จ ๊ฐ๋ฐ ์๊ฐ์ด ๋จ์ถ๋๋ ํจ๊ณผ๋ฅผ ์ป์ ์ ์์์ต๋๋ค. ํ ์คํธ๋ฅผ ์ฝ๊ฒํ๊ธฐ ์ํด์, ์ดํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ฝ๊ฒ ์ง๊ฒ ๋์๊ณ ๊ฒฐ๊ตญ ํ ์คํธ ์ฝ๋๋ฅผ ์ง๊ธฐ ์ํด ๋ ธ๋ ฅํ๋ค ๋ณด๋, ์ดํ๋ฆฌ์ผ์ด์ ์ฝ๋๊ฐ ๊น๋ํด์ง๋ ๊ฒ์ ๊ฒฝํํ ์ ์์์ต๋๋ค. ๋ฌด์๋ณด๋ค๋ ์๋ฒ๋ฅผ ์คํ์ํค์ง ์์๋, DB์ ๊ฐ์ ๋ฃ์ง ์์๋, ์ง์ ๋์ผ๋ก ํ์ธํ์ง ์..
2021.08.24