mic/plans/af182cf0-404d-42f5-93cc-83d...

57 lines
2.8 KiB
Markdown

# 작업 플랜
- UUID: `af182cf0-404d-42f5-93cc-83d54bb4fbe2`
- 작업자: `Codex`
- 생성 시각: `2026-06-02 16:31`
- 요청 요약: `Homebrew와 WSL2 기준으로 서버 계획을 수정하고 서버 구현 시작`
## 할 일
- [x] 현재 요청 확인
- [x] 저장소 상태와 서버 변경 범위 확인
- [x] Homebrew/WSL2 기준 서버 방향 확정
- [x] 서버 문서와 README 갱신
- [x] C++ 서버 구현 추가
- [x] 가능한 빌드/정적 검증 수행
- [x] 완료 내용 정리
## 범위
- `server/`와 서버 방향성 문서, 서버 작업 플랜을 수정합니다.
- 루트 `README.md`에서는 서버 설명과 문서 링크 표현만 서버 기준으로 정리합니다.
- 다른 AI가 작업 중인 `client/`와 클라이언트 문서는 수정하지 않습니다.
## 확정 기준
- 개발/실행 준비 기준은 Homebrew입니다.
- Windows는 네이티브 Windows가 아니라 WSL2 환경을 지원 대상으로 봅니다.
- 지원 대상은 macOS, Ubuntu, Rocky Linux 9, Windows의 WSL2 Linux 환경입니다.
- 빌드는 CMake를 사용합니다.
- 오디오 출력 우선 후보는 Homebrew로 설치 가능한 `miniaudio`입니다.
- UDP 수신 포트는 `4860` 하나만 사용합니다.
- 초기 오디오 포맷은 `48 kHz / PCM_S16LE / mono / 10 ms`입니다.
- 송신기별 음량 조절은 초기 구현 범위에서 제외합니다.
## 구현 목표
- 서버 설정 파일을 읽습니다.
- UDP `4860`에 바인딩합니다.
- 서버가 지정한 56바이트 패킷 헤더 v1을 파싱합니다.
- 단일 송신기 PCM payload를 실행 OS의 기본 오디오 출력으로 재생합니다.
- sequence 기반의 기본 수신 로그와 손실 카운터를 출력합니다.
## 진행 기록
- Homebrew와 WSL2 기준으로 서버 방향성 문서와 README를 갱신했습니다.
- `server/CMakeLists.txt`를 추가했습니다.
- `server/src/main.cpp`를 추가해 UDP 수신, 패킷 헤더 파싱, miniaudio 기본 출력 재생 경로를 구현했습니다.
- `server/server.conf.example``sender_id`, `jitter_buffer_ms`, `log_interval_packets`를 추가했습니다.
- PowerShell과 WSL2 Ubuntu 환경에 현재 `brew`, `cmake`, C++ 컴파일러가 없어 실제 빌드는 수행하지 못했습니다.
- Homebrew 공식 문서와 Homebrew miniaudio formula를 확인해 WSL2/Linux 기준과 `brew install miniaudio` 방향을 문서에 반영했습니다.
## 완료 요약
- 서버 구현을 시작했고, `mic_server` C++ 실행 파일 구성을 추가했습니다.
- 현재 구현은 단일 활성 송신기의 56바이트 헤더 v1 UDP 패킷을 받아 기본 오디오 출력으로 재생합니다.
- 빌드는 현재 로컬 도구 부재로 미실행 상태입니다. WSL2에 Homebrew, CMake, C++ 컴파일러, miniaudio가 준비되면 빌드 검증이 필요합니다.