[LLM] Google Cloud Discovery Engine 데이터 μŠ€ν† μ–΄ μ—…λ‘œλ“œ 포맷

[LLM] Google Cloud Discovery Engine 데이터 μŠ€ν† μ–΄ μ—…λ‘œλ“œ 포맷

1. Google Cloud Discovery Engineμ΄λž€? Google Cloud Discovery Engine은 ꡬ글 ν΄λΌμš°λ“œ ν”Œλž«νΌμ—μ„œ μ œκ³΅ν•˜λŠ” 검색 및 μΆ”μ²œ μ„œλΉ„μŠ€λ‘œ, μ›Ήμ‚¬μ΄νŠΈλ‚˜ μ•± λ‚΄μ—μ„œ μ‚¬μš©μžκ°€ μ›ν•˜λŠ” 정보λ₯Ό 쉽고 λΉ λ₯΄κ²Œ 찾을 수 μžˆλ„λ‘ λ„μ™€μ£ΌλŠ” μ„œλΉ„μŠ€λ‘œ λ‹€μŒκ³Ό 같은 νŠΉμ§•μ„ κ°€μ§„λ‹€. κ³ κΈ‰ 검색 κΈ°λŠ₯ : λ‹¨μˆœ ν‚€μ›Œλ“œ 검색이 μ•„λ‹Œ, μ‚¬μš©μžμ˜ μ˜λ„μ— 맞좰 의미λ₯Ό νŒŒμ•…ν•˜κ³  κ΄€λ ¨ μ½˜ν…μΈ λ₯Ό μ œμ•ˆν•˜λŠ” μžμ—°μ–΄ 처리(NLP) 기반 검색을 지원 κ°œμΈν™”λœ μΆ”μ²œ : λ¨Έμ‹ λŸ¬λ‹ 기반 μΆ”μ²œμ—”μ§„μ„ ν™œμš©, μ·¨ν–₯κ³Ό 행동 νŒ¨ν„΄μ— 맞좘 μΆ”μ²œ μ½˜ν…μΈ  제곡 ν™•μž₯ κ°€λŠ₯μ„± : λ‹€μ–‘ν•œ 규λͺ¨μ™€ λ²”μœ„μ˜ μ½˜ν…μΈ μ— λŒ€ν•΄ λΉ λ₯Έ 검색 및 μΆ”μ²œ μ„±λŠ₯μœ μ§€ 2. λ¬Έμ œμƒν™© Google cloud discovery engine을 ν™œμš©ν•΄ ragλ₯Ό 고도화 μ‹œλ„ν•˜λ˜ 쀑, κΈ°μ‘΄ λ°μ΄ν„°λ² μ΄μŠ€μ˜ λ‹¨μˆœ question, answer ν•„λ“œκ΅¬μ‘°λ₯Ό csvν˜•νƒœλ‘œ μ—…λ‘œλ“œν•˜λ˜ 방식을 λ²—μ–΄λ‚˜ metadata, description ν•„λ“œλ₯Ό κ΅¬μ„±ν•˜κ³ μž ν•˜μ˜€λ‹€. contentν•„λ“œλ₯Ό λ§Œμ‘±ν•˜λŠ” 데이터 ꡬ쑰λ₯Ό κ΅¬μ„±ν•˜κΈ° μœ„ν•΄ κΈ°μ‘΄ 데이터셋을 discovery engine이 μš”κ΅¬ν•˜λŠ” νŠΉμ • struct_value, string_value νƒ€μž…μ˜ jsonl 포맷으둜 λ³€ν™˜ν•˜λŠ” κ³Όμ •μ—μ„œ μ—¬λŸ¬ μ—λŸ¬λ₯Ό λ§Œλ‚˜κ²Œ λ˜μ—ˆλ‹€. ...

[Spring] ν…ŒμŠ€νŠΈ 4 - μ–Όλ§ˆλ‚˜ 깊게 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€?

[Spring] ν…ŒμŠ€νŠΈ 4 - μ–Όλ§ˆλ‚˜ 깊게 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€?

