- 발행일
Next 14에서 15로 올리던 날 jest를 지웠다 — 테스트 강의를 정리하던 그 주에
Next 14에서 15로 올리던 날 jest를 지웠다
이 글은 2026년 9월에 당시 커밋 이력을 다시 보며 정리한 것입니다. 날짜는 작업한 날 기준입니다.
2025년 1월 9일 커밋 84c0bd8의 제목은 "마이페이지 구축 , next 버젼 업데이트"입니다. 파일 여섯 개, 129줄 추가, 1,849줄 삭제. 삭제의 대부분은 yarn.lock이고, package.json diff는 이렇습니다.
"typecheck": "tsc --noEmit -p ./tsconfig.json",
- "test": "jest"
+ "typecheck": "tsc --noEmit -p ./tsconfig.json"
},
"dependencies": {
@@
- "jest": "^29.7.0",
"js-cookie": "^3.0.5",
- "next": "14.2.21",
+ "next": "15.1.4",
Next를 메이저 올리면서 jest를 빼고 test 스크립트를 지웠습니다. 커밋 제목에는 그 말이 없어요.
지운 게 뭐였나
jest는 2024년 6월 27일 첫 레이아웃 커밋(7186614) 때부터 dependencies에 있었습니다. devDependencies가 아니라요. 그리고 이 커밋 직전 시점의 저장소에서 .test. 또는 .spec.이 붙은 파일을 세면 0개입니다. jest.config도 없었어요.
그러니까 지운 건 "테스트"가 아니라 "한 번도 돌린 적 없는 러너"입니다. 설치돼 있었을 뿐 돌릴 대상이 없었으니 yarn test를 쳤다면 "No tests found"가 나왔을 거예요. 쳐 본 기록도 없습니다.
왜 이날 뺐는지도 커밋에 없습니다. 지금 추측하면, 15로 올리며 의존성 충돌이 났을 때 안 쓰는 걸 먼저 걷어낸 것 같습니다. yarn.lock이 1,793줄 바뀐 걸 보면 lock 파일을 거의 다시 만든 상태였어요. 하지만 추측입니다.
같은 커밋에 실린 나머지
| 파일 | 무엇 |
|---|---|
tsconfig.json | "target": "ES2017" 추가, 배열 표기를 여러 줄로 — Next 15가 손댄 형태 |
src/apis/MyPage/myPageApi.ts | 84줄 삭제 |
src/app/MyPage/MyScheduleList/page.tsx | 72줄 삭제 |
src/app/MyPage/page.tsx | "내 일정 목록" 메뉴 항목 삭제 |
제목은 "마이페이지 구축"인데 마이페이지 파일은 지우기만 했습니다. 만들던 걸 접은 건지, 다른 브랜치로 옮긴 건지는 이 커밋만으로는 모르겠어요. 12일 뒤 1월 21일에 "마이페이지"(a61256d) 커밋이 다시 있습니다.
그 주에 하고 있던 것
이 블로그에는 프런트엔드 테스트 강의 정리 1부가 1월 13일, 2부가 1월 17일 날짜로 있습니다. Vitest와 Testing Library, TDD, 스냅샷, Cypress를 정리한 글이에요. 그 강의를 듣고 정리하던 주의 목요일에 제 프로젝트에서는 테스트 러너를 지웠습니다.
두 일이 모순은 아닙니다. 돌지 않는 jest를 두는 것과 테스트를 배우는 건 다른 일이니까요. 하지만 배운 걸 적용할 자리를 그 주에 스스로 없앤 건 맞습니다. 강의 정리 글의 "실무 결산" 절에는 이 사실이 없어요. 그때는 연결해서 생각하지 못했습니다.
다시 들어온 날
jest는 2025년 5월 31일(6e300e7)에 돌아옵니다. 이번에는 ts-jest·@types/jest·msw와 함께, 스크립트도 test·test:watch·test:coverage 셋으로요. 그리고 그 설정이 실제로는 돌지 않았다는 걸 2026년 7월에 알게 됩니다. moduleNameMapper 순서와 tsconfig의 jsx: preserve 때문이었는데, 그 이야기는 2년 묵은 사이드 프로젝트 되살리기에 있습니다. 지금 브랜치의 테스트 파일은 1개입니다.
검증
jest의 추가·삭제·재추가 커밋은git log -S '"jest"' -- package.json으로 확인했습니다. 2024-06-27 추가, 2025-01-09 삭제, 2025-05-31 재추가.- 삭제 직전 테스트 파일 수는
git ls-tree -r 84c0bd8^에서.test.·.spec.패턴으로 세어 0개. yarn.lock변경 1,793줄은git show --stat의 수치입니다.- 당시
yarn test를 실제로 실행했는지는 확인할 방법이 없습니다.
남은 것 · 한계
- 메이저 업그레이드와 의존성 정리와 화면 삭제를 한 커밋에 넣었습니다. 제목은 셋 중 하나만 말하고, jest 삭제는 제목에 없어요. 반년 뒤 SDMS에서도 파일 33개짜리 커밋에 개명과 신설을 같이 넣었으니, 이때 배운 건 아니었습니다.
- jest가
dependencies에 있었던 것도 이날 고치지 않고 통째로 뺐습니다. 5월에 돌아올 때는devDependencies로 들어옵니다. - 테스트 파일이 0개인 상태로 7개월을 갔다는 건 이 커밋의 문제가 아니라 프로젝트의 문제입니다. 2인 팀에서 화면을 먼저 내는 게 우선이었고, 그 선택을 후회하지는 않지만 그 사실은 적어 둡니다.
관련 글: 실무에 바로 적용하는 프런트엔드 테스트 1부 · 실무에 바로 적용하는 프런트엔드 테스트 2부 · 2년 묵은 사이드 프로젝트 되살리기 — lockfile 두 개, 죽은 Jest, 타입 충돌 · 파일 33개를 한 커밋에 넣었다