백엔드 개발자(node.js)가 되는 과정

[WIL] 23.06.26 ~ 06. 30

soopy 2023. 7. 3. 20:04
728x90

프로젝트 회고

(공통) EJS 파일 사용 관련 어려움

백엔드에서 응답 받은 결과를 EJS 파일에 출력하는 과정에서 문법이 익숙하지 어려움이 있었다.
기존 프론트 구현 방식처럼 HTML에 javascript를 연동시켜서 페이지에 출력하는 방식과 EJS에 직접 백엔드 결과를 전달하는 방식을 모두 사용하게 되어 해당 부분에서 기능 구현이 다소 비효율적이게 된 것 같다.

추가 기능 구현에서의 어려움

업로드 된 이미지를 프론트에 출력하는 과정에서 이미지 사이즈가 일관성을 유지하도록 하기 위한 과정에서 어려움이 있었음
일관된 이미지 사이즈 출력 구현을 위해 리사이징을 시도하는 과정에서 sharp 패키지 사용을 시도했으나 input 관련 에러가 발생해서 구현에 한계에 부딪힘
이미지 리사이징 관련하여 AWS Lambda 사용까지 고려하였으나 프로젝트 기간을 고려하여 제외함
키워드 검색 시 하이라이팅 기능을 구현해보려 했으나 프로젝트 기간을 고려하여 제외함
기존 닉네임, 관심사 수정에서는 prompt 메서드를 사용하여 수정값을 input 받았으나 유저 패스워드 수정 구현 시 기존/변경 패스워드 이렇게 총 2가지의 값을 한번에 input 해야 되다보니 하나의 prompt 사용에 제한이 있었고, 이를 해결하기 위해 순차적으로 prompt 메서드 기능이 구현되도록 함
passport 패키지를 사용하여 카카오 계정 로그인 구현을 시도했으나 기존에 사용하던 인증 미들웨어를 전면 수정해야 하는 상황이어서 기능 적용을 생략하였습니다.

Keep

  • 서로의 경험을 공유하는 "다같이 디버깅" 타임을 통해 각자의 디버깅 접근 방법에 대해서 배울 수 있었던 점
  • 새로운 기능 구현을 위한 과감한 도전
  • 초기 업무 배정 및 폴더 TREE를 미리 구성한 덕분에 Git Merge 과정에서 발생한 Conflict 이슈 해결에 어려움이 없었던 점
  • 늦은 시간까지 맡은 분야에 대해 책임감을 가지고 끝까지 구현해 낸 점
  • 각자 구현한 기능을 서로에게 자주 공유하여 잦은 main branch 최신화를 통해 각자의 개발 환경을 최대한 일관성 있게 유지하며 프로젝트를 진행한 점

Problem

  • 배우지 않은 새로운 기능 적용에 할애하는 시간을 길게 잡는 바람에 기본 구현 사항에 좀 더 신경쓰지 못한 점
  • 프로젝트 특성 상 마감 기한이 있으므로 장시간 해결하지 못한 기능 구현에 대해서는 팀원에게 토스하거나 과감하게 DROP하지 못한 점
  • 팀원이 공통적으로 사용하고자 하는 특정 기능(이번의 경우 EJS) 사용에 있어 팀원의 어려움이 있고, 이로 인해 프로젝트 진척도가 떨어진다면 과감하게 DROP했어야 하는데 그러지 못한 점
  • 프론트 구현에 익숙하지 못하므로 상당 시간 할애했어야 했다는 점

Try

  • 본인의 역량, 메타인지를 높이기 위해 특정 기능 구현에 있어 어느 정도의 기간 또는 소요 시간이 필요한지에 대한 파악을 할 수 있도록 측정, 기록해보기
  • 막히는 부분에 있어 튜터님에게 겁내지 말고 질문하러 가기
  • pull request를 활용한 코드 리뷰에 시간을 할애하여 완성도 높은 프로젝트를 달성하는 것도 좋지만 서로의 기능 구현 아이디어를 공유하여 역량을 강화할 수 있는 시간도 적절히 할애하기

느낀점

  • 프론트 구현 과정에서 익숙하지 않았던 EJS를 활용에 상당 부분 시간을 할애하게 되었고, 이로 인해 백엔드 추가 기능 구현에 시간을 투자할 수 없었던 점이 아쉬웠던 것 같습니다.
  • 프론트와 백엔드를 연결하는 과정에서의 work flow에 좀 더 익숙하게 되었던 것 같습니다.
  • 백엔드로만 구현했던 기능을 프론트에서 직접 동작하도록 버튼 생성 및 이벤트리스너 등록과 같은 기능 구현에 익숙해질 수 있었던 시간이었습니다.
  • 새로운 기능 추가 및 디버깅 과정에서 해결 방안을 탐색하는 과정이 향상된 것 같습니다.
  • 팀원과 함께 디버깅을 하는 과정에서 각자의 디버깅 관점을 공유할 수 있어서 좋았습니다.
  • 이번 과제를 통해서 보다 많은 지식과 경험을 쌓기 위한 방안으로 EJS 템플릿을 사용하였으나, 짧은 과제 기간과 아직은 그래도 익숙치 않은 깃협업 + 구현 시키고자 하는 기능의 양은 많고, 프론트에 대한 지식도 적었던 관계로 해당 EJS 템플릿을 이용하여 과제의 완성과 마무리를 짓는 과정에서 소요되었던 시간의 양이 굉장히 많았고, 그걸 해결하는 부분에 있어서도 초반에 굉장히 막막했었다.
728x90
728x90