Commit Graph

86 Commits

Author SHA1 Message Date
543b83e707 feat: 플레이어 자원/액션바 HUD 분리 및 긴급회피 슬롯 추가 2026-03-24 12:30:09 +09:00
0889bb0f25 feat: 드로그 집행 개시 패턴 및 낙인 디버프 추가
- 드로그 시그니처 패턴 역할과 집행 개시 패턴 데이터를 추가하고 BT 브랜치에 연결
- 시그니처 차단 성공과 실패 흐름을 BossCombatBehaviorContext에 구현하고 authoring 그래프를 재구성
- 집행자의 낙인 이상상태를 추가하고 받는 피해 배율 증가가 플레이어 대미지 계산에 반영되도록 정리
- 집행 실패 시 광역 피해, 넉백, 다운, 낙인 부여 설정을 드로그 프리팹에 연결
- 성공 경로 검증 중 확인된 보스 Hit 트리거 오류를 방어 로직으로 수정
- Unity 플레이 검증으로 집행 개시 실패와 성공 분기를 모두 확인하고 설계값은 원복
2026-03-23 18:14:18 +09:00
1fec139e81 feat: 드로그 공통 보스 BT 프레임워크 정리
- 보스 공통 전투 컨텍스트와 패턴 역할 기반 BT 액션을 추가
- 드로그 패턴 선택을 다운 추가타, 도약, 기본 및 보조 패턴 우선순위 브랜치로 이관
- BT_Drog authoring 그래프를 공통 구조에 맞게 재구성
- 드로그 전용 BT 헬퍼를 정리하고 공통 베이스 액션으로 통합
- 플레이 검증으로 도약, 기본 패턴, 내려찍기, 다운 추가타 루프를 확인
2026-03-23 16:02:45 +09:00
74ea3e57b8 Update ignore rules and remove tracked Sidekick database 2026-03-22 23:51:38 +09:00
c66c91e8e9 Fix Sidekick tool startup and path handling 2026-03-22 23:50:10 +09:00
9d84154b54 feat: 드로그 보스 리네임 및 기본 패턴 구현
- TestBoss 관련 프리팹, 데이터, 애니메이션, BT 자산을 Drog 명칭으로 정리
- 드로그 전용 패턴 컨트롤러와 기본 패턴 루프를 추가
- 오른손치기2 기반 내려찍기와 다운 추가타 연계 진입점을 구현
- 점프, 스윙, 다운 추가타 관련 스킬 및 이펙트 데이터를 정리
2026-03-21 12:29:29 +09:00
9791b11d13 feat: 플레이어 다운 및 넉백 피격 반응 추가
- HitReactionController로 다운과 넉백 전용 로직을 분리
- 다운 시작, 루프, 회복 애니메이션과 DownEffect를 연결
- 행동 상태와 스킬 취소가 피격 반응과 연동되도록 정리
- 자동 검증 러너에 다운 및 넉백 검증을 추가
2026-03-19 23:35:51 +09:00
a65ba77931 feat: add enemy threat targeting system 2026-03-19 20:43:57 +09:00
287ff4dc83 feat: 무적 이상상태 기반 구르기 스킬 정리
- 무적 이상상태 데이터와 효과 에셋을 추가
- 구르기를 일반 스킬이 무적 상태를 부여하는 구조로 변경
- 대미지 처리와 플레이어 상태 판정이 무적 이상상태를 참조하도록 정리
2026-03-19 19:16:32 +09:00
0c26853b2a feat: 회피 상태와 스킬 시작 판정 분리
- CanEvade를 제거하고 IsEvading 상태와 CanStartSkill 판정으로 정리
- 침묵 중 회피 상태 유지와 회피 스킬 차단 규칙을 반영
- 자동 검증 러너와 디버그 HUD에 회피 상호작용 검증을 추가
2026-03-19 18:51:41 +09:00
975dea8b93 feat: 스킬별 행동 제한 정책 추가
- SkillData에 시전 중 이동, 점프, 추가 스킬 사용 제한 옵션을 추가
- PlayerActionState가 현재 스킬 정책을 읽어 행동 가능 여부를 계산하도록 변경
- 스킬 입력이 공통 행동 판정 규칙을 따르도록 정리
2026-03-19 18:34:02 +09:00
5bedf01d6c chore: 플레이어 스킬 데이터 추가 및 잔여 프로젝트 파일 정리
- 신규 플레이어 스킬 데이터와 데미지 효과 에셋을 추가
- 테스트 씬과 로컬 MCP 설정 변경사항을 정리
- 불필요한 Recovery 메타 파일을 제거
2026-03-19 18:23:32 +09:00
e863d108da feat: 플레이어 행동 상태 통합 및 이상상태 디버그 추가
- PlayerActionState로 이동, 점프, 스킬 입력 가능 여부를 통합
- 기절과 침묵 이상상태 데이터 및 효과 에셋을 추가
- 로컬 플레이어용 이상상태 디버그 HUD와 자동 검증 러너를 추가
- 플레이어 이동, 스킬 입력, 네트워크 상태를 새 행동 상태 기준으로 정리
2026-03-19 18:21:39 +09:00
d39e13f032 feat: 전투 공간 개편 및 카메라·캐릭터 품질 개선
[전투 공간]
- 단순 Plane 바닥 → Arena 계층 구조로 교체 (Floor, 벽 4개, Objects)
- PolygonDarkFortress 외부 에셋 임포트 (전투 공간 디자인 적용)
- 바닥 아래 검은 평면(FloorBase) 추가로 카메라 저각도 시 허공 노출 방지
- NavMesh 리베이크