4. HOW DEEP - μ–Όλ§ˆλ‚˜ 깊게 ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€? 4.1 ν…ŒμŠ€νŠΈ 깊이λ₯Ό κ²°μ •ν•˜λŠ” κΈ°μ€€ ν…ŒμŠ€νŠΈ 깊이λ₯Ό μ„€μ •ν•  λ•ŒλŠ” λ‹€μŒκ³Ό 같은 기쀀을 κ³ λ €ν•΄μ•Ό ν•©λ‹ˆλ‹€: ν…ŒμŠ€νŠΈ ν”ΌλΌλ―Έλ“œ(Test Pyramid): ν…ŒμŠ€νŠΈ ν”ΌλΌλ―Έλ“œλŠ” ν…ŒμŠ€νŠΈ μ’…λ₯˜μ— λ”°λ₯Έ 계측 ꡬ쑰λ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€. 일반적으둜 λ‹¨μœ„ ν…ŒμŠ€νŠΈκ°€ κ°€μž₯ 많고, κ·Έλ‹€μŒμœΌλ‘œ 톡합 ν…ŒμŠ€νŠΈ, μ‹œμŠ€ν…œ λ˜λŠ” E2E(End-to-End) ν…ŒμŠ€νŠΈκ°€ μœ„μΉ˜ν•©λ‹ˆλ‹€. λ‹¨μœ„ ν…ŒμŠ€νŠΈ(Unit Tests): κ°€μž₯ λ§Žμ€ 비쀑을 μ°¨μ§€ν•˜λ©°, μž‘μ€ μ½”λ“œ λ‹¨μœ„λ₯Ό λ…λ¦½μ μœΌλ‘œ ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€. 톡합 ν…ŒμŠ€νŠΈ(Integration Tests): μ—¬λŸ¬ λͺ¨λ“ˆμ΄ μƒν˜Έμž‘μš©ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈν•©λ‹ˆλ‹€. E2E ν…ŒμŠ€νŠΈ(End-to-End Tests): μ‹€μ œ μ‚¬μš©μž κ΄€μ μ—μ„œ 전체 μ‹œμŠ€ν…œμ΄ 잘 μž‘λ™ν•˜λŠ”μ§€ ν™•μΈν•©λ‹ˆλ‹€. μœ„ν—˜ 기반 ν…ŒμŠ€νŠΈ(Risk-Based Testing): λΉ„μ¦ˆλ‹ˆμŠ€ μ€‘μš”λ„μ™€ 잠재적 μœ„ν—˜ μš”μ†Œμ— 따라 ν…ŒμŠ€νŠΈ μš°μ„ μˆœμœ„λ₯Ό μ„€μ •ν•©λ‹ˆλ‹€. λΉ„μ¦ˆλ‹ˆμŠ€μ— μ€‘μš”ν•œ κΈ°λŠ₯μ΄λ‚˜ λ¦¬μŠ€ν¬κ°€ 높은 뢀뢄에 λŒ€ν•œ ν…ŒμŠ€νŠΈλŠ” 더 깊이 있게 μˆ˜ν–‰ν•©λ‹ˆλ‹€. 유슀 μΌ€μ΄μŠ€ 기반 ν…ŒμŠ€νŠΈ: 핡심 μ‚¬μš©μž 흐름과 μ—£μ§€ μΌ€μ΄μŠ€λ₯Ό 기반으둜 ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•©λ‹ˆλ‹€. μ‹€μ œλ‘œ μ‚¬μš©μžκ°€ 자주 μ‚¬μš©ν•˜λŠ” κΈ°λŠ₯μ΄λ‚˜ μ˜ˆμ™Έμ μΈ μƒν™©μ—μ„œμ˜ λ™μž‘μ„ κ²€μ¦ν•˜λŠ” 것이 μ€‘μš”ν•©λ‹ˆλ‹€. ν˜„μ‹€μ μΈ μ œμ•½κ³Ό νŒ€ μ—­λŸ‰ κ³ λ €: λͺ¨λ“  뢀뢄을 깊이 ν…ŒμŠ€νŠΈν•˜λŠ” 것은 μ‹œκ°„κ³Ό λ¦¬μ†ŒμŠ€ μΈ‘λ©΄μ—μ„œ λΉ„νš¨μœ¨μ μΌ 수 μžˆμŠ΅λ‹ˆλ‹€. νŒ€μ˜ μ—­λŸ‰κ³Ό ν”„λ‘œμ νŠΈ 일정 등을 κ³ λ €ν•˜μ—¬ ν…ŒμŠ€νŠΈ 깊이λ₯Ό μ‘°μ •ν•˜λŠ” 것이 ν•„μš”ν•©λ‹ˆλ‹€. ...

