2차 프로젝트 회고록 _ tumbluv

chaerin·2021년 3월 23일
0
post-thumbnail

1차 프로젝트가 끝나자마자 2차 프로젝트가 바로 시작됐다.

☑️ 프로젝트 진행 기간 : 21.03.02 ~ 12 (약 2주)
☑️ 팀 구성 : 프론트엔드 2명, 백엔드 3명
☑️ 클론 사이트 : 텀블벅

사이트 소개

텀블벅 (tumblbug)은 대한민국에서 서비스 중인 대표적인 크라우드 펀딩 사이트 중 하나로 예술, 문화 컨텐츠를 중점적으로 다루고 있다.

사이트 선정 이유

텀블벅의 특징은 가입과 동시에 구매자이자 창작자가 될 수 있는 즉, 다른 사람의 프로젝트를 살수도 본인이 직접 다른 사람에게 자신의 프로젝트를 팔 수도 있는 펀딩 사이트이다. 특별한 권한을 갖고 있지 않더라도 프로젝트를 등록할 수 있다는 점을 이용하여 프로젝트를 등록하고 등록한 프로젝트를 확인하는 flow를 구현해 보고자 했다.

주요 기능

  1. 소셜 로그인
  2. 프로젝트 등록
  3. 펀딩(프로젝트 밀어주기)

2차 프로젝트 목표

1. unit test 코드 작성하기

2차 프로젝트에서는 데이터가 없이도 내가 작성한 로직을 테스트할 수 있는 유닛테스트 코드를 작성해 보는 것을 목표로 했다. 로그인/회원가입 부분에서는 1. 이메일로 발송된 인증번호를 확인하는 함수 2. 로그인 함수를 테스트하는 유닛테스트 코드를 작성했고, 프로젝트 상세 뷰와 연관된 유닛테스트 코드를 작성하였다.

class TestValidateCodeView(TestCase):		  # 인증번호 확인 view unit test

    def test_validatecodeview_valid_code(self):	  # case1. 유효한 인증번호 
   
    def test_validatecodeview_need_code(self):    # case2. 인증번호가 입력되지 않았을 때

    def test_validatecodeview_invalid_code(self): # case3. 인증번호가 맞지 않을 때 (유효하지 않은 인증번호)

    def test_validatecodeview_time_out(self):     # case4. 인증 시간 초과

    def test_validatecodeview_time_in(self):      # case5. 인증 시간 내로 인증했을 경우


class TestSignInView(TestCase):			# 로그인 view

    def test_signinview_success(self):		# case1. 로그인 성공

    def test_signinview_invalid_user(self): 	# case2. 존재하지 않는 사용자

    def test_signinview_invalid_password(self):	# case3. 비밀번호 틀림

    def test_signinview_invalid_key(self):	# case4. Key Error


class TestProjectDetailView(TestCase):	# 프로젝트 상세 view

    def test_projectdetailview_get_project_success(self):	
    # case1. 프로젝트 데이터 불러오기 성공(비회원_로그인안했을시)
    
    def test_projectdetailview_get_user_project_success(self):	
    # case2. 프로젝트 데이터 불러오기 성공(회원_로그인했을시)
    
    def test_projectdetailview_get_project_not_exists(self):	
    # case3. 프로젝트 데이터가 존재하지 않을 때

2. git rebase로 merge하기

2차 프로젝트에서는 git rebase를 사용하여 merge했던 부분이 1차 프로젝트와 달랐던 부분이다. git rebase를 사용하여 merge를 하게 되면 git merge로 merge하는 것보다 커밋 히스토리가 깔끔하게 남기 때문에 다른 사람들의 작업을 보기가 편해진다는 장점이 있다.

그렇다면 git rebase는 무엇일까? git rebase는 말 그대로 커밋의 base를 다시(re) 정하는 작업이다.
예를 들어 $ git rebase master dev 라는 명령어를 풀어서 설명하면 master와 dev 브랜치의 공통 조상 커밋부터 dev 브랜치까지의 모든 커밋의 base를 master 브랜치의 위치로 바꿔라 라는 의미이다.

프로젝트 진행 과정

항상 시작은 데이터 모델링!


보라색으로 표시된 테이블들은 project app, 초록색 테이블은 주문정보에 대한 데이터를 다룰 order app, 파란색 테이블은 user app, 마지막으로 주황색 테이블은 구매자가 판매자에게 프로젝트에 대한 문의 데이터를 다룰 message app을 나타낸다.

회원가입 / 로그인 + 소셜로그인

2차 프로젝트의 로그인 파트에서는 소셜로그인 기능과 이메일 인증 기능을 구현해 보는 것을 목표로 했다. 소셜로그인은 지윤님이 맡아서 해주셨다. 소셜 로그인은 직접 해보고 싶어서 추후 다시 블로깅해보려 한다!

정윤님과 함께 이메일 인증 기능을 맡게 되었다. 이메일 인증 기능은 두 가지로 나뉘는데 이메일로 인증 번호를 발송하고 해당 번호를 입력하는 방식과 해당 이메일로 인증 링크를 보내고 그 링크를 타고 들어감으로서 인증절차가 이뤄지게 하는 방식이 있다.

django의 메일을 보낼 수 있는 내장 모듈을 사용하여 인증번호를 보내고 확인하는 전자의 방식으로 이메일 인증을 구현했다.

프로젝트 올리기

프로젝트 메인 리스트 + 상세 페이지

2차 프로젝트를 마치며

회의는 꼭 하기

2차 프로젝트 기간은 3개월차에 있을 기업협업을 대비하여 이력서를 쓰고 지망하는 회사를 선택하는 시간과 겹치게 된다. 그래서 그런지 마음이 붕붕 떳고 프로젝트에 완전히 집중하지 못했던 것 같다. 프로젝트 2주차에 접어들면서 매일 아침 진행하던 스탠드업미팅도 흐지부지 안하게 되었고 백과 프론트가 서로에 대해 모른 채 하루하루 흘러갔다. 프로젝트를 마무리해야하는 날이 다가왔고 다들 멘붕에 빠져버렸다....... (이렇게 다시 한 번 소통의 중요성을 깨닫습니다........ 😭)

프로젝트 끝. 두 달 끝.

두 달간 내가 얼마나 성장했느냐에 대해 생각해보았다. 아직 너무나도 너무나도 너무나도 !!!! 부족하고 배울것도 넘쳐난다. 하지만 두 달 전의 나와 비교해보면 잘해내고 있다고 토닥여 주고 싶다. 비록 거북이마냥 속도는 느릿느릿하지만 포기하지 않는 지긋한 사람이 되자고 다짐하면서 2차 프로젝트 끝!

1개의 댓글

comment-user-thumbnail
2021년 4월 28일

ㅋㅋ 채린님 같이 해서 너무 재밌었어요! 고생 많았슴다~ 취업도 부셔버립시다

답글 달기