# 작업 플랜 - 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가 준비되면 빌드 검증이 필요합니다.