[Spring] ν…ŒμŠ€νŠΈ 3 - μ–Έμ œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ μš©ν•΄μ•Ό ν•˜λŠ”κ°€?

[Spring] ν…ŒμŠ€νŠΈ 3 - μ–Έμ œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ μš©ν•΄μ•Ό ν•˜λŠ”κ°€?

3. WHEN - μ–Έμ œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ μš©ν•΄μ•Ό ν•˜λŠ”κ°€? 3.1 TDD와 BDD의 κ°œλ… 및 적용 μ‹œμ  TDD (Test-Driven Development): TDDλŠ” ν…ŒμŠ€νŠΈλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³ , κ·Έ ν…ŒμŠ€νŠΈλ₯Ό 톡과할 수 μžˆλŠ” μ΅œμ†Œν•œμ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λ©° κ°œλ°œμ„ μ§„ν–‰ν•˜λŠ” λ°©λ²•λ‘ μž…λ‹ˆλ‹€. TDDλŠ” ν…ŒμŠ€νŠΈλ₯Ό 톡해 λͺ…ν™•ν•œ μš”κ΅¬μ‚¬ν•­μ„ ν™•μΈν•˜κ³  μ½”λ“œ ν’ˆμ§ˆμ„ 보μž₯ν•˜λŠ” λ°©λ²•μœΌλ‘œ ν™œμš©λ©λ‹ˆλ‹€. λ ˆλ“œ-κ·Έλ¦°-λ¦¬νŒ©ν„° 사이클: TDD의 κΈ°λ³Έ 개발 사이클은 λ ˆλ“œ 단계 (μ‹€νŒ¨ν•˜λŠ” ν…ŒμŠ€νŠΈ μž‘μ„±) β†’ κ·Έλ¦° 단계 (ν…ŒμŠ€νŠΈλ₯Ό ν†΅κ³Όν•˜κΈ° μœ„ν•œ μ½”λ“œ μž‘μ„±) β†’ λ¦¬νŒ©ν„° 단계 (μ½”λ“œ 정리 및 μ΅œμ ν™”)둜 μ΄λ£¨μ–΄μ§‘λ‹ˆλ‹€. 적용 μ‹œμ : μƒˆλ‘œμš΄ κΈ°λŠ₯을 κ°œλ°œν•˜κ±°λ‚˜ κΈ°μ‘΄ μ½”λ“œλ₯Ό λ¦¬νŒ©ν„°λ§ ν•  λ•Œ, TDDλ₯Ό 톡해 μ½”λ“œμ˜ μ•ˆμ •μ„±κ³Ό μœ μ§€λ³΄μˆ˜μ„±μ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€. μ΄λ―Έμ§€μΆœμ²˜: https://medium.com/pilar-2020/applying-test-driven-development-6d6d3af186cbApplying\ Test-Driven\ Development ...

[Spring] ν…ŒμŠ€νŠΈ 2 - ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ–΄λ–»κ²Œ μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€?

[Spring] ν…ŒμŠ€νŠΈ 2 - ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ–΄λ–»κ²Œ μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€?

