ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

๋ฐ˜์‘ํ˜•

๐Ÿ”„ RAG ๋ฌธ์„œ ์ˆ˜์ง‘·์ •์ œ ํŒŒ์ดํ”„๋ผ์ธ ์ž๋™ํ™”

– ์‚ฌ๋žŒ์ด ์†๋Œ€์ง€ ์•Š์•„๋„ “ํ’ˆ์งˆ์ด ์œ ์ง€๋˜๋Š” AI ๊ฒ€์ƒ‰ ์‹œ์Šคํ…œ” ๋งŒ๋“œ๋Š” ๋ฒ•
(NestJS + Vector DB + ์šด์˜ ๋‹จ๊ณ„์—์„œ ์ง„์งœ ํ•„์š”ํ•œ ๊ตฌ์กฐ)


์•ž์„  ๊ธ€์—์„œ ์ด๋Ÿฐ ์–˜๊ธฐ๋ฅผ ํ–ˆ์—ˆ์ฃ .

RAG ํ’ˆ์งˆ์€ ๋ชจ๋ธ๋ณด๋‹ค
๋ฐ์ดํ„ฐ์™€ ๊ตฌ์กฐ์—์„œ ๋ฌด๋„ˆ์ง„๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์‹ค์ œ ์šด์˜์— ๋“ค์–ด๊ฐ€๋ฉด,
๊ทธ ๋ง์ด ๋ผˆ์ €๋ฆฌ๊ฒŒ ๋А๊ปด์ง‘๋‹ˆ๋‹ค.

์ฒ˜์Œ์—” ๋ฌธ์„œ 20๊ฐœ๋ผ์„œ
“์•„, ์ด ์ •๋„๋ฉด ๊ดœ์ฐฎ๋„ค” ์‹ถ๋‹ค๊ฐ€
ํ•œ ๋‹ฌ, ๋‘ ๋‹ฌ ์ง€๋‚˜๋ฉด ์ด๋Ÿฐ ์ƒํ™ฉ์ด ์˜ต๋‹ˆ๋‹ค.

  • ๋ฌธ์„œ๋Š” ๊ณ„์† ๋Š˜์–ด๋‚˜๊ณ 
  • ๋ˆ„๊ฐ€ ์–ธ์ œ ๋ญ˜ ๋„ฃ์—ˆ๋Š”์ง€ ๋ชจ๋ฅด๊ฒ ๊ณ 
  • ์˜ˆ์ „์—” ์ž˜ ๋งž๋˜ ์งˆ๋ฌธ์ด ๊ฐ‘์ž๊ธฐ ํ‹€๋ฆฌ๊ณ 
  • “์ด ๋ฌธ์„œ, ์™œ ๋“ค์–ด๊ฐ€ ์žˆ์ง€?” ์‹ถ์€ ๊ฒŒ ํŠ€์–ด๋‚˜์˜ค๊ณ 

์ด๋•Œ ๋Œ€๋ถ€๋ถ„์˜ ์„œ๋น„์Šค๋Š” ์ด๋ ‡๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

“์ผ๋‹จ ์ง€๊ธˆ์€ ๋†”๋‘์ž…”
→ ๊ทธ๋ฆฌ๊ณ  RAG ํ’ˆ์งˆ์€ ์„œ์„œํžˆ ์ฃฝ์–ด๊ฐ

์ด๋ฒˆ ๊ธ€์€
์ด ์ƒํƒœ๋กœ ์•ˆ ๊ฐ€๊ธฐ ์œ„ํ•ด
๋ฌธ์„œ ์ˆ˜์ง‘ → ์ •์ œ → ์ž„๋ฒ ๋”ฉ → ๊ฒ€์ฆ → ๋ฐฐํฌ
์ „ ๊ณผ์ •์„ ์ž๋™ํ™” ํŒŒ์ดํ”„๋ผ์ธ์œผ๋กœ ๋งŒ๋“œ๋Š” ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค.


