๐Ÿš€ claude code๋ฅผ ์œ„ํ•œ 10๊ฐ€์ง€ ํŒŒ์›Œ ํ•ดํ‚น ํŒ

ยท5 min readยท2ยท
๐Ÿš€ Claude Code๋ฅผ ์œ„ํ•œ 10๊ฐ€์ง€ ํŒŒ์›Œ ํ•ดํ‚น ํŒ

๐Ÿš€ Claude Code๋ฅผ ์œ„ํ•œ 10๊ฐ€์ง€ ํŒŒ์›Œ ํ•ดํ‚น ํŒ

์•„๋ฌด๋„ ์•Œ๋ ค์ฃผ์ง€ ์•Š์ง€๋งŒ, ๋ชจ๋“  ํŒŒ์›Œ ์œ ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋น„๋ฒ•๋“ค

๐Ÿ“Œ ๋“ค์–ด๊ฐ€๋ฉฐ

Claude Code๋Š” ๋‹จ์ˆœํ•œ ์ž๋™์™„์„ฑ ๋„๊ตฌ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๊ณ„ํšํ•˜๊ณ , ์ž‘์„ฑํ•˜๊ณ , ๊ฒ€ํ† ํ•˜๊ณ , ๋ฆฌํŒฉํ† ๋งํ•  ์ˆ˜ ์žˆ๋Š” ์™„์ „ํ•œ AI ๊ฐœ๋ฐœ ๋™๋ฃŒ์ž…๋‹ˆ๋‹ค. ๋‹จ, ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋Œ€ํ™”ํ•˜๊ณ , ๊ตฌ์กฐํ™”ํ•˜๊ณ , ์‹ค์ˆ˜๋กœ 600MB์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ๋ฅผ ๋จน์ด์ง€ ์•Š๋Š”๋‹ค๋ฉด ๋ง์ด์ฃ .

์ด ๊ฐ€์ด๋“œ๋Š” Claude๋ฅผ "๋„์›€์ด ๋˜๋Š” ์–ด์‹œ์Šคํ„ดํŠธ"์—์„œ **"์ ˆ๋Œ€ ์ง€์น˜์ง€ ์•Š๋Š” ์ฒœ์žฌ ๊ฐœ๋ฐœ์ž"**๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฝ๋‹ˆ๋‹ค.


1๏ธโƒฃ ์ปจํ…์ŠคํŠธ ํฌ๋ผ์ผ„ ์ œ์–ดํ•˜๊ธฐ ๐Ÿฆ‘

๋ฌธ์ œ์ 

Claude์˜ ์ปจํ…์ŠคํŠธ ์œˆ๋„์šฐ๋Š” ๊ฑฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค (์ตœ๋Œ€ ~200K ํ† ํฐ). ์ „์ฒด ํด๋”๋ฅผ ๋ฌด์ž‘์ • ๋จน์ด๋ฉด ๋งค์šฐ ๋น„์‹ธ๊ณ  ์‚ฐ๋งŒํ•œ ํฌ๋ผ์ผ„์„ ํ‚ค์šฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

ํ•ด๊ฒฐ์ฑ… โœ…

  • .gitignore๋ฅผ ์ผ์ฐ, ๊ณต๊ฒฉ์ ์œผ๋กœ ์ถ”๊ฐ€
  • ๋Œ€ํ™” ๊ธฐ๋ก ๋ณด์กด ์‹œ /compact ์‚ฌ์šฉ
  • ์ž‘์—… ์ „ํ™˜ ์ „ /clear ์‚ฌ์šฉ
  • ์ œ์™ธํ•  ๋””๋ ‰ํ† ๋ฆฌ:
    • dist/
    • logs/
    • .next/
    • coverage/
    • node_modules/
# .gitignore ์˜ˆ์‹œ
dist/
logs/
.env
coverage/
node_modules/

๐Ÿ’ก ํ”„๋กœ ํŒ: /clear๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฉด, Claude๊ฐ€ ๋‹น์‹ ์ด ๋ถ„๋…ธํ•˜๋ฉฐ ์ปค๋ฐ‹ํ•œ 20,000์ค„์˜ ๋ ˆ๊ฑฐ์‹œ jQuery๋ฅผ ๊ธฐ์–ตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ‘€


2๏ธโƒฃ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ”„๋กœ์ฒ˜๋Ÿผ ์Œ“๊ธฐ ๐Ÿง 

๋ฒ ์ŠคํŠธ ํ”„๋ž™ํ‹ฐ์Šค ๋ ˆ์ด์–ด

