1차 프로젝트 후기 - 소감 :)

GreenBean·2021년 5월 23일
5
post-thumbnail

1차 프로젝트가 끝났다 유후 🎉
금요일 최종 발표 때 얼마나 뿌듯하던지!

프로젝트 촬영 영상

팀 발표와 클론 사이트 선정

2주 전 오늘, 1차 프로젝트 팀 발표 전날 얼마나 떨렸는지 모른다. 어떤 사이트를 클론하게 될지, 어느 분들과 같이 하게 될지 두근두근. 5주차 월요일 11시 정각이 딱! 되자마자 슬랙 공지로 팀이 발표되었고 다들 번개처럼 자리를 이동해서 함께 모였는데 얼마나 반갑던지. 여태까지 프론트방 백방이 나눠져서 얼굴 보기 힘들었던 프론트 분들과 함께 앉으니 정말 프로젝트 시작이구나 새삼스레 느껴졌다!

우리는 이솝 사이트를 클론 코딩 하게 되었는데 첫날 프론트와 백이 다 같이 상의해서 구현할 페이지와 기능들을 정하고 모델링에 들어갔다. 고난의 시작..! 😵‍💫 사이트를 보는데 왜 이렇게 유동적인게 많은지 ㅋㅋㅋㅋㅋ 성호님과 같이 사이트를 알아볼수록 점점 더 동공이 흔들렸다. 이걸 어떻게 묶어야되지? 혼란스러웠는데 중심 데이터 테이블부터 정하고, 테이블 간의 관계를 생각보면서 차근차근 할 수 있는 부분부터 정리해나갔다.

효율적 vs 비효율적

성호님과 파트를 나누면서 상품 쪽을 맡게 됬다. 기능으로 나누면 상품 리스트, 상품 상세 정보, 필터링, 검색까지. 시작은 가볍게 csv 파일을 작성하고 python uploader 파일을 만들어 데이터를 쌓았다.

shell로 하나씩 쌓던 데이터를 csv를 이용해서 1초만에 처리하니 얼마나 기분 좋던지! 무식하면 손발이 고생이라는 말은 하나도 틀린게 없다며 이래서 사람은 배워야 한다 생각하면서 파일을 돌렸다 ㅋㅋㅋㅋㅋ 여기까진 계획대로 착착 진행됬으나 이후가 문제였는데 view 작업에 들어갈 때 기능에 대해 좀 더 생각해보지 못하고 페이지별 API를 만들기 시작한 것이다..!

상품 상세 정보가 포함된 리스트를 보내주는 하나의 기능을 OpenMenuView, OpenCategoryView, FilteringInMenuView, FilteringInCategoryView, SearchProductView 이런 형식으로 나눠서 만들었다 🥲 그렇게 만들고 생각보다 기능 구현 빨리 됬다고 신나서 기분 좋게 PR을 올렸다 ㅋㅋㅋㅋㅋㅋ

그리고.. 2주차 월요일.... 경훈멘토님의 리뷰를 바탕으로 대대적인 수정에 들어갔는데 그 작업이 목요일 최종 merge되는 순간까지 이어졌다 ㅋㅋㅋㅋㅋ 처음 PR 올릴 때 중복되는 코드가 많은게 찜찜하긴 했었는데 스크롤 내릴 때 그 순간만 느끼고 어디가 문제일지 더 생각하지 않았던게 문제였다.. 처음부터 조금 더 신중하게 생각해서 효율적인 방향으로 접근했다면 다른 기능도 조금 더 구현하고 다듬어 볼 수 있었을 텐데 싶은 아쉬운 생각이 들었다.

처음엔 잘못된 방향 때문에 시간을 버리는 느낌이 들어서 시간이 지나는게 초조하고 아쉬운 마음이 컸다. 그런데 하루하루 지날수록 코드가 나아지는게 보이면서 자연스럽게 마음을 고쳐먹게 됐다. 어설프게 여러 기능 만들기만 하는 것 보다 한 가지 기능이라도 확실하게 마무리 하자는 방향으로 마음먹고부터는 refactoring하는 과정이 재밌어지기 시작했다.

이걸 이렇게 바꿔볼 수도 있구나 이렇게 줄일 수도 있구나! 멘토님의 조언에 따라 그 부분을 더 생각해보면 코드가 개선되는 과정이 재밌었고 마지막엔 이 기능만큼은 다음에 필요하다면 잘 만들 수 있을 것 같다는 근거없는 자신감도 조금 붙게 됬다 🤗

# 아직 많이 부족하지만 그렇게 정리된 ProductListView의 일부 :)

