신개념 채용플랫폼 원티드 클론 프로젝트
팀원
Backend : 김기욱👈, 이건규
Frontend : 마상원, 오상구, 박주엽, 손수민
BackEnd Github Repository : [Click Here]
Trello : [Click Here]
기간
2020년 08월 31일 ~ 2020년 09월 11일 (12일)
[공통]
[백엔드]
1) Python
2) Django
3) MySQL
4) Docker
5) Amazon Elastic Cache
1차 프로젝트에 비해 테이블수가 더 많았음에도 불구하고 더 빠르고 능숙하게 모델링을 다룰 수 있게 되었다. 특히 회원정보의 변동성이 심한 채용사이트의 유저프로필 특성을 고려해 UserAccount
와 UserInformation
을 따로 분리해 정보가 업데이트 되더라도 FK를 통해 UserAccount
의 ID값은 변동되지않게 모델링을 구축했다.
수도권지역이 코로나 경계수위가 2.5단계로 격상되면서 2주동안 프로젝트가 온라인으로 진행되었다. 팀원들끼리도 가끔 보긴 했지만 대부분의 작업을 Zoom으로 진행했기 때문에 팀원이나 타 팀원들에게 질문이 쉽지는 않았다. 하지만 그 덕분(?)인지 꽤 많은 질문을 하며 꾸역꾸역 진행했던 1차 프로젝트와 달리 정말 혼자서 구글과 함께 프로젝트를 수행할 수 있었다.
개발자의 역량은 협업능력과 독학이란 대치되는 요소를 얼마만큼 잘 구사하는가에 달려있다고 생각하는 입장에서, 모순적이지만 질문하기 & 질문안하기 모두 중요하다고 생각한다.
1차때는 전자를 잘 했다면, 2차때는 후자를 잘 했다.
빠르게 한달간의 수업 이후에 바로 시작해서 모든게 어설펐고, 특히 소통에 어려움을 겪었던 1차프로젝트와 달리 한 번의 프로젝트를 겪고나니 프론트엔드쪽과의 소통능력이 많이 향상됐다. 특히 내가 맡은 User쪽 부분은 데이터를 송수신을 많이 해야되기 때문에 더더욱 프론트엔드와 소통을 많이 할 수 있었던 좋은 기회였다.
특히 '이력서 뷰'에서 쌓인 데이터를 '지원하기' 뷰에 보내고 클라이언트 서버에서 '지원하기'를 누르면 해당 포지션과 회사에 대한 정보를 받아서 이를 다시 '지원현황'뷰에 보내주는 일련의 유기적인 데이터송수신은 3명의 프론트엔드들과 협응을 했어야 했는데, 개인적으로 성공한 뒤 가장 즐거웠던 부분이였다.
1차, 2차를 통해 운좋게도 나는 각각 다른 파트를 구현할 수 있는 기회를 가지게 되었고,
(1차는 Product쪽 상품페이지, 2차는 회원가입,로그인,이력서작성 등 유저쪽 페이지)
결과적으로 상품쪽부터 유저쪽까지 웹사이트에서 전반적인 백엔드흐름을 할 수 있었다.
이전 프로젝트 후기에도 밝혔듯이 전체적인 웹의 FLOW를 아는것은 백엔드 입장에서 굉장히 중요한일이라고 생각하고, 1-2차 프로젝트를 통해 미약하지만 전체적인 플로우를 모두 구현했다는것에 스스로 칭찬을 해주고 싶다.
1차에 비해 훨씬 많은 기능구현을 했지만, 아이러니하게도 완성하고 나서 뿌듯함을 느꼈던 새로운 코드가 별로 없었던 것 같다. 이전의 1차프로젝트 때 썼던 코드형식을 많이 차용하기도 했으며 새로운 기능보단 짧은 기간에 많은 기능구현이란 목적에 너무 치우치다 보니, ORM이나 파이썬메서드, generator, processing 등 충분히 활용가능한 요소들을 코드에 도입을 못하고 굉장히 알고있던 코드, 베이직한 코드들로 꽉 채운 코딩을 했었던 것 같다.
개발자는 항상 새로움을 받아들이고 새로워지는것을 두려워지지않아야 하는데, 너무 제자리에서만 머물며 기계적으로만 코딩을 했던게 아닌가 반성을 하게 된다.
사실 이것에 관해서는 코로나라는 변명거리가 있긴 하다. 하지만 트렐로라는 스크럼툴을 이전 프로젝트때보다 게으르게 사용했다는 점에 있어서는 변명의 여지가 없다.
나 스스로는 포스트맨 검증을 완료해 이제는 다 짰다고 생각했던 로직에도 프론트단과 맞출 때, 여전히 종종 500에러가 나곤 했다. 결론적으로 발표당일 촉박하게 리팩토링이 조금씩 들어갔다. 삐그덕거리지않은 코드를 짜는것은 프론트/백엔드 모두에게 매우 중요함에도 내 코드에 대한 인사이트와 알고리즘에 대한 지식이 아직은 부족하지 않았나 싶다.
이전에도 똑같은 소제목의 개선방안이지만 다시 강조하기 위해서 쓴다. 이번 역시 코드의 완성속도에 너무 치우쳐져서 IT한 코드가 없는 코딩을 했었기 때문이다. 항상 조바심을 버리고 '최선의 결과물'을 생각하는 개발자가 되자.
프론트엔드와의 송수신 이전에 가장 에러를 줄이는 좋은 방법은 유닛테스트를 활용하는 점이 였던 것 같다. (솔직히 귀찮지만)꼼꼼하고 많은 유닛테스트를 짜서 유닛테스트를 통한 디버깅과 코드 리팩토링을 습관화하자. 에러없는 클린코드를 위한 힘들지만 가장 빠른 지름길인 것 같다.
Get 메소드 하나는 생략하고 가져왔는데도 코드 길이의 압박이.. 상당하다.
네 가지 뷰로 게시물 등록, 조회, 삭제, 수정 모두 가능하다. 나랑 이력서뷰를 구현하기로 배정된 프론트 분과 2주차 상당부분을 할애했던 코드인데, 둘 다 이렇게 오래걸릴 줄은 몰랐다.. 🙈
실은...2차프로젝트는 꽤나 어수선했다.
코로나 2.5단계 격상으로 해본적 없는 온라인미팅을 했고, VScode liveshare를 통한 온라인 합동코딩(?!)도 처음 경험해봤다. 모든게 처음이었기에 당연히 어색했고, 처음에는 팀 프로젝트를 하고있는지 실감도 잘 안왔던 것 같다.
하지만 위워크타워는 갈수 없었지만 오프라인 밋업의 갈증에 카페에서 모여서 얼굴들도 보면서 같이 회의도하고, 발표 전 날엔 에어비앤비로 집을 빌려서 정말 1시간도 못 잔채 밤새워 부랴부랴 코딩하기도 했다. 당시엔 힘들고 촉박했지만, 벌써 하루가 지나니 다 즐거운 추억이였던 것 같다.
우리 팀원들은 왜 이렇게 다들 착하고 열심히 하는 사람들만 모였는지.. ㅋㅋ
평소에 운이 없다고 생각했는데, 프로젝트 기간 내에는 운이 정말 좋았던 것 같다.
누군가 말했던 것 같다. 힘들었던 기억이 더 오래가는 기억이 된다고, 프로젝트 한 달간이, 또 이제 곧 들어갈 기업협업 한 달간이, 위코드 11기 모두에게 즐거운 추억으로 남기를 기원하며, 기업협업 이전 마지막 주말을 즐겨본다.
다시한번 모두들 TA!(호주말로 "Thank You!"라는 뜻~)
수고하셨어요 기욱님 🙆🏻♂️