1차 프로젝트 회고록 _ style'We'

chaerin·2021년 3월 1일
0

1차 프로젝트가 끝이 났다.

이런저런 생각과 함께 우당탕탕 마무리한 이번 프로젝트에 대한 회고록을 작성해 보고자 한다.

프로젝트 소개

우리 style'We'팀은 패션・뷰티 SNS 기반 쇼핑 플랫폼으로서 유행하는 트렌드 아이템을 소개하고 판매하는 styleshare라는 사이트를 클론했다. SNS 중심의 커뮤니티와 쇼핑 페이지가 연동되어 있는 사이트로서 더 많은 데이터와 상관관계를 가지고 있음에 집중하며 클론코딩하게 되었다.

사실 이번 프로젝트를 진행하게 되면서 처음 접하게 된 사이트였는데 SNS + 쇼핑몰 이라는 점이 독특하고 흥미롭게 다가왔다.

☑️ 페이지를 기준으로 아래와 같이 나누어 목표를 설정했다.
1. 로그인/회원가입 페이지
2. 메인페이지(피드 메인 페이지)
3. 피드 상세 페이지
4. 상품 상세 페이지(피드 상세 페이지와 연결)
5. 장바구니 페이지(추가 구현)

프로젝트 진행 과정

데이터 모델링

우리팀은 이 과정에만 일주일을 꼬박 썼다.
크게 user, feed, product, order 네개의 앱으로 나누어서 데이터 모델링을 시작했다.

이제와서 하는 얘기지만 처음에는 데이터 모델링 시간이 무서웠다..ㅠㅠ 부족한 나를 정면으로 마주하는 시간이었기 때문이다. 그런데 승연님과 일주일 넘게 데이터 모델링 작업을 하면서 점점 흥미를 느끼는 내 자신을 보게 되었다.

'이젠 완벽해~~' 싶을 때마다 새롭게 나오는 데이터들의 연관관계라던지 작업중이던 ERD 프로그램에 추가되는 테이블들이 마냥 싫지 않았다. 새로운 것을 발견했다는게 되려 재밌었다. (모델링만 했으면 좋겠다는 생각도 아주 잠깐 했다 🙃...)


그렇게 완성된 ERD. 빨간색 테이블이 user 데이터를 나타내고, 노란색 테이블은 feed 데이터, 파란색 테이블은 product 데이터, 자주색 테이블은 order 데이터를 나타낸다. 프로젝트 내내 수정과 보완이 이루어졌다.

내가 맡은 부분


사이트에 처음 접속했을 때 접하게 되는 메인페이지 보여질 데이터를 쏴주는 역할을 맡았다.

스타일쉐어 메인 페이지는 sns기반의 피드(게시글)들로 이루어져 있다. 이 중 몇몇의 피드는 상품의 후기로도 사용되기도 한다. 따라서 해당 피드에는 상품이 등록되어 있고 이 또한 메인 페이지에서 확인가능하다.

메인 페이지에서는 특정 데이터를 수정하거나 등록하지 않기 때문에 get 메소드만을 사용하여 뷰를 작성했다.

  • 뷰를 만들면서 고려해야 했던 부분
    • 상품후기로 사용된 피드일 경우 해당 상품정보 출력
    • 댓글이 있다면 가장 최근에 등록된 2개만 보여줄 것
    • 프론트에서 요청한 개수만큼의 피드 출력

오류 수정 + 가독성

메인 페이지에는 크게 세가지의 데이터를 다룬다. 피드, 상품 그리고 댓글이다.

처음에는 무작정 코드를 작성해 프론트와 통신해 보았는데 통신과정을 통해 내 코드에 어떤 문제점이 있는지 알 수 있었다. 바로 해당 데이터가 없더라도 있는 경우와 동일한 형태로 전달해야 한다는 사실이다. 즉, 빈 딕셔너리를 전달하더라도 그 형태는 유지해줘야 한다는 것이다.

피드 중 상품의 정보를 포함하는 피드가 있고 없는 피드가 있고, 댓글이 존재하는 피드가 있고 없는 피드가 있다. 처음 내가 짠 코드대로라면 상품이나 댓글이 존재할 시에는 문제없이 데이터가 전송되지만 없는 경우에는 오류가 생기는 것이다.

데이터가 있는 경우, 없는 경우를 if-else로 나누어 코드를 작성했고 위의 문제점을 맞이하고서는 else구문에 빈 딕셔너리를 추가하는 식으로 수정을 했다. 이런 과정을 겪은 코드가 썩 보기 좋은 코드는 아님을 느끼고 있었지만 일단 정상적으로 연동되어 데이터가 전달된다는 점에 마냥 기뻐했던 나............

추후 여러차례 코드 리뷰를 받고 리팩토링 후 코드가 확 줄어들었다. 코드를 작성한 나조차도 읽기 힘들었던 코드가 가독성이 높아져 재탄생했다.

이번 프로젝트를 통해 얻은 나만의 자산

협업에서 필요한 것

소통!!!! 소통!!! 무조건 소통이다!!!

