First Project 회고

Hong·2021년 12월 25일
0

2주동안의 프로젝트가 끝났다. 처음하는 프로젝트라서 그동안 글을 쓸 시간적 여유가 없었다. 이번 프로젝트가 끝난 다음날이 바로 오늘 크리스마스다. 크리스마스지만 그동안의 느낌과 배운것을 기록해놓기 위해 글을 쓴다. 프로젝트에 2주에서 첫 3일 동안은 아무것도 모르는 상태에서 코드를 치기 위한 준비를 했다. 아이디어를 내고 구상하며 아이디어 회의를 진행했다. 많은 아이디어들이 나왔고 그 중 나의 아이디어가 선택됐다. 선택한 아이디어는 유통기한을 관리해주고 일주일전부터 알람과 메일을 보내주며 일주일 이하로 남은 음식들을 검색 API로 요리 추천과 동시에 사용자의 냉장고 속 음식들을 관리해주는 웹앱이다. 이렇게 주제가 정해지면서 프론트엔드 팀과 와이어프레임, UI디자인을 서로 소통하며 만들고 스키마와 API문서를 만드는 작업을 했다. 이때까지는 코드를 하나도 치지 않았고 그저 기능구현과 디자인에 필요한 작업에 몰두했다. 우리 팀은 To Do List를 작성했고 그에 필요한 스택을 적어나갔다. 드디어 3일간의 모든 준비가 끝나고 4일째부터 코딩을 시작했다. 처음엔 빈 백지에 밑그림을 그리려고 하니 어떤 그림을 어떻게 그릴지 막막했다. 그래도 차근차근 react 기본 폴더들과 모듈을 설치할 수 있는 package파일을 만들고 메인 index.js와 config.json 파일을 만들어 기본 세팅을 했다. 이후 모듈을 설치하고 라우터를 스키마와 API문서 기반으로 기본틀만 작성해 두었다. 또 서버에서 제일 중요한 컨트롤러 폴더를 만들어 파일을 하나씩 생성하였다. 이렇게 기본을 만들어두고 나는 데이터베이스 작업을 했다. seqeulize를 이용해 스키마에 맞는 데이터베이스를 생성하고 FK로 필요한 컬럼들을 연결했다. 하지만 코드를 작성하면서 스키마와 API문서는 그에 맞게 계속적으로 수정되었고 그때마다 데이터베이스와 라우터를 수정하였다. 이때 뼈저리게 느낀것은 스키마와 API문서 작성은 처음부터 차후에 있을 코드를 예상하고 신중하게 작성해야 된다는 것을 느꼈다. 데이터베이스, 스키마, API문서를 얼마나 수정했는지 모르겠다... 그리고 컨트롤러 파일들을 코딩하는 동안 많은 것을 배웠다. 회원가입시 비밀번호 암호화, 토큰을 회원가입시 줄 것인가 로그인시 줘서 로그인때마다 만들고 로그아웃시 지울것인가... 하나하나가 우리의 결정이고 책임이었다. 결국 로그인시 토큰을 건네주는 방법을 선택했고 다른 백엔드 팀원은 로그인, 회원 정보수정, 회원탈퇴를 담당했고 나는 유저쪽 컨트롤러에서 회원가입, 로그아웃, 소셜로그인(Oauth)을 담당했다. Oauth를 처음 접하게 된 나는 머릿속이 하얘졌다. 방식을 파악하는데 하루종일 걸렸다. 다음날부터 코드를 치고 구현하기 시작했다. 그리고는 product쪽 컨트롤러 작업을 시작했다. 여기서 제일 중요한 것은 음식재료들의 추가, 삭제가 아니였다. 설정한 시간에 매일 유통기한 남은 날짜가 업데이트 되고 7,5,1일이 되면 알람을 보내는 동시에 메일을 발송해주어야 하는 기능이 아주 어려웠다. 그래도 우리 팀은 열심히 검색을 하며 코드를 작성했다. node-schedule을 이용해 세팅된 시간에 사용자가 등록한 유통기한과 현재시간을 빼주며 D-Day를 DB에 저장했고 또 그것을 프론트엔드팀이 사용자에게 보여질 수 있도록 구현했다. 또한 Nodemailer를 이용해 7,5,1일 남은 재료들이 일정한 시간이 되면 메일로 발송되는 코드도 작성했다. 비록 처음 계획했단 검색 API는 시간이 너무 촉박해 쳐다볼수도 없었지만 다음 프로젝트를 할때 꼭 넣어볼 생각이다. 이렇게 팀원들과 밤도 새며 수시로 회의를 진행해 코드를 수정하고 백/프론트엔드를 구분하지 않고 문제에 직면하면 다같이 에러를 잡기 위해 나섰다. 몸은 힘들지만 아주 좋은 분위기에서 프로젝트를 진행해서 그런지 피곤하지 않고 재밌었다. 아쉽게도 처음 계획한 모든 사항들을 달성하지 못했지만 나는 이번에 아주 많은 것을 배웠고 많이 성장했다는 것을 느낄 수 있었고 제일 중요한! 백/프론트엔드를 구분하지 않고 협업에는 커뮤니케이션이 정말 중요하다는 것을 느꼈다. 어느 한명이라도 소통되지 않으면 프로젝트는 산으로 갈수있겠다는 생각이 크게 들었고 한명, 한명이 중요하다는 것을 느꼈다. 나는 이번 기회로 커뮤니케이션을 통한 개발자 인생을 조금은 경험했고 그로인해 더욱 설레이고 기대된다. 이 프로젝트가 나의 개발자 인생에 발돋움 되었기를 기대해본다.

profile
코딩 배우기

0개의 댓글