๐Ÿงญ ์ด ๊ธ€์˜ ๋ชฉํ‘œ

  • RAG ๋ฌธ์„œ๊ฐ€ ์–ด๋””์„œ๋ถ€ํ„ฐ ๋ง๊ฐ€์ง€๋Š”์ง€ ๋ช…ํ™•ํžˆ ์•Œ๊ธฐ
  • ์šด์˜ ๋‹จ๊ณ„์—์„œ ํ•„์š”ํ•œ ๋ฌธ์„œ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ
  • ์‚ฌ๋žŒ์ด ๊ฐœ์ž…ํ•˜์ง€ ์•Š์•„๋„ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•
  • “์•„, ์ด ์‚ฌ๋žŒ์€ ์šด์˜๊นŒ์ง€ ํ•ด๋ดค๊ตฌ๋‚˜” ์†Œ๋ฆฌ ๋“ฃ๋Š” ํฌ์ธํŠธ

1๏ธโƒฃ RAG ๋ฌธ์„œ ํŒŒ์ดํ”„๋ผ์ธ, ์™œ ํ•„์š”ํ•œ๊ฐ€

์ฒ˜์Œ์—” ๋ณดํ†ต ์ด๋ ‡๊ฒŒ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

1. ๋ฌธ์„œ ํ•˜๋‚˜ ์ƒ๊น€
2. ๋ณต์‚ฌํ•ด์„œ ์ž„๋ฒ ๋”ฉ
3. Vector DB์— ๋„ฃ์Œ

๋ฌธ์ œ๋Š” ์ด๊ฒŒ 100๋ฒˆ, 1,000๋ฒˆ ๋ฐ˜๋ณต๋  ๋•Œ์ž…๋‹ˆ๋‹ค.

์‹ค์ œ๋กœ ํ„ฐ์ง€๋Š” ๋ฌธ์ œ๋“ค

  • ๊ฐ™์€ ๋‚ด์šฉ์ด ์กฐ๊ธˆ์”ฉ ๋‹ค๋ฅธ ๋ฌธ์„œ๋กœ ์—ฌ๋Ÿฌ ๋ฒˆ ๋“ค์–ด๊ฐ
  • HTML/ํ‘ธํ„ฐ/๋ฉ”๋‰ด ๊ฐ™์€ ์“ฐ๋ ˆ๊ธฐ ํ…์ŠคํŠธ ํฌํ•จ
  • ๋„ˆ๋ฌด ๊ธด ๋ฌธ์„œ๊ฐ€ ๊ทธ๋Œ€๋กœ ๋“ค์–ด๊ฐ
  • ์ œ๋ชฉ ์—†๋Š” chunk๊ฐ€ ์ƒ๊น€
  • ์š”์•ฝ ์—†๋Š” ๋ฌธ์„œ๊ฐ€ ์Œ“์ž„

๐Ÿ‘‰ ์ด๊ฒŒ ์Œ“์ด๋ฉด
RAG๋Š” ๋ฐ˜๋“œ์‹œ ํ’ˆ์งˆ์ด ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ํ•„์š”ํ•œ ๊ฒŒ
“๋ฌธ์„œ ํŒŒ์ดํ”„๋ผ์ธ” ์ž…๋‹ˆ๋‹ค.


2๏ธโƒฃ ์ „์ฒด ๋ฌธ์„œ ํŒŒ์ดํ”„๋ผ์ธ ๊ตฌ์กฐ (์šด์˜ ๊ธฐ์ค€)

๋ฐ˜์‘ํ˜•

์šด์˜์—์„œ ๋‚ด๊ฐ€ ์ •์ฐฉ์‹œํ‚จ ํ๋ฆ„์€ ์ด๊ฒ๋‹ˆ๋‹ค.

[์›๋ณธ ๋ฌธ์„œ]
   ↓
1. ์ˆ˜์ง‘ (Crawler / API / ์—…๋กœ๋“œ)
   ↓
