Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Mission 2] 회원가입 엔드포인트 #24

Open
soheon-lee opened this issue Jul 27, 2020 · 0 comments
Open

[Mission 2] 회원가입 엔드포인트 #24

soheon-lee opened this issue Jul 27, 2020 · 0 comments

Comments

@soheon-lee
Copy link
Collaborator

soheon-lee commented Jul 27, 2020

✔️ 모든 서비스는 회원가입에서 시작됩니다. 사용자를 우리 서비스의 회원으로 등록하는 과정에 대해 진행하겠습니다.
✔️ 구현하셔야 하는 내용 이후에는, 해당 코드를 효율적으로 작성하기 위한 정보들이 나열되어 있습니다.
✔️ 코드리뷰시 중점적으로 다루는 내용이니 꼭 숙지하시기 바랍니다.

01. user app을 생성해주세요.

앱 이름에서 그 용도를 유추할 수 있어야 합니다. 사용자와 관련된 기능을 구현할 앱이므로, user 또는 account등의 이름으로 앱을 생성해주세요.

02. 사용자 테이블을 생성해주세요.

  • models.py에 사용자를 관리할 클래스를 생성합니다.
  • 클래스 이름은 📍파이썬 코딩 컨벤션을 따라주세요.
  • 아래 규칙들을 지켜 생성해주세요. 관련 PR & Review를 참고하시면 더 좋은 코드를 만드실 수 있습니다.

✅ 클래스 및 함수, 변수 이름 설정

클래스 이름, 함수 이름을 포함하여 모든 변수 이름을 짓는데에는 규칙이 있습니다. 위 파이썬 코딩 컨벤션을 따라주세요.

  • 📍 관련 PR & Review

    모든 변수의 이름은 명확하게

    image

    table 이름은 class 이름과 동일하게, 복수형으로

    image

    image

✅ 코드 간격 정렬

코드는 크게 =, :, import 를 기준으로 같은 간격으로 정렬해줍니다. 복잡한 코드를 좀 더 읽기 쉽게 해줍니다.

  • 📍 관련 PR & Review

    import 기준으로 코드 정렬

    image

    '=' 또는 ':' 기준으로 코드 정렬

    image
    image

03. 회원가입 뷰를 작성해주세요.

  • 생성한 사용자 클래스를 불러옵니다. 한 번에 모든 클래스를 import 해서는 안됩니다. 내가 사용할 클래스를 정확히 지칭해주세요
  • 인스타그램에 회원가입 할 때에는 사용자 계정(이메일)을 필수로 필요합니다.
  • 인스타그램에 회원가입 할 때에는 비밀번호도 필수로 필요합니다.
  • 이메일이나 패스워드 키가 전달되지 않았을 시, {"message": "KEY_ERROR"}, status code 400 을 반환합니다.
  • 회원가입시 이메일을 사용할 경우, 이메일에는 @.이 필수로 포함되어야 합니다. 해당 조건이 만족되지 않을 시 적절한 에러를 반환해주세요. 이 과정을 email validation이라고 합니다.
  • 회원가입시 비밀번호는 8자리 이상이어야만 합니다. 해당 조건이 만족되지 않을 시, 적절한 에러를 반환해주세요. 이 과정을 password validation이라고 합니다.
  • 회원가입시 서로 다른 사람이 같은 전화번호나 사용자 이름, 이메일을 사용하지 않으므로 기존에 존재하는 자료와 중복되어서는 안됩니다. 적절한 에러를 반환해주세요.
  • 회원가입이 성공하면 {"message": "SUCCESS"}, status code 200을 반환합니다.
  • [추가 구현 사항] -> email validation 또는 password validation 과정에서 정규식을 사용해보세요.

✅ 모듈을 import 하는 순서 및 규칙

모듈을 import 하는 데에도 순서가 있습니다.

  1. python 모듈,
  2. django 모듈,
  3. 내가 만든 클래스

순서로 import 해주시고, 각 1,2,3번 사이에는 빈 줄을 삽입해주세요.

  • 📍 관련 PR & Review

    import 순서와 간격이 맞지 않은 경우

    image

    부적절한 import *

    image

✅ Pythonic Coding

파이썬은 말하듯이 코딩하는 스타일을 지향하고 있습니다. 아직 파이썬에 익숙하지 않기 때문에, 몇가지 스타일만 예시로 체험하도록 하겠습니다.

  • 📍 관련 PR & Review

    Truthy / Falsy 한 값은 그 자체로 평가함

    image

    image

    🛎 Truthy / Falsy 에 대해 공부해보세요

    불필요한 else는 사용하지 않음

    image

✅ Error Handling

언제나 정상적으로 작동하는 코드만 있다면 얼마나 행복할까요? 하지만 정상적인 코드는 언제나 엄격한 에러 핸들링에서 나온답니다. 일어날 수 있는 버그를 최대한 많이 핸들링하는 습관을 들이셔야 합니다.

  • 📍 관련 PR & Review

    에러 메세지도 통일해주기 코드는 어제나 통일감과 가독성이 중요합니다. 에러메세지 또한 그 양식을 통일하여, 코드를 읽는 이로 하여금 이해가 쉽도록 작성하여야 합니다.

    image

    Error catching의 좋은 예 - 에러 핸들링은 자세하게 적절한 에러 핸들링은 어떤 오류가 발생하였는지 상세히 알려주기 때문에 디버깅을 쉽게 만들어줍니다. 따라서 발생할 수 있는 여러 상황에 대해 에러 핸들리을 해주는 것이 좋습니다. 회원가입시 발생할 수 있는 오류 사항에는 다음과 같은 경우가 있습니다.
    • 이메일이나 비밀번호라는 데이터가 들어오지 않았을 때
    • 계정(이메일, 아이디)의 형식이 맞지 않을 때
    • 비밀번호의 형식이 맞지 않을 때
    • 이미 가입한 유저가 회원가입을 시도할 때

    image
    image

    Error catching의 안좋은 예 - 모든 에러를 한 번에 잡기

    image

04. 회원가입 뷰를 호출할 url을 작성해주세요

✅ 적절한 url 작성

view를 잘 작성하셨다면, 이에 걸맞는 좋은 url을 붙여주는 것 까지가 좋은 엔드포인트를 생성하는 과정입니다. 작성한 함수에 적절하며, 그 의미에 맞는 url을 생성하셔야 합니다.

  • 📍 관련 PR & Review

    url이 명확하지 않은 경우

    image

    슬래시(/)를 알맞게 붙이지 않은 경우

    image

    🛎 REST_API 에 대해 공부해보세요

회원가입 과정을 확인해주세요

  • httpie를 이용하여 서로 다른 10개의 계정을 회원가입 시켜주세요.
soheon-lee added a commit that referenced this issue Nov 4, 2020
[박재용}[Mission 2] 회원가입 엔드포인트 #24
@NoahShin NoahShin added Status : 리뷰 진행중 Pull requests that update a dependency file and removed Status : 리뷰 진행중 Pull requests that update a dependency file labels Nov 4, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants