Skip to content

Latest commit

Β 

History

History
35 lines (27 loc) Β· 1.95 KB

ORM(Object-Relational Mapping).md

File metadata and controls

35 lines (27 loc) Β· 1.95 KB

1.ORM(Object-Relational Mapping)

객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ—μ„œ μ‚¬μš©ν•˜λŠ” 객체와 κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ˜ 
데이터 κ°„μ˜ 맀핑을 μžλ™μœΌλ‘œ ν•΄μ£ΌλŠ” 기술(κ°œλ…)이닀.
λ‹€μ–‘ν•œ 언어와 ν”„λ ˆμž„μ›Œν¬μ—μ„œ κ΅¬ν˜„λ  수 μžˆλŠ” 일반적인 κ°œλ…μ΄λ‹€.
λ°μ΄ν„°λ² μ΄μŠ€μ™€μ˜ μƒν˜Έμž‘μš©μ„ SQL 쿼리 λŒ€μ‹  객체 지ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄μ˜ μ½”λ“œλ‘œ ν•  수 μžˆλ‹€.

2.ORM νŠΉμ§•

2-1.객체-관계 맀핑

객체 지ν–₯ μ–Έμ–΄μ˜ ν΄λž˜μŠ€μ™€ κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€μ˜ ν…Œμ΄λΈ”μ„ λ§€ν•‘ν•©λ‹ˆλ‹€.
클래슀의 속성(ν•„λ“œ)을 λ°μ΄ν„°λ² μ΄μŠ€μ˜ μ»¬λŸΌμ— λ§€ν•‘ν•˜μ—¬, 
객체λ₯Ό λ°μ΄ν„°λ² μ΄μŠ€μ— μ‰½κ²Œ μ €μž₯ν•˜κ³  μ‘°νšŒν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2-2.μžλ™ SQL 생성

ORM ν”„λ ˆμž„μ›Œν¬λŠ” ν•„μš”ν•œ SQL 쿼리λ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•˜μ—¬ μ‹€ν–‰ν•©λ‹ˆλ‹€.
κ°œλ°œμžλŠ” 직접 SQL을 μž‘μ„±ν•  ν•„μš” 없이 ORM ν”„λ ˆμž„μ›Œν¬κ°€ μƒμ„±ν•œ 쿼리λ₯Ό
톡해 λ°μ΄ν„°λ² μ΄μŠ€μ™€ μƒν˜Έμž‘μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

2-3.νŠΈλžœμž­μ…˜ 관리

ORM은 λ°μ΄ν„°λ² μ΄μŠ€ νŠΈλžœμž­μ…˜μ„ μžλ™μœΌλ‘œ κ΄€λ¦¬ν•©λ‹ˆλ‹€.
λ°μ΄ν„°μ˜ 일관성과 무결성을 μœ μ§€ν•˜κΈ° μœ„ν•΄ νŠΈλžœμž­μ…˜μ„ μ‹œμž‘ν•˜κ³  컀밋 λ˜λŠ” λ‘€λ°±ν•©λ‹ˆλ‹€.

2-4.캐싱

ORM ν”„λ ˆμž„μ›Œν¬λŠ” λ°μ΄ν„°λ² μ΄μŠ€ 쑰회 κ²°κ³Όλ₯Ό μΊμ‹±ν•˜μ—¬ μ„±λŠ₯을 μ΅œμ ν™”ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
1μ°¨ μΊμ‹œμ™€ 2μ°¨ μΊμ‹œλ₯Ό μ§€μ›ν•˜μ—¬ λΉˆλ²ˆν•œ λ°μ΄ν„°λ² μ΄μŠ€ 접근을 μ€„μž…λ‹ˆλ‹€.

2-5.λ°μ΄ν„°λ² μ΄μŠ€ 독립성

ORM을 μ‚¬μš©ν•˜λ©΄ λ°μ΄ν„°λ² μ΄μŠ€μ— μ’…μ†λ˜μ§€ μ•ŠλŠ” μ½”λ“œλ₯Ό μž‘μ„±ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
λ°μ΄ν„°λ² μ΄μŠ€ λ³€κ²½ μ‹œ μ΅œμ†Œν•œμ˜ μ½”λ“œ μˆ˜μ •λ§ŒμœΌλ‘œ λ‹€λ₯Έ λ°μ΄ν„°λ² μ΄μŠ€λ‘œ μ „ν™˜ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

3. ORM ν”„λ ˆμž„μ›Œν¬

3-1.Hibernate

κ°€μž₯ 널리 μ‚¬μš©λ˜λŠ” μžλ°” 기반 ORM ν”„λ ˆμž„μ›Œν¬ 쀑 ν•˜λ‚˜μž…λ‹ˆλ‹€.
JPA(Java Persistence API)의 κ΅¬ν˜„μ²΄λ‘œ, λ‹€μ–‘ν•œ κΈ°λŠ₯κ³Ό μ„±λŠ₯ μ΅œμ ν™”λ₯Ό μ œκ³΅ν•©λ‹ˆλ‹€.