๋ ˆ์ด์–ดํŒŒ์ผ์šฉ๋„
ํ”„๋กœ์ ํŠธ ๋ฉ”๋ชจ๋ฆฌ./CLAUDE.md๋กœ์ปฌ ํ‘œ์ค€, ๊ธฐ์ˆ  ์Šคํƒ, ๋นŒ๋“œ/ํ…Œ์ŠคํŠธ ์Šต๊ด€
๊ฐœ์ธ ๋ฉ”๋ชจ๋ฆฌ~/.claude/CLAUDE.md๋‹น์‹ ์˜ ์Œ์„ฑ/ํ†ค/์Šคํƒ€์ผ, ๊ฐœ์ธ ๊ธฐ๋ณธ๊ฐ’
์˜จ๋””๋งจ๋“œ ์ž„ํฌํŠธ@docs/ARCH.mdํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ฐ€์ ธ์˜ค๊ธฐ

CLAUDE.md ์˜ˆ์‹œ

# Project Rules
- Always use `pnpm`
- Lint with `eslint --fix`
- Tests run via `pnpm test`

# Imports
@docs/API_GUIDELINES.md
@~/.claude/snippets.md

๊ฒฐ๊ณผ: Claude๊ฐ€ ์ฑ—๋ด‡์ด ์•„๋‹Œ ํŒ€ ๋ฆฌ๋”์ฒ˜๋Ÿผ ํ–‰๋™ํ•ฉ๋‹ˆ๋‹ค.


3๏ธโƒฃ ํ”Œ๋žœ ๋ชจ๋“œ๋ฅผ ๊ฑด์ถ•๊ฐ€์ฒ˜๋Ÿผ ์‚ฌ์šฉํ•˜๊ธฐ ๐Ÿ› ๏ธ

ํ”Œ๋žœ ๋ชจ๋“œ๋ž€?

Shift + Tab์„ ๋‘ ๋ฒˆ ๋ˆ„๋ฅด๋ฉด ๊ณ„ํš ์ „์šฉ ์ถœ๋ ฅ์œผ๋กœ ์ „ํ™˜. ํŒŒ์ผ์„ ๊ฑด๋“œ๋ฆฌ์ง€ ์•Š๊ณ  ํ–‰๋™๋งŒ ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค.

์›Œํฌํ”Œ๋กœ์šฐ

  1. Shift+Tab์„ ๋‘ ๋ฒˆ ๋ˆ„๋ฅด๊ธฐ
  2. ์š”์ฒญ: "๋ชจ๋“  ํด๋ž˜์Šค ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•จ์ˆ˜ํ˜•์œผ๋กœ ๋ฆฌํŒฉํ„ฐํ•˜๊ณ , 3๋‹จ๊ณ„ ๊ณ„ํš ๋ฐ˜ํ™˜"
  3. ์ œ์•ˆ ๊ฒ€ํ† 
  4. ํ”Œ๋žœ ๋ชจ๋“œ ์ข…๋ฃŒ ํ›„ ์‹คํ–‰

์™„๋ฒฝํ•œ ์‚ฌ์šฉ ์‹œ๊ธฐ

  • ๋Œ€๊ทœ๋ชจ ๋ฆฌํŒฉํ„ฐ ๊ณ„ํš ์š”์ฒญ
  • ์‹คํ–‰ ์ „ ์œ„ํ—˜ํ•œ ์ž‘์—… ๊ฒ€ํ† 
  • ๋‹ค๋‹จ๊ณ„ ์›Œํฌํ”Œ๋กœ์šฐ ํ˜‘์—…

4๏ธโƒฃ XML ํƒœ๊ทธ๋กœ ๋ ˆ์ด์ € ์ •๋ฐ€ ํ”„๋กฌํ”„ํŠธ ์ž‘์„ฑ ๐Ÿ“ฆ

Claude๋Š” XML ํƒœ๊ทธ๋กœ ์ง€์นจ์„ ๊ฐ์‹ธ๋ฉด ์ด์ƒํ•˜๊ฒŒ ์ˆœ์ข…์ ์ž…๋‹ˆ๋‹ค.

์˜ˆ์‹œ

<task>
  <instructions>
    `userController.js`๋ฅผ async/await๋กœ ๋ฆฌํŒฉํ„ฐํ•˜์„ธ์š”.
  </instructions>
  <format>
    ํ†ตํ•ฉ diff๋งŒ ์ถœ๋ ฅํ•˜์„ธ์š”.
  </format>
  <constraints>
    ๊ด€๋ จ ์—†๋Š” ์ฝ”๋“œ๋Š” ๋ณ€๊ฒฝํ•˜์ง€ ๋งˆ์„ธ์š”.
  </constraints>
