java(86)
-
[Spring Boot] @Order
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ @Order์ ๋ํด์ ํ๋ฒ ์์๋ณผ ๊ฒ์ด์์. ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ @Order Order์ ๊ธฐ๋ณธ๊ฐ์ Ordered.LOWEST_PRECEDENCE๊ฐ ์ง์ ๋๋ ๊ฒ์ด์์. ๐ @Order ์์๊ฐ ๐ @Order ์์๊ฐ ๋ณ ์คํ์์ ๊ฐ์ฅ ๋ฎ์ ์์๋๋ก Ordered.HIGHEST_PRECEDENCE ๊ฐ์ 1์ ๋ํ๋ฉด์ ์ ์ ์์๊ฐ ๋ฎ์์ง๋ ๊ฒ์ด์์. ๐ ์ฐธ๊ณ ์๋ฃ https://javafactory.tistory.com/1516
2021.12.21 -
[WEB] Interceptor, Sevlet, Filter, Resource Handler ์์๋ณด๊ธฐ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์ ๋ชฉ์ ์ด๊ฑฐํ ๊ฒ๋ค์ ๋ํด ํ๋ฒ ์์๋ณด๋ ๊ฒ์ด์์. ์ฐ๋ฆฌ๊ฐ WEB์ ๋ง๋ค ๋, ์ธ์ฆ์ด๋, ํ์ผ ์ ๋ก๋ ๋ฑ์ ํ ๋ ํ์ํ ๊ฐ๋ ์ผ๋ก ์ด๋ค ์์ผ๋ก ์์ฒญ์ ๋ฐ์๋๋ฆฌ๋์ง ์์์ผ ํ๋ ๋ถ๋ถ์ด๋ผ ์ ๋ฆฌ๋ฅผ ํด ๋ณด์์ต๋๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์ ํด ๋ณผ๊ฒ์! ๐ Interceptor, Servlet Filter Spring Filter์ Intercptor๋ ์ด๋ค ์ฐจ์ด์ ์ด ์์๊น์? Filter๋ Servlet Container์ ์ด ์ ์ ๊ณตํต์ ์ผ๋ก ์ฒ๋ฆฌํด์ผ ๋๋ ๋ถ๋ถ์ ์ฒ๋ฆฌํ ์ ์๋ ๊ฒ์ด๊ณ , Interceptor๋ AOP์ฒ๋ผ ํน์ ์์ ์ ๊ฐ๋ก์ฑ๊ธฐ ํ์ฌ ์ด๋ค ํ์๋ฅผ ํ ์ ์๋๋ก ํ๋ ๊ฒ์ด์์. Spring ๋๋ Spring Boot ํ๋ ์์ํฌ๋ก Web Application์ ๊ฐ๋ฐํ๋ค ๋ณด..
2021.12.20 -
[JPQL] Delete ์ ๋ฌธ์ : InvalidDataAccessApiUsageException
๐ InvalidDataAccessApiUsageException [์์ด์ฝ์ถํ]์คํ๋ง๊ณผ JPA๋ฅผ ํ์ฉํ ์๋ฐ ์ํฐํ๋ผ์ด์ฆ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ ์ธํธ - ์ 3๊ถ COUPANG www.coupang.com "์ด ํฌ์คํ ์ ์ฟ ํก ํํธ๋์ค ํ๋์ ์ผํ์ผ๋ก, ์ด์ ๋ฐ๋ฅธ ์ผ์ ์ก์ ์์๋ฃ๋ฅผ ์ ๊ณต๋ฐ์ต๋๋ค." โ ๋ฌธ์ ๋ฐ์! Test Code ์์ ๊ฐ์ด ๊ฒ์๊ธ๊ณผ ํด๋น ๊ฒ์๊ธ์ ๋ํ Delete๋ฅผ ์ํด JPQL์ ํตํด ์ญ์ ์ฒ๋ฆฌ๋ฅผ ํ๋ ค๊ณ ํ์๋ ๊ฒ์ด์์. ํ์ง๋ง, ์๋์ ๊ฐ์ด Exception์ด ๋นต! ํ๊ณ ํฐ์ ธ๋ฒ๋ ธ๋ต๋๋ค! org.springframework.dao.InvalidDataAccessApiUsageException: For queries with named parameters you need to use provid..
2021.11.02 -
[Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ Spring์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์์ OCP์์น๊ณผ DIP๋ฅผ ์ข ๋ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์ธํ๋ฐ - ๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ ํ์์ต๋๋ค. ์ด ๊ฐ์์ ๋ํ Code๋ ์ฌ๊ธฐ์ ์ค๋น ํด ๋๊ฒ์! ๐ ๋ชฉ์ฐจ 01. [Spring] ์คํ๋ง ํต์ฌ ์๋ฆฌ 02. [Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID) 03. [Spring] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง 04. [Spring] OCP์ DIP ๊ณ ๋ คํ๊ธฐ 05. [Spring] ๊ฐ์ฒด ์งํฅ ์๋ฆฌ ์ ์ฉ - ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ 06. [Spring] AppConfig ๋ฆฌํฉํฐ๋ง 07. [Spring] Ioc, DI Container 08. [Spring] ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ..
2021.09.18 -
[Spring] ์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น (SOLID)
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ Spring์ SOLID์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. ์ด ๋ด์ฉ์ ์ธํ๋ฐ - ๊น์ํ ๊ฐ์ฌ๋์ ์คํ๋ง ํต์ฌ ์๋ฆฌ๋ฅผ ๊ณต๋ถํ๋ฉด์ ์ ๋ฆฌ ํ์์ต๋๋ค. ๐ ๋ชฉ์ฐจ 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] Component ..
2021.09.11 -
[์๋ฃ๊ตฌ์กฐ] 05. Hash Table
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ ์๋ฃ๊ตฌ์กฐ์์ Hash Table์ ๋ํด์ ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! ์ ๊ฐ ์์ฑํ ์ฝ๋๊ฐ ๊ถ๊ธํ์๋ค๋ฉด? ์ฃผ๋ํ๋์ ๊น ํ๋ธ์ ๊ด์ฌ์ ์ฃผ์ธ์! ํด์ ํจ์์ ๋ํ ๊ฐ๋ ์ ์ ๋ชจ๋ฅด์ ๋ค๋ฉด [์ ๋ณด๋ณด์] ํด์ํจ์ ๊ฐ๋ ์ ๊ด์ฌ์ ์ฃผ์ธ์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ Hash Table ๐ Hash ๊ตฌ์กฐ Hash Table์ Key์ Data๋ฅผ ์ ์ฅํ๋ Data ๊ตฌ์กฐ์ธ ๊ฒ์ด์์. JAVA๋ก ๋ณด๋ฉด Hash Map์ด ๋ ๊ฒ์ด๊ณ , Python์์๋ Dictionary ๊ตฌ์กฐ๊ฐ ๋ ๊ฒ์ด์์! Key๋ฅผ ํตํด ๋ฐ๋ก Data๋ฅผ ๋ฐ์์ฌ ์ ์์ผ๋ฏ๋ก, ์๋๊ฐ ํ๊ธฐ์ ์ผ๋ก ๋น ๋ฅด๋ค Python Dictionary(์ฌ์ ) Type Hash Table Exam : Key๋ฅผ ๊ฐ์ง๊ณ ๋ฐ๋ก Value๋ฅผ ๊บผ๋ธ..
2021.08.27