교육/원티드 프리온보딩 인턴십

[원티드 프리온보딩 프론트엔드 인턴십] Week 4 과제 후기

알파카털파카 2023. 1. 24. 04:29
Week 4 과제 후기


드디어 마지막 4주차 과제가 끝났다. 

마지막 주차라 여러가지 일정이 겹쳐서 과제를 할 시간이 적었다. 

화-금 강의가 월-금에 진행되었고, 그 사이에 2차례에 걸친 취업 설명회와 이력서 특강이 있었다. 아마도 그 다음주가 설 연휴라 일정이 앞당겨 진 것으로 안다. 나는 개인적으로 프리온보딩 프론트엔드 챌린지 1월 코스도 듣고 있었기 때문에 화-금 날에는 하루에 8시간 가까이 강의를 듣는 일정이 좀 버겁기도 했다.

마지막이라 그동안의 피로가 누적되기도 했고, 그래서 조금은 아쉬웠지만 그나마 차선책의 방법으로 마무리한 이번 과제를 회고해 본다.

 

 


 

 

과제 내용

 

4주차 과제는 API 서버와 통신해서 작동하는 댓글 프로젝트를 Redux를 통해 구현하는 것이었다.

참고용 레파지토리를 Fork해서 과제를 진행해도 되고, 처음부터 새로 만드는 것도 가능했다.

서버는 참고용 레포에 json-server 라이브러리를 이용해서 구축되어 있었다.

나는 개인적으로 구현할 때는 fork해서 TS 프로젝트로 변환해 사용했다.

 

 

 

과제 진행 방식

 

1. 개인별 구현

우선 짚고 넘어가야 할 점은, 이번 과제는 '리덕스를 통해 구현'하는 것이 목표였고 나는 리덕스를 한 번도 사용해보지 않았다는 점이다.

mobx만 사용해봤었는데 몹엑스는 기능 구현을 마치고서 적용하는 것도 가능했다. 찾아보니 리덕스로 그런 방식으로 구현하는 것이 가능하다고 하기에, 그럼 다른 기능을 일단 다 구현해놓자! 고 스스로 목표를 정했다. 

요구사항 중에는 페이지네이션 구현하기도 있었다. 이것도 처음 구현해보는 내용이었다. 이미 리덕스를 모르는 판국에 페이지네이션도 못한다고 하기에는 자존심이 허락하지 않았다. 내가 개발 실력이 부족하지, 자존심도 없는가!

이미 새벽 4시였는데 한 차례 페이지네이션 구현에 실패한 상황이었다. 점심 무렵에 팀원들과 팀 과제를 시작하기로 되어있었다. 심지어 그 계획은 내가 제안한 시간이었다. 

심란해서 현실도피 겸 유튜브 숏츠로 귀여운 동물 영상을 보고 있다가 문득, '코딩하다 모르는 것이 생기면 유튜브에 검색해봐라. 인도인 아저씨가 설명해 주는 영상이 있다. 이것은 개발계의 비급으로 전해 내려온다.'는 얘기가 생각나서 react pagination 이런 키워드로 검색을 해봤다.

인도인 아저씨는 아니었지만 영어를 사용하는 외국인 아저씨의 조회수 40만짜리 리액트 페이지네이션 튜토리얼 영상을 2번 쯤 봤고, 구현에 성공했다! 아침 7시의 얘기다. 내가 참고했던 영상은 이것이다. Simple Frontend Pagination | React

출제자의 의도에 맞지 않는 구현 방법일지도 모른다. 하지만 나는 내 손으로 모르는 내용을 어떻게든 찾아 구현에 성공했다는 사실이 너무나 뿌듯하고 기뻤다.

기쁨의 커밋 feat: 페이지네이션 기능 구현

 

2. 팀 프로젝트 진행

팀원들과 각자의 개발 진행 상황, 어떤 라이브러리를 사용했는지 등을 공유했다.

리덕스로 모든 구현이 완료된 분은 한명 뿐이었다. 그 팀원분의 코드를 바탕으로 진행하기로 했다.

나도 그랬지만, 다른 분들도 마지막 주가 되니까 다들 수면부족과 피로에 지쳐 계셨다. 웃픈 상황이다..🥲

 

3. 프로젝트 마무리

기능 구현이 끝난 후에는 코드 리팩토링, 불필요 파일 정리 및 오타 수정, 서버를 제외한 클라이언트 배포, 리드미 작성 등을 마치고 제출을 했다.

항상 마감 1시간 전에 제출하던 것이 우리 팀의 루틴(?)이었는데 이번에는 마감 11시간 쯤 전에 제출을 완료했다.

다같이 코드를 나눠 작업하지 않았기 때문에 시간이 단축되었을 것이다. 이 부분은 아래의 아쉬웠던 점 파트에 적었다.

