G9 클론코딩 프로젝트 | 백엔드

Psj·2020년 11월 29일
0

Python

목록 보기
27/41

첫 클론코딩 프로젝트

한달간 매일 지하철 막차를 타며 pyhon, django 공부를 했지만 아직 부족한점이 많음에도 불구하고 1차 프로젝트를 할 시간이 다가왔다.
우리 동기들이 추천한 여러가지 사이트들이 클론코딩프로젝트 명단에 올라왔고
나는 G9라는 이커머스 사이트를 클론코딩하게 되었다.
우리의 팀명이자 클론코딩한 사이트명은 O9O9(오구오구)였다 :)

우리가 클론코딩한 G9


https://www.g9.co.kr/

우리의 애정이 담긴 O9O9

프로젝트 작업기간

2020.11.16 ~ 2020.11.27

백엔드 구현 기능

  • 로그인, 회원가입
  • csv파일을 이용한 데이터 read
  • 장바구니
  • 문의하기게시판 C.R.U.D
  • 회원가입시 인증코드메일발송, 가입환영 메일 발송

모델링


우리의 모델링
모델링 배울때 쉽게 생각했다가 막상 이커머스사이트를 모델링 해보니 정말 쉽지않았다.
거의 3일을 고민하며 나를 잘 짠거같아서 시작했는데 막상 개발하다보면 이것도 빼놓고 저것도 빼놓고, 이건 여기에 들어갈 필요성이 있는가? 에 대한 여러가지를 생각이 들게 했다. 모델링은 솔직히 아직도 어려운거같다. 웹사이트 모델링에 대한 많은 생각과 공부가 더 필요하다... 모델링고수가 되기위해...

회원가입, 로그인

회원가입에서 4개의 엔드포인트를 로그인에서 1개의 엔드포인트를 만들었다.

회원가입 -> 아이디 중복확인, 인증코드 발송, 인증코드 확인, 회원가입
로그인 -> 로그인하기

아이디 중복확인

처음 아이디 중복확인 테이블을 만들때 check_user라는 테이블을 하나 만들어 아이디를 입력하고 중복확인을 눌렀을시에 기존유저테이블에서 입력한 아이디가 존재하지 않는지 확인하고 존재하지 않으면 중복확인 테이블에 그 아이디를 추가하여 회원가입시에 중복확인 테이블에 아이디가 존재하면 회원가입을 할 수 있게 로직을 만들었었다.

하지만 .. 멘토님께서 중복확인 테이블은 기존유저테이블에 아이디가 있는지만 확인하면 충분하고 회원가입을 못하게 하는것은 프론트엔드에서 하면 된다고하셔서 따로만든 중복확인테이블을 삭제하고 로직에서는 기존유저테이블에 아이디가 중복되는지만 확인되게 간단히 바꾸었다.

패스워드

패스워드는 유저가 입력한 입력값을 인코딩하고 salting하여 테이블에 create할때는 hash형태의 스트링 형식으로 저장되게 하였다.

인증코드 발송, 인증코드 확인

위와같은 이유로 중복확인테이블을 제거했었다가 인증코드 발송기능을 추가하기 위해 다시 제거한 테이블을 살려 인증코드 테이블로 바꾸어 사용했다.
인증코드 발송을 누르면 입력한 이메일로 난수문자가 발송되고 바로 인증코드 테이블에 해당 난수문자가 추가 되는방식이었다.

이후 인증코드를 입력하고 확인을 누르면 인증코드 테이블에 해당 인증코드가 있으면 인증이 되는 방식을 사용했다.

회원가입

회원가입을 위한 여러 정보들을 입력하고 최종적으로 회원가입을 누르면 if문으로 먼저 회원가입이 불가능한 경우를 차례대로 거르고 불가능한 경우를 모두 통과하면 회원가입을 축하한다는 이메일을 유저에게 보내고 유저테이블에 입력한 정보가 추가되게 로직을 구성했다.

로그인

로그인시에 유저 아이디는 유저테이블에 존재하면 다음으로 넘어가게 하였고 비밀번호는 bcrypt.checkpw 를 이용하여 현재 유저가 입력한 비밀번호와 유저가 전에 회원가입할때 저장한 비밀번호가 일치하는지 확인하여 정상확인되면 jwt를 이용하여 토큰을 만들어 프론트엔드에 response되게 구성하였다.

프론트엔드와 소통의 중요성

인증코드 발송기능이 추가구현 사항이라 프론트에서 이미 회원가입창을 모두 만들어 놓은상태였는데 나랑 민영님 둘만의 생각으로 이거넣는건 간단하니까 이렇게 추가하면 되겠다고 생각하고 미리 로직을 짜놓고 담당인 혜수님한테 갔는데 우리가 짠 로직대로 하면 생각보다 어려울거같다고 했다. 로직을 다시 만들어야했지만 우리가 제대로 로직에대해 말을하지않았던건 우리의 잘못이였기때문에 힘들지만 다시 만들었고 이 계기로 프론트엔드와 소통의 중요성을 제대로 느꼈다.

O9O9 프로젝트를 마치며

나에대한 평가를 한다면 생각보다 잘했다고 얘기해주고싶다. 하지만 부족하다... 왜냐면 아직 배울것이 너무너무 많기때문이다. 배울것이 많지만 배우는 고통을 뚫고 하나하나 내것으로 만들때의 쾌감이 정말 좋다.

생각보다 잘했다고 평가한 이유는 프로그래밍을 하나도 모르던 내가 위코드에서 한달을 배우고 이렇게 장고와 파이썬을 이용하여 어떠한 웹사이트의 기능을 구현하고 프로그래밍에 대해 조금이나마 이해할수 있는 능력을 가지게 되었기 때문이다.
위코드에 들어오기전에 정말 걱정이 많았다. 한달을 배우고 바로 다음달에 프로젝트를 하는것이 가능한 일인가? 나뿐만 아니라 위코드를 고민했던 누구든 한번쯤 의심해봤을것이다.
나는 이번 프로젝트를 마치고 "노력하면 할수있다" 라는 자신감을 얻어서 뿌듯했고 더 열심히 노력해야겠다는 생각을 가졌다.

바쁜와중에도 항상 질문에 성심성의것 대답해주시던 멘토님들에게 정말 감사하다는 말씀을 드린다.

그리고 O9O9 프로젝트를 함께한 우리 프론트와 백엔드 팀원들 모두 정말 착하고 재밌는 분들이여서 프로젝트기간동안 스트레스 없이 즐겁게 개발할수 있었던것 같아 감사하다.
프로젝트 팀이 구성되기전에 혜수님, 성보님이 바로 옆자리여서 재밌는 한주를 보냈는데 또 같은팀이 되어서 신기하고 좋았다. 그리고 현지님은 프로젝트내내 멘토님같이 팀원들을 잘 알려줘서 힘이 많이 되었고 지혜님도 PM으로서 팀이 하나가되게 많은 노력을 해주고 챙겨줘서 잘 달려왔던거같다. 민영님도 프로젝트를 하며 많이 친해졌는데 백엔드에서 마지막까지 잠도못자고 불평없이 열심히해주어서 정말 감사하다.

이제 다음 프로젝트에는 모두 흩어져 새로운 팀원들과 새로운 프로젝트를 하겠지만 이번과 같이 각자 맡은 자리에서 모두가 열심히 잘 해서 만족스럽게 2차 프로젝트를 마무리 하기를 바란다.

profile
Software Developer

0개의 댓글