Skip to main content
findByIdλŠ” ID둜 단일 λ ˆμ½”λ“œλ₯Ό μ‘°νšŒν•˜λŠ” λ©”μ„œλ“œμž…λ‹ˆλ‹€. μ§€μ •λœ μ„œλΈŒμ…‹μœΌλ‘œ 데이터λ₯Ό λ‘œλ“œν•˜λ©°, λ ˆμ½”λ“œκ°€ μ—†μœΌλ©΄ NotFoundException을 λ°œμƒμ‹œν‚΅λ‹ˆλ‹€.
findByIdλŠ” BaseModelClass에 μ •μ˜λ˜μ–΄ μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€. Entityλ₯Ό μƒμ„±ν•˜λ©΄ Syncerκ°€ 각 Model ν΄λž˜μŠ€μ— μžλ™μœΌλ‘œ μƒμ„±ν•˜λŠ” ν‘œμ€€ νŒ¨ν„΄μž…λ‹ˆλ‹€.

νƒ€μž… μ‹œκ·Έλ‹ˆμ²˜

μžλ™ 생성 μ½”λ“œ

SonamuλŠ” Entityλ₯Ό 기반으둜 λ‹€μŒ μ½”λ“œλ₯Ό μžλ™μœΌλ‘œ μƒμ„±ν•©λ‹ˆλ‹€:
λ‚΄λΆ€ λ™μž‘:
  1. findManyλ₯Ό ν˜ΈμΆœν•˜μ—¬ ID둜 쑰회
  2. num: 1, page: 1둜 λ‹¨κ±΄λ§Œ κ°€μ Έμ˜΄
  3. κ²°κ³Όκ°€ μ—†μœΌλ©΄ NotFoundException λ°œμƒ
  4. 첫 번째 λ ˆμ½”λ“œ λ°˜ν™˜

λ§€κ°œλ³€μˆ˜

subset

μ‘°νšŒν•  λ°μ΄ν„°μ˜ μ„œλΈŒμ…‹μ„ μ§€μ •ν•©λ‹ˆλ‹€. νƒ€μž…: SubsetKey (예: "A", "B", "C") μ„œλΈŒμ…‹μ€ Entity μ •μ˜μ—μ„œ μ„€μ •ν•œ 데이터 ν˜•νƒœλ₯Ό κ²°μ •ν•©λ‹ˆλ‹€. 각 μ„œλΈŒμ…‹μ€ λ‹€λ₯Έ ν•„λ“œμ™€ 관계λ₯Ό 포함할 수 μžˆμŠ΅λ‹ˆλ‹€.

id

μ‘°νšŒν•  λ ˆμ½”λ“œμ˜ IDμž…λ‹ˆλ‹€. νƒ€μž…: number

λ°˜ν™˜κ°’

νƒ€μž…: Promise<SubsetMapping[T]> μ§€μ •λœ μ„œλΈŒμ…‹ νƒ€μž…μ˜ λ ˆμ½”λ“œλ₯Ό λ°˜ν™˜ν•©λ‹ˆλ‹€. νƒ€μž…μ€ μ„œλΈŒμ…‹μ— 따라 μžλ™μœΌλ‘œ μΆ”λ‘ λ©λ‹ˆλ‹€.

μ˜ˆμ™Έ

NotFoundException

ID에 ν•΄λ‹Ήν•˜λŠ” λ ˆμ½”λ“œκ°€ μ—†μœΌλ©΄ NotFoundException이 λ°œμƒν•©λ‹ˆλ‹€.
HTTP μƒνƒœ μ½”λ“œ: 404

κΈ°λ³Έ μ‚¬μš©λ²•

λ‹¨μˆœ 쑰회

APIμ—μ„œ μ‚¬μš©

findByIdλŠ” μžλ™μœΌλ‘œ @api λ°μ½”λ ˆμ΄ν„°κ°€ μ μš©λ˜μ–΄ REST API둜 λ…ΈμΆœλ©λ‹ˆλ‹€:
μƒμ„±λœ ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œ:

μ„œλΈŒμ…‹λ³„ μ‚¬μš©

μ„œλΈŒμ…‹ A (κΈ°λ³Έ)

μ„œλΈŒμ…‹ B (관계 포함)

μ„œλΈŒμ…‹ C (쀑첩 관계)

μ‹€μ „ μ˜ˆμ‹œ

findById vs findOne vs findMany

findById

  • ID둜 단일 λ ˆμ½”λ“œ 쑰회
  • λ ˆμ½”λ“œκ°€ μ—†μœΌλ©΄ μ˜ˆμ™Έ λ°œμƒ
  • κ°€μž₯ κ°„λ‹¨ν•˜κ³  빠름
  • μžλ™ 생성됨

findOne

  • 쑰건으둜 단일 λ ˆμ½”λ“œ 쑰회
  • λ ˆμ½”λ“œκ°€ μ—†μœΌλ©΄ null λ°˜ν™˜
  • λ³΅μž‘ν•œ 쑰건 κ°€λŠ₯
  • 직접 κ΅¬ν˜„ ν•„μš” (선택적)

findMany

  • 쑰건으둜 μ—¬λŸ¬ λ ˆμ½”λ“œ 쑰회
  • νŽ˜μ΄μ§€λ„€μ΄μ…˜ 지원
  • 총 개수 λ°˜ν™˜
  • μžλ™ 생성됨

νƒ€μž… μ•ˆμ •μ„±

μ„œλΈŒμ…‹μ— 따라 λ°˜ν™˜ νƒ€μž…μ΄ μžλ™μœΌλ‘œ μΆ”λ‘ λ©λ‹ˆλ‹€:

ν΄λΌμ΄μ–ΈνŠΈ μ‚¬μš©

React (TanStack Query)

Vue

μ£Όμ˜μ‚¬ν•­

1. μ„œλΈŒμ…‹ 선택

ν•„μš”ν•œ λ°μ΄ν„°λ§Œ ν¬ν•¨ν•˜λŠ” μ„œλΈŒμ…‹μ„ μ„ νƒν•˜μ„Έμš”. λΆˆν•„μš”ν•œ 관계λ₯Ό λ‘œλ“œν•˜λ©΄ μ„±λŠ₯이 μ €ν•˜λ©λ‹ˆλ‹€.

2. μ˜ˆμ™Έ 처리

findByIdλŠ” λ ˆμ½”λ“œκ°€ μ—†μœΌλ©΄ μ˜ˆμ™Έλ₯Ό λ°œμƒμ‹œν‚΅λ‹ˆλ‹€. ν•„μš”ν•œ 경우 μ˜ˆμ™Έ 처리λ₯Ό μΆ”κ°€ν•˜μ„Έμš”.

3. null κ°€λŠ₯μ„±

λ ˆμ½”λ“œ 쑴재 μ—¬λΆ€κ°€ λΆˆν™•μ‹€ν•˜λ©΄ findOne을 μ‚¬μš©ν•˜μ„Έμš” (직접 κ΅¬ν˜„ ν•„μš”).

λ‹€μŒ 단계

findMany

리슀트 쑰회 및 νŽ˜μ΄μ§€λ„€μ΄μ…˜

save

λ ˆμ½”λ“œ μ €μž₯ 및 μˆ˜μ •

Subset

μ„œλΈŒμ…‹ μ΄ν•΄ν•˜κΈ°

μ˜ˆμ™Έ 처리

NotFoundException 처리