- 발행일
2년 묵은 사이드 프로젝트 되살리기
yarn 프로젝트에 package-lock.json이 남아 있어 dependabot 보안 경보가 두 배로 잡히고 있었습니다. Jest는 moduleNameMapper 순서와 tsconfig 때문에 애초에 못 돌고 있었고, Cypress의 chai 타입이 jest-dom 매처 타입을 덮고 있었어요. Next 14→15 메이저 업그레이드까지 한 번에 처리한 기록입니다.
yarn 프로젝트에 package-lock.json이 남아 있어 dependabot 보안 경보가 두 배로 잡히고 있었습니다. Jest는 moduleNameMapper 순서와 tsconfig 때문에 애초에 못 돌고 있었고, Cypress의 chai 타입이 jest-dom 매처 타입을 덮고 있었어요. Next 14→15 메이저 업그레이드까지 한 번에 처리한 기록입니다.
엑셀 3개를 읽던 로더 3개를 워크북 1개를 읽는 로더 1개로 합쳤습니다. pandas가 못 읽는 2단 병합 헤더를 openpyxl로 직접 평탄화하고, 시트 순서 의존을 없애려고 유형별 4패스로 나눴어요. 853행에서 중복 6건이 나왔는데 그 승자 규칙에 아직 구멍이 남아 있다는 얘기까지 적었습니다.
ASN.1 노드 단어를 세어 서버에서 PNG로 그려주던 워드클라우드를, 통합검색 검색어를 세어 클라이언트에서 그리는 화면으로 바꿨습니다. 화면의 성격을 "무엇이 등록됐나"에서 "무엇을 찾았나"로 옮긴 결정과, 같은 집계를 두 군데 두는 바람에 같은 검색어가 화면마다 다른 비율로 보이게 된 이야기입니다.
납품 문서의 기능목록 엑셀을 JSON으로 뽑아 메뉴 136종을 전부 열어보는 Playwright 스윕을 만들었습니다. 설정을 용도별 3종으로 나눈 이유, SQLite 때문에 워커를 1로 고정한 이유, 그리고 확인 못 한 항목을 스킵으로 남겨둔 게 옳은 선택이었는지까지 적었습니다.
카탈로그 PNG 다운로드가 500을 뱉어서 들어갔는데, 원인은 성능 최적화라고 믿고 있던 prefetch_related의 인자 하나였습니다. Dataset에 없는 관계명이라 QuerySet 평가 시점에 AttributeError가 났고, 지연 평가 때문에 선언부가 아니라 버튼 클릭에서 터졌어요. 같은 파일 안에서 따옴표 표기가 갈려 grep이 한쪽만 잡은 이야기와, AST로 인자 478건을 전수 대조한 기록입니다.