일단 ν•˜κ³  λ³΄λŠ” μ‚¬λžŒ

λ‚˜μ€‘λ³΄λ‹¨ μ§€κΈˆμ— μ§‘μ€‘ν•˜λ˜, μ§€κΈˆλ³΄λ‹¨ λ‚˜μ€‘μ— μ™„λ²½ν•΄μ§€μžπŸ’ͺ🏻

πŸ“ˆ 더 λ‚˜μ€ 개발자 Level Up Log

only ν•΄ν”ΌνŒ¨μŠ€ ν…ŒμŠ€νŒ…λ§Œ ν•˜λ©΄ λ²Œμ–΄μ§€λŠ” 일: μ½”λ“œκ°€ 잘 λŒμ•„κ°€λŠ”λ° 데이터가 μ™œ μ‚¬λΌμ§ˆκΉŒμš”?;;

JanginTech 2026. 6. 30. 18:24

🧩 λ°°κ²½: μ½”λ“œλ₯Ό 또 λœ―μ–΄λ΄€μŠ΅λ‹ˆλ‹€..

νŒ€ λ‚΄μ—μ„œ λΉ„λ™κΈ°λ‘œ μˆ˜μ§‘ν•œ 데이터λ₯Ό LLM μ „μ²˜λ¦¬ 과정에 νƒœμš°κ³  이λ₯Ό μ΅œμ’… λ³‘ν•©ν•˜λŠ” 둜직이 μžˆμ—ˆλ‹€.

κ²‰λ³΄κΈ°μ—λŠ” 결과물도 잘 λ‚˜μ˜€κ³  큰 λ¬Έμ œκ°€ μ—†μ–΄ λ³΄μ˜€λ‹€.

ν•˜μ§€λ§Œ 데이터 처리의 핡심은 겉보기에 λ©€μ©‘ν•œ 것이 λ‹€κ°€ μ•„λ‹ˆμ§€ μ•Šμ€κ°€..?

데이터가 λˆ„λ½ 없이 μ •ν™•ν•˜κ²Œ ν˜λŸ¬κ°€λŠ”κ°€μ— μžˆκΈ°μ— κΈ°μ‘΄ μ½”λ“œλ₯Ό κΉŠμˆ™μ΄ 보게 λ˜μ—ˆλ‹€.

 

 

πŸ’­ λ‚΄ κ³ λ―Ό: λˆˆμ— 보이지 μ•Šλ˜ μ‹œν•œν­νƒ„λ“€

( πŸ‘†πŸ» 이 μ†Œμ œλͺ©μ€ λ‚΄ 이야기λ₯Ό 듀은 gemini의 λ‹΅λ³€μ—μ„œ λ”°μ™”λ‹€ γ…‹γ…‹γ…‹γ…‹γ…‹γ…‹) 

μ‹€μ œλ‘œ μ½”λ“œλ₯Ό λœ―μ–΄λ³΄λ‹ˆ 생각보닀 κ½€ μ•„μ°”ν•œ ꡬ쑰적 결함듀이 μˆ¨μ–΄ μžˆμ—ˆλ‹€(λ‚œ μ™œ 이걸 μ΄μ œμ•Ό λ°œκ²¬ν–ˆμ§€..?)

 

1. 뢈λͺ…ν™•ν•œ 식별 κΈ°μ€€

  • 데이터λ₯Ό μ·¨ν•©ν•  λ•Œ 기쀀이 λ˜λŠ” 식별 ν‚€μ˜ 레벨이 λ„ˆ~무 μƒμœ„ κ°œλ…μ„μœΌλ‘œ λ­‰λš±κ·Έλ €μ Έ μžˆμ—ˆλ‹€
  • 이둜 인해 ν•˜μœ„ 상세 λ‹¨μœ„μ—μ„œ 데이터가 κΌ¬μ΄κ±°λ‚˜ μ˜€λ§€ν•‘/μ˜€μΉ˜ν™˜λ  μœ„ν—˜μ΄ μžˆμ—ˆλ‹€..

