[wecode] 2차 프로젝트 회고록

Choi Rim·2021년 8월 29일
0

wecode

목록 보기
9/9

About humblebug

  • 프로젝트 후원 사이트 텀블벅을 모티브로 하여 위코드 후원 사이트 험블벅(humblebug)으로 재구성
  • 사용자가 직접 프로젝트를 등록하고 목표 금액, 목표 날짜를 정할 수 있다
  • 사용자는 원하는 프로젝트의 원하는 옵션에 후원할 수 있다

풀영상

깃허브

프로젝트 1주차

멘토님께서 2차 프로젝트는 새로운 개념을 적용하느라 바쁠 수 있으니 꼭 필요한 기능에 선택과 집중을 하라고 하셨다. 그래서 1차 프로젝트에서 구현했던 좋아요, 팔로우 기능을 제외시키고 사이트의 주요 기능인 후원, 프로젝트 업로드, 소셜 로그인에 집중하기로 했다. 나는 상세 페이지 후원 기능을 맡았다.

1주차에는 새로 배운 개념인 unit test와 git rebase를 적용하느라 시간 배분을 잘 하지 못한 것 같아 아쉬움이 남는다. 토요일에 상세 페이지 뷰를 마무리하는 게 목표였는데, 시간이 빠듯해서 일요일에야 프론트 분과 맞춰볼 수 있었다. (다슬님 사랑해요)

프로젝트 2주차

상세 페이지, 후원 기능을 1주차에 다 끝낼 수 있어서 댓글 기능까지 추가로 구현했다. 그런데 프론트에서 댓글 데이터를 불러오는 속도가 너무 느렸다. (21초😱 내가 사용자였으면 나갔다...) 그래서 세션 때 배운 ORM 최적화를 진행하기로 했다. 다행히도 최적화 후 3초로 줄일 수 있었고 오하이오에 연결되어있던 RDS를 서울로 옮기고 0.02초의 짧은 시간으로 줄일 수 있었다.

2주차 목표는 코드 리팩토링과 목요일 최종 merge가 목표였다. 2주차에는 unit test, 최적화, git rebase 등 정신이 없어서 그리 여유롭지는 않았던 것 같다. git rebase를 할 때는 무한 rebase의 늪에 빠졌다가 local main에서 origin main을 pull 받아오지 않았다는 사실을 깨닫고 무한 rebase의 늪에서 빠져나올 수 있었다.. 그리고 unit test도 20번 fail이 뜬 후에야 ok 사인을 받을 수 있었다.

마지막에는 데이터가 정리되어 있지 않아서 막판에 급하게 데이터를 넣는다고 정신이 없었다. 왜 나는 미리 데이터를 정리하지 않았던가...
깊은 반성.

프로젝트를 마무리하며

아쉬웠던 점

아쉬웠던 점은 unit test, git rebase, orm 최적화 같은 새로운 기능을 적용하느라 시간 분배를 잘하지 못했던 것이 아쉽고 소셜 로그인, 이미지 업로드 같은 해보지 못했던 기능을 해보지 못했던 부분이 아쉬움이 남는다.

개선된 점

1차 프로젝트에 비해 개선된 점은 1차 프로젝트 때는 기능 구현만을 위한 코드를 짰다면 2차 프로젝트때는 어떻게 하면 조금 더 효율적이게 코드를 짤 수 있을 지 고민을 많이 했던 것 같다.

그리고 1차 프로젝트 때 프론트분들과의 소통의 중요성을 깨달아서 그런지 2차 프로젝트때는 조금 더 나와 기능을 맞춰보는 프론트분과 소통하는 것을 중요하게 여겼던 것 같다. 내 쪽에서는 아주 잘 돌아가던 코드였지만 프론트쪽은 비효율적인 방법이라고 생각할 수 있으니까 데이터가 어떻게 들어갔으면 좋은지 프론트 쪽의 이야기를 많이 들으려고 했던 것 같다.

내 코드 자랑! 😎

comments = Comment.objects.filter(project_id=project_id).select_related('user')
------------------------------------------------------
Function : get
Number of Queries : 103
Finished in : 23.45s
------------------------------------------------------
------------------------------------------------------
Function : get
Number of Queries : 3
Finished in : 2.39s
------------------------------------------------------

이번 프로젝트에서 select_related, prefetch_related 두 개 다 사용해봤는데 처음에 select_related 를 써서 쿼리 수와 로딩 시간을 확 줄인 게 너무 신기하고 재밌어서 기억에 많이 남는다.

project = Project.objects.annotate(total=Sum('patron__total_amount'), count=Count('patron')).prefetch_related('tag').select_related('user').get(id=project_id) 

위처럼 prefetch_related와 select_related를 동시에 사용할 수도 있다! 짱짱

Team humblebug 🏃

2주동안 수고해준 스윗상웅, 실세다슬, 할배도윤, 깃천유영, 갓기로운님 ㅎㅎ 우리 험블벅 팀 덕분에 프로젝트 하면서 많이 웃었던 것 같아요. 여러분 모두 수고했어요! : - ) 사랑한다 험블벅

profile
https://rimi0108.github.io/

3개의 댓글

comment-user-thumbnail
2021년 8월 29일

진짜루 함께 하고싶은 개발자이신 혜림님 !!! 항상 응원합니다 :)

1개의 답글
comment-user-thumbnail
2021년 8월 31일

잘읽고 갑니다^^

답글 달기