✏️ DevLog/Devcourse

[DevCourse] μƒμ„±ν˜• AI ν™œμš© λ°±μ—”λ“œ λ°λΈŒμ½”μŠ€ 57일차

hyebin (Helia) 2025. 6. 29. 14:56
λ°˜μ‘ν˜•

이번 μˆ˜μ—…μ—μ„œλŠ” Spring Boot ν™˜κ²½μ—μ„œ μ‹€μ œ μ„œλΉ„μŠ€λ₯Ό κ΅¬μ„±ν•˜λ©°, JPAλ₯Ό μ΄μš©ν•œ μƒν’ˆ 등둝/쑰회 κΈ°λŠ₯을 직접 κ΅¬ν˜„ν•΄ λ³΄μ•˜λ‹€.

μ§€λ‚œ μ‹œκ°„μ— ν”„λ‘œμ νŠΈμ˜ λΌˆλŒ€λ₯Ό μ„ΈνŒ…ν–ˆλ‹€λ©΄, μ΄λ²ˆμ—λŠ” κ·Έ λΌˆλŒ€ μœ„μ— μ‹€μ œ κΈ°λŠ₯을 μ–Ήμ–΄λ³΄λŠ” μ‹œκ°„μ΄μ—ˆλ‹€.


πŸ“Œ 였늘 배운 λ‚΄μš© 정리

πŸ”· JPAλ₯Ό ν™œμš©ν•œ μ—”ν‹°ν‹° 섀계와 μ €μž₯ 둜직 κ΅¬ν˜„

μ˜€λŠ˜μ€ μƒν’ˆ 정보λ₯Ό μ €μž₯ν•  Item μ—”ν‹°ν‹°λ₯Ό 직접 μ„€κ³„ν•˜κ³ , ItemSellStatus와 같은 enum νƒ€μž…μ„ ν•¨κ»˜ μ‚¬μš©ν•΄ 도메인 λͺ¨λΈμ„ κ΅¬μ²΄ν™”ν–ˆλ‹€.

Lombok을 μ‚¬μš©ν•΄ λΆˆν•„μš”ν•œ getter/setter, toString λ“±μ˜ μ½”λ“œλ₯Ό μ€„μ˜€κ³ , JPA의 @Entity, @Id, @GeneratedValue, @Enumerated λ“±μ˜ μ–΄λ…Έν…Œμ΄μ…˜μ„ 톡해 DB ν…Œμ΄λΈ”κ³Ό μžλ°” 객체λ₯Ό μžμ—°μŠ€λŸ½κ²Œ λ§€ν•‘ν•  수 μžˆμ—ˆλ‹€.

 

μ½”λ“œ ν•œ μ€„λ‘œ ν…Œμ΄λΈ” ꡬ쑰가 λ§Œλ“€μ–΄μ§€κ³ , 객체 μ €μž₯만으둜 DB에 데이터가 λ“±λ‘λ˜λŠ” 흐름이 κ½€ 인상 κΉŠμ—ˆλ‹€.

 

 

πŸ”Ά Repository ν…ŒμŠ€νŠΈλ₯Ό ν†΅ν•œ JPA 쑰회 κΈ°λŠ₯ 검증

λ‹¨μˆœνžˆ μ €μž₯만 ν•΄λ³΄λŠ” λ°μ„œ λλ‚˜λŠ” 것이 μ•„λ‹ˆλΌ, JPA의 λ‹€μ–‘ν•œ 쑰회 방식을 ν…ŒμŠ€νŠΈ μ½”λ“œλ‘œ 검증해 λ³Έ 것도 였늘의 ν•΅μ‹¬μ΄μ—ˆλ‹€.

  • findByItemName, findByPriceBetween 같은 쿼리 λ©”μ„œλ“œ 기반 검색
  • @Queryλ₯Ό ν™œμš©ν•œ JPQL 직접 μž‘μ„±
  • λ¬Έμžμ—΄ 포함, λ²”μœ„ 쑰건, μ •λ ¬ λ“± λ‹€μ–‘ν•œ λ°©μ‹μ˜ 쑰회 둜직 ꡬ성

ν…ŒμŠ€νŠΈ λ©”μ„œλ“œλ₯Ό 톡해 μƒν’ˆ 데이터λ₯Ό μžλ™μœΌλ‘œ μ—¬λŸ¬ 개 μƒμ„±ν•œ λ’€,