특히나 프-백 간의 소통.

프론트와 백 간에 소통이 원활히 이뤄지지 않으면 서로 갈피를 못잡게 되는것같다. 서로가 원하는 것이 다르고, 다르기에 맞춰야할 부분이 생기는데 소통에 결핍이 생기면 그 팀은 그냥 와장창 깨져버리는것이나 다름없다고 생각한다.
우리 팀도 처음에는 조금 아주 조금 삐거덕했다. 모두가 프로젝트가 처음인지라 어느정도로 세분화하고 명확하게 의견을 전달해야하는지에 대한 기준이 확실하지 않았던 것 같다. 매일 아침 진행했던 스탠딩미팅에서 다른 부분은(진행상황에 대한 공유 및 계획 등) 제쳐두고 프-백 간의 소통에 대한 이야기로 그 날의 회의를 꽉 채웠던 날이 있었다. PM을 맡았던 승현님께서 중심을 잘잡아서 양쪽의 이야기를 잘 들어주시고 정리해주셔서 서로 답답했던 부분들을 해소할 수 있었던 시간이 될 수 있었다.

생각의 힘을 길러준 팀원들

이번 프로젝트에서 개인적으로 의미 있게 다가온 것이 있다면 바로 우리 백엔드 승연님의 스무고개

승연님은 승연님 자신, 또는 상대방이 잘 이해했는지 확인을 위해 질문을 여러번 하신다.

스스로 항상 개념이 부족하다고 생각했고 또 거기에 대한 해결방법..? 어떻게 개선하면 좋을지에 대해 고민하던 나에게는 그녀의 스무고개가 한줄기의 빛✨ 같은 존재로 다가왔다.

프로젝트 초반에는 몰아치는 질문에 정신을 못차렷다.......😵🤯
개념도 확실치 않고 내가 하고자 하는 말을 내 자신조차도 정리하지 못한 상태이니 당연히 그럴수밖에 😂

그런데 점점 스무고개에 익숙해져가고 익숙해지면서 대답을 구체화하게 되니 질문의 수도 줄어드는 것을 느꼈다....!!!! 저만 느낀거 아니죠 승연님?!?!

승연님의 스무고개로 인해서 질문과 대답을 구체화하고 나 스스로 먼저 정리를 한 채로 대답(또는 질문)을 해야겠다는 나만의 작은 목표이자 배움의 방법을 터득하게 되었다. 이 부분에 대해서 너무 감사드리고 앞으로 나 자신에게 잘 적용해서 좋은 방향으로 나아가고 싶다!

나를 한번 더 돌아보는 계기

공부하자! 아직은 부족한 나

이번 프로젝트를 진행하면서 내 부족한 점이 무엇인지를 알 수 있었다. 또한 최근 나태해진 내 자신을 채찍질하게 되는 계기가 되었다. 1차 프로젝트가 끝난 지금은 위코드 과정의 반이 지난 시점이기도 하다. 그동안 얼마나 성장했는지 스스로에게 물었다. 대답은 "10점 만점에 4점....?" 아마 누구보다 내 자신이 더 노력해야 하고 배워야 할 것이 많음을 알고 있다. 이번 프로젝트를 마치면서 나를 재정비하는 시간과 앞으로의 나를 설계하는 시간을 가져볼 생각이다.

'사람'에 대한 나의 생각

나이가 들수록 사회 생활을 하게 될수록 주변의 사람들을 어떻게 대해야 하는지 또 나는 어떤 사람이 되어야 하는가에 대한 고민이 끊이지가 않았다. 어느 순간부터 투명한 벽을 하나 치고서 타인을 대하기 시작했고 그것은 내 자신에게는 상처가 되지 않을지언정 관계에 있어서는 그닥 좋지만은 아님을 알게 되었다.

사람간의 관계에 있어 마냥 좋을수만은 없다는건 너무나도 명백한 사실이고 진리(?)이다. 모두가 나를 좋아할 수도 없고 나 또한 모두를 좋아할 수 없으니 말이다. 여전히 나는 사람과 관계에 대한 고민을 꾸준히 하는 중이지만 이번 프로젝트가 마무리하며 든 생각은 한 마디로 이렇다.

"일단 겪어봐!"

나는 스스로를 '나는 알면 알수록 진국인 사람이야'라고 생각하는 사람이면서😇(^^...) 왜 타인을 대할 때는 그렇게 하지 않았는지 의문이다. 타인을 대하는 데 있어서 누구나 어렵고 어색한데 일단 그 사람을 겪어본다면 그리 어렵지 않은 일일 수도 있지 않을까.



🌻 1차 프로젝트를 마무리하며

#가독성 #코드리뷰 #list comprehension #소통 #스무고개 #협업 #경험 #부족함 #기대 #재밌자나~? #팀원 #styleshare #클론 #하지만 #우리는 #style'We' #발전 #django #python #orm #crud #aquerytool #데이터 모델링 #정현님 #경토님 #승현님 #승연님 #규보님 #감사합니다 #2차 프로젝트 #열심히 #화이팅 #성장하자

0개의 댓글