Daily
프로그래머스 프론트엔드 데브코스 4기 10월 회고
새로운 환경
프론트엔드와 백엔드가 함께
데브코스 프론트엔드 과정은 2개월 마다 팀이 변경되고, 10월이 되면서 내 마지막 팀이 결정되었다. 3명의 프론트엔드 데브코스 교육생과 3명의 백엔드 데브코스 교육생을 합쳐 총 인원 6명으로 구성된 최종 팀이다. 기존에는 최소 5인에서 6인으로 구성된 프론트엔드 교육생으로 팀 활동을 진행했는데, 이번에는 백엔드 교육생들과 함께하게 되었다. 그리고 각 코스에 따라 두 분의 멘토님(프론트엔드, 백엔드)이 새로운 팀의 멘토가 되어주셨다.
최종 프로젝트
10월부터 약 1달 반에서 2달 간 최종 프로젝트 개발이 진행된다. 주제는 역시 자유이고, 멘토 2분이 각각 프론트엔드 교육생과 백엔드 교육생 쪽을 담당하시면서 커피챗과 프로젝트에 대한 피드백을 진행하신다. 사실 기획자나 디자이너가 없기 때문에 부족한 부분들을 팀원들끼리 힘을 합쳐 헤쳐가야 했다.
이전 프로젝트가 끝나고 팀원들과 멘토님께 받은 피드백 내용이 나쁘지 않았는데, 주로 완성도를 끌어올리는 작업에 많이 기여했다는 평이다. 멘토님은 다음 프로젝트에서는 디자인 및 UI/UX에 관련된 작업보다는 조금 더 기술적 접근을 해야 하는 작업을 욕심내서 해보라는 조언을 받았다.
이력서 첨삭하는 서비스를 만들자!
처음 백엔드 쪽에서 나온 아이디어가 있었는데, 여러모로 프론트 쪽에서 구현하는 데 많은 난관이 예상되어서 급하게 틀었다. 데브코스를 수료하고 여러 멘토님들께 이력서를 첨삭받고 싶을 때 사용할 수 있는 이력서 첨삭 서비스를 개발하기로 했다.
1 - 멘토와 멘티가 서비스에 가입한다.
2 - 멘토는 “이력서 첨삭 이벤트”를 개설한다.
3 - 멘티는 “이력서 첨삭 이벤트”에 참여하여 이력서를 제출한다.
4 - 멘토는 참여한 멘티의 이력서를 첨삭한다.
5 - 멘티는 첨삭된 이력서를 확인한다.
기획 단계에서의 문제점
- 멘토가 없으면 서비스가 돌아가지 않는다. 여하튼 멘토가 첨삭 이벤트를 열어 주지 않으면 서비스가 죽어버린다.
- 그렇다면 멘토는 어떤 동기로 인해 첨삭 이벤트를 열어 주는가?
- 오까네. 머니. 돈. 돈이 걸리면 열 수 있다. 근데 우리가 결제 서비스를 만들 재량은 아직 없으므로 기각.
- 첨삭 이벤트라는 시스템의 맹점이다. 그러지 말고 자유롭게 이력서를 공개해서 첨삭을 자유롭게 받는 건 어떤가? ⇒ 하나의 옵션이 될 수 있다. ⇒ 그리고 커뮤니티 서비스로의 확장이 가능해질 것 같다.
이걸 고민하면서 우리가 플랫폼을 만들고 싶은 것인지, 특정 서비스를 만들고 싶은 것인지 잘 생각해보아야 했다. 개인적으로는 이력서 첨삭이라는 하나의 서비스에 집중해야 한다고 생각했다. 사용자가 많고 적음을 떠나서 이력서 첨삭을 쉽게 할 수 있는 기능이 제대로 동작해야 이 기획의 의미가 살아날 수 있을 것 같다.
???
: 다른 멘토님께 여쭤보니 이력서 첨삭을 할 때, pdf로 받고 피드백을 써서 메일로 보낸다던지 다이렉트로 얘기하던지 한다더라.???
: 아! pdf나 word 파일을 올리면 뷰어로 보여주고, 그 뷰어를 인식하던지 데이터를 긁어오던지 해서 텍스트 line 또는 특정 영역에 코멘트를 달 수 있게 하면 좋지 않을까????
: 그래서 그거 어떻게 하는 건데? ⇒ 역량 및 시간 부족으로 기각???
: 그래.. 그냥 이력서 템플릿을 주고 form으로 다 받아서 하자.결국 유명한 서비스들의 이력서 양식과 흡사하게 (프로그래머스를 따라해보자) form을 주고, 이력서를 작성해서 관리하게 하고, 멘토가 해당 이력서를 읽고 form의 내용에 대해 코멘트를 달 수 있게 하는 것이 현재 역량에서 최선이었다.
이러면 또 의문이 든다.
이력서라는 것이 물론 포멀한 양식이 존재하지만, 아주 작은 디테일들이 있을텐데… 템플릿을 주는 것이 과연 만족스러울까?
디자인?
UI 라이브러리에서 제공하는 컴포넌트 생김새를 그대로 가져다 사용하면서 시간을 아끼고, 이전 프로젝트에서 끝마치지 못했던 기술적인 작업들을 해보고 싶었는데 무슨 직업병 마냥 UI 디자인을 조금 해버렸다. “이정도면 그리 힘들이지 않고 할 수 있겠지. 스타일링에 시간을 많이 쏟지 않겠지.” 라고 생각하면서 해버렸는데, 결국 제공하는 컴포넌트와 다른 부분들이 있어서 커스텀을 해야 했다.
로고를 대충 만들고, 와이어 프레임을 짜고, 디자인의 톤을 잡았다.
(디자인에 한 번 시간을 많이 써볼 생각)
개발하면서
차크라 UI 써보기 (Chakra UI)
온/오프라인 교육에 참여하면서 생긴 친구들이 차크라 UI라는 라이브러리를 써봐야겠다는 말을 많이 하더라. 뭔가 싶기도 하고, 공식 홈페이지에 보이는 컴포넌트들이 깔끔해 보이기도 하고 해서 우리 팀도 사용하기로 했다.
그런데 내 생각보다는 조금 복잡했다. 공식 문서에 없는 내용을 구글링해서 찾아 적용하기도 해야 했고, 생각한대로 적용되지 않는 부분들이 많아서 스타일링에 또 시간을 꽤 쏟아야 했다. 다행인 것은 이전 프로젝트는 tailwind css로 한 땀 한 땀 만들었어야 했는데, 컴포넌트를 가져와서 어느정도 커스텀하여 적용하면 되어서 지금은 조금 익숙해졌다는 것이다.
오로지 차크라에서 제공하는 컴포넌트 만으로 원하는 기능을 만드는 것에는 제약이 있었다. 차크라를 사용하니 대부분의 UI를 컴포넌트와 props로 개발할 수 있다는 점이 편했다. 차크라를 이용해서 공통 컴포넌트를 개발했다.
어… 그런데 다음에는 굳이 쓰진 않을 것 같다. 제공하는 컴포넌트가 그렇게 많은 것 같지도 않고, 커스텀하기도 꽤 불편하다는 생각이 들었다. 차라리 MUI를 쓸 것 같다.
마크다운 에디터를 넣으면 어때
첨삭을 해주는 인풋에 마크다운 에디터를 적용시키려고 했다. 했다. 뭔가에 막혀서 실패했다. 막히면 계속 파고 들면서 시간을 죽여버리는 타입이라서, 미뤄두고 다른 것부터 개발하기로 했다. 뭔가 찜찜하지만 이건 협업이니까 일정을 맞춰야 해.
폼을 다루는 것은 어렵다고 한다
우리는 이력서 작성 페이지 때문에 굉장히 많은 input form을 다뤄야 한다.
react-hook-form
을 활용하기로 했는데, form이 많으니 다루기가 어려웠다. 멘토님께 들은 말인데, 폼을 다루는 것이 원래 어렵다고 한다. 한 번 이 지옥을 경험해보고 나면 큰 자산이 될 거라고… 하셨다.서버도 개발하고 싶다
협업은 평생 해야하는 일이고 또 다른 즐거움을 느낄 수 있지만, 결국 내 목표인 올인원으로 서비스 개발하기를 하려면 서버에 대한 지식도 있어야 한다. 지금 당장 java와 spring 책을 꺼내 들고 서버를 개발할 깜냥은 없다. 소규모 웹 서비스를 혼자 개발하기 위한 백엔드 지식이 필요하다. 일단 프로젝트가 끝나고 Next.js 부터 시작해볼까?
API 상상하기
이전 프로젝트에서는 API가 다 주어지니까 주어진 대로 활용하거나 가공해서 쓰면 됐다. 그런데 이번에는 내가 API를 주문해야 하는 입장이 되니까 머리가 하얘지던데. 무슨 데이터가 필요할지 구체화하여 백엔드 분들께 요청하는 것이 어색하다 보니 처음에는 머리가 잘 안 돌아가더라. 사용자를 상상하면서 화면을 만드는데, 그와 동시에 뒤편에 존재할 데이터도 상상하도록 하자.
잡담
- 부트캠프에 지원한 것은 정말 좋은 선택이었다. 실제로 대규모 서비스를 운영하고 있는 회사에서 개발자로 일하시는 분들을 보면서 이 필드가 어떻게 돌아가는지, 어떤 일을 하는지 어느 정도 느낄 수 있었다.
- 🙄 그런데 너무 대규모 트래픽을 처리하는 서비스 개발 분야로만 개발을 생각하게 되는 것 같다. 그러다보니 기획이나 아이디어를 생각해도 틀에 박힌 CRUD, 커뮤니티, 게시판.… 서비스… 어떤 기능이 들어갔는지 어떤 이름의 게시판인지만 달라서 아쉽다.
- 최근에 모니터를 너무 많이 봐서 눈이 조금 피로하다. 집돌이에 모니터 들여다보는 것을 좋아한다고 생각했는데, 디지털 화면 조금 줄이고 홀로 기차 여행을 가고 싶다는 생각이 든다. 알게 모르게 약간 스트레스를 받는 것 같기도? 프로젝트가 끝나면 재충전을 조금 해야겠다.
- 요즘 부산에 계속 살고 싶다는 생각이 든다. 원래 어떻게든 상경해서 미래를 개척하는… 파이오니어… 저니맨이 되고 싶었는데, 요즘은 갑자기 정적이고 소박한 삶이 떠오르기도 한다. 부산이 또 도로 사정 빼고는 살기 좋긴 하지.
- 나 기획이나 디자인을 공부해봐야 하나…? 프로젝트를 하면서 느낀 점인데, 동료 개발자가 잘 보지 못하는 부분을 많이 보는 것 같다. 근데 그게 주로 디자인이나 UX 쪽이더라. 개발 공부에 집중하는 선에서 추가적으로 배워보고 싶은 것들이 생긴 것은 좋은 일이다.