2. ์ •์ œ (๋ถˆํ•„์š”ํ•œ ํ…์ŠคํŠธ ์ œ๊ฑฐ)
   ↓
3. ๋ถ„ํ•  (Chunking)
   ↓
4. ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ๋ถ€์—ฌ
   ↓
5. ์š”์•ฝ ์ƒ์„ฑ
   ↓
6. ์ž„๋ฒ ๋”ฉ ์ƒ์„ฑ
   ↓
7. Vector DB ์ €์žฅ
   ↓
8. ๊ฒ€์ฆ & ์ƒ˜ํ”Œ ํ…Œ์ŠคํŠธ

๐Ÿ‘‰ ์ค‘์š”ํ•œ ๊ฑด “์ค‘๊ฐ„ ๋‹จ๊ณ„”๊ฐ€ ๋งŽ๋‹ค๋Š” ๊ฒƒ
์ด ๋‹จ๊ณ„๋“ค์ด ์—†์œผ๋ฉด, ํ’ˆ์งˆ์€ ๋ฌด์กฐ๊ฑด ๋ฌด๋„ˆ์ง‘๋‹ˆ๋‹ค.


3๏ธโƒฃ 1๋‹จ๊ณ„: ๋ฌธ์„œ ์ˆ˜์ง‘ (์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ๊ธฐ์ค€์„ ์„ธ์›Œ์•ผ ํ•จ)

๋ฌธ์„œ ์ˆ˜์ง‘์€ ํฌ๊ฒŒ 3๊ฐ€์ง€๋กœ ๋‚˜๋‰ฉ๋‹ˆ๋‹ค.

1) ๋‚ด๋ถ€ ๋ฌธ์„œ

  • ๊ด€๋ฆฌ์ž ํŽ˜์ด์ง€ ์ž‘์„ฑ
  • Notion / Google Docs
  • DB ๊ธฐ๋ฐ˜ ์ฝ˜ํ…์ธ 

2) ์™ธ๋ถ€ ๋ฌธ์„œ

  • ์›น ํŽ˜์ด์ง€
  • PDF
  • ๊ณ ๊ฐ FAQ

3) ์‚ฌ์šฉ์ž ์ƒ์„ฑ ์ฝ˜ํ…์ธ 

  • ๊ฒŒ์‹œ๊ธ€
  • ๋Œ“๊ธ€
  • ๋ฌธ์˜ ๋‚ด์—ญ

โ— ์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์›์น™

“๋ชจ๋“  ๋ฌธ์„œ๋ฅผ ๋‹ค ๋„ฃ์ง€ ์•Š๋Š”๋‹ค”

์ดˆ๋ฐ˜์— ๋‹ค๋“ค ์ด ์‹ค์ˆ˜๋ฅผ ํ•ฉ๋‹ˆ๋‹ค.

“๋งŽ์„์ˆ˜๋ก ์ข‹๊ฒ ์ง€?”

โŒ ์•„๋‹™๋‹ˆ๋‹ค.
RAG๋Š” ‘์„ ๋ณ„’์ด ํ•ต์‹ฌ์ž…๋‹ˆ๋‹ค.


์ˆ˜์ง‘ ๊ธฐ์ค€ ์˜ˆ์‹œ

  • ์ตœ์†Œ ๊ธ€์ž ์ˆ˜: 200์ž ์ด์ƒ
  • ๊ด‘๊ณ /ํ™๋ณด ๋ฌธ์„œ ์ œ์™ธ
  • ์˜ค๋ž˜๋œ ๊ณต์ง€ ์ž๋™ ์ œ์™ธ
  • ์นดํ…Œ๊ณ ๋ฆฌ ๋ช…ํ™•ํ•œ ๋ฌธ์„œ๋งŒ ํ—ˆ์šฉ

์ด ๊ธฐ์ค€์„ ์ฝ”๋“œ๋กœ ๋ฐ•์•„๋‘ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.