μ •μƒμ μœΌλ‘œ μ›ν•˜λŠ” 쑰건의 μƒν’ˆλ“€μ΄ μ‘°νšŒλ˜λŠ”μ§€ ν™•μΈν•˜λ©΄μ„œ Spring Data JPA의 νŽΈλ¦¬ν•¨κ³Ό μžλ™ν™”λœ 쿼리 생성 λ‘œμ§μ„ μ‹€μ œλ‘œ 체감할 수 μžˆμ—ˆλ‹€.

 

πŸ”· μ‹€μ „ ν”„λ‘œμ νŠΈ 감각을 ν‚€μ›Œμ€€ ν…ŒμŠ€νŠΈ 쀑심 개발 흐름

μ˜€λŠ˜μ€ λ‹¨μˆœνžˆ μ»¨νŠΈλ‘€λŸ¬λ‚˜ 화면을 κ΅¬ν˜„ν•˜κΈ°λ³΄λ‹€λŠ”, 도메인 μ€‘μ‹¬μœΌλ‘œ μ„œλΉ„μŠ€ ꡬ쑰λ₯Ό μ„€κ³„ν•˜κ³ , 이λ₯Ό 검증 κ°€λŠ₯ν•œ μ½”λ“œλ‘œ ν…ŒμŠ€νŠΈν•˜λŠ” 흐름을 κ²½ν—˜ν•  수 μžˆμ—ˆλ‹€λŠ” μ μ—μ„œ μ˜λ―Έκ°€ μ»Έλ‹€.

 

μ²˜μŒμ—λŠ” ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ λ‹¨μˆœν•œ 보쑰 μˆ˜λ‹¨μ²˜λŸΌ λŠκ»΄μ‘Œμ§€λ§Œ, μ‹€μ œλ‘œ 데이터λ₯Ό μƒμ„±ν•˜κ³  μ‘°νšŒν•˜λ©΄μ„œ “μ„€κ³„ν•œ 둜직이 μ˜λ„λŒ€λ‘œ λ™μž‘ν•˜λŠ”μ§€”λ₯Ό λΉ λ₯΄κ²Œ 확인할 수 μžˆλ‹€λŠ” μ μ—μ„œ ν…ŒμŠ€νŠΈ μ½”λ“œκ°€ 개발의 μ€‘μ‹¬μ΄λΌλŠ” κ°œλ…μ΄ μ‘°κΈˆμ”© 와닿기 μ‹œμž‘ν–ˆλ‹€.


🧑 λŠλ‚€ 점

μ˜€λŠ˜μ€ Spring Boot μœ„μ—μ„œ JPAλ₯Ό μ œλŒ€λ‘œ ν™œμš©ν•΄ 보며도메인 섀계뢀터 데이터 μ €μž₯, 쑰회, ν…ŒμŠ€νŠΈκΉŒμ§€ ν•˜λ‚˜μ˜ κΈ°λŠ₯ 흐름을 μ²˜μŒλΆ€ν„° λκΉŒμ§€ κ΅¬ν˜„ν•΄ λ³Ό 수 μžˆμ—ˆλ‹€.

 

특히, 직접 쿼리λ₯Ό μž‘μ„±ν•˜μ§€ μ•Šκ³ λ„ μ›ν•˜λŠ” 데이터λ₯Ό μ‘°νšŒν•  수 μžˆμ—ˆλ˜ κ²½ν—˜μ΄ μ‹ κΈ°ν–ˆκ³ , λ°˜λŒ€λ‘œ μžλ™ν™”λœ 이 흐름이 μ–΄λ–»κ²Œ λ™μž‘ν•˜λŠ”μ§€ μ •ν™•νžˆ μ•Œκ³  μžˆμ–΄μ•Όλ§Œ μ œλŒ€λ‘œ ν™œμš©ν•  수 μžˆλ‹€λŠ” 점도 λŠκΌˆλ‹€.

 

λ‹¨μˆœνžˆ ‘λŒμ•„κ°€κΈ°λ§Œ ν•˜λŠ” μ½”λ“œ’λ₯Ό λ§Œλ“œλŠ” 게 μ•„λ‹ˆλΌ, ꡬ쑰적으둜 잘 μ„€κ³„λœ μ• ν”Œλ¦¬μΌ€μ΄μ…˜μ„ λ§Œλ“œλŠ” 법을 μ—°μŠ΅ν•˜κ³  μžˆλ‹€λŠ” 감각이 점점 생긴닀.

λ°˜μ‘ν˜•