2021-01-28(Thu)

내용

학습 날짜

2021-01-28(목)

학습 시간

10:00~24:00

학습 범위 및 주제

rspec, DB 검수, API router 검수

학습 목표

rspec을 학습하여 DB와 API router를 검수하여 environment 브랜치에 합친다.

동료 학습 방법

eunhkim님과 테스트를 진행하며 environment 브랜치에 합쳤다.

상세 학습 내용

우선 은휼님이 github과 디스코드를 연동해주셨다. 한동안 디스코드를 찬양한 뒤, github PR 템플릿을 작성해보았다. 조금 귀찮았지만 webserv 프로젝트를 진행하며 팀원들이 일관성있게 PR을 날리는 것이 쉽지 않다는 것을 느꼈던 지라 시간을 쓰는게 가치있다고 판단했다.

그리고 은휼님이 kaminari gem으로 페이지네이션을 해결해버렸다. kaminari를 설치한 뒤, rails g kaminari:config 파일을 만든 뒤, default_per_page를 셋팅. 이후엔 전역적으로 모든 데이터베이스를 10개씩 가져올 것이다.

gemfile에 sidekiq을 올려놓고 bunlde install 했을 때 이슈가 생겼다. 결과적으로 Gemfile.lock을 삭제한 뒤 다시 install하니 해결되었다. bundle update에 대해 학습할 필요성을 느끼고 이 링크를 보고 학습했다.

한편 docker-compose up 했을 때 아래 에러가 뜨는 경우가 잦았는데, docker 이미지와 연동된 DB volume이 각 로컬마다 달라서 생긴 에러였다. DB volume을 싹 비우고 처음부터 DB를 빌드하니 해결되긴 했다.

image-20210128153227151

rails-rspec gem을 설치하고 이 링크 따라서 진행해보았다. 문제는 DB 관계성을 정의하기 위한 shoulda_matchers gem이 우리가 이미 빌드해둔 다른 gem들과 계속 충돌했다는 것이다. 흠.. 거기다가 rspec으로 DB 테스트를 하는 것은 too low 한 테스트여서 의미없다는 의견이 있었다. 테스트는 '액션'에 기반을 뒀을 때 의미있다는 관점에 감명 받아서 굳이 rspec으로 테스트를 하지는 않고, 직접 콘솔로 DB를 확인하였다. 테스트케이스가 남지 않는게 아쉽지만.. 굳이 이렇게 low한 레벨의 테스트케이스 남겨봐야 의미가 있나싶다.

router는 postman으로 api 문서를 연동해뒀더니 클릭 몇 번에 모조리 테스트를 끝낼 수 있었다. postman 참 좋다ㅎㅎ

학습 내용에 대한 개인적인 총평

테스트에 대한 집착을 어디까지 가져가야할 것인가.. 에 대한 고민을 할 수 있는 하루였다.

협업할 때 git으로 올라가면 안될 파일들이 올라가는 이슈가 있다. 가령 시크릿키나 DB volume, node_modules 내부 파일들 등등; 내일은 이런 파일들 모조리 조사해서 .gitignore 파일에 리스트업해야겠다.

다음 학습 계획

  • HTML 파일 구조 잡기 + 백본 View 구조 설계

Last updated