4๏ธโƒฃ 2๋‹จ๊ณ„: ๋ฌธ์„œ ์ •์ œ (์ด ๋‹จ๊ณ„ ์•ˆ ํ•˜๋ฉด 100% ๋งํ•จ)

๋ฌธ์„œ ์ •์ œ๋Š”
RAG ํ’ˆ์งˆ์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ์ค๋‹ˆ๋‹ค.

์ œ๊ฑฐํ•ด์•ผ ํ•  ๊ฒƒ๋“ค

  • HTML ํƒœ๊ทธ
  • ๋ฉ”๋‰ด/ํ‘ธํ„ฐ/์‚ฌ์ด๋“œ๋ฐ” ํ…์ŠคํŠธ
  • “๊ด€๋ จ ๊ธ€ ๋ณด๊ธฐ”
  • ๋ฒ„ํŠผ ํ…์ŠคํŠธ
  • ์ค‘๋ณต ๊ณต์ง€ ๋ฌธ๊ตฌ

์‹ค์ „ ์ •์ œ ์ฝ”๋“œ ์˜ˆ์‹œ

function cleanText(raw: string): string {
  return raw
    .replace(/<[^>]*>/g, '')       // HTML ์ œ๊ฑฐ
    .replace(/\s+/g, ' ')          // ๊ณต๋ฐฑ ์ •๋ฆฌ
    .replace(/๊ด€๋ จ ๊ธ€ ๋ณด๊ธฐ.*/g, '') // ๋ถˆํ•„์š” ๋ฌธ๊ตฌ ์ œ๊ฑฐ
    .trim();
}

๐Ÿ‘‰ ์ด ์ฝ”๋“œ ํ•˜๋‚˜๋กœ
๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ๊ด€๋ จ๋„๊ฐ€ ๋ˆˆ์— ๋„๊ฒŒ ์˜ฌ๋ผ๊ฐ‘๋‹ˆ๋‹ค.


5๏ธโƒฃ 3๋‹จ๊ณ„: ๋ฌธ์„œ ๋ถ„ํ•  (Chunking ๊ธฐ์ค€ ์žก๊ธฐ)

์ด ๋‹จ๊ณ„์—์„œ
RAG์˜ “์„ฑ๊ฒฉ”์ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ตœ์ข…์ ์œผ๋กœ ์ •์ฐฉํ•œ ๊ธฐ์ค€

ํ•ญ๋ชฉ๊ธฐ์ค€

๊ธธ์ด 300 ~ 700์ž
๋‹จ์œ„ ๋ฌธ๋‹จ ๊ธฐ์ค€
์ œ๋ชฉ ๋ฐ˜๋“œ์‹œ ํฌํ•จ
์ฃผ์ œ ํ•˜๋‚˜๋งŒ

โŒ ์‹คํŒจํ–ˆ๋˜ ์˜ˆ

  • 2,000์ž ํ†ต์งธ๋กœ ํ•˜๋‚˜์˜ chunk
  • ๋ฌธ๋‹จ ๋‚˜๋ˆ„์ง€ ์•Š๊ณ  ์ค„๋ฐ”๊ฟˆ๋งŒ ์žˆ๋Š” ํ…์ŠคํŠธ
  • ์ œ๋ชฉ ์—†๋Š” ๋ณธ๋ฌธ๋งŒ chunk

Chunk ์˜ˆ์‹œ ๊ตฌ์กฐ

{
  "title": "๊ฒฐ์ œ ์‹คํŒจ ์‹œ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•",
  "content": "๊ฒฐ์ œ ์‹คํŒจ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด...",
  "category": "billing",
  "source": "help-center"
}

๐Ÿ‘‰ ์ œ๋ชฉ์€
LLM์—๊ฒŒ ๋ฌธ๋งฅ ๋ฐฉํ–ฅ์„ ์žก์•„์ฃผ๋Š” ์•ต์ปค ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.