[카메라]
- PlayerCamera에 SphereCast 기반 지형 충돌 감지 추가
- 카메라가 바닥 아래를 비출 때 최소 높이 보장

[캐릭터]
- 플레이어 CharacterController skinWidth 정상화 (0.0001 → 0.03)
- 보스 NavMeshAgent baseOffset 조정으로 발 파묻힘 수정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 19:59:04 +09:00
ec40b397b5 기타 수정 2026-03-18 18:06:50 +09:00
290d59e665 feat: 보스 점프 스킬 - 타겟 위치로 이동 구현
- SkillData에 jumpToTarget, animationSpeed 필드 추가
- 점프 중 XZ를 타겟 위치로 lerp, 착지 시 스냅
- endClip 재생 중 점프 이동 비활성화 (IsInEndAnimation)
- 보스/플레이어 겹침 시 플레이어를 밀어내는 방식으로 분리 처리
- 점프준비/점프/착지 3단계 스킬 & 패턴 구성
- UsePatternAction에 Target 블랙보드 변수 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 18:05:41 +09:00
a9aa3a3091 feat: 투사체 발사 스킬 구현
- SkillProjectile: 서버 권위 이동/충돌, caster 자식 콜라이더 충돌 무시 추가
- SpawnEffect: hitEffect 필드 추가 (투사체 명중 시 적용할 효과 분리)
- SkillEffect: Team 컴포넌트 없는 환경 오브젝트 타겟 제외 처리
- Prefab_Skill_ProjectileBasic 프리팹 생성 (NetworkObject + NetworkTransform + Rigidbody + SphereCollider)
- 투사체 스킬 에셋 추가 (SkillData, SpawnEffect, DamageEffect)
- Anim_Common_찌르기 애니메이션 이벤트 추가 (OnEffect @ 0.867s, OnSkillEnd @ 1.3s)
- DefaultNetworkPrefabs에 Prefab_Skill_ProjectileBasic 등록

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 15:51:41 +09:00
f73a2ca9d7 fix: 로비에서 호스트 Player 1 중복 표시 버그 수정
- OnNetworkSpawn에서 호스트 수동 AddPlayer 호출 제거
- OnClientConnectedCallback이 호스트 접속 시에도 발동되므로
  수동 추가 시 중복 등록되는 문제 해결

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 13:01:49 +09:00
e5ef94da85 feat: 멀티플레이어 네트워크 동기화 구현
- 로비 씬 추가 및 LobbyManager/LobbyUI/LobbySceneBuilder 구현
- NetworkPrefabsList로 플레이어 프리팹 등록 (PlayerPrefab 자동스폰 비활성화)
- PlayerMovement 서버 권한 이동 아키텍처로 전환
  - NetworkVariable<Vector2>로 클라이언트 입력 → 서버 전달
  - 점프 JumpRequestRpc로 서버 검증 후 실행
