항해14기 본과정/항해14기 개발일지

[항해 14기] 개발일지34 (미니프로젝트 - 회고, 발표)

스쿼트잘함 2023. 5. 11. 20:51

미니프로젝트 주차

 

1. 발표 관련

1) ui구현 페이지

- 메인 페이지, 플레이 페이지, 상세결과 페이지, 로그인 페이지, 회원가입 페이지, 마이 페이지, 컨텐츠 등록 페이지

 

2) BE완료한 기능

- 나의 기능 : 회원가입, 로그인, 로그아웃, refresh token, 비밀번호 해시화

- mypage : 내가 한 월드컵 결과 조회, 내가 만든 월드컵 조회, 월드컵 결과 db저장,

- 월드컵 : 월드컵 CRUD, 좋아요

- 댓글 : 댓글CRUD
- EC2 배포, CORS

 

3) BE도전한 기능

-  나의 기능 : 이메일 인증

- 승률/통계, Test code(통합 단위, 기능 단위), swagger, jest html reporter, sentry

 

 

 

2. 트러블 슈팅

1) 트랜잭션 적용 계층 논의 : 서비스 계층

- 핵심 로직 수행 중 발생하는 데이터베이스 작업을 관리하기에 적합하다고 예상
- 서비스 계층은 다수의 레포지토리를 조작할 수 있고 이런 다중 조작을 하나의 트랜잭션으로 묶어서 사용 가능

 

2) 통합 테스트 시 로그인 유지

- 각 테스트가 독립적으로 진행되기 때문에 이전 테스트의 로그인 정보가 다음 테스트에 유지되지 않음

- supertest.agent 사용(agent : 요청을 유지시켜주는 객체)

- 비포이치 명령어를 통해 인증이 필요한 기능 테스트전 login요청을 보내 쿠키에 값을 할당하여 해결

 

 

 

3. 회고

1) 다음에 진행해보고 싶은 것

- S3, https, git flow(master, feature, develop 브랜치), ci/cd, redis

 

2) 첫 협업 프로젝트(FE)

- 기능 구현에 대한 명확한 인지/소통의 필요성과 FE진영에서 이해하기위한 api 작성에 필요한 요소들을 추가적으로 알게 되었음

- 다음 프로젝트에선 정규 회의시간에 진영별 같은 기능 담당자들 끼리 진행상황 더블체크를 진행할 예정

- FE를 전혀 알지 못하였는데 이번 협업을 통하여 전반적인 흐름을 알 수 있었고, 협업에 대한 자신감이 생김

- FE인원이 부족하였지만, 환경에 구애받지않고 남는 시간에 BE단에서 진행할 수 있는 도전적인 부분들을(jset reporter, sentry, artillery 등) 완수하여 만족스러운 첫 협업의 결과물이 나왔다

 

3) 첫 협업 프로젝트(BE)

- 코드 컨벤션 / 깃 컨벤션을 처음 사용해보았고, 해당 컨벤션을 통한 머지/풀 진행시 충돌 예방의 중요성을 인지하였다

- 레이어드 아키택쳐의 잠점을 명확히 인지하였다(계층별 단위 테스트 용이, 모듈화를 통한 유지/보수/개발 용이)

- 모듈화와 기능 분담이 라우트별로 잘되어 있어, 별다른 충돌 없이 순조롭게 프로젝트가 진행되었다

- 스코프를 적당히 잡고 진행하였더니 기능 개발에 급급해하지 않고 내가 맡은 기능들에 대한 깊은 파고들기/리팩토링이 가능하였다