6๏ธโƒฃ 4๋‹จ๊ณ„: ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„ค๊ณ„ (๋‚˜์ค‘์— ์‚ด๋ ค์ค€๋‹ค)

์ด ๋‹จ๊ณ„,
์ฒ˜์Œ์—” ๋‹ค๋“ค ๊ท€์ฐฎ์•„์„œ ๋Œ€์ถฉ ํ•ฉ๋‹ˆ๋‹ค.

๊ทผ๋ฐ ๋‚˜์ค‘์— 100% ํ›„ํšŒํ•ฉ๋‹ˆ๋‹ค.


์ตœ์†Œ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์„ธํŠธ

{
  "type": "guide",
  "category": "billing",
  "source": "admin",
  "createdAt": "2025-01-10",
  "version": "v2"
}

์ด๊ฒŒ ์žˆ์–ด์•ผ ๊ฐ€๋Šฅํ•œ ๊ฒƒ๋“ค:

  • ํŠน์ • ์นดํ…Œ๊ณ ๋ฆฌ๋งŒ ๊ฒ€์ƒ‰
  • ์˜ค๋ž˜๋œ ๋ฌธ์„œ ์ œ์™ธ
  • ์‹คํ—˜์šฉ ๋ฌธ์„œ ๋ถ„๋ฆฌ
  • A/B ํ…Œ์ŠคํŠธ

๐Ÿ‘‰ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์—†๋Š” RAG๋Š” ํ™•์žฅ ๋ถˆ๊ฐ€


7๏ธโƒฃ 5๋‹จ๊ณ„: ์š”์•ฝ ์ž๋™ ์ƒ์„ฑ (ํ’ˆ์งˆ ์œ ์ง€์˜ ํ•ต์‹ฌ)

์ด๊ฑด ์ •๋ง ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค.

“์š”์•ฝ ์—†๋Š” RAG๋Š” ๋ฐ˜์ชฝ์งœ๋ฆฌ๋‹ค”


์™œ ์š”์•ฝ์ด ํ•„์š”ํ•œ๊ฐ€

  • LLM์— ๊ธด ์›๋ฌธ์„ ๊ทธ๋Œ€๋กœ ์ฃผ์ง€ ์•Š๊ธฐ ์œ„ํ•ด
  • ํ•ต์‹ฌ๋งŒ ์ปจํ…์ŠคํŠธ๋กœ ์“ฐ๊ธฐ ์œ„ํ•ด
  • hallucination ์ค„์ด๊ธฐ ์œ„ํ•ด

์š”์•ฝ ์ƒ์„ฑ ์˜ˆ์‹œ

const summary = await openai.chat.completions.create({
  model: 'gpt-3.5-turbo',
  messages: [
    { role: 'system', content: '์•„๋ž˜ ๋ฌธ์„œ๋ฅผ ํ•œ ๋ฌธ๋‹จ์œผ๋กœ ์š”์•ฝํ•ด.' },
    { role: 'user', content: chunk.content }
  ]
});

๊ทธ๋ฆฌ๊ณ  Vector DB์—๋Š” ์ด๋ ‡๊ฒŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.

{
  "content": "...์›๋ฌธ...",
  "summary": "...์š”์•ฝ๋ณธ..."
}

๐Ÿ‘‰ ๊ฒ€์ƒ‰ ํ›„ LLM์—๋Š”
summary ์œ„์ฃผ๋กœ ์ „๋‹ฌ


8๏ธโƒฃ 6๋‹จ๊ณ„: ์ž„๋ฒ ๋”ฉ & Vector DB ์ €์žฅ

์ด ๋‹จ๊ณ„๋Š” ์ด๋ฏธ ์ต์ˆ™ํ•  ๊ฒ๋‹ˆ๋‹ค.
์ค‘์š”ํ•œ ๊ฑด ์•ž ๋‹จ๊ณ„๋ฅผ ํ†ต๊ณผํ•œ ๋ฌธ์„œ๋งŒ ์—ฌ๊ธฐ๋กœ ์˜จ๋‹ค๋Š” ์ .