class ProductListView(View):
    def get(self, request):
        menu_id            = request.GET.get('menu_id', None)
        category_id        = request.GET.get('category_id', None)
        skintype_ids       = request.GET.getlist('skintype_id', None)
        productfeature_ids = request.GET.getlist('productfeature_id', None)
        ingredient_ids     = request.GET.getlist('ingredient_id', None)
        search_name        = request.GET.get('search_name', None)

        q = Q()
        q.add(Q(category__menu_id=menu_id), q.OR)
        q.add(Q(category_id=category_id), q.OR)
        q.add(Q(name__contains=search_name), q.OR)

        products = Product.objects.filter(q)

        if skintype_ids:
            products = products.filter(Q(feature__in=skintype_ids)).distinct()
        if productfeature_ids:
            products = products.filter(Q(feature__in=productfeature_ids)).distinct()
        if ingredient_ids:
            products = products.filter(Q(ingredient__in=ingredient_ids)).distinct()

프론트와의 통신

프로젝트 기간 동안 가장 어려웠던게 무엇이었냐고 한다면 프론트와 통신을 맞추는 것이었다고 생각된다. request를 어떻게 주고 받는지 전혀 모르는 상태에서 프로젝트를 시작했던 터라 홈페이지에서 어떤 방식으로 내가 만든 로직이 작동하는지 감을 잡을 수 없었다. 그러다 딱 필요한 시점에 RESTful API 관련 세션을 듣고 내가 알아봐야 할 내용들에 대해 알 수 있게 됬는데 그때 얼마나 후련했는지 모른다! 관련 내용을 공부한 다음 프론트와 상의해서 로직을 수정했다. 처음에 Query string부터 적용해봤는데 해당 페이지를 맡은 도은님과 서버로 연결해봤을 때 데이터가 전달되서 화면에 잘 나타났을 때 얼마나 뿌듯하던지!

마무리 하면서

프로젝트 2주차 수요일이 공휴일이라 팀원들과 근처 카페에서 만났었는데 오전 10시에 모여 폐점 시간인 오후 10시에 헤어졌다. 그 날은 정말.. 시간이 이렇게 순식간에 지나갈 수 있다는 걸 처음으로 느낀 날이었다!! 도은휘성님이랑 같이 점심도 패쓰하고 저녁도 그 카페에서 파는 도넛 하나로 떼우면서 화장실 가는 시간 빼고는 12시간 내내 노트북 앞에 앉아 있었다는게, 그 시간이 2-3시간 처럼 짧게 느껴졌다는게 다시 생각해도 놀랍다 🤭

2주간 많은 일들이 있었는데 함께 한 팀원분들 모두에게 정말정말 감사❤️한 한편 내 자신에게 아쉬운 점이 많았던 것 같다. 시간 투자에 대해서는 할 수 있는 최대한을 담은 것 같아 후회 없지만, 좋은 방향을 더 빨리 찾았으면 좋았을걸 하는 아쉬움이 남는다. 더 많이 해보고 싶었는데..!

마무리 해야 할 시간이 다가올수록 L.O.V.E. 면담에서 영은코치님이 인생에 한 번 밖에 없는 첫 프로젝트라고 말씀주셨던 것이 계속 떠올랐다. 우리 위솝 팀원들과 함께 할 수 있어서 즐거웠고 ✨ 평생 잊지 못할 내 인생 첫 프로젝트를 좋은 결과로 행복하게 마무리 할 수 있어 기쁘다!

Thanks to All of Our Team 💧

❣️Back❣️
듬직하게 같이 힘든 일 헤쳐갔던 마지막까지 고생 많으셨던 든든한 성호

❣️Front❣️
갓도은이란 말로밖에 표현 안되는! 예쁘신데 마음은 더 예쁘신 도은, 팀원들 한명 한명 챙겨주신 스윗하고 듬직한 PM이었던 휘성, 분위기 메이커로 늘 팀원들 힘나게 만들어주신원근

profile
🌱 Backend-Dev | hwaya2828@gmail.com

7개의 댓글

comment-user-thumbnail
2021년 5월 23일

배움을 위한 프로젝트인데 진행하다보면 그걸 잊고 조급해지는 순간이 꼭 오는것 같아요, 그래서 미화님의 "어설프게 여러 기능 만들기만 하는 것 보다 한 가지 기능이라도 확실하게 마무리 하자"는 말이 참 와닿네요 😁😁😁 2차 프로젝트에선 수시로 되새겨야겠어요. 고생많으셨어요 미화님~~2차도 화이팅💖

1개의 답글
comment-user-thumbnail
2021년 5월 23일

정말 미화님은 그냥 천사... 에인졀..... 구현해 주신 필터링 기능까지 완성하지 못해서 아쉬워요😭😭 더 성장해서 올테니 다음에 꼭 같이 다른 프로젝트도 할 수 있길...💜💜

1개의 답글
comment-user-thumbnail
2021년 5월 24일

천사 미화님,, 항상 열심히 하는 모습 보면서 자극을 많이 받습니다!
2차땐 비록 같은 팀이 아니지만 멀리서 응원할게요❤️
화이팅!!🙌🏻

1개의 답글