첫 번째 프로젝트가 끝나고 잠시 쉴 겨를도 없이 폭풍처럼 두 번째 프로젝트를 진행했다.
이번 프로젝트는 첫 번째 프로젝트를 함께한 클라이언트 개발자와 합이 잘 맞아 같이 진행했다.
두 번째 웹 프로젝트인 '모두의 이력서(Moi)'는 취준생들의 이력서 고민을 덜어주기 위한 이력서 작성 사이트로 작성부터 PDF로 저장까지 한 번에 되는 서비스이다.
첫 번째 프로젝트를 완성하고 조금 아쉬운 점도 있었기에 두 번째 프로젝트는 그런 아쉬움이 없게 하고 싶었다.
첫 번째 프로젝트는 클론 성향이 강해 실 사용자를 끌어들이기 어렵다는 생각이 들었고 두 번째 프로젝트에서는 그런 아쉬움을 없게 하기 위해 정말로 사용하고 싶어 지는 사이트를 만들고 싶었다.
스택을 화려하게 하기보다 기능에 좀 더 충실했고 아이디어와 UI, UX에 더 신경을 썼다. 또한 첫 프로젝트때 중간중간 디비를 수정해야 할 일이 생겨 세 번 정도 밀고 다시 만들고를 반복하다 보니 이번 프로젝트에서는 그런 일이 없도록 기획 부분에 좀 더 신경을 쓰고 시작했다.
기획에 시간을 정말 많이 쏟고 세밀하게 계획했다고 생각했는데 막상 계획대로 프로젝트를 진행해보니 미처 고려하지 못했던 부분들이 계속 보였고 계속 수정해나갈 수 밖에 없었다.
역시 계획은 아무리 해도 완벽할 수는 없나보다.. 중간에 계획이 조금씩 수정되거나 프로젝트 내 이슈가 생기면 즉시 회의를 열었고 팀 내 회의를 통해 함께 이슈를 해결해나갔다.
저번 팀에서도 팀 내 의사소통이 잘 진행된다고 생각했는데 이번 팀은 더 체계적이고 자주 의사소통을 진행하고 진행사항을 서로 공유했다.
조그마한 이슈도 다 공유를 해줘서 클라이언트단과 서버단이 서로 진행되고 있는 일과 프로세스를 이해하는데 도움이 되었고 팀 내의 결속을 다지는 데에도 도움이 되었다.
또한 두 번째 프로젝트는 첫 번째 프로젝트와 같은 기능을 다르게 구현하여 더 배울 수 있는 계기가 되었다.
예를 들어 첫 번째 프로젝트에서는 사용자 소셜 인증을 구현할 때 유저의 oAuthID를 클라이언트에서 받아 서버로 보내 서버에서 토큰 생성을 했다면 이번 프로젝트에서는 서버에서 인증을 받아 토큰을 생성했다.
인증방식에는 정답이 없기에 다양한 방식이 있다고는 들었지만 같은 기능을 다르게 구현하니 좀 더 배울 점이 많았고 이렇게도 구현할 수 있구나 하면서 신기했다. (역시 새로운걸 배우는 것은 언제나 짜릿하다..)
또한 이번 프로젝트에서는 저번 프로젝트와는 다르게 Nosql을 사용했는데 여러 편리함과 다양한 기능, 장점들이 있다 보니 사용하면서 크게 마음에 들었다. (다음 프로젝트에서도 Nosql을 사용하고 싶을정도로..)
물론 프로젝트의 성격에 따라 DB를 어떻게 선택해야 할지 다르겠지만 이번 프로젝트에 Nosql이 잘 맞아서 정말 DB는 큰 이슈 없이 잘 사용했다.
저번 프로젝트 때 부모 테이블을 자식 테이블들이 참조하는 구조라 부모 테이블이 수정될 때마다 자식 테이블에게도 영향이 갔고 어쩔 수 없이 (외래키 무결성 제약조건 때문에...) 부모 테이블이 수정될 때마다 자식 테이블을 지우고 수정해야 했다..
물론.. DB 설계를 잘했더라면 이런 일은 없었겠지만.. ㅠㅠ
어찌 되었든 Nosql의 장점을 크게 깨닫게 된 프로젝트였다. (유연성 만세)
이번 프로젝트는 사실 서버단이 그렇게 힘든 프로젝트가 아니라 클라이언트가 정말 힘든 프로젝트였기에 클라이언트 팀에게 너무 감사했다.. (정말 이쁜 UI와 엄청난 반응형 웹을 만들어줬다 !)
이번 프로젝트를 통해 얻게 된 지식도 늘어나고 내가 사용할 수 있는 기술도 늘어나서 정말 많이 얻어가는구나 싶었다.
끝으로 프로젝트 배포 주소와 깃허브 주소, 프로젝트 시연 영상을 올리고 글을 마무리하겠다.
힘든 4주였지만 그만큼 얻는 게 많은 행복한 4주였다.
- Github 주소 : github.com/Everyone-s-resume/Moi_client
- 배포 주소 : www.everymoi.com/
- 시연영상
- Stack : [백엔드] Node.js, Express, MongoDB, JWT
- Basic_design ⚙️
- Figma를 이용한 화면 설계
- Landing page 컨텐츠 설계
- MongoDB와 Atlas 사용 DB 설계
- Git book과 Postman으로 API 문서 작업 및 설계
- Resume API 작성
- 사용자의 토큰을 이용해 Resume Schema에 이력서 정보 저장 구현
- 사용자의 토큰을 이용해 사용자의 이력서 정보 수정 구현
- Resume의 ObjectId를 받아 해당하는 이력서를 내보내주는 기능 구현
- Mail 문의하기 API 작성
- nodemailer로 사용자의 피드백을 메일로 받도록 구현
'회고록' 카테고리의 다른 글
[2021.04.18] 입사 일주일 차의 주니어 백엔드 개발자 일기 (0) | 2021.04.18 |
---|---|
[2021.03.22] 두 번의 면접을 통해 내가 얻은 것 (0) | 2021.03.22 |
[2021.02.06] 첫 번째 웹 프로젝트 '내일의 집' 회고 (0) | 2021.02.06 |
[2021.01.18] 1월 셋째주 회고록 (0) | 2021.01.18 |
[2021.01.04] 1월 첫째주 회고록 (0) | 2021.01.04 |
댓글