</task>

ํ•„์š”์‹œ ํ”„๋กฌํ”„ํŠธ ๋‚ด์— @docs/*.md๋ฅผ ์ถ”๊ฐ€ํ•˜์„ธ์š”.


5๏ธโƒฃ ์ปค์Šคํ…€ ์Šฌ๋ž˜์‹œ ๋ช…๋ น = ์ฆ‰๊ฐ์ ์ธ ํŒŒ์›Œ ๋ฌด๋ธŒ โŒจ๏ธ

์„ค์ • ๋ฐฉ๋ฒ•

  • ๊ฐœ์ธ์šฉ: ~/.claude/commands/
  • ํŒ€ ๊ณต์œ : .claude/commands/ (์ €์žฅ์†Œ ๋‚ด)

์˜ˆ์‹œ: .claude/commands/audit.md

ํ”„๋กœ์ ํŠธ ๊ฐ์‚ฌ ํ•ญ๋ชฉ:
- SQL ์ธ์ ์…˜
- ์•ˆ์ „ํ•˜์ง€ ์•Š์€ eval
- ๋ผ์šฐํŠธ์˜ ๋ˆ„๋ฝ๋œ rate-limits

๊ฒฐ๊ณผ๋ฅผ ๋งˆํฌ๋‹ค์šด ํ…Œ์ด๋ธ”๋กœ ์ถœ๋ ฅ

์‚ฌ์šฉ๋ฒ•

/audit

๋ถ! ์ž์‹ ๋งŒ์˜ Claude ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋ฅผ ๊ตฌ์ถ•ํ–ˆ์Šต๋‹ˆ๋‹ค.


6๏ธโƒฃ Hooks: Claude์˜ ๋น„๋ฐ€ ์ž๋™ํ™” ๋ ˆ์ด์–ด ๐Ÿช

์ง€์› ํ›…

  • PreToolUse
  • PostToolUse

์˜ˆ์‹œ: .claude/hooks/pre-edit.sh

#!/bin/bash
payload=$(cat)
if echo "$payload" | grep -q ".env"; then
  echo "Edit blocked: Sensitive file"
  exit 1
fi

ํ™œ์šฉ ์‚ฌ๋ก€

  • โŒ ๋น„๋ฐ€ ์ •๋ณด ํŽธ์ง‘ ์ฐจ๋‹จ
  • โœ… ์ปค๋ฐ‹ ์ „ ๋ฆฐํ„ฐ ์‹คํ–‰
  • ๐Ÿ“ข ํฐ ํŒŒ์ผ ๋ณ€๊ฒฝ ์‹œ ์•Œ๋ฆผ ์ „์†ก

7๏ธโƒฃ ์–ธ์ œ๋‚˜ ํ†ตํ•ฉ Diff ์š”๊ตฌํ•˜๊ธฐ ๐Ÿงฉ

์™œ ์ค‘์š”ํ•œ๊ฐ€?

๋ณ‘ํ•ฉ ์ „์Ÿ์„ ํ”ผํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ „์ฒด ํŒŒ์ผ์ด ์•„๋‹Œ diff๋งŒ ์š”์ฒญํ•˜์„ธ์š”.

ํ”„๋กฌํ”„ํŠธ ํ…œํ”Œ๋ฆฟ

๋กœ๊ทธ์ธ ๋กœ์ง์„ bcrypt๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์—…๋ฐ์ดํŠธํ•˜์„ธ์š”.
ํ†ตํ•ฉ diff ํŒจ์น˜๋งŒ ๋ฐ˜ํ™˜ํ•˜์„ธ์š”.
์‚ฐ๋ฌธ์ด๋‚˜ ์š”์•ฝ ์—†์ด.

git apply๋กœ ์ง์ ‘ ์ ์šฉ ๊ฐ€๋Šฅํ•œ ---/+++ ํŒจ์น˜๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.


8๏ธโƒฃ Claude๋ฅผ PR ๋‹ด๋‹น์ž๋กœ ํ™œ์šฉํ•˜๊ธฐ ๐Ÿค–

GitHub Actions ํ†ตํ•ฉ

  • ์ด์Šˆ/PR์—์„œ @claude ์–ธ๊ธ‰
  • ์ฝ”๋“œ ์ƒ์„ฑ ์š”์ฒญ
  • ์ž๋™์œผ๋กœ PR ์—ด๊ธฐ

์ƒ˜ํ”Œ PR ์ฝ”๋ฉ˜ํŠธ

@claude ์นดํŠธ ๋กœ์ง์„ reducer ํŒจํ„ด์œผ๋กœ ๋ฆฌํŒฉํ„ฐํ•ด์ฃผ์„ธ์š”.
ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€ํ•˜๊ณ  PR ์—ด์–ด์ฃผ์„ธ์š”.

๋งˆ๋ฒ•์ด ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค โœจ


9๏ธโƒฃ ์ž‘์—…๊ณต๊ฐ„ ์ •๋ฆฌํ•˜๊ธฐ ๐Ÿงน

์ผ์ฐ ๋ฌด์‹œํ•  ํ•ญ๋ชฉ

node_modules/
coverage/
logs/
.env
*.sqlite
dist/

ํด๋” ๊ตฌ์กฐํ™”

  • docs/ - ์ŠคํŽ™์šฉ
  • api/ - ์—”๋“œํฌ์ธํŠธ์šฉ
  • tests/ - ํ…Œ์ŠคํŠธ์šฉ

Claude๋Š” ์งˆ์„œ๋ฅผ ์กด์ค‘ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ”Ÿ Claude๋ฅผ ํŒ€ ํ”Œ๋ ˆ์ด์–ด๋กœ ๋งŒ๋“ค๊ธฐ ๐Ÿง‘โ€๐Ÿคโ€๐Ÿง‘

ํŒ€ ์ „์ฒด๊ฐ€ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒƒ

  • โœ… ๊ณต์œ  CLAUDE.md
  • โœ… ๊ณต์œ  ์Šฌ๋ž˜์‹œ ๋ช…๋ น (/test, /audit, /optimize)
  • โœ… ๊ณต์œ  ํ›… ์Šคํฌ๋ฆฝํŠธ

๐Ÿ’ก ํ”„๋กœ ํŒ: ํŒ€๊ณผ 1์‹œ๊ฐ„์งœ๋ฆฌ "Claude ์„ค์ • ์žผ"์„ ๊ฐœ์ตœํ•˜์„ธ์š”. ๋ชจ๋‘๊ฐ€ ๋™์ผํ•œ ์„ค์ •์œผ๋กœ ๋‚˜๊ฐ‘๋‹ˆ๋‹ค.


๐ŸŽ ๋ณด๋„ˆ์Šค ํŒ

๐Ÿงฌ ์ธํ„ฐํŽ˜์ด์Šค ์šฐ์„  ํ”„๋กฌํ”„ํŠธ

ํ•จ์ˆ˜ ์‹œ๊ทธ๋‹ˆ์ฒ˜์™€ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณตํ•˜๋ฉด ๋ชจํ˜ธํ•œ ์ง€์นจ๋ณด๋‹ค ๋” ๋‚˜์€ ๊ฒฐ๊ณผ๋ฅผ ์–ป์Šต๋‹ˆ๋‹ค.

๐Ÿ” ์ž์ฃผ ์žฌ์‹œ์ž‘

๊ธด ์Šค๋ ˆ๋“œ๋Š” ์†๋„๋ฅผ ๋Šฆ์ถฅ๋‹ˆ๋‹ค. ์ž‘์—… ๊ฐ„ /clear ์‚ฌ์šฉ.

๐Ÿ“š ์ŠคํŽ™ ๊ฐ€์ ธ์˜ค๊ธฐ

๋ชจ๋“  ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ๋ฅผ docs/์— ๋ณด๊ด€ํ•˜๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๊ฐ€์ ธ์˜ค๊ธฐ.


โœ… Claude ์˜จ๋ณด๋”ฉ ์ฒดํฌ๋ฆฌ์ŠคํŠธ

  • .gitignore ์ถ”๊ฐ€ ๋ฐ ์ €์žฅ์†Œ ์ •๋ฆฌ
  • ์ง€์นจ์ด ํฌํ•จ๋œ CLAUDE.md ์ƒ์„ฑ
  • docs/์—์„œ ์ž„ํฌํŠธ ์ถ”๊ฐ€
  • /lint, /test, /docs ๋ช…๋ น ์ถ”๊ฐ€
  • ๋น„๋ฐ€ ๋ณดํ˜ธ๋ฅผ ์œ„ํ•œ pre-edit ํ›… ์ถ”๊ฐ€
  • ํ”Œ๋žœ ๋ชจ๋“œ ์Šต๊ด€ ํ™œ์„ฑํ™” (Shift+Tab x2)
  • GitHub Claude Action ์—ฐ๊ฒฐ

๐ŸŒ ์œ ์šฉํ•œ ๋ฆฌ์†Œ์Šค


๐Ÿ“ ์ถœ์ฒ˜

์›๋ฌธ: 10 Claude Code Power Hacks They Don't Tell You (But Should)

์ €์ž: Mohammed Tawfik

๊ฒŒ์‹œ์ผ: 2025๋…„ 7์›”

ํ”Œ๋žซํผ: Medium

// related_posts

[๊ฐœ๋… ์›๋ฆฌ ํ•ด์„ค์„œ] AI์˜ ๋˜‘๋˜‘ํ•œ ๊ธฐ์–ต๋ฒ•: ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ฐ€๋ฅด์น˜๋Š” โ€˜์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌโ€™์˜ ๋งˆ๋ฒ•
ai ml

[๊ฐœ๋… ์›๋ฆฌ ํ•ด์„ค์„œ] AI์˜ ๋˜‘๋˜‘ํ•œ ๊ธฐ์–ต๋ฒ•: ํ•„์š”ํ•œ ๊ฒƒ๋งŒ ๊ฐ€๋ฅด์น˜๋Š” โ€˜์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌโ€™์˜ ๋งˆ๋ฒ•

ai ๋ฅผ ๋”์šฑ ๋” ๋˜‘๋˜‘ํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ์ปจํ…์ŠคํŠธ ๊ด€๋ฆฌ

5 min read3
Read โ†’
Chicago Code Review: 7๋ช…์˜ ์ „๋ฌธ๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜๊ฐ€ ๋™์‹œ์— ์ฝ”๋“œ๋ฅผ ์ฝ๋Š”๋‹ค
ai ml

Chicago Code Review: 7๋ช…์˜ ์ „๋ฌธ๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜๊ฐ€ ๋™์‹œ์— ์ฝ”๋“œ๋ฅผ ์ฝ๋Š”๋‹ค

์•„ํ‚คํ…ํŠธยท๋ณด์•ˆยทํผํฌ๋จผ์ŠคยทQAยทํฌ๋ž˜ํ”„์ธ ๋งจยทDevOpsยทCodeRabbit ๋“ฑ 7๋ช…์˜ ์ „๋ฌธ๊ฐ€ ํŽ˜๋ฅด์†Œ๋‚˜ ์—์ด์ „ํŠธ๊ฐ€ ๋™์ผํ•œ diff๋ฅผ ๊ฐ์ž์˜ ๊ด€์ ์œผ๋กœ๋งŒ ๋ณ‘๋ ฌ ๋ถ„์„ํ•˜๊ณ , ์˜ค์ผ€์ŠคํŠธ๋ ˆ์ดํ„ฐ๊ฐ€ ์˜คํƒ ํ•„ํ„ฐ๋ง๊ณผ ์‹ฌ๊ฐ๋„ ์žฌ์กฐ์ •์„ ๊ฑฐ์ณ ํ†ตํ•ฉ ๋ฆฌํฌํŠธ๋ฅผ ๋งŒ๋“œ๋Š” Claude Code ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ๋ฆฌ๋ทฐ ์Šคํ‚ฌ์ž…๋‹ˆ๋‹ค.

11 min read6
Read โ†’
Montreal Code Review: 4์ธ ์ „๋ฌธ๊ฐ€ ํŒ€์ด ํ† ๋ก ํ•˜๋ฉฐ ์™„์„ฑํ•˜๋Š” ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ
ai ml

Montreal Code Review: 4์ธ ์ „๋ฌธ๊ฐ€ ํŒ€์ด ํ† ๋ก ํ•˜๋ฉฐ ์™„์„ฑํ•˜๋Š” ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ

Opus์™€ Sonnet์„ ์กฐํ•ฉํ•œ 4๋ช…์˜ AI ๋ฆฌ๋ทฐ์–ด๊ฐ€ PR์„ ๋…๋ฆฝ ๋ถ„์„ํ•œ ๋’ค, ๋ฆฌ๋” ์—์ด์ „ํŠธ๊ฐ€ ๊ฐ ๋ฆฌ๋ทฐ์–ด์™€ ํ† ๋ก  ๋ผ์šด๋“œ๋ฅผ ๊ฑฐ์ณ ๊ต์ฐจ ๊ฒ€์ฆํ•˜๊ณ  ์‹ ๋ขฐ๋„ ํƒœ๊ทธ๊ฐ€ ๋ถ™์€ ํ•ฉ์˜ ๊ธฐ๋ฐ˜ ๋ฆฌํฌํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” Claude Code ๋ฉ€ํ‹ฐ ์—์ด์ „ํŠธ ์ฝ”๋“œ ๋ฆฌ๋ทฐ ํ”Œ๋Ÿฌ๊ทธ์ธ์ž…๋‹ˆ๋‹ค.

10 min read6
Read โ†’