await qdrant.upsert("documents", {
  points: [
    {
      id,
      vector: embedding,
      payload: {
        title,
        summary,
        category,
        source
      }
    }
  ]
});

9๏ธโƒฃ 7๋‹จ๊ณ„: ์ž๋™ ๊ฒ€์ฆ (์ด๊ฑฐ ์•ˆ ํ•˜๋ฉด ๊ฒฐ๊ตญ ํ„ฐ์ง)

์šด์˜ ๋‹จ๊ณ„์—์„œ ์ง„์งœ ์ค‘์š”ํ•œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์“ฐ๋Š” ๊ฐ„๋‹จํ•œ ๊ฒ€์ฆ ๋ฐฉ์‹

  • ์ƒ˜ํ”Œ ์งˆ๋ฌธ 10๊ฐœ ๊ณ ์ •
  • ๋ฌธ์„œ ์ถ”๊ฐ€ ํ›„ ์ž๋™ ๊ฒ€์ƒ‰
  • ๊ฒฐ๊ณผ ๋กœ๊ทธ ๋น„๊ต
const testQueries = [
  "๊ฒฐ์ œ ์‹คํŒจํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋‚˜์š”?",
  "๊ตฌ๋… ํ•ด์ง€๋Š” ์–ด๋””์„œ ํ•˜๋‚˜์š”?"
];

๐Ÿ‘‰ ๊ฒฐ๊ณผ๊ฐ€ ๊ฐ‘์ž๊ธฐ ๋ฐ”๋€Œ๋ฉด
๋ฐ”๋กœ ์•Œ ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.


10๏ธโƒฃ ์ด ํŒŒ์ดํ”„๋ผ์ธ์˜ ์ง„์งœ ์˜๋ฏธ

์ด ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ณ  ๋‚˜์„œ ๋А๋‚€ ์ ์€ ์ด๊ฑฐ์˜€์Šต๋‹ˆ๋‹ค.

RAG๋Š” “AI ๊ธฐ๋Šฅ”์ด ์•„๋‹ˆ๋ผ
**“๋ฐ์ดํ„ฐ ํŒŒ์ดํ”„๋ผ์ธ ๋ฌธ์ œ”**๋‹ค.

  • ๋ฌธ์„œ๊ฐ€ ๋Š˜์–ด๋‚˜๋„
  • ์‚ฌ๋žŒ์ด ๋ฐ”๋€Œ์–ด๋„
  • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋„

ํ’ˆ์งˆ์ด ์œ ์ง€๋˜๋Š” ๊ตฌ์กฐ
์ด๊ฒŒ ์ง„์งœ ์šด์˜์ž…๋‹ˆ๋‹ค.


 

RAGํŒŒ์ดํ”„๋ผ์ธ, ๋ฌธ์„œ์ •์ œ, ๋ฒกํ„ฐDB์šด์˜, AI์„œ๋น„์Šค์šด์˜, Qdrant, NestJS, AI๋ฐฑ์—”๋“œ, RAG์ž๋™ํ™”, AIํ’ˆ์งˆ๊ด€๋ฆฌ

โ€ป ์ด ํฌ์ŠคํŒ…์€ ์ฟ ํŒก ํŒŒํŠธ๋„ˆ์Šค ํ™œ๋™์˜ ์ผํ™˜์œผ๋กœ, ์ด์— ๋”ฐ๋ฅธ ์ผ์ •์•ก์˜ ์ˆ˜์ˆ˜๋ฃŒ๋ฅผ ์ œ๊ณต๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ณต์ง€์‚ฌํ•ญ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€
Total
Today
Yesterday
๋งํฌ
ยซ   2026/01   ยป
์ผ ์›” ํ™” ์ˆ˜ ๋ชฉ ๊ธˆ ํ† 
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
๊ธ€ ๋ณด๊ด€ํ•จ
๋ฐ˜์‘ํ˜•