2. 말도 없이 μ‚¬λΌμ§€λŠ” 비정상 데이터

  • 데이터 μ •μ œ κ³Όμ •μ—μ„œ μ‹€νŒ¨ν•˜κ±°λ‚˜ 빈 값이 λ“€μ–΄μ˜€λŠ” λ“± 잘λͺ»λœ 값듀에 λŒ€ν•΄, 둜직이 μ•„λ¬΄λŸ° μ—λŸ¬ λ‘œκ·Έλ„ 남기지 μ•Šκ³  continue둜 λ„˜μ–΄κ°€λ²„λ¦°λ‹€
  • μ‹€νŒ¨ μ‹œ μ‹€νŒ¨ μƒνƒœμ˜ κ²°κ³Ό 객체λ₯Ό 생성/μ²˜λ¦¬ν•˜λ„λ‘ ν•΄λ†¨λŠ”λ°.. 이게 잘 μ•ˆ 타고 μžˆμ—ˆλ˜ 것이닀..!
  • 즉, μ‹œμŠ€ν…œμ΄ ν„°μ§€μ§€ μ•Šκ³  λ„˜μ–΄κ°€λŠ” κ²ƒκΉŒμ§€λŠ” μ˜λ„κ°€ λ§žμ•˜μ§€λ§Œ(μ—¬κΈ°κΉŒμ§„ OK) -> κ·Έ μ†μ—μ„œ 데이터가 λˆ„λ½λ˜κ³  μžˆμ—ˆλ˜ 것(이건 μ•ˆλ¨!!)
  • 특히 LLM을 νƒœμš°λŠ” 만큼 λΉ„μ •μƒμ˜ λ²”μœ„λŠ” μ†”μ§νžˆ 개발자인 λ‚˜λ„ 잘 λͺ¨λ₯΄κ² λ‹€. μ•Œ 수 μ—†λ‹€!!! κ·Έλž˜μ„œ 그만큼 μ˜ˆμ™Έ 데이터 μ²˜λ¦¬κ°€ 더 μ€‘μš”ν–ˆλŠ”λ° 말이닀.

3. 좔적이 λΆˆκ°€λŠ₯ν•œ μ˜ˆμ™Έ 처리

  • μ—λŸ¬κ°€ λ°œμƒν•΄λ„ ꡬ체적인 μ‚¬μœ  없이 λ‹¨λ…μœΌλ‘œ raiseλ₯Ό λ˜μ§€κ³  있음 -> μ΄λž˜μ„  운영 쀑에 λ¬Έμ œκ°€ 생겼을 λ•Œ 원인을 μΆ”μ ν•˜κΈ°κ°€ λΆˆκ°€λŠ₯에 가깝닀..

 

πŸ› οΈ 해결을 μœ„ν•œ μ‹œλ„λ“€: ꡬ쑰 κ°œμ„ 

기쑴의 μ•ˆμΌν–ˆλ˜ ꡬ쑰(μˆœμ„œ 기반 λ§€ν•‘)을 κ±·μ–΄λ‚΄κ³  쀑간쀑간 μ˜ˆμ™Έ λ‘œμ§μ„ μ΄˜μ΄˜ν•˜κ²Œ 섀계해 λ³΄μ•˜λ‹€

 

1. 식별 κΈ°μ€€ μΌμ›ν™”ν•˜κΈ°(ν•˜μœ„ 상세 λ‹¨μœ„ κΈ°μ€€)

  • 식별 ν‚€λ₯Ό μƒμœ„ 레벨이 μ•„λ‹Œ κ°€μž₯ ꡬ체적인 ν•˜μœ„ λ‹¨μœ„λ‘œ μΌμ›ν™”ν•˜μ—¬ μ €μž₯ν•˜κ³  μ‘°νšŒν•˜λ„λ‘ λ§€ν•‘ λ‘œμ§μ„ λ°”κΏ¨λ‹€

2. 검증 단계 뢄리

  • 데이터가 λ“€μ–΄μ˜€λ©΄ λ‹¨κ³„λ³„λ‘œ μͺΌκ°°λ‹€(μ‹€μ œ λ‚΄μš©μ„ 적을 순 μ—†μœΌλ‹ˆ 간단 μ˜ˆμ‹œλ‘œ λŒ€μ²΄ν•΄λ³Έλ‹€....):
    • μ¦‰μ‹œ 원본 검증
    • νƒ€μž… 체크
    • 곡백 체크

3. λˆ„λ½ λ°©μ§€ μ‹€νŒ¨ 처리 κ°•ν™”

  • μ—λŸ¬λ₯Ό μ»¨ν‹°λ‰΄λ‘œ μ”Ήμ§€ μ•Šκ³  μ‹€νŒ¨ μƒνƒœμ˜ κ²°κ³Ό 객체λ₯Ό "μ •μƒμ μœΌλ‘œ" μƒμ„±ν•˜μ—¬ μ—λŸ¬ λ©”μ‹œμ§€μ™€ ν•¨κ»˜ 둜그λ₯Ό 남겼닀
  • μ΅œμ’…κ²°κ³Όμ—μ„œ μœ μ‹€λ˜μ§€ μ•Šλ„λ‘ 정말 λ‹€μ–‘ν•œ ν…ŒμŠ€νŠΈλ₯Ό ν•΄λ΄€λŠ”λ° λ‚΄ 머리둠 ν•œκ³„κ°€ μžˆμ–΄μ„œ λ™κΈ°λ“€μ—κ²Œ ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 리뷰λ₯Ό λΆ€νƒν–ˆλ‹€..γ…Žγ…Ž (κ³ λ§ˆμ›Œμš” μ‚¬λž‘ν•©λ‹ˆλ‹€) 

 