- 보스 프리팹에 NetworkTransform/NetworkAnimator 추가 (서버 권한)
- SkillController를 NetworkBehaviour로 전환
  - PlaySkillClipClientRpc로 클립 override + 재생 원자적 동기화
  - OnEffect/OnSkillEnd 클라이언트 실행 차단
- WeaponEquipment 클라이언트 무기 시각화 동기화 수정
  - registeredWeapons 인덱스 기반 NetworkVariable 동기화
  - SpawnWeaponVisualsLocal로 클라이언트 무기 생성
  - 중복 Instantiate 버그 수정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 20:46:45 +09:00
01f9a6573f feat: 보스 스킬 추가 (스윙, 오른손치기2, 점프) 및 외부 애니메이션 추가
- 스윙, 오른손치기2, 점프 FBX 애니메이션 추가
- 각 스킬 데이터, 패턴 데이터, 데미지 이펙트 데이터 추가
- 우수2연타 패턴 삭제 및 오른손치기 스킬 데이터 수정
- BT_TestBoss 보스 AI 업데이트
- AnimationGoblinLocomotion 외부 애니메이션 패키지 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 15:13:53 +09:00
8f500c8726 fix: 보스 점프 스킬 Y 루트모션 미적용 문제 수정
- NavMeshAgent.Move()가 NavMesh 표면에 고정되어 Y 이동을 무시하던 문제 해결
- IgnoreRootMotionY=false 스킬 실행 중 NavMeshAgent 비활성화 후 transform 직접 이동
- 스킬 종료 시 NavMeshAgent.Warp()로 NavMesh에 재고정
- isAirborne 상태 중 LateUpdate 충돌 보정 로직 스킵

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 15:10:27 +09:00
1b80485f03 chore: 긴급회피 스킬 아이콘 추가
- Icons 폴더 생성
- Icon_Skill_Evade.png 추가

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:46:02 +09:00
5ca0fdabf7 feat: 긴급회피 스킬 슬롯 추가 및 검 모델 prefab 교체
- Left Ctrl에 Evade 액션 바인딩 추가 (InputSystem_Actions)
- PlayerSkillInput skillSlots 6→7개로 확장, 슬롯 6에 Evade 연결
- Prefab_Player_Default 긴급회피 스킬 슬롯 할당
- 검 무기 모델 fbx → prefab으로 교체
- 구르기 스킬 아이콘, 베기 스킬 이펙트 데이터 수정

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 10:43:49 +09:00
a347d9360d fix: 플레이어-보스 충돌 슬라이딩 및 관통 방지
- CharacterController.enableOverlapRecovery 비활성화로 자동 밀어냄 제거
- 레이어 마스크 의존 제거, 컴포넌트(NavMeshAgent/CharacterController)로 식별
- EnemyBase LateUpdate에서 velocity 기반 보스 위치 보정
- EnemyBase OnAnimatorMove에서 루트모션의 플레이어 방향 이동 차단
- BossEnemy Update를 OnServerUpdate 패턴으로 리팩터링
- 보스 프리팹 하위 오브젝트 레이어 Enemy로 통일

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-17 00:14:50 +09:00
c265f980db chore: Assets 디렉토리 구조 정리 및 네이밍 컨벤션 적용
- Assets/_Game/ 하위로 게임 에셋 통합
- External/ 패키지 벤더별 분류 (Synty, Animations, UI)
- 에셋 네이밍 컨벤션 확립 및 적용
  (Data_Skill_, Data_SkillEffect_, Prefab_, Anim_, Model_, BT_ 등)
