일상

제로베이스 백엔드 스쿨 6달 후기

Rhinoceros 2022. 9. 30. 23:51

이 글은 데이원컴퍼니로부터 소정의 원고료를 지급받아 작성되었습니다. 

 

제로베이스 백엔드 스쿨 마지막 달은 팀프로젝트가 주요업무였다.

 

처음에는 오프라인으로 깃허브관련하여 제로베이스 백엔드 스쿨에 강의에 있었던 양세열 강사님께서 교육을 진행하시고,

마지막 10분 정도는 팀원을 정하는 시간이였다.

2팀은 완성이 되었는데 저를 포함한 사람은 자동으로 팀을 구성하여 진행하였다.

 

 

 

프론트엔드 개발자분들과 한팀이 되었고, 프로젝트 주제를 정해야 했다.

내가 생각하기에 주제는 모든 팀원들이 이해할 수 있고, 재미있는 프로젝트를 선정하게 되었다.

그 동안 제로베이스 하면서 기프트카드도 많이 받아 기프트콘 선물하는 프로젝트를 하면 어쩌나 생각을 하였다.

저는 카카오 오븐을 통해 노션으로 화면 명세서를 팀원분들에게 보여 주었고 저와 비슷한 생각이 있으신분들꼐서 동의를 해주셔서 이 프로젝트로 진행하게되었다.

 

 

 

프로젝트 관리는 노션을 이용하였으며, 스케줄 관리는 지라를 사용하였다.

하지만 향후 지라를 이용하여 프로젝트 관리가 익숙하지 않아 노션으로 수정하는 작업을 이루었다.

 

 

 

 

1주차에는 인프라에 집중을 하였었다.

프론트엔드 분들과 연동을 하려면 localhost 보다는 aws로 배포후 확인하는 작업을 가졌고, gitaction을 통해 자동 배포를 구현하였다.

 

 

 

2주차 부터는 백엔드 기본 프레임을 설정하고, 본격적인 API를 만들게 되었다.

제가 맡은 업무는 조금 뒤에 있는 기능이였지만, 팀장이라는 직책을 얻게 되어 PR을 열심히 올렸다.

 

 

 

 

매주 1주일 단위로 스크럼이라고 해서 피자 한조각을 먹을 동안 잠깐의 시간을 가져 지금까지 한 일, 어려움이 있는점, 이제 할것 을 정리하는 시간을 가졌다.

일부러 멘토과의 스크럼 시간보다 하루 전날에 하여 정리를 하고 멘토님과의 시간에서 얘기를 하게 되었다.

멘토님과의 시간에서는 DB 설계나 주요 기능들을 더 추가해 보면 어떻까라는 말을 들어 스프링 배치 및 SSE, 멀티 모듈을 사용하여 진행하게되었다.

 

 

프로젝트하면서 겪은 일들을 몇게 적게된다.

 

1. application.yml을 보호하라

 

 

AWS에서 RDS, S3, SMTP 등 여러가지 API key가 붙게 되는데, 노출이 되면 외부에서 공격이 들어와 과금이 발생하는 것을 방지하기 위해 application.yml을 보호 하였었다.

 

처음에는 git security으로 덮어쓰는 형식으로 했지만 계속 해서 정보가 올라와 깃 히스토리 제거 작업과 PR 제거를 하였다.

 

이를 방지하기 위해 git submodule을 이용하여 보호하는 방식을 사용했다.

 

 

2. 운영서버와 개발환경 DB 마이그레이션

 

 

 

운영에는 ddl-auto 가 none으로 되어 있어, DB 업데이트나, 히스토리 관리가 필요하였다.

flyway를 도입하게 되면 그 문제가 해결되어 도입을 하게 되었다.

 

 

 

3. CRUD를 보호하는 테스트 코드

 

CRUD작업이 프로젝트의 거의 모든것을 차지한다.

그렇기 때문에 우리팀은 테스트 코드에 집중하였다. TDD는 현재 Spring에 익숙해지는 단계에서 쓰기에는 어려운 작업이여서 프로덕트 코드를 작성후, 테스트 코드를 작성하였다. 

 

 

 

우리는 mockMvc 보다는 RestAssured 라는 라이브러리에 집중을 하여 인수테스트를 진행하였다.

또한, Rest Docs 를 사용하여 프론트분들께 요청값과 응답값을 보여주어 커뮤니케이션을 진행하였다.

 

 

localhost에서 진행만 하면 프론트랑 겪는문제를 실시간으로 못느낄것같았지만, 이런한 작업들이 한 단계 성장하는 시간이 되었던것같다.

제로베이스 백엔드 스쿨을 배우면서 커뮤니케이션이나 멘토님의 질의 응답을 받으면서 단시간에 빠르게 성장한것이 나 뿐만 아니라 다른 분들도 느껴 너무 좋았다고 생각이든다.

 

이번 달이 끝나면, 데모데이를 가지는 날도 있어 지금까지 헀던 팀플을 발표로 마무리하며, 수료할 예정이다.