-
Notifications
You must be signed in to change notification settings - Fork 1
[준섭] 1114(화) 개발기록
오늘은 재하님과 만나서 백엔드 페어 프로그래밍을 진행하였다.
일단 오늘의 페어 프로그래밍 계획은 다음과 같았다.
- 12시부터 페어 프로그래밍
- 테스트 코드 작성
- board, auth CRUD 구현
- 개발 기록 정리
- ncp 서버 생성 과정
- docker 이미지 생성 과정
- TDD 과정
- 9시에 멘토님과 멘토링
사실 시작하기 전까지만 해도 테스트 코드 작성과 CRUD 구현을 조금 만만하게 보았다.
미리 얘기하자면 그것은 정말 안일한 생각이었고 Nest 테스트 코드는 처음이라 조금 궁금한 점도 많이 생겼다.
-
auth resource 추가 nest g resource로 auth 리소스 추가
근데 이렇게 하고 git status를 쳐보니까
이런 식으로 .yarn 폴더 안에 unplugged 폴더 수정이 많이 일어났다.
그러나 같이 페어 프로그래밍을 하고 있는 재하님은 unplugged 폴더 수정이 일어나지 않았다.
혹시 몰라서 nest 버전도 맞추고, yarn install도 같이 해보고 다시 nest g reousrce를 해보았지만 결과는 역시 달랐다.
이유가 뭐지?
- 해결
다시 처음 상태로 git reset --hard로 돌아감
그 다음 yarn workspace server nest g resource로 auth 모듈 생성
이 상태로 다시 루트 폴더에서 yarn install을 하니 재하님과 git status도 똑같아지고 서버 실행도 잘 되었다.
내가 package/server 폴더까지 들어가서 yarn install을 한 게 잘못이었던 듯 하다
- 해결
-
board resource 추가
위와 같은 방법으로 추가 완료
-
.spec 테스트 파일들 test 폴더로 이동
그러고 yarn workspace server test를 해보려고 하니
다음과 같이 test 파일들을 찾을 수 없다는 안내가 뜸
그 원인을 알아보니 package.json에 jest 설정 중 root 폴더 패스 때문이었음.
package.json의 root 설정이 원래 "src"로 되어있었던 것을 위와 같이 "test"로 수정
그 후 testRegex 설정도 e2e test들은 그냥 .spec이 아닌 .e2e-spec으로 되어있기 때문에 수정해주었음.
이렇게 하고 다시 yarn workspace server test를 해보니 잘 됨!
-
verbose, collectCoverage 설정 추가
그리고 test 실행 시 좀 더 자세한 설명을 추가하는 verbose 옵션과 만든 기능들을 테스트 코드로 얼마나 커버하는지를 알려주는 collectCoverage 옵션을 추가해 주었음.
처음에는 jest.config.json 생성해서 설정을 추가하고 다시 test를 해보았는데, 다음과 같은 오류가 뜸
nest 프로젝트 자체에서 저렇게 따로 config.json을 생성해주는 것이 아니라 package.json의 jest 옵션에서 관리를 해주는 것 같았음.
위와 같이 "verbose" 옵션과 "collecCoverage" 옵션을 추가
테스트가 예쁘게 잘 출력되는 줄 알았으나 coverage 부분이 비어있음..
위와 같이 rootDir을 "."으로 수정하고 collectCoverageFrom으로 커버리지 수집 폴더를 지정해 줌.
그러니 이제야 드디어 테스트가 완벽히 예쁘게 실행 됨^^
© 2023 debussysanjang
- 🐙 [가은] Three.js와의 설레는 첫만남
- 🐙 [가은] JS로 자전과 공전을 구현할 수 있다고?
- ⚽️ [준섭] NestJS 강의 정리본
- 🐧 [동민] R3F Material 간단 정리
- 👾 [재하] 만들면서 배우는 NestJS 기초
- 👾 [재하] GitHub Actions을 이용한 자동 배포
- ⚽️ [준섭] 테스트 코드 작성 이유
- ⚽️ [준섭] TypeScript의 type? interface?
- 🐙 [가은] 우리 팀이 Zustand를 쓰는 이유
- 👾 [재하] NestJS, TDD로 개발하기
- 👾 [재하] AWS와 NCP의 주요 서비스
- 🐰 [백범] Emotion 선택시 고려사항
- 🐧 [동민] Yarn berry로 모노레포 구성하기
- 🐧 [동민] Vite, 왜 쓰는거지?
- ⚽️ [준섭] 동시성 제어
- 👾 [재하] NestJS에 Swagger 적용하기
- 🐙 [가은] 너와의 추억을 우주의 별로 띄울게
- 🐧 [동민] React로 멋진 3D 은하 만들기(feat. R3F)
- ⚽️ [준섭] NGINX 설정
- 👾 [재하] Transaction (트랜잭션)
- 👾 [재하] SSH 보안: Key Forwarding, Tunneling, 포트 변경
- ⚽️ [준섭] MySQL의 검색 - LIKE, FULLTEXT SEARCH(전문검색)
- 👾 [재하] Kubernetes 기초(minikube), docker image 최적화(멀티스테이징)
- 👾 [재하] NestJS, 유닛 테스트 각종 mocking, e2e 테스트 폼데이터 및 파일첨부
- 2주차(화) - git, monorepo, yarn berry, TDD
- 2주차(수) - TDD, e2e 테스트
- 2주차(목) - git merge, TDD
- 2주차(일) - NCP 배포환경 구성, MySQL, nginx, docker, docker-compose
- 3주차(화) - Redis, Multer 파일 업로드, Validation
- 3주차(수) - AES 암복호화, TypeORM Entity Relation
- 3주차(목) - NCP Object Storage, HTTPS, GitHub Actions
- 3주차(토) - Sharp(이미지 최적화)
- 3주차(일) - MongoDB
- 4주차(화) - 플랫폼 종속성 문제 해결(Sharp), 쿼리 최적화
- 4주차(수) - 코드 개선, 트랜잭션 제어
- 4주차(목) - 트랜잭션 제어
- 4주차(일) - docker 이미지 최적화
- 5주차(화) - 어드민 페이지(전체 글, 시스템 정보)
- 5주차(목) - 감정분석 API, e2e 테스트
- 5주차(토) - 유닛 테스트(+ mocking), e2e 테스트(+ 파일 첨부)
- 6주차(화) - ERD
- 2주차(화) - auth, board 모듈 생성 및 테스트 코드 환경 설정
- 2주차(목) - Board, Auth 테스트 코드 작성 및 API 완성
- 3주차(월) - Redis 연결 후 RedisRepository 작성
- 3주차(화) - SignUpUserDto에 ClassValidator 적용
- 3주차(화) - SignIn시 RefreshToken 발급 및 Redis에 저장
- 3주차(화) - 커스텀 AuthGuard 작성
- 3주차(수) - SignOut시 토큰 제거
- 3주차(수) - 깃헙 로그인 구현
- 3주차(토) - OAuth 코드 통합 및 재사용
- 4주차(수) - NestJS + TypeORM으로 MySQL 전문검색 구현
- 4주차(목) - NestJS Interceptor와 로거
- [전체] 10/12(목)
- [전체] 10/15(일)
- [전체] 10/30(월)
- [FE] 11/01(수)~11/03(금)
- [전체] 11/06(월)
- [전체] 11/07(화)
- [전체] 11/09(목)
- [전체] 11/11(토)
- [전체] 11/13(월)
- [BE] 11/14(화)
- [BE] 11/15(수)
- [FE] 11/16(목)
- [FE] 11/19(일)
- [BE] 11/19(일)
- [FE] 11/20(월)
- [BE] 11/20(월)
- [BE] 11/27(월)
- [FE] 12/04(월)
- [BE] 12/04(월)
- [FE] 12/09(금)
- [전체] 12/10(일)
- [FE] 12/11(월)
- [전체] 12/11(월)
- [전체] 12/12(화)