제철 농산물 커뮤니티 제철42 개발 후기

Yeshin Lee
6 min readDec 7, 2021

--

(GIF에는 일부 기능만이 보여져, 전체 시연 영상을 보고 싶다면 위 링크를 참고하세요.)

2021년 8월 24일부터 11월 27일까지, 총 3달간 진행하였습니다.

기획 의도 하나로 바로 신청하게 되었습니다.

지금까지 과제에만 집중하던 6명의 동료와 함께하게 되어, 저번 프로젝트(LifeOn42)와 는 다르게 다가왔습니다. 주제와 팀명은 투표를 통해 ‘제철 채소/과일’, ‘과채파(a.k.a. Gwachaepah)’가 되었습니다. 재밌는 것은 저희 7명 모두 Slack 프로필이 과채류(🥒🍊🍋🍆🍑🍠🥦)입니다.

인원수에 따라 웹 사이트와 애플리케이션 둘 다 구현하기로 하고, 저는 Flutter에 관해 관심 있었기 때문에, 앱 담당을 맡았었습니다. 코로나로 인해 온라인 회의만 하다 처음으로 7명이 전체 모인 날, 반가우면서도 모두 열정에 불타올라 빠른 속도로 기획해나갔습니다.

이때까지만 해도 재밌었습니다.. (지난 프로젝트 때도 이랬던 거 같은데요😂)

문제는 그 후였습니다. 어디서부터 어떻게 시작해야 할지 도통 감이 오지 않았기 때문입니다. 더불어 이렇게 많은 인원으로 프로젝트를 하는 것은 모두 처음이었기 때문에, 더욱 혼란스러웠습니다. 이에 멘토링을 신청하게 되었습니다.

“프로젝트 규모를 줄여라”

인원이 많아서 둘 다 구현하기로 한 것이었는데, 저희 전부 뉴비라는 사실을 잊고 있었던 것입니다. 기나긴 회의 끝에 앱을 포기하고 웹 사이트만을 구현해보기로 결정하고, 저는 백엔드에 합류하게 되었습니다. 또한, 팀장을 제외하고 블랙홀(42 과정에서 주어진 Deadline)이 길었던 제가 백엔드 담당 부장이 되었습니다.

시작 단계에서 가장 중요한 언어와 프레임워크는 팀원들의 의견에 따라 Python과 Django 를 선택하게 되었습니다. 또한, DB는 사용해본 경험이 있는 mySQL로 결정이 났습니다. 그렇게 9월 한 달은 강의 시청과 CRUD 연습으로 공부하는데 보냈습니다.

사용 방법은 알았으나 구현 우선순위를 세우는 데에 대한 새로운 고민이 생겼습니다. 지금 생각해보면, 프로젝트 전체 기간 중 가장 힘든 순간이었습니다. 다시 멘토링을 신청하였고, 먼저 서버부터 띄우라고 하셨습니다. AWS와 Heroku 사이에서 고민하다, 낮은 진입 장벽과 프로젝트 규모를 고려해 Heroku로 선택하였습니다. 알고 보니, Heroku의 기본 DB는 이전에 고민했었던 PostgreSQL이고, MySQL에 비해 무료 버전 기본 제공 용량이 1GB로 월등히 컸습니다(MySQL로 하면 5MG밖에 지원이 안 됩니다 😅). 고민할 틈도 없이 PostgreSQL로 바꾸었고, 다행히 두 문법이 크게 차이가 나지 않아 큰 어려움을 겪지 않았습니다.

그 후 다양한 기능들을 구현하였고, 간략하게 정리해보았습니다. (다음 포스팅 주제들입니다🙂)

  1. virtualenv로 가상환경 구축하기
  2. Heroku 이용한 서버 띄우기
  3. Cloudinary를 이용해 이미지 저장하기
  4. 비밀번호 등 민감한 정보 암호화하기
  5. 농산물유통정보(Kamis)에서 OpenApi 받아와 DB에 맞게 데이터 넣기
  6. DRF(Django REST Framework) Serializer를 이용해 Django REST API 구축하기
  7. Django REST Swagger로 API 문서화하기
  8. Django 기본 User 모델과 새로운 모델 연결하기
  9. JWT를 이용해 Token 발급하기
  10. 지역 데이터 추가하기

10월 28일의 중간 발표가 끝나고 잠시 숨을 돌리고 있을 때, 최종 발표 날짜가 이주일이나 앞당겨졌습니다. 최종 발표는 TOP 10이 선정되는 중요한 순간이기 때문에, 곧바로 쉴 틈 없이 진행해나갔습니다.

매일 10시간(혹은 그 이상) 동안 모니터만 쳐다봤습니다

거기에 발표 3일 전에 갑자기 지역 데이터를 추가하게 되어 더욱 바쁘게 움직였습니다. 모두 긴장했던 순간이 어느덧 지나갔고, 아쉽게도 TOP 10에는 들지 못했습니다.

하지만, 프로젝트 초기에 세웠던 목표 였던 ‘서비스 배포 경험’과 ‘이 프로젝트를 통해 하나는 꼭 얻어가기'는 모두 달성했기 때문에 후회는 없습니다.

하루하루가 쉽지 않았던 프로젝트 기간에 늦으면 1분당 10만원이라는 재밌는 벌칙(당연히 실제로 걷지 않았습니다)을 정했었습니다. 발표 당일에는 만회의 기회를 드리고자 벌금을 기존 금액의 10배인 100만원으로 올렸는데, 천 단위를 찍은 분이 2명이나 생긴 웃지 못할 상황도 벌어졌습니다🤣

이날이 마지막 회의였었어, 한 편으로는 홀가분했습니다.

몇 번의 위기와 (코로나로 인해) Zoom이나 Gather에서 모임을 진행했을 때마다, 소통의 중요성을 확실하게 느꼈습니다. 또한, 모르는 부분을 어떻게 질문해야 할지 몰라 멘토링 신청을 고민한 적이 있었는데, 장황하게 설명하더라도 일단 신청해 조언을 얻는 것이 방향성을 잡아나가는 데 큰 도움이 되었습니다(주변에 물어볼 사람이 있다는 건 참 감사한 일입니다). 이렇게 적고 보니, (공부한 기간 1달을 제외한) 1달 반 동안 열심히 달려왔다는 생각이 듭니다. 한 층 성장한 저 자신이 스스로 뿌듯합니다.

이번 프로젝트를 발판 삼아 사용자가 존재하는 프로젝트를 해볼 계획입니다(우연하게도 이 글을 쓴 오늘 그 기회가 생겼습니다). 또한, Jiradbdiagram.io 같은 새로운 협업 도구를 사용해 생산성을 높이는 경험을 해볼 것입니다.

--

--

Yeshin Lee
Yeshin Lee

No responses yet