어쨌든 마지막 과제를 끝내고 나니 개운하고 뿌듯한 마음이 들었다. 5주 동안 같이 고생한 팀원들에게도 박수를 보낸다👏

 

 

 

만족스러웠던 점

 

아쉬운 점이 남긴 했지만, 잘했다고 생각하는 점을 적어본다.

 

1. 대충 마무리 짓지 않은 것

기능 구현이 다 되었다고 하더라도 검토를 제대로 하지 않거나(불필요 파일 업로드, 엉망으로 작성된 커밋 메시지 등) 리드미가 없다면 채점하는 입장에서는 코드를 보고 싶지 않아진다고 첫 강의 시간에 들었다.

팀원분이 올려주신 코드를 리뷰하고 미처 신경쓰지 못한 부분이나 빠진 내용을 추가해 넣었다. 혼자 모니터를 오래 들여다보고 있으면 아는 것도 놓치고 넘어갈 때가 있어서, 동료 간의 크로스체크가 도움이 된다. 예전에 회사에서도 나는 사수의 업무를 보조하며 빠진 내용을 챙겨드린 적이 많았고, 본인에게 부족한 세심함을 내가 채워줘서 고맙다고 하셨기 때문에 내가 잘하는 것을 하려고 했다.

이번에도 깃허브 위키를 사용했다. 리드미에 걸어놓은 링크가 제대로 이동하는지 확인도 했다. 

과제를 제출하고서도 마치 가스불을 껐는지 점검하는 것처럼 다른 창으로 접속해 제대로 제출되었는지도 확인했다. 

 

 

 

아쉬웠던 점

 

1. 여럿이 참여하는 협업이 아니었던 점

모두가 동의한 상황이었고 우리팀의 차선책이었다. 

구현을 완료한 팀원분의 코드를 베이스로 진행하기로 했다. 여럿이 파트를 나눠 개발하는 것이 아니었다는 얘기다.

이번 과제는 '리덕스' 이용하기가 핵심이었다. 나에겐 리덕스 지식이 없었고 공부해서 프로젝트에 적용할 시간이 부족했다. 

팀 프로젝트를 할 때는 팀원과 비슷한 스킬셋, 실력을 갖춘 것 또한 매우 중요하다. 나는 이번 코스에 참여하기 전에, 팀 과제가 있다고 들었을 때 나의 실력에 자신이 없었고 괜히 팀에 누를 끼칠까봐 걱정을 많이 했다. 그 걱정이 현실화된 상황이었다.

그래도 만족스러웠던 점에서 적었듯이, 무임승차하지 않겠다는 의지로 내가 할 수 있는 것들을 찾아 하려고 했다.

 

2. 문제 요구사항을 만족하지 못한 것

검토하면서 놓친 내용이 있었다. 기능 몇개가 빠져 있었다.

내가 좀 더 집요하게 체크를 했어야 했는데..

요구사항 만족하기 같은 기본적인 내용에서 실수해서 변명거리가 없다.

 

3. 리덕스 지식

아직 공부하지 않은 부분이라 의견 개진도 어려웠고 다른 분들의 말을 이해하는 데에도 어려움을 겪었다. 만약 나 혼자 팀 과제를 다 해야하는데 나에게 리덕스 지식이 없는 똑같은 상황이었다면? 무서운 상황이다. 리덕스는 코스가 끝났더라도 꼭 공부하고 넘어갈 부분이다. '어떤 기술에 대한 사용 경험과 나의 의견을 말할 수 있도록 연습해야겠다'는 이번 코스 내내 다짐해왔던 내용이다.

 

 

 


 

 

지난주 회고에서 마지막 과제는 더 나은 모습으로 마무리하고 싶다고 했지만 살짝 아쉬움이 남게 되었다. 

그래도 포기하지 않고 완주한 것에 의의를 둔다. 

같이 열심히 한 팀원분들과는 깃허브 친구가 되었다. 

한 달 동안 개발 과정에서 스스로 찾아보고 부딪혀가며 배워나가는 지식도 많았다. 새로 알게된 내용은 깃허브 TIL 에 정리해 두었다.

블로그도 나름 열심히 했고, 나중에 내가 되돌아볼 수 있는 글이 남았다. 혹은 검색해서 들어온 누군가에게 도움이 될지도 모른다.

디스코드라는 툴의 사용법도 익혔다. 은근히 이런 툴 사용법에 익숙해지기까지 시간이 걸려서, 어딘가에서 유용하게 쓰일 경험이 됐다.

깃허브 레포에도 이번 코스의 흔적이 남았다. 내가 이력서에 '책임감과 끈기가 있는' 이라고 쓴다면, 그 내용을 증명해줄 증거들이다.

원티드 프리온보딩 코스, 신청하길 정말 잘했다.