- pre-commit hook으로 네이밍 컨벤션 자동 검사 추가
- RESTRUCTURE_CHECKLIST.md 작성

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 19:08:27 +09:00
309bf5f48b feat: 보스 패턴 시스템 구현
- BossPatternData SO로 스킬/Wait 스텝 순서와 쿨타임 정의
- UsePatternAction으로 Behavior Graph에서 패턴 실행
- 보스 전용 애니메이션 분리 및 AnimatorOverrideController 정상화

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-16 18:08:06 +09:00
03e1b1303c feat: 적과 충돌 시 미끄러짐 방지 및 8방향 양자화
- OnControllerColliderHit으로 적 충돌 감지
- 충돌 방향으로의 이동만 차단하여 튕겨나가지 않음
- 충돌 normal을 45도 간격으로 양자화하여 8각형 충돌 느낌 구현
- Enemy 레이어 추가

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 10:07:09 +09:00
f3a995d297 chore: Unity 디렉토리 메타 파일 추가
DownloadCache, SidekickCharacters, SyntyPackageHelper 메타 파일

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:48:21 +09:00
91a4d51c5e chore: 씬 및 프리팹 업데이트
테스트 씬 및 플레이어 프리팹 업데이트

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:48:03 +09:00
1955e1fab0 feat: AI Behavior 사망 조건 추가
- IsDieCondition: Behavior Graph에서 사용할 사망 확인 조건 추가
- Behavior Graph: 사망 상태 처리 로직 업데이트
- asmdef: Unity.Behavior.SerializableGUID 의존성 추가

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:47:45 +09:00
041a83a015 feat: 스킬 시스템 사망 상태 처리
사망 상태에서 스킬 사용 및 이펙트 발동 방지

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:47:27 +09:00
6954e8b80b feat: 플레이어 사망 애니메이션 네트워크 동기화
PlayDeathAnimationRpc로 모든 클라이언트에 사망 애니메이션 동기화

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:47:13 +09:00
5238b65dc2 feat: 적 사망 처리 시스템 개선
- EnemyBase: PlayDeathAnimationRpc로 모든 클라이언트에 사망 애니메이션 동기화
- EnemyAnimationController: 사망 상태에서 애니메이션 업데이트 및 트리거 중단
- BossEnemy: HandleDeath에서 AI 정지 순서 개선 (enabled=false 먼저)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:46:56 +09:00
e31ecadc81 feat: 사망 애니메이션 루프 및 컨트롤러 업데이트
Death_Pose_Default을 Death_Default_Loop로 교체하여 사망 애니메이션 루프 지원

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-16 09:46:37 +09:00
e7e3708c44 chore: Unity 디렉토리 메타 파일 추가
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:09:47 +09:00
067fca11c9 chore: .gitignore, 씬 및 UI/무기 디렉토리 업데이트
- .gitignore: External packages, Sketchfab, Wwise 무시 추가
- Colosseum.slnx: 솔루션 파일 업데이트
- Test.unity: 게임 매니저 및 UI 연동
- UI/, Weapons/ 디렉토리 추가

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:09:27 +09:00
11235e6b2c chore: 애니메이션 컨트롤러 및 프리팹 업데이트
- 플레이어/적 애니메이션 컨트롤러 업데이트
- 플레이어 프리팹에 관전/사망 컴포넌트 추가
- 보스 템플릿 프리팹 추가
- Human-Custom 캐릭터 프리팹 추가

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:09:14 +09:00
27c2fdf881 feat: 사망 애니메이션 및 무기 모델 추가
- Death_Default.fbx: 사망 애니메이션
- Death_Pose_Default.fbx: 사망 포즈
- SM_Wep_Sword_01.fbx: 검 무기 모델

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:08:57 +09:00
aeb4fc2847 feat: AI 타겟팅 개선 - 사망한 대상 무시
- FindTargetAction: IDamageable.IsDead 체크로 사망한 타겟 제외
- SetTargetInRangeAction: 사망한 타겟을 거리 검색에서 제외
- HasTargetCondition: 타겟 생존 여부 추가 확인
- BossArea: FindObjectOfType → FindFirstObjectByType 변경

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:08:47 +09:00
00233ee977 feat: 게임 오버 및 승리 UI 구현
- GameOverUI: 게임 오버 화면 표시
- VictoryUI: 보스 처치 시 승리 화면 표시
- VictoryEffect: 슬로우 모션, 카메라 연출, 이펙트 재생

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:08:34 +09:00
0a1aeea825 feat: 플레이어 관전 시스템 추가
- PlayerSpectator: 사망한 플레이어가 살아있는 플레이어 관찰
- PlayerCamera: SetTarget/ResetToPlayer/SnapToTarget 메서드 추가
- PlayerMovement: OnEnable/OnDisable에서 입력 액션 관리
- Tab 키로 관전 대상 전환 기능

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:08:18 +09:00
62306a34a2 feat: 플레이어 사망 및 리스폰 시스템 구현
- isDead 네트워크 변수 추가로 사망 상태 동기화
- 사망 시 이동/스킬 비활성화 및 사망 애니메이션 재생
- Respawn() 메서드로 체력/마나 회복 및 컴포넌트 재활성화
- 스킬 입력에서 사망 상태 체크 추가

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:08:03 +09:00
5e61dbf7e6 feat: 게임 상태 관리 시스템 추가
게임 전체 상태(Waiting, Playing, GameOver, Victory)를 관리하는 GameManager 구현.
플레이어 전멸 시 게임 오버, 보스 처치 시 승리 처리.
씬 로드 시 플레이어 리스폰 및 카메라 재설정 지원.

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-14 15:07:49 +09:00
d28ff21213 chore: Unity meta files for weapon scripts
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 19:57:51 +09:00
5be6853a15 chore: 무기 시스템용 씬 및 프리팹 업데이트
- Player 프리팹에 WeaponEquipment 컴포넌트 추가
- 테스트 씬에서 무기 시스템 테스트 가능하도록 설정
- NetworkPrefab 목록 업데이트

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 19:56:47 +09:00
535b730f34 feat: 무기 배율 시스템 통합
- DamageEffect: 무기 데미지 배율 적용 (GetDamageMultiplier)
- PlayerSkillInput: 무기 마나 소모 배율 적용 (GetActualManaCost)
- SkillEffect: 무기 사거리 배율 적용 (가상 메서드로 구현)

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 19:56:12 +09:00
df064c4eaf feat: 무기 장착 시스템 핵심 구현
- WeaponData: 무기 스탯 보너스, 배율, 슬롯, 프리팹 정보를 담은 ScriptableObject
- WeaponEquipment: 무기 장착/해제, 스탯 보너스 적용, 메시 이름 기반 소켓 검색, 스케일 보정
- WeaponSlot enum: RightHand, LeftHand, Back, Hip, TwoHanded 슬롯 지원
- GetInstanceID() 음수 버그 수정 (>= 0 → == -1 체크)
- 소켓 스케일 보정으로 0.01 스케일 메시에서도 무기가 올바른 크기로 표시됨

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 19:55:27 +09:00
2079e1b232 [UI] UI 컴포넌트 디버그 로그 제거
AbnormalityListUI, AbnormalitySlotUI, PlayerHUD, SkillSlotUI에서 불필요한 디버그 로그 제거

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 03:00:12 +09:00
2f90e8e354 [Effect] 스킬 이펙트 디버그 로그 제거
불필요한 Debug.Log 및 Debug.LogWarning 호출 제거로 프로덕션 로그 정리

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
2026-03-12 02:59:49 +09:00
c019acd801 [Test] 테스트 씬 및 보스 데이터 조정
- NewEnemyData: 보스 이름 변경 (Boss The Test)
- Melee_Slash: Target Layers 전체 선택 (디버깅용)
- Melee_Slash_Boss: 기본 데미지 10 → 1 (테스트용)
- Test.unity: 보스 체력바 테스트 환경 구성
2026-03-12 02:38:05 +09:00