POJO


Plain Old Java Object, POJO λŠ” ν”„λ ˆμž„μ›Œν¬ μΈν„°νŽ˜μ΄μŠ€ λ˜λŠ” 클래슀λ₯Ό κ΅¬ν˜„ν•˜κ±°λ‚˜ ν™•μž₯ν•˜μ§€ μ•Šμ€ λ‹¨μˆœν•œ 클래슀둜, Java μ—μ„œ μ œκ³΅ν•˜λŠ” API 이외에 μ’…μ†λ˜μ§€ μ•ŠλŠ” 객체λ₯Ό μ˜λ―Έν•œλ‹€.

Java EE λ“±μ˜ μ€‘λŸ‰ ν”„λ ˆμž„μ›Œν¬λ“€μ΄ λ“±μž₯ν•˜λ©΄μ„œ ν”„λ ˆμž„μ›Œν¬μ— μ’…μ†λœ 무거운 객체듀이 λ§Œλ“€μ–΄μ§€κ³  μ‚¬μš©λ˜λŠ” 것에 μžλ°”μ˜ 객체지ν–₯성을 되찾기 μœ„ν•΄ λ“±μž₯ν•œ μš©μ–΄μ΄λ‹€.

POJO λŠ” νŠΉμ • ν™˜κ²½μ— μ’…μ†λ˜μ§€ μ•ŠκΈ° λ•Œλ¬Έμ— μ½”λ“œκ°€ κ°„κ²°ν•˜κ³  ν…ŒμŠ€νŠΈ μžλ™ν™”μ— μœ λ¦¬ν•˜λ‹€λŠ” μž₯점이 μ‘΄μž¬ν•œλ‹€.

POJO ν”„λ ˆμž„μ›Œν¬


POJO ν”„λ ˆμž„μ›Œν¬λŠ” POJO λ₯Ό μ‚¬μš©ν•˜λŠ” μž₯점과 EJB λ“±μ—μ„œ μ œκ³΅ν•˜λŠ” μ—”ν„°ν”„λΌμ΄μ¦ˆ μ„œλΉ„μŠ€μ™€ κΈ°μˆ μ„ κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” ν”„λ ˆμž„μ›Œν¬λ₯Ό μ˜λ―Έν•œλ‹€. λŒ€ν‘œμ μΈ POJO ν”„λ ˆμž„μ›Œν¬λ‘œ Spring κ³Ό Hibernate κ°€ μžˆλ‹€.

Spring

Spring 은 IoC Container λ₯Ό μ œκ³΅ν•¨μœΌλ‘œμ¨ μ—”ν„°ν”„λΌμ΄μ¦ˆ μ„œλΉ„μŠ€μ—μ„œ POJO 기반으둜 λ§Œλ“  λΉ„μ¦ˆλ‹ˆμŠ€ 였브젝트λ₯Ό μ‚¬μš©ν•  수 있게 ν•΄μ€€λ‹€.

  • μΈμŠ€ν„΄μŠ€λ“€μ˜ 생λͺ…μ£ΌκΈ°λ₯Ό 관리
  • νŠΉμ • μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•˜κ±°λ‚˜ 상속할 ν•„μš”κ°€ μ—†μŒ
  • 라이브러리λ₯Ό μ§€μ›ν•˜κΈ°μ— μš©μ΄ν•¨
  • 객체가 가벼움
  • AOP κΈ°μˆ μ„ 톡해 POJO κ°œλ°œμ„ 더 μ‰½κ²Œ λ§Œλ“€μ–΄ 쀌

Hibernate

Hibernate λŠ” μˆœμˆ˜ν•œ POJO λ₯Ό 톡해 Persistence 기술과 ORM κΈ°μˆ μ„ μ‚¬μš©ν•  수 있게 λ§Œλ“œλŠ” POJO 기반의 Persistence ν”„λ ˆμž„μ›Œν¬μ΄λ‹€. 특히 POJO 엔티티듀을 객체지ν–₯적으둜 μ„€κ³„ν•˜κ³  κ΅¬ν˜„ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.

POJO 의 κΈ°μ€€


객체지ν–₯적으둜 섀계 λ˜μ—ˆλŠ”κ°€?

반볡적인 ν…œν”Œλ¦Ώ μ½”λ“œμ™€ ν…ŒμŠ€νŠΈν•˜κΈ° νž˜λ“  ꡬ쑰, ν™•μž₯ 및 μž¬ν™œμš©μ˜ 어렀움이 μžˆλ‹€λ©΄ EJB 의 λ¬Έμ œμ μ„ μ—¬μ „νžˆ 가지고 μžˆλ‹€κ³  λ³Ό 수 μžˆλ‹€.

ν…ŒμŠ€νŠΈκ°€ μš©μ΄ν•œκ°€?

잘 μ„€κ³„λœ POJO μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ€ ν…ŒμŠ€νŠΈ μžλ™ν™”κ°€ νŽΈλ¦¬ν•˜λ‹€. ν…ŒμŠ€νŠΈ μž‘μ„±μ΄ νŽΈλ¦¬ν•˜λ©΄ 더 κΌΌκΌΌν•œ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•  수 있고 μ΄λŠ” μ½”λ“œ 검증과 ν’ˆμ§ˆ ν–₯상에 μœ λ¦¬ν•΄μ§€λ©° 잘 μž‘μ„±λœ ν…ŒμŠ€νŠΈλŠ” λ¦¬νŒ©ν„°λ§μ„ 진행할 μ—¬μœ λ₯Ό μ œκ³΅ν•˜μ—¬ 보닀 λ‚˜μ€ POJO μ„€κ³„λ‘œ λ³€κ²½ν•  수 μžˆλŠ” 기회λ₯Ό μ œκ³΅ν•œλ‹€.

정리


μ§„μ •ν•œ POJO λž€ 객체지ν–₯ 원리에 μΆ©μ‹€ν•˜λ©΄μ„œ, ν™˜κ²½κ³Ό κΈ°μˆ μ— μ’…μ†λ˜μ§€ μ•Šκ³  ν•„μš”μ— 따라 μž¬ν™œμš©λ  수 μžˆλŠ” λ°©μ‹μœΌλ‘œ μ„€κ³„λœ 였브젝트λ₯Ό μ˜λ―Έν•œλ‹€.

References