AI κΈ°λ° μμ΄ μ€νΌνΉ νμ΅ κ²μμ λ°±μλ μλ²μ
λλ€.
νλ μ΄μ΄λ μ€μ μν μλ리μ€(μ₯보기, μΉ΄ν μ£Όλ¬Έ λ±)μμ AI NPCμ μμ΄λ‘ λννλ©°, λ°μΒ·λ¬Έλ²Β·λ§₯λ½ μ μ μ±μ μ€μκ°μΌλ‘ νκ°λ°μ΅λλ€.
| νλͺ© | λ΄μ© |
|---|---|
| κΈ°κ° | 2025.03 ~ 2025.06 (νκΈ° νλ‘μ νΈ) |
| ν κ·λͺ¨ | 4μΈ (μλ² 1, ν΄λΌμ΄μΈνΈ 2, κΈ°ν 1) |
| ν΄λΌμ΄μΈνΈ | Unity 3D λͺ¨λ°μΌ κ²μ |
| μλ² | ASP.NET Core (.NET 10) REST API |
AI λν λ° νκ° μμ€ν
Claude APIλ₯Ό νμ©νμ¬ NPCκ° μλ리μ€μ λ§λ μμ°μ€λ¬μ΄ μμ΄ λνλ₯Ό μμ±νκ³ , νλ μ΄μ΄μ μλ΅μ λ°μ μ νλ, λ¬Έλ², λ§₯λ½ μ μ μ±, μλ΅ μκ° λ± λ€μ°¨μμΌλ‘ νκ°ν©λλ€.
μμ± μΈμ κΈ°λ° κ²μνλ μ΄
Google STTλ₯Ό ν΅ν΄ νλ μ΄μ΄μ μμ±μ ν
μ€νΈλ‘ λ³ννκ³ , μ΄λ₯Ό AI νκ° νμ΄νλΌμΈμ μ λ¬ν©λλ€.
νμ€νΈ μ§ν λ° νμ΅ μΆμ
μλ리μ€λ³ λͺ©ν(quest objectives)μ λ¬μ± μ¬λΆλ₯Ό μΈμ
λ¨μλ‘ μΆμ νλ©°, μ΅κ³ κΈ°λ‘κ³Ό λμ νμ΅ λ°μ΄ν°λ₯Ό κ΄λ¦¬ν©λλ€.
μ΄ν νμ΅ (νλμμΉ΄λ)
κ²μ μ€ λ±μ₯ν λ¨μ΄λ₯Ό νλμμΉ΄λλ‘ μ μ₯νκ³ , λ°λ³΅ νμ΅ν μ μλ κΈ°λ₯μ μ 곡ν©λλ€.
| μμ | κΈ°μ | μ ν κ·Όκ±° |
|---|---|---|
| Framework | ASP.NET Core (.NET 10) | κ³ μ±λ₯ Kestrel μλ², λ΄μ₯ DI 컨ν μ΄λ, κ°νμ μμ€ν μΌλ‘ API μμ μ± ν보 |
| ORM | EF Core (Pomelo MySQL Provider) | Code-First λ§μ΄κ·Έλ μ΄μ μΌλ‘ μ€ν€λ§ λ²μ κ΄λ¦¬, LINQ κΈ°λ° νμ μμ 쿼리 |
| Database | MySQL 8.0 | κ³ μ μ€ν€λ§ κΈ°λ° λ°μ΄ν° λͺ¨λΈμ μ ν© β JSONBκ° λΆνμν ꡬ쑰μμ PostgreSQL λμ μ ν |
| Cache | Redis 7 | μΈμ μΊμ± λ° AI μλ΅ μΊμ±μ ν΅ν API νΈμΆ λΉμ© μ κ° |
| AI | Claude API | NPC λν μμ± + λ€μ°¨μ νκ°λ₯Ό λ¨μΌ APIλ‘ μ²λ¦¬, ꡬ쑰νλ JSON μΆλ ₯ μ§μ |
| Voice | Google STT | μ€μκ° μμ±-ν μ€νΈ λ³ν, λ€κ΅μ΄ λ°μ νκ° μ§μ |
| Auth | JWT + Google/Kakao OAuth | μμ λ‘κ·ΈμΈ μ μ© β μ체 νμκ°μ μμ΄ μ¨λ³΄λ© λ§μ°° μ΅μν |
| Infra | AWS EC2, ALB, ACM, Route 53 | ALB + ACMμΌλ‘ SSL μ’ λ£ μ²λ¦¬, Let's Encrypt λλΉ μΈμ¦μ μλ κ°±μ μΌλ‘ μ΄μ λΆλ΄ μ κ±° |
βββββββββββββββββββββββββββββββββββββββββββ
β Api β β Controllers, Middleware, DI μ€μ
βββββββββββββββββββββββββββββββββββββββββββ€
β Application β β Use Cases, DTOs, Interfaces
βββββββββββββββββββββββββββββββββββββββββββ€
β Domain β β Entities, Enums, Value Objects
βββββββββββββββββββββββββββββββββββββββββββ€
β Infrastructure β β EF Core, Redis, Claude API, Google STT
βββββββββββββββββββββββββββββββββββββββββββ
μμ‘΄μ± λ°©ν₯μ μμͺ½(Domain)μΌλ‘λ§ ν₯ν©λλ€. Infrastructureμ μΈλΆ μλΉμ€ ꡬν체λ Application κ³μΈ΅μ μΈν°νμ΄μ€μ μμ‘΄νλ―λ‘, AI μ 곡μ κ΅μ²΄(Claude β OpenAI λ±)λ DB κ΅μ²΄ μ Infrastructureλ§ μμ νλ©΄ λ©λλ€.
- .NET 10 SDK
- Docker & Docker Compose
# 1. μΈνλΌ μ»¨ν
μ΄λ μ€ν (MySQL, Redis)
docker compose up -d
# 2. νκ²½ λ³μ μ€μ
cp appsettings.Development.example.json appsettings.Development.json
# Claude API Key, Google OAuth λ± μ€μ
# 3. DB λ§μ΄κ·Έλ μ΄μ
dotnet ef database update --project src/Infrastructure
# 4. μλ² μ€ν
dotnet run --project src/ApiλΈλμΉ λ€μ΄λ°: feature/#[issueλ²νΈ]-μ€λͺ
(μ: feature/#12-quest-api)
μ»€λ° λ©μμ§:
β¨ feat: νμ€νΈ λͺ©λ‘ μ‘°ν API ꡬν (#12)
π fix: JWT λ§λ£ μ κ°±μ λ‘μ§ μμ (#15)
β»οΈ refactor: μΈμ
μλΉμ€ μΈν°νμ΄μ€ λΆλ¦¬ (#18)
λΈλμΉ λ³΄νΈ: main λΈλμΉλ PR 리뷰 νμμ΄λ©°, CI ν΅κ³Ό ν λ¨Έμ§λ©λλ€.