πŸ“ˆ λ³€ν™” : 고생(?) 끝에 얻은 μ•ˆμ •μ„±

성곡 μΌ€μ΄μŠ€μ—λ§Œ μ§‘μ€‘λ˜μ–΄ 있던 μ½”λ“œμ— κΌΌκΌΌν•œ μ˜ˆμ™Έ μ²˜λ¦¬μ™€ λͺ…ν™•ν•œ κΈ°μ€€ ν‚€λ₯Ό 심어주고 λ‚˜μ„œ λŠλ‚€ λ³€ν™”λŠ” λ‹€μŒκ³Ό κ°™λ‹€:

  • μ •ν•©μ„± ν–₯상: 상세 λ‹¨μœ„μ˜ 데이터 병합 정확도가 μ˜¬λΌκ°”κ³  μ€‘λ³΅μ΄λ‚˜ μ˜€μΉ˜ν™˜ μ΄μŠˆκ°€ ν™•μ—°νžˆ μ€„μ—ˆλ‹€
  • κ΄€μΈ‘ κ°€λŠ₯μ„±: 비정상 데이터가 듀어와도 μœ μ‹€ 없이 'μ‹€νŒ¨ μƒνƒœ'둜 μ•„μ£Ό 잘 보인닀
  • μž₯μ•  λŒ€μ‘ 속도 ν–₯상: 단계별 λ‘œκ·Έμ™€ λͺ…μ‹œμ  μ—λŸ¬ 덕뢄에 λ¬Έμ œκ°€ 생겨도 더 λΉ λ₯Έ 원인 νŒŒμ•…μ΄ κ°€λŠ₯ν•΄μ‘Œλ‹€(특히 λ‚˜ 말고 λ‹€λ₯Έ νŒ€μ›λΆ„λ“€μ΄ 이슈λ₯Ό 보셨을 λ•Œ νŠΈλž˜ν‚Ή 속도가 빨라진 게 μ²΄κ°λœλ‹€!)

 

πŸ“Œ 회고 & λ‹€μŒ λͺ©ν‘œ

"λŒμ•„κ°€λŠ” μ½”λ“œκ°€ 쒋은 μ½”λ“œμ˜ μ „λΆ€κ°€ μ•„λ‹ˆλ‹€."

특히 데이터 μ²˜λ¦¬λ‚˜ AI ν”„λ‘¬ν”„νŠΈ μ „μ²˜λ¦¬ λ‹¨κ³„μ—μ„œλŠ” μ—λŸ¬λ₯Ό 쑰용히 묻고 μ§€λ‚˜κ°€λŠ” μ½”λ“œκ°€ μ–Όλ§ˆλ‚˜ μœ„ν—˜ν•œμ§€ ν•œ 번 더 λΌˆμ €λ¦¬κ²Œ μ²΄κ°ν–ˆλ‹€

데이터 μœ μ‹€μ„ λ§‰μœΌλ €λ©΄ μ„±κ³΅λΏλ§Œ μ•„λ‹ˆλΌ μ‹€νŒ¨λ§ˆμ €λ„ λͺ…ν™•ν•˜κ²Œ κΈ°λ‘ν•˜μ—¬ κ°–κ³  μžˆμ–΄μ•Όν•œλ‹€λŠ” μ‹œκ°μ˜ μ „ν™˜μ„ λ‹€μ‹œκΈˆ λ‡Œλ¦¬μ— 각인할 수 μžˆλŠ” κΈ°νšŒμ˜€λ‹€γ…Žγ…Ž

μ•žμœΌλ‘œλŠ” ν•΄ν”Ό 패슀(Happy Path)만 그릴 게 μ•„λ‹ˆλΌ μ΅œμ•…μ˜ μ˜ˆμ™Έ 상황을 λ¨Όμ € μ„€κ³„ν•˜κ³  방어벽을 μΉ˜λŠ”(?) μŠ΅κ΄€μ„ μ§€λ…€μ•Όκ² λ‹€..!