๋ถ๋ฅ ์ ์ฒด๋ณด๊ธฐ199 [ TIL ] JPA ์ฌํ_Day 4 ์ค๋ ํ ๊ณต๋ถ ๐ง ํ์ ๊ณผ์ ์์Level 1@Transactional์ ์ดํดํ์ฌ ๊ธฐ๋ณธ์ ์ผ๋ก TodoService์ ๋ชจ๋ ๋ก์ง์ด @Transactional(readOnly = true)๋ก ์ค์ ๋์ด ์๋ค.๊ทธ๋์ saveTodo( ) ๋ฉ์๋๊ฐ ์คํ๋ ๋๋ ๊ฐ์ ์ค์ ์ด ๋ค์ด๊ฐ์ ์๋ฌ๊ฐ ๋ฐ์ํ๊ณ ์๋ค.DB๋ฅผ ๋ณ๊ฒฝํด์ผ ํ๋ ๊ฒฝ์ฐ์๋ ๋ฐ๋ก @Transactional ์ด๋ ธํ ์ด์ ์ ๋ถ์ฌ์ค์ผ ์ ์์ ์ผ๋ก ์๋ํ๋ค.JWT์ ์ดํด๊ถ๊ธํ๋ ๋ด์ฉ๊ฐ๊ฐ์ ๋ฉ์๋ ์์ ๋ฐ๋ก @Transactional์ ๋ถ์ฌ์ฃผ๋ฉด ๋์ง ์์๊น? ์ ์ ์ฒด ์ ์ฉ์ ํ๋ ๊ฑฐ์ง??@Transactional(readOnly = true)๋ฅผ ์ฌ์ฉํ๋ฉด ์กฐํ์ฉ ๋ฉ์๋์ ๋ํด์ ์ฑ๋ฅ์ ์ด์ ์ ์ป์ ์ ์๋ค.๋ฐ์ดํฐ ์ผ๊ด์ฑ์ผ๋ฐ์ ์ผ๋ก ํธ๋์ญ์ ์ ์ฌ์ฉํด์ DB์ ๋ฐ์ดํฐ์ ์ผ.. 2025. 1. 17. [ Spring ] CascadeType.REMOVE์ orphanRemoval=true, ์๋ชป ์ฐ๋ฉด ๋ฐ์ดํฐ๊ฐ ๋ ์๊ฐ๋๋ค!! ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐ๊ฐ์๋ฅผ ๋ฃ๋ค๊ฐ Cascade์ orphanRemoval์ ๋ํ ๋ด์ฉ์ด ๋์๋ค. ์ฒ์์๋ "์~ ์ด๋ฐ ๊ฑฐ๊ตฌ๋" ํ๊ณ ๋ฌด์ฌ์ฝ ๋์ด๊ฐ๋ ค ํ์ง๋ง, ๊ฐ์๊ฐ ์งํ๋ ์๋ก ๋จธ๋ฆฟ์์ ๋ฌผ์ํ๊ฐ ๊ฐ๋ ์ฐจ๊ธฐ ์์ํ๋ค."Cascade๊ฐ ๋ญ์ง? ์ด๊ฑธ ์ธ์ ์จ์ผ ํ์ง?", "orphanRemoval์ ๋ ๋ญ๋ฐ...?๋ผ๋ ์๊ฐ์ด ๊ผฌ๋ฆฌ์ ๊ผฌ๋ฆฌ๋ฅผ ๋ฌผ์๋ค.๊ฒฐ๊ตญ, ๊ฐ์๋ฅผ ๋ฃ๋ ๋ด๋ด ์ ํํ ์ดํดํ์ง ๋ชปํ ์ฑ๋ก ๋ฉํ๋ ์ง๋๊ฐ๊ณ ๋ง์๋ค."์ด๋๋ก ๋์ด๊ฐ๋ฉด ๋์ค์ ๋ ๋งํ ๊ฑฐ์ผ"๋ผ๋ ์๊ฐ์ด ๋จธ๋ฆฌ๋ฅผ ์ค์ณค๊ณ , ์ด๋ ๊ฒ ๋ ๊น์ ๊ฐ๋ ์ ์ ๋๋ก ์ ๋ฆฌํด๋ณด์๋ ๋ง์์ผ๋ก ๊ณต๋ถ๋ฅผ ์์ํ๊ฒ ๋์๋ค.Cascade์ orphanRemoval์ JPA์์ ๊ฝค ์ค์ํ ๊ฐ๋ ์ด์ง๋ง, ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์ ๋๋ ๊ฑด "๋ง์ ์ฌ์ ๋ณด์ด๋๋ฐ, ๋ง์ ์ดํดํ๋ ค๋ฉด ์๊ฐ๋ณด๋ค ๋ณต์ก.. 2025. 1. 17. [ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ๋ง์น ํ๊ธฐ ๋ฌธ์ ์ค๋ช https://school.programmers.co.kr/learn/courses/30/lessons/161989?language=java ํ๋ก๊ทธ๋๋จธ์คSW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํprogrammers.co.kr์ด๋ ํ๊ต์ ํ์ธํธ๊ฐ ์น ํด์ง ๊ธธ์ด๊ฐ n๋ฏธํฐ์ธ ๋ฒฝ์ด ์์ต๋๋ค. ๋ฒฝ์ ๋์๋ฆฌ · ํํ ํ๋ณด๋ ํ์ฌ ์ฑ์ฉ ๊ณต๊ณ ํฌ์คํฐ ๋ฑ์ ๊ฒ์ํ๊ธฐ ์ํด ํ ์ดํ๋ก ๋ถ์๋ค๊ฐ ์ฒ ๊ฑฐํ ๋ ๋ผ๋ ์ผ์ด ๋ง๊ณ ๊ทธ ๊ณผ์ ์์ ํ์ธํธ๊ฐ ๋ฒ๊ฒจ์ง๊ณค ํฉ๋๋ค. ํ์ธํธ๊ฐ ๋ฒ๊ฒจ์ง ๋ฒฝ์ด ๋ณด๊ธฐ ํํด์ ธ ํ๊ต๋ ๋ฒฝ์ ํ์ธํธ๋ฅผ ๋ง์น ํ๊ธฐ๋ก ํ์ต๋๋ค.๋์ ๋ฒฝ ์ ์ฒด์ ํ์ธํธ๋ฅผ ์๋ก ์น ํ๋ ๋์ , ๊ตฌ์ญ์ ๋๋์ด ์ผ๋ถ๋ง ํ์ธํธ๋ฅผ ์๋ก ์น ํจ์ผ๋ก์จ ์์ฐ์ ์๋ผ๋ ค ํฉ๋๋ค. ์ด๋ฅผ .. 2025. 1. 17. [ TIL ] JPA ์ฌํ_Day 3 ์ค๋ ํ ๊ณต๋ถ ๐ง JPA ์ฌํ 4, 5์ฃผ์ฐจ ๊ฐ์Cascade (์์์ฑ ์ ์ด)์ฐ๊ด๊ด๊ณ์ ์ฃผ์ธ ๋ฐ๋ํธ์์ ์ฌ์ฉํ๋ค.@OneToMany ๋๋ @OneToOne์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค.์์ชฝ Entity์ ๋ผ์ดํ์ฌ์ดํด์ด ๋์ผํ๊ฑฐ๋ ๋น์ทํด์ผ ํ๋ค.์ต์ ์ข ๋ฅALL: ์ ์ฒด ์ํ ์ ์ดPERSIST: ์ ์ฅ ์ํ ์ ์ดREMOVE: ์ญ์ ์ํ ์ ์ด → ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ค. ์์ ํ ์ด๋ธ์ ๊ฐ์ด ๊ฐ์ด ์ญ์ ๋์ด์ผ ํ ๊ฒฝ์ฐ ์ฌ์ฉํ๋ค. MERGE: ์ ๋ฐ์ดํธ ์ํ ์ ์ด REFRESH: ๊ฐฑ์ ์ํ ์ ์ดDETACH: ๋น์์์ฑ ์ํ ์ ์ดorphanRemoval (๊ณ ์ ๊ฐ์ฒด ์ ๊ฑฐ)@OneToMany ๋๋ @OneToOne์์ ์ฌ์ฉํ๋ค. (๋ถ๋ชจ Entity)Cascade.REMOVE์ ๋น์ทํ ์ฉ๋๋ก ์ญ์ ๋ฅผ ์ ํํ๋ ๋ฐ ์ฌ์ฉ๋๋ค.๋ถ๋ชจ ๊ฐ์ฒด์์ ๋ฆฌ์คํธ.. 2025. 1. 16. [ ํ๋ก๊ทธ๋๋จธ์ค/Java ] ์์ ๋ง๋ค๊ธฐ ๋ฌธ์ ์ค๋ช https://school.programmers.co.kr/learn/courses/30/lessons/12977 ํ๋ก๊ทธ๋๋จธ์คSW๊ฐ๋ฐ์๋ฅผ ์ํ ํ๊ฐ, ๊ต์ก, ์ฑ์ฉ๊น์ง Total Solution์ ์ ๊ณตํ๋ ๊ฐ๋ฐ์ ์ฑ์ฅ์ ์ํ ๋ฒ ์ด์ค์บ ํprogrammers.co.kr ์ฃผ์ด์ง ์ซ์ ์ค 3๊ฐ์ ์๋ฅผ ๋ํ์ ๋ ์์๊ฐ ๋๋ ๊ฒฝ์ฐ์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ค๊ณ ํฉ๋๋ค. ์ซ์๋ค์ด ๋ค์ด์๋ ๋ฐฐ์ด nums๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, nums์ ์๋ ์ซ์๋ค ์ค ์๋ก ๋ค๋ฅธ 3๊ฐ๋ฅผ ๊ณจ๋ผ ๋ํ์ ๋ ์์๊ฐ ๋๋ ๊ฒฝ์ฐ์ ๊ฐ์๋ฅผ return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.์ ํ ์ฌํญnums์ ๋ค์ด ์๋ ์ซ์์ ๊ฐ์๋ 3๊ฐ ์ด์ 50๊ฐ ์ดํ์ ๋๋ค.nums์ ๊ฐ ์์๋ 1 ์ด์ 1,000 ์ดํ์ ์์ฐ์์ด๋ฉฐ, ์ค๋ณต๋ ์ซ์๊ฐ ๋ค์ด์.. 2025. 1. 16. [ Spring ] AOP๋ฅผ ์ฌ์ฉํด์ ์ฝ๋ ๊ฐ๋ ์ฑ์ ๋์ฌ๋ณด์! ๊ณต๋ถํ๊ฒ ๋ ๊ณ๊ธฐํ ํ๋ก์ ํธ๋ฅผ ์งํํ๋ ๋์, ํ์์ด AOP(Aspect-Oriented Programming)๋ฅผ ํ์ฉํด ๊ถํ ๊ฒ์ฌ๋ฅผ ๊ตฌํํ๋ ๋ชจ์ต์ ๋ณด๊ฒ ๋์๋ค. ์ฒ์์๋ AOP๋ฅผ ์ด์ฉํด ๋ณต์กํ ๋ก์ง์ ๊ฐ๊ฒฐํ๊ฒ ์ฒ๋ฆฌํ๋ ๋ชจ์ต์ด ๋๋ผ์ ๊ณ , ๋์์ ๋ด๊ฐ ์ง์ ๊ตฌํํ๊ธฐ์ ์ด๋ ต๊ฒ ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ํ์ง๋ง ํ์์ ์ฝ๋๋ฅผ ํจ๊ป ๋ถ์ํ๋ฉฐ ์๋ ๋ฐฉ์์ ์ดํดํ๋ ๊ณผ์ ์์, "๋๋ ๋ ธ๋ ฅํ๋ฉด ์ถฉ๋ถํ AOP๋ฅผ ํ์ฉํ ์ ์๊ฒ ๋ค"๋ ์์ ๊ฐ์ด ์๊ฒผ๋ค.์ดํ, AOP์ ๊ฐ๋ ๊ณผ ํ์ฉ ์ฌ๋ก๋ฅผ ๋ ๊น์ด ์ดํดํ๊ณ ์ถ๋ค๋ ์ด์ ์ด ์๊ฒผ๊ณ , ๊ด๋ จ ์๋ฃ๋ฅผ ์ฐพ์๋ณด๋ฉฐ ํ์ต์ ์์ํ๋ค. ์ด๋ฒ ๊ฒฝํ์ ๋จ์ํ ์๋ก์ด ๊ธฐ์ ์ ๋ฐฐ์ฐ๋ ๊ฒ์ ๋์ด, ๋ด๊ฐ ๊ธฐ์ ์ ์ผ๋ก ์ฑ์ฅํ ์ ์๋ค๋ ๊ฐ๋ฅ์ฑ์ ํ์ธํ ๊ณ๊ธฐ๊ฐ ๋์๋ค.์ฝ๋๋ฅผ ์์ฑํ ๋ ๊ฐ์ฅ ์ค์ํ ์์๋ฐ๋ก ๊ฐ๋ ์ฑ.. 2025. 1. 15. ์ด์ 1 ยทยทยท 4 5 6 7 8 9 10 ยทยทยท 34 ๋ค์