Spring(72)
-
[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 -
[Data Base] Transaction
๐ Transaction ์ด๋? Data Base์ ์ํ๋ฅผ ๋ณํ ์ํค๋ ํ๋์ ๋ ผ๋ฆฌ์ ๊ธฐ๋ฅ์ ์ํํ๊ธฐ ์ํ ์์ ์ ๋จ์ ๋๋ ํ๊บผ๋ฒ์ ๋ชจ๋ ์ํ ๋์ด์ผ ํ ์ผ๋ จ์ ์ฐ์ฐ์ธ ๊ฒ์ด์์. ๐ ํน์ง ํธ๋์ญ์ ์ Data Base ์์คํ ์์ ๋ณํ ์ ์ด ๋ฐ ํ๋ณต ์์ ์ ์ฒ๋ฆฌ๋๋ ์์ ์ ๋ ผ๋ฆฌ์ ๋จ์ ์ฌ์ฉ์๊ฐ ์์คํ ์ ๋ํ ์๋น์ค ์๊ตฌ ์ ์์คํ ์ด ์๋ตํ๊ธฐ ์ํ ์ํ ๋ณํ ๊ณผ์ ์ ์์ ๋จ์ ํ๋์ ํธ๋์ญ์ ์ commit ๋๊ฑฐ๋, Rollback ๋์ด์ผ ํ๋ค. ๐ ์ฑ์ง ๐ Atomicity(์์์ฑ) ํธ๋์ญ์ ์ ์ฐ์ฐ์ Data Base์ ๋ชจ๋ ๋ฐ์๋๋ ์ง ์๋๋ฉด ์ ํ ๋ฐ์๋์ง ์์์ผ ํ๋ค. ํธ๋์ญ์ ๋ด์ ๋ชจ๋ ๋ช ๋ น์ ๋ฐ๋์ ์๋ฒฝํ ์ํ๋์ด์ผ ํ๋ฉฐ, ๋ชจ๋๊ฐ ์๋ฒฝํ ์ํ๋์ง ์๊ณ , ์ด๋ ํ๋๋ผ๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉด ํธ๋์ญ์ ์ ๋ถ ์ทจ..
2021.10.05 -
[์ฐ๋ฆฌ์ง ์น ์๋น์ค ์ ์ ํ๋ก์ ํธ] Cannot Resolve Method '{Method Name}' in ~~~
๐ฅ ๋ฌธ์ ๋ฐ์ ๋ฌธ์ ๋ Jpa๋ก ์์ฑํ Repository์์ CRUD ์์ ์ ํด์ผ ํ๋๋ฐ, ๊ฐ๊ฐ์ Method๋ฅผ ์ฐพ์ ์ ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒ์ด์์. ๐ก ํด๊ฒฐ ๋ฐฉ๋ฒ Spring Data JPA์ ๋ํ ์์กด์ฑ์ ์ ๋๋ก ์ถ๊ฐ ํด ์ฃผ์ง ์์ ๋ฐ์ํ๋ ๋ฌธ์ ์๋ต๋๋ค. ์์ ๊ฐ์ด Gradle.build์ ๋ด์ฉ์ ์ถ๊ฐํ๋ ์ ์ ํด๊ฒฐ ํ ๊ฒ์ด์์. ์ฃผ๋ํ๋์ ๊ธ์ด ๋ง์์ ๋์ จ๋์? ๊ตฌ๋ ๊ณผ ๊ณต๊ฐ! ๊ทธ๋ฆฌ๊ณ , ๋๊ธ ๊ทธ๋ฆฌ๊ณ ๋ฐฉ๋ช ๋ก์ ์ฃผ๋ํ๋์๊ฒ ๋ง์ ํ์ด ๋ฉ๋๋ค.
2021.09.30 -
[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] ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค. ์ค๋์ 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.12 -
[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