2. HOW - ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μ–΄λ–»κ²Œ μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€? 2.1 ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€ 선택 방법 첫 번째 ν…ŒμŠ€νŠΈμ˜ μ€‘μš”μ„±: κ΅¬ν˜„ν•˜κΈ° κ°€μž₯ μ‰¬μš΄ ν…ŒμŠ€νŠΈλΆ€ν„° μ‹œμž‘ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. μ˜ˆμ™Έμ μΈ μƒν™©μ΄λ‚˜ κ°€μž₯ λΉ λ₯΄κ²Œ κ°œλ°œν•  수 μžˆλŠ” ν…ŒμŠ€νŠΈ μΌ€μ΄μŠ€λ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³ , 점차 ν™•μž₯ν•΄ λ‚˜κ°‘λ‹ˆλ‹€. 점진적 ν™•μž₯: μ‰¬μš΄ ν…ŒμŠ€νŠΈλΆ€ν„° μ‹œμž‘ν•΄ 점차 λ³΅μž‘ν•œ ν…ŒμŠ€νŠΈλ‘œ λ‚˜μ•„κ°€λ©΄μ„œ μ‹œμŠ€ν…œμ˜ μ•ˆμ •μ„±μ„ κ²€μ¦ν•©λ‹ˆλ‹€. 2.2 TDD (Test-Driven Development) 방법둠 TDDλŠ” ν…ŒμŠ€νŠΈ 주도 개발 λ°©μ‹μœΌλ‘œ, ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό λ¨Όμ € μž‘μ„±ν•˜κ³  이λ₯Ό 기반으둜 ν”„λ‘œλ•μ…˜ μ½”λ“œλ₯Ό μž‘μ„±ν•˜λŠ” λ°©μ‹μž…λ‹ˆλ‹€. TDDλŠ” λ‹€μŒκ³Ό 같은 μ„Έ 단계λ₯Ό λ”°λ¦…λ‹ˆλ‹€: ...

[Spring] ν…ŒμŠ€νŠΈ 1 - μ™œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€?

[Spring] ν…ŒμŠ€νŠΈ 1 - μ™œ ν…ŒμŠ€νŠΈ μ½”λ“œλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€?

1. WHY - μ™œ ν…ŒμŠ€νŠΈλ₯Ό μž‘μ„±ν•΄μ•Ό ν•˜λŠ”κ°€? 1.1 ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ μ€‘μš”μ„± ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ—μ„œ 맀우 μ€‘μš”ν•œ 역할을 ν•©λ‹ˆλ‹€. κΈ°λŠ₯을 μˆ˜μ •ν•˜κ±°λ‚˜ μƒˆλ‘œμš΄ κΈ°λŠ₯을 μΆ”κ°€ν•  λ•Œ μ½”λ“œκ°€ μ•ˆμ •μ μœΌλ‘œ μž‘λ™ν•˜λŠ”μ§€ 확인할 수 μžˆλŠ” μˆ˜λ‹¨μ΄ λ°”λ‘œ ν…ŒμŠ€νŠΈ μ½”λ“œμž…λ‹ˆλ‹€. 이λ₯Ό 톡해 μ˜ˆμƒν•˜μ§€ λͺ»ν•œ 버그λ₯Ό λ°©μ§€ν•˜κ³ , μ½”λ“œ ν’ˆμ§ˆμ„ 높일 수 μžˆμŠ΅λ‹ˆλ‹€. 1.2 ν…ŒμŠ€νŠΈ μ½”λ“œ μž‘μ„±μ˜ μž₯점 1.2.1 μ•ˆμ •μ μΈ 개발 ν™˜κ²½ ꡬ좕 ν…ŒμŠ€νŠΈ μ½”λ“œλŠ” μ½”λ“œμ˜ 변경이 λ‹€λ₯Έ κΈ°λŠ₯에 λ―ΈμΉ˜λŠ” 영ν–₯을 μ΅œμ†Œν™”ν•˜λŠ” 데 도움을 μ€λ‹ˆλ‹€. κ°œλ°œμžλŠ” μžμ‹  있게 μ½”λ“œλ₯Ό μˆ˜μ •ν•˜κ±°λ‚˜ λ¦¬νŒ©ν„°λ§ ν•  수 있으며, κΈ°μ‘΄ κΈ°λŠ₯이 μ˜ˆμƒλŒ€λ‘œ μž‘λ™ν•˜λŠ”μ§€ 검증할 수 μžˆμŠ΅λ‹ˆλ‹€. ...