/images/avatar.png

🍞πŸ₯πŸ₯– 라일리의 μ½”λ“œ λΆ€μŠ€λŸ¬κΈ° 🍞πŸ₯πŸ₯–

[μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°] 6μž₯ λ‹€μ–‘ν•œ 연관관계 맀핑 - λ‹€λŒ€μΌ

μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ° ν•™μŠ΅ λ‚΄μš© μ •λ¦¬ν•œ ν¬μŠ€νŒ… μž…λ‹ˆλ‹€. λ‹€μ–‘ν•œ 연관관계 닀루기 μ—”ν‹°ν‹°μ˜ 연관관계λ₯Ό λ§€ν•‘ν• λ•Œ 고렀할점 닀쀑성 단방ν–₯, μ–‘λ°©ν–₯ μ—°κ΄€κ΄€κ³„μ˜ 주인 닀쀑성 λ‹€λŒ€μΌ(@ManyToOne), μΌλŒ€λ‹€(@OneToMany), μΌλŒ€μΌ(@OneToOne), λ‹€λŒ€λ‹€(@ManyToMany) 닀쀑성을 νŒλ‹¨ν•˜κΈ° μ–΄λ €μšΈ λ•ŒλŠ” λ°˜λŒ€λ°©ν–₯을 μƒκ°ν•΄λ³΄μž. 보톡 λ‹€λŒ€μΌκ³Ό μΌλŒ€λ‹€ 관계λ₯Ό κ°€μž₯ 많이 μ‚¬μš©ν•˜κ³  λ‹€λŒ€λ‹€ κ΄€κ³„λŠ” μ‹€λ¬΄μ—μ„œλŠ” 거의 μ‚¬μš©ν•˜μ§€ μ•ŠμŒ. 단방ν–₯, μ–‘λ°©ν–₯ 객체 κ΄€κ³„μ—μ„œ ν•œμͺ½λ§Œ μ°Έκ³ ν•˜λŠ” 것을 단방ν–₯ κ΄€κ³„λΌκ³ ν•˜λ©°, μ–‘μͺ½μ΄ μ„œλ‘œ μ°Έμ‘°ν•˜λŠ” 것을 μ–‘λ°©ν–₯ 관계라 ν•œλ‹€. μ—°κ΄€κ΄€κ³„μ˜ 주인 μ™Έλž˜ ν‚€λ₯Ό 가진 ν…Œμ΄λΈ”κ³Ό λ§€ν•‘ν•œ μ—”ν‹°ν‹°κ°€ μ™Έλž˜ν‚€λ₯Ό κ΄€λ¦¬ν•˜λŠ”κ²Œ νš¨μœ¨μ μ΄λ―€λ‘œ 보톡 이곳을 μ—°κ΄€κ΄€κ³„μ˜ 주인으둜 μ„ νƒν•œλ‹€.

[μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°] 5μž₯ 연관관계 맀핑 기초 - μ–‘λ°©ν–₯ 연관관계

μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ° ν•™μŠ΅ λ‚΄μš© μ •λ¦¬ν•œ ν¬μŠ€νŒ… μž…λ‹ˆλ‹€. μ–‘λ°©ν–₯ 연관관계 μΌλŒ€λ‹€ κ΄€κ³„μ—μ„œλŠ” μ—¬λŸ¬ 건과 연관관계λ₯Ό 맺을 수 μžˆμœΌλ―€λ‘œ μ»¬λ ‰μ…˜(Collection, Set, Map, List ..) 을 μ‚¬μš©ν•œλ‹€. μ–‘λ°©ν–₯ 연관관계 맀핑 νšŒμ› μ—”ν‹°ν‹° (Member.java) νšŒμ› μ—”ν‹°ν‹°μ—λŠ” λ³€κ²½ν•  사항이 μ—†λ‹€. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 @Entity public class Member { @Id @Column(name = "MEMBER_ID") private String id; private String username; // 연관관계 맀핑 @ManyToOne @JoinColumn(name = "TEAM_ID") private Team team; // 연관관계 μ„€μ • public void setTeam(Team team) { this.

[μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°] 5μž₯ 연관관계 맀핑 기초 - 단방ν–₯ 연관관계

μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ° ν•™μŠ΅ λ‚΄μš© μ •λ¦¬ν•œ ν¬μŠ€νŒ… μž…λ‹ˆλ‹€. κ°μ²΄λŠ” μ°Έμ‘°(μ£Όμ†Œ)λ₯Ό μ‚¬μš©ν•΄μ„œ 관계λ₯Ό λ§Ίκ³  ν…Œμ΄λΈ”μ„ μ™Έλž˜ ν‚€λ₯Ό μ‚¬μš©ν•΄μ„œ 관계λ₯Ό λ§ΊλŠ”λ‹€. λ°©ν–₯(Direction) : 단방ν–₯κ³Ό μ–‘λ°©ν–₯이 있으며 λ°©ν–₯은 κ°μ²΄κ΄€κ³„μ—λ§Œ μ‘΄μž¬ν•˜κ³  ν…Œμ΄λΈ” κ΄€κ³„λŠ” 항상 μ–‘λ°©ν–₯ 이닀. 닀쀑성(Multiplicity) : λ‹€λŒ€μΌ(N:1), μΌλŒ€λ‹€(1:N), μΌλŒ€μΌ(1:1), λ‹€λŒ€λ‹€ (N:N) 연관관계 주인 (owner) : 객체λ₯Ό μ–‘λ°©ν–₯ μ—°κ΄€κ΄€κ³„λ‘œ λ§Œλ“€λ©΄ μ—°κ΄€κ΄€κ³„μ˜ 주인을 μ •ν•΄μ•Ό ν•œλ‹€. 단방ν–₯ 연관관계 객체 연관관계 νšŒμ› 객체와 νŒ€ κ°μ²΄λŠ” 단방ν–₯ 관계 λ‹€. νšŒμ›μ€ Member.team ν•„λ“œλ₯Ό ν†΅ν•΄μ„œ νŒ€μ„ μ•Œ 수 μžˆμ§€λ§Œ λ°˜λŒ€λ‘œ νŒ€μ€ νšŒμ›μ„ μ•Œ 수 μ—†λ‹€.

[μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ°] 4μž₯ μ—”ν‹°ν‹° 맀핑

μžλ°” ORM ν‘œμ€€ JPA ν”„λ‘œκ·Έλž˜λ° ν•™μŠ΅ λ‚΄μš© μ •λ¦¬ν•œ ν¬μŠ€νŒ… μž…λ‹ˆλ‹€. JPA 의 맀핑 μ–΄λ…Έν…Œμ΄μ…˜ 객체와 ν…Œμ΄λΈ” 맀핑 : @Entity, @Table κΈ°λ³Έ ν‚€ 맀핑 : @Id ν•„λ“œμ™€ 컬럼 맀핑 : @Column 연관관계 맀핑 : @ManyToOne, @JoinColumn 4.1 @Entity ν…Œμ΄λΈ”μ„ λ§€ν•‘ν• λ•Œ @Entity μ–΄λ…Έν…Œμ΄μ…˜μ„ ν•„μˆ˜λ‘œ λΆ™μ–΄μ•Ό ν•œλ‹€. 속성 κΈ°λŠ₯ κΈ°λ³Έκ°’ name JPA μ—μ„œ μ‚¬μš©ν•  μ—”ν‹°ν‹° 이름을 μ§€μ •ν•œλ‹€. 보톡 기본값인 클래슀 이름을 μ‚¬μš©ν•œλ‹€. μ„€μ •ν•˜μ§€ μ•ŠμœΌλ©΄ 클래슀 이름을 κ·ΈλŒ€λ‘œ μ‚¬μš©. @Entity μ μš©μ‹œ μ£Όμ˜ν•  점 λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” κΈ°λ³Έ μƒμ„±μžλŠ” ν•„μˆ˜.

[Mastering Spring 5.0] 11.2 Spring Reactive - 1

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. λ¦¬μ•‘ν‹°λΈŒ 슀트림 μ˜μ‘΄μ„± μΆ”κ°€ 1 2 implementation ('org.reactivestreams:reactive-streams:1.0.2') implementation ('org.reactivestreams:reactive-streams-tck:1.0.2') λ¦¬μ•‘ν‹°λΈŒ 슀트림의 κ΅¬μ„±μš”μ†Œ Publisher : 데이터 제곡자. κ΅¬λ…ν•œ κ΅¬λ…μžλ“€μ—κ²Œ ꡬ독 정보λ₯Ό ν† λŒ€λ‘œ 데이터λ₯Ό μ œκ³΅ν•œλ‹€. Subscriber : 데이터 μ†Œλͺ¨μž. μ œκ³΅μžλ‘œλΆ€ν„° 데이터λ₯Ό λ°›μ•„ μ†Œλͺ¨ν•œλ‹€. Subscription : ꡬ독 정보. Subscriber λŠ” Publisher λ₯Ό κ΅¬λ…ν•˜μ—¬ 데이터(n) μš”μ²­ν•  수 μžˆλ‹€. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 // Publisher package org.

[Mastering Spring 5.0] 11.1 Reactive Programming

μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” μŠ€ν”„λ§ 5.0 λ§ˆμŠ€ν„° μŠ€ν„°λ”” ν•™μŠ΅ λ‚΄μš© μ •λ¦¬μž…λ‹ˆλ‹€. λ¦¬μ•‘ν‹°λΈŒ μ‹œμŠ€ν…œ μƒˆλ‘œμš΄ λ””λ°”μ΄μŠ€ (λͺ¨λ°”일, νƒœλΈ”λ¦Ώ λ“±) real-time data 에 λŒ€ν•œ μˆ˜μš” 증가 λŒ€λŸ‰μ˜ ν”„λ‘œμ„ΈμŠ€ 처리 λ‘œλ“œ λ°œμƒ 데이터 λ³Όλ₯¨μ΄ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ 증가 인프라 μœ μ§€ 보수 λΉ„μš© 증가 Reactive μ‹œμŠ€ν…œ νŠΉμ§• Reactive manifesto : https://www.reactivemanifesto.org/ko Reative Manifesto λŠ” λ‹€μŒ λ„€ 가지 핡심 원칙에 따라 Reactive System 의 νŠΉμ„±μ„ 개랡적으둜 μ„€λͺ…ν•˜κ³  μžˆλ‹€. λ°˜μ‘μ„± (Responsive) : λͺ¨λ“  응닡은 μ μ‹œμ— λΉ λ₯΄κ³  μΌκ΄€λœ λŒ€μ‘μ„ μ œκ³΅ν•˜λ©° μ‹ λ’°ν• μˆ˜ 있으며 μΌκ΄€λœ μ„œλΉ„μŠ€ ν’ˆμ§ˆμ„ μ œκ³΅ν•œλ‹€.