문제: 사소한 코드 질문 하나가 늘 다른 파트 개발자의 시간에 의존했습니다. 상대가 회의 중이면 묻는 사람도 멈춰 있고, 부담스러워 아예 못 물어보기도 했습니다.
디스커버리 응답의 id 필드, 안드로이드는 Long 으로 iOS 는 Int 로 받고 있어요. 서버는 어떤 타입으로 내려주나요?
👀 3서버는 Long, 즉 64비트 정수로 응답합니다. Int 로 받으면 범위를 넘는 값이 잘릴 수 있습니다.
android/…/DiscoveryResponse.kt — id: Long
ios/…/DiscoveryResponse.swift — id: Int
api/…/DiscoveryController.kt — 응답: Long
위 스레드는 실제 채널 흐름을 재구성한 예시입니다.
검색이 아니라 탐색
단어가 들어간 파일 목록을 주는 검색 대신, 사람이 하듯 화면 코드를 열고 함수 호출을 한 단계씩 따라갑니다.
답에는 화면 파일에서 호출 지점까지의 근거 경로가 붙어, 묻는 사람이 직접 확인할 수 있습니다.
처음부터 막힌 경계
도구는 파일 읽기와 검색만 허용하고 쓰기와 웹 접근은 명시적으로 차단했습니다. 자식 프로세스 환경에서 시크릿을 걷어내고, 데이터 조회는 조회문만 허용하고 읽기 전용으로 한 번 더 막는 등 여러 겹의 안전장치를 둔 통로로만 열었습니다.
틀린 답을 학습으로
스레드에서 에이전트를 태그해 지적하면 그 자리에서 정정하고, 무엇을 왜 틀렸는지 따로 기록합니다. 기록은 사람 검수를 거쳐 가이드에 반영되고, 재시작 없이 다음 질문부터 적용됩니다.
운영본
Spring Boot 위에 채널마다 행위자(actor)를 두어 같은 채널은 직렬로, 다른 채널은 병렬로 처리합니다. 모든 메시지는 append-only 이벤트 스트림으로 남기고 채널 상태는 그 재생으로 만듭니다. launchd 로 실제 사내 운영 중입니다.
재구축본
운영본을 TypeScript 로 다시 짜는 이식 프로젝트입니다. 이식의 전제가 되는 과거 이벤트 전량 재생 검증과, 넓히면 안 되는 보안 경계의 실행 가능한 명세화부터 차근차근 쌓고 있습니다.