๐ŸŒป JAVA

๐ŸŒป JAVA/์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ

JAVA - STUDY 4์ฃผ์ฐจ ๊ณผ์ œ : ์ œ์–ด๋ฌธ

ํ•™์Šต ํ•  ๋‚ด์šฉ๋“ค ์„ ํƒ๋ฌธ ๋ฐ˜๋ณต๋ฌธ ๊ณผ์ œ ์ œ์ถœ ๊ณผ์ œ 0. JUnit5 ํ•™์Šต ๊ณผ์ œ 1. live-study ๋Œ€์‹œ ๋ณด๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ ์ž‘์„ฑ ๊ณผ์ œ 2. LinkedList ๊ตฌํ˜„ ๊ณผ์ œ 3. Stack ๊ตฌํ˜„ ๊ณผ์ œ 4. ์•ž์„œ ๋งŒ๋“  ListNode๋ฅผ ์ด์šฉํ•ด์„œ Stack ๊ตฌํ˜„ ๊ณผ์ œ 5. Queue๋ฅผ ๊ตฌํ˜„ (Optional) ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์„œ ํ•œ๋ฒˆ ListNode๋ฅผ ์‚ฌ์šฉํ•ด์„œ ํ•œ๋ฒˆ. ์„ ํƒ๋ฌธ if๋ฌธ switch๋ฌธ if๋ฌธ if (์กฐ๊ฑด1) { // ์กฐ๊ฑด1์ด ์ฐธ์ผ ๋•Œ, ์‹คํ–‰ ( {} ์ค‘๊ด„ํ˜ธ ๋ธ”๋Ÿญ ์•ˆ ๋ถ€๋ถ„๋งŒ ์‹คํ–‰!) } // if๋ฌธ์ด ์ข…๋ฃŒ ๋˜๊ณ  ๋‚œ ํ›„์— ์‹คํ–‰ (์กฐ๊ฑด1 ์„ ๋งŒ์กฑ ์•ˆํ•ด๋„ ์‹คํ–‰๋œ๋‹ค.) if - else ๋ฌธ if(์กฐ๊ฑด1) { // ์กฐ๊ฑด1์ด ์ฐธ์ผ ๋•Œ ์‹คํ–‰ } else { // ์กฐ๊ฑด1์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰ } ๋‹ค์ค‘ if๋ฌธ if(์กฐ๊ฑด1)..

๐ŸŒป JAVA/์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ

9-3) ๊ฐ’ ํƒ€์ž… ์ปฌ๋ ‰์…˜

์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ JPA๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฑฐ๋‚˜, ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด JPA์˜ ๊ธฐ๋ณธ ์ด๋ก ์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•™์Šตํ•ด์„œ ์ดˆ๋ณด์ž๋„ ์‹ค๋ฌด์—์„œ ์ž์‹ ์žˆ๊ฒŒ JPA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๏ฟฝ www.inflearn.com ๊ฐ’ ํƒ€์ž… ์ปฌ๋ ‰์…˜ (์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋จ X, ์—”ํ‹ฐํ‹ฐ๋กœ ์Šน๊ฒฉ์‹œ์ผœ์„œ ์‚ฌ์šฉ O) @Entity public class Member { .. @ElementCollection @CollectionoTable(name = "FAVORITE_FOOD", joinColumn = @JoinColumn(name = "MEMBER_ID")) private Set fav..

๐ŸŒป JAVA/์ •๋ฆฌ์ •๋ฆฌ์ •๋ฆฌ

JAVA - STUDY 3์ฃผ์ฐจ ๊ณผ์ œ : ์—ฐ์‚ฐ์ž

ํ•™์Šตํ•  ๊ฒƒ ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž ๋น„ํŠธ ์—ฐ์‚ฐ์ž ๊ด€๊ณ„ ์—ฐ์‚ฐ์ž ๋…ผ๋ฆฌ ์—ฐ์‚ฐ์ž instanceof assignment(=) operator ํ™”์‚ดํ‘œ(->) ์—ฐ์‚ฐ์ž 3ํ•ญ ์—ฐ์‚ฐ์ž ์—ฐ์‚ฐ์ž ์šฐ์„  ์ˆœ์œ„ (optional) Java 13. switch ์—ฐ์‚ฐ์ž ์‚ฐ์ˆ  ์—ฐ์‚ฐ์ž + ์—ฐ์‚ฐ์ž - ์—ฐ์‚ฐ์ž * ์—ฐ์‚ฐ์ž / ์—ฐ์‚ฐ์ž % ์—ฐ์‚ฐ์ž int a = 10; int b = 5; // + System.out.println(a + b); // - System.out.println(a - b); // * System.out.println(a * b); // / System.out.println(a / b); // % System.out.println(a % b); // string + string String p = "abc"; String q = "d..

๐ŸŒป JAVA/์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ

9-1) ๊ฐ’ ํƒ€์ž… - ์ž„๋ฒ ๋””๋“œ ํƒ€์ž…(Embedded Type)

