(Project) WEDAC

trequartista·2020년 7월 10일
0

1차 프로젝트 후 황금같은 한 주 휴식을 취하고 시작했던 GDAC 프로젝트!

1. 프로젝트 및 팀 소개

  • (사이트) 블록체인 사이트 GDAC 클론 프로젝트

  • (구성) 프론트엔드 개발자 2명, 백엔드 개발자 2명, 총 4명으로 구성

2. 사용된 기술

  • (언어, 프레임워크, 데이터베이스) Python, Django Web Framework, MySQL

  • (가상 환경) Miniconda3

  • (암호화, 토큰 발행) Bcrypt, JWT

  • (배포) AWS EC2, RDS

  • (통신메커니즘) CORS headers

3. 내가 맡은 역할 / 부분

  • (모델링) 클론 사이트의 데이터 모델링을 진행

  • (로그인, 회원가입 뷰)

    • 지난 1차 프로젝트에서는 주로 데이터베이스 내에 저장되어 있는 데이터를 가지고 화면에 보여주는 GET 뷰를 주로 담당했기 때문에 2차 프로젝트에서는 POST 뷰를 구현해보고 싶은 마음이 있었다.

    • 또한 1차 프로젝트에서 로그인, 회원가입과 관련된 부분이 다소 아쉬웠던 점이 있었고, 모든 홈페이지에 가장 기초가 되는 부분이라고 판단되어 관련 부분을 담당하게 되었다.

4. 잘한 점 + 아쉬운 점 + 해결 / 개선 방법

  • 좋았던 점
  1. 외부 API를 적용했던 점

    • 이번 프로젝트에서 홈페이지에 가입된 회원이 암호화폐의 거래를 하기 위해서는 이메일 인증, 문자 인증, 계좌 인증의 단계를 거쳐야 했다.

    • 그러나, 계좌 인증은 은행별로 너무 상이한 정보가 많아 축약하여 진행했으며, 나머지 2개 인증을 진행하기로 합의했다.

    • 특히, 문자 인증의 경우 네이버에서 제공하는 API를 활용하게 되었고, 신기했다.

  2. 테스트 코드의 중요성을 알게 된 점

    • 지난 1차 프로젝트와 달리 2차 프로젝트에서는 테스트 코드를 작성해야만 했고, 개발을 진행함에 있어서 TDD가 굉장히 중요하다는 사실을 배우게 되었다.
  3. 팀 분위기가 너무 좋았던 점

    • 2주 간 팀프로젝트를 진행하면서 호흡이 정말 잘 맞았다. 다들 서로 어떤 점이 어려운 지 배려해가면서 난이도를 조절해 가는 모습이 정말 보기 좋은 팀이었다.

    • 또한, 아침 일찍부터 오시는 프론트 분들의 모습을 보고 '9시 출근'제도를 도입하게 되었는데, 이 때문에 매일 10시에 진행하는 Scrum이 아무 문제없이 순조롭게 진행될 수 있었다.

  • 아쉬운 점
  1. 아직은 정말 부족한 나의 역량

    • 이번 프로젝트에서 가장 핵심적인 기능은 실시간으로 거래되는 데이터의 구현이었다. 멘토 분들께서는 웹소켓을 활용한 기능의 구현을 추천하셨지만, 역량의 부족으로 구현하지 못한 부분이 아쉽다.
  2. 동기끼리 함께하는 마지막 위코드에서의 하루였다는 점

    • 늦은 후기지만, 무엇보다도 아쉬웠던 점은 한 공간에서 30명의 동기들 그리고 멘토님들과 함께 코딩하는 모습을 더 이상 볼 수 없었다는 점이 아쉬움과 시간이 정말 빠르다는 것을 실감했던 2차 프로젝트였다.

5. 기록하고 싶은 코드 / 함수 / 로직

  • 네이버 문자 API
class SmsSend(View):
    timestamp = str(int(time.time() * 1000))
    def send_sms(self, phone_number, auth_number):
        headers = {
            'Content-Type'            : "application/json; charset=UTF-8",
            'x-ncp-apigw-timestamp'   : self.timestamp,
            'x-ncp-iam-access-key'    : SMS['ACCESS_KEY'],
            'x-ncp-apigw-signature-v2': make_signature(self.timestamp)
        }
        body = {
            "type": "SMS",
            "contentType": "COMM",
            "from": SMS['SEND_NUMBER'],
            "content": auth_number,
            "messages": [{"to": f"{phone_number}"}]
        }
        body = json.dumps(body)
        requests.post(SMS['API_URI'], headers = headers , data = body)
profile
Slow and steady win the race

0개의 댓글