sorjfkrh50782458
@sorjfkrh50782458
Reviews Written
15
Average Rating
5.0
Posts
Q&A
์ํ ๋ฑ๋ก, ์์ ๊ตฌํ ๋ฐฉ๋ฒ์ ๋ํด์ ๊ถ๊ธํฉ๋๋ค.
์ฃผ๋ง์ ์ฌ์ ์ผ ํ์๋๋ฐ ๋ต๋ณ ๋ฌ์์ฃผ์ ์ ๊ฐ์ฌ๋๋ฆฝ๋๋ค.ใ ใ ์๋น์ค๋ฅผ ๊ฐ๊ฐ ๋ณ๋๋ก ๋ถ๋ฆฌํด๋ผ๋ ๋ป์ด Controller(add)-Service(save), Controller(edit)-Service(update)๋ก ๋ถ๋ฆฌํด๋ผ๋ ์๋ฏธ์ผ๊น์? ๊ทธ๋ ๋ค๋ฉด ํด๋์ค๊ฐ ๋ถ๋ฆฌ๋๋ ํด๋์ค๋น ์ฝ๋ ์์ ์ค์ผ ์ ์์๊ฒ ๊ฐ์ต๋๋ค. ๋ค๋ง, Service์ save, update ๋ก์ง์ if-else ๋ฌธ์ ๊ฒฐ๊ตญ ์ ๋ฐ ํํ๋ก ๊ตฌํํด์ผํ๋ค๋ ๋ง์์ด์ ์ง ๊ถ๊ธํฉ๋๋ค.
- 1
- 2
- 423
Q&A
@Transacional์ ๋ฒ์์ ๋ํด์ ๊ถ๊ธํ ์ ์ด ํ๋ ์์ต๋๋ค!
๊ฐ์ฌํฉ๋๋ค. ๊ฐ์ฌ๋ ใ ใ , ๋ช์ผ๋์ ๋ง์ด ๊ณ ๋ฏผํ์๋๋ฐ ๊ฐ์ฌ๋ ๋๋ถ์ ์์ด ๋ซ๋ฆฐ ๋๋์ ๋๋ค! AOP๋ ๋ชจ๋ ์คํ๋ง ๋น์ด ์ฒ๋ฆฌ๋๊ณ ๋์ ์ ์ฉ๋๊ธฐ ๋๋ฌธ์ TestDataInit ํด๋์ค๊ฐ ๋น์ ๋ฑ๋ก๋ ๋ ํธ์ถ๋๋ @PostConstruct ์์ ์๋ AOP ์ค ํ๋์ธ @Transactional์ด ์ ์ฉ๋๋ ๊ฒ์ ๋ณด์ฅํด์ฃผ๋ ์๋ ๊ฒ์ด๊ตฐ์. ๊ทธ๋ ๋ค๋ฉด MemberService๋ก ์ ๊ทผํด์ ์ฑ๊ณตํ ๊ฒ๋ ์ ํํ ๋งํ๋ค๋ฉด @Transactional์ด ๋ณด์ฅ๋์ง ์์ง๋ง ์ด์ด ์ข์์ ์ฑ๊ณตํ ๊ฒ์ด๋ผ๊ณ ์๊ฐํ๋ฉด ๋๋ ๊ฒ์ผ๊น์?
- 1
- 4
- 585
Q&A
@Transacional์ ๋ฒ์์ ๋ํด์ ๊ถ๊ธํ ์ ์ด ํ๋ ์์ต๋๋ค!
์๋ ํ์ธ์ ๊ฐ์ฌ๋, ์ฌ๋ ค์ฃผ์ ๋ ๋งํฌ๋ฅผ ํ์ธํ๊ณ ๋ง์ ๊ณ ๋ฏผ์ ํด๋ดค์ต๋๋ค. ์ ๊ฐ ์ดํดํ ๋ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค. [์ฒซ๋ฒ์งธ ๋งํฌ] Repository์๋ @Transactionl์ด ์๊ธฐ ๋๋ฌธ์ EntityManger์ ์ฐ์ ํ๋ก์ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํด์ค ๋ค์ ๋ค๋ฅธ ํธ๋์ญ์ ์์ ํด๋น Repository์ ์ ๊ทผํ๊ฒ ๋๋ฉด ๊ทธ EntityManger๋ฅผ ์ฌ์ฉํ๊ฒ ๋ค. [๋๋ฒ์จฐ๋งํฌ] ๋ฉ์๋ A์ @Transactional์ ๊ฑธ์๋ค๋ฉด ๋ฉ์๋ ๋ด๋ถ์ ํธ๋์ญ์ ์ด ์ ํ๋๊ธฐ ๋๋ฌธ์ A์์ ํธ์ถ๋๋ ๋ค๋ฅธ ๊ธฐ๋ฅ๋ค์ ๋์ผํ ํธ๋์ญ์ ์ด๋ค. ๋ ๋งํฌ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์ดํดํ์์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด init() ๋ฉ์๋๋ฅผ ํธ๋์ญ์ A๋ผ๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค. [MemberService] init()์์ memberService.save ํธ์ถ => ํธ๋์ญ์ A memberService์ @Transactional์ด ์์, ๋ฐ๋ผ์ memberService.save => ํธ๋์ญ์ B memberRepository.save, Repository๋ @Transactional์ด ์์ผ๋ EntityManager์๋ ํ๋ก์ ๊ฐ์ฒด๊ฐ ์์. memberService๋ก ์ธํด ํธ์ถ๋์์ผ๋ meberService์ EntityManger๋ฅผ ์ฌ์ฉํด์ ๋๋น์ ์ ์ฅ => ํธ๋์ญ์ B [MemberRepository] init()์์ memberRepository ํธ์ถ => ํธ๋์ญ์ A memberRepository.save, Repository๋ @Transactional์ด ์์ผ๋ EntityManager์๋ ํ๋ก์ ๊ฐ์ฒด๊ฐ ์์. init()๋ก ์ธํด ํธ์ถ๋์์ผ๋ init()์ EntityManger๋ฅผ ์ฌ์ฉํด์ ๋๋น์ ์ ์ฅ => ํธ๋์ญ์ A ๊ทธ๋ ๋ค๋ฉด ๋ ๋ฐฉ๋ฒ ๋ชจ๋ EntityManger์๋ ํ๋ก์๊ฐ์ฒด๊ฐ ์๋ ํธ๋์ญ์ A or B์ EntityManger๊ฐ ์กด์ฌํ๋ ๊ฒ์ด ์๋๊ฑด๊ฐ์? ๋๋ค ์กด์ฌํ๋ค๋ฉด MemberService๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก MemberRepository.save()๋ก ์ฒ๋ฆฌํ์๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
- 1
- 4
- 585
Q&A
equals ๋ฉ์๋๋
== ์ฐ์ฐ, equals() ๋ฉ์๋ ์ฐจ์ด๋ฅผ ๊ณต๋ถํด๋ณด์๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค. ๊ฐ์ 8:55๋ถ์ฏค์ ๋ณด์๋ฉด ๊ฐ์ฌ๋๊ป์ same์ ==, equal์ equals๋ฅผ ์๊ฐํ์๋ฉด ๋๋ค๊ณ ์ค๋ช ํด์ฃผ์ จ์ต๋๋ค. String ํด๋์ค์ equals() ๋ฉ์๋๋ฅผ ํ์ธํด๋ณด์๋ฉด 1. == ์ฐ์ฐ์ผ๋ก ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ด ๊ฐ์์ง๋ฅผ ํ์ธ, 2. ๋ ๋ฌธ์์ด์ ๊ตฌ์ฑ์ด ๊ฐ์์ง๋ฅผ ํ์ธํ๋๋ก Object์ equals() ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ฆ, isEqualTo๋ ๊ฐ์ ๊ฐ์ฒด์ธ์ง๋ ๋น๊ตํ๋ฉฐ, ๊ฐ์ ์ฐธ์กฐ๊ฐ์ด ์๋๋๋ผ๋ String ํด๋์ค์ equals() ๋ฉ์๋์ ๋ฐ๋ผ ๋ ๋ฌธ์์ด์ ๊ตฌ์ฑ์ด ๊ฐ๋ค๋ฉด true์ ๋ฐํํฉ๋๋ค. ๋ฐ๋ฉด isSameAs๋ ๋ ๊ฐ์ฒด์ ์ฐธ์กฐ๊ฐ์ด ๊ฐ์์ง๋ง ๋น๊ตํ๊ธฐ ๋๋ฌธ์ ์ ์์ ์์๋ false๋ฅผ ๋ฐํํฉ๋๋ค. 1, 2๋ฒ ํ ์คํธ์ ์ฐจ์ด๋ String ๊ฐ์ฒด๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ธ new ์ฐ์ฐ๊ณผ ๋ฆฌํฐ๋ด ๋ฐฉ์์ ๊ณต๋ถํด๋ณด์๋ฉด ์ข์๋ฏํฉ๋๋ค.
- 0
- 6
- 899