์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ JPA๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฑฐ๋‚˜, ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด JPA์˜ ๊ธฐ๋ณธ ์ด๋ก ์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•™์Šตํ•ด์„œ ์ดˆ๋ณด์ž๋„ ์‹ค๋ฌด์—์„œ ์ž์‹ ์žˆ๊ฒŒ JPA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๏ฟฝ www.inflearn.com JPA์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ถ„๋ฅ˜ ์—”ํ‹ฐํ‹ฐ ํƒ€์ž… @Entity๋กœ ์ •์˜ํ•˜๋Š” ๊ฐ์ฒด ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€ํ•ด๋„ ์‹๋ณ„์ž๋กœ ์ง€์†ํ•ด์„œ ์ถ”์  ๊ฐ€๋Šฅ ์˜ˆ) ํšŒ์› ์—”ํ‹ฐํ‹ฐ์˜ ํ‚ค๋‚˜ ๋‚˜์ด ๊ฐ’์„ ๋ณ€๊ฒฝํ•ด๋„ ์‹๋ณ„์ž๋กœ ์ธ์‹ ๊ฐ€๋Šฅ ๊ฐ’ ํƒ€์ž… int, Integer, String ์ฒ˜๋Ÿผ ๋‹จ์ˆœํžˆ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ์ž๋ฐ” ๊ธฐ๋ณธ ํƒ€์ž…์ด๋‚˜ ๊ฐ์ฒด ์‹๋ณ„์ž๊ฐ€ ์—†๊ณ  ๊ฐ’๋งŒ ์žˆ์œผ๋ฏ€๋กœ ๋ณ€๊ฒฝ์‹œ ์ถ”์  ๋ถˆ๊ฐ€ ๊ฐ’์„ ๋ณ€๊ฒฝํ•  ๋•Œ, ์™„..

๐ŸŒป JAVA/์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ

8-3) ํ”„๋ก์‹œ์™€ ์—ฐ๊ด€๊ด€๊ณ„ ๊ด€๋ฆฌ - ์˜์†์„ฑ ์ „์ด(CASCADE), orphanremoval(๊ณ ์•„)

์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ JPA๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฑฐ๋‚˜, ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด JPA์˜ ๊ธฐ๋ณธ ์ด๋ก ์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•™์Šตํ•ด์„œ ์ดˆ๋ณด์ž๋„ ์‹ค๋ฌด์—์„œ ์ž์‹ ์žˆ๊ฒŒ JPA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๏ฟฝ www.inflearn.com ์˜์†์„ฑ ์ „์ด : CASCADE ํŠน์ • ์—”ํ‹ฐํ‹ฐ๋ฅผ ์˜์† ์ƒํƒœ๋กœ ๋งŒ๋“ค ๋•Œ, ์—ฐ๊ด€๋œ ์—”ํ‹ฐํ‹ฐ๋„ ํ•จ๊ป˜ ์˜์† ์ƒํƒœ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ : ๋ถ€๋ชจ ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ ์ž์‹ ์—”ํ‹ฐํ‹ฐ๋„ ํ•จ๊ป˜ ์ €์žฅ. ์—”ํ‹ฐํ‹ฐ๋ฅผ ์ €์žฅํ•  ๋•Œ, ์—ฐ๊ด€๋œ ์—”ํ‹ฐํ‹ฐ๋„ ํ•จ๊ป˜ ์˜์†ํ™”ํ•˜๋Š” ํŽธ๋ฆฌํ•จ์„ ์ œ๊ณตํ•จ CASCADE ์˜ ์ข…๋ฅ˜ - ALL : ๋ชจ๋‘ ์ ์šฉ (๋ถ€๋ชจ lifeCycle์— ๋งž์ถฐ์•ผ ํ•  ๋•Œ) ALL์„ ์‚ฌ..

๐ŸŒป JAVA/์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ

8-2) ํ”„๋ก์‹œ์™€ ์—ฐ๊ด€๊ด€๊ณ„ ๊ด€๋ฆฌ : ์ง€์—ฐ ๋กœ๋”ฉ๊ณผ ์ฆ‰์‹œ ๋กœ๋”ฉ

์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ์„ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ž๋ฐ” ORM ํ‘œ์ค€ JPA ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ๊ธฐ๋ณธํŽธ - ์ธํ”„๋Ÿฐ JPA๋ฅผ ์ฒ˜์Œ ์ ‘ํ•˜๊ฑฐ๋‚˜, ์‹ค๋ฌด์—์„œ JPA๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ€์กฑํ•˜์‹  ๋ถ„๋“ค์ด JPA์˜ ๊ธฐ๋ณธ ์ด๋ก ์„ ํƒ„ํƒ„ํ•˜๊ฒŒ ํ•™์Šตํ•ด์„œ ์ดˆ๋ณด์ž๋„ ์‹ค๋ฌด์—์„œ ์ž์‹ ์žˆ๊ฒŒ JPA๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ดˆ๊ธ‰ ์›น ๊ฐœ๋ฐœ ํ”„๋กœ๊ทธ๏ฟฝ www.inflearn.com ์ง€์—ฐ ๋กœ๋”ฉ(LAZY)์„ ์‚ฌ์šฉํ•ด์„œ ํ”„๋ก์‹œ๋กœ ์กฐํšŒ @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name ..

iseunghan
'๐ŸŒป JAVA' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๊ธ€ ๋ชฉ๋ก (7 Page)