1주차 WIL

장동희·2023년 2월 12일
0

항해99

목록 보기
1/8

풀스택 미니 프로젝트

항해99에 참여하여 1주차 풀스택 미니 프로젝트를 진행하였다. 팀원 4명에서 오전9시부터 다음날 오전7시까지 진행하는 프로젝트였다.

프로젝트 제목 : 99플로우

스택오버플로우를 벤치 마킹하는 사이트
로그인, 회원가입 기능을 JWT를 이용하여 구현
글 등록, 댓글 기능, 좋아요, 싫어요 ⇒ 수에 따라서 보여주는 방식을 다르게 해준다.
적은 글은 회원만 수정, 삭제하는 기능을 넣어 만들기로 했다.

와이어프레임

API:

API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 뜻한다.

API 명세서:

JWT:

JWT는 JSON Web Token의 줄임말이며 웹표준 (RFC 7519) 으로서
두 개체에서 JSON 객체를 사용하여 가볍고 자가수용적인 (self-contained) 방식으로
정보를 안전성 있게 전달해줍니다JWT 는 필요한 모든 정보를 자체적으로 지니고 있습니다. JWT 시스템에서 발급된 토큰은, 토큰에 대한 기본정보, 전달 할 정보 (로그인시스템에서는 유저 정보를 나타내겠죠?) 그리고 토큰이 검증됐다는것을 증명해주는 signature 를 포함하고있습니다.

JWT 활용: 로그인

   if result is not None:
      payload = {
         'id': id_receive,
         'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=18000)
      }
      token = jwt.encode(payload, SECRET_KEY, algorithm='HS256')
      return jsonify({'result':'success', 'tokens':token})
   else:
      return jsonify({'result':'fail', 'msg': '아이디/비밀번호가 일치하지 않습니다.'})

클라이언트 로그인 요청이 들어오면, 서버는 검증 후 클라이언트 고유 ID등의 정보를 Payload에 담는다.
암호화할 비밀킬를 사용하여 JWT(토큰)을 발급한다.

어려웠던점 :

항해99에서 처음으로 하는 프로젝트로 오전 9시부터 다음날 오전 6시까지 프로젝트를 완성하고 발표를 진행하였다.처음 하는 프로젝트라 경험이 적어 기능을 정하는 부분에서 하루동안 진행하기에 다소 넓은 소코프로 계획하였다. 21시간이라는 시간안에 프로젝트의 주제를 정하고 와이어프레임을 만들며 프로젝트를 완성해야하기때문에 시간이 굉장히 부족하여 프로젝트를 완성을 하지못했다.

느낀점 :

프로젝트를 진행할 때 1차, 2차를 나눠 필수적으로 들어가야하는 기능을 먼저 만들고 시간이 여유가 있을때 2차 프로젝트를 진행하여 추가기능을 만들어야겠다라는 다짐을 하게되었으며 21시간이라는 시간동안 잠도 자지않고 코딩에 시간을 투자하여 단기간안에 실력이 향상 되었다. 또한 팀원들과 소통하여 같이 문제를 해결해가는 경험을 하여 협업의 중요성을 알게되었으며 가장 많은 문제를 일으킨 깃 허브를 더 많이 공부하여 다음 프로젝트를 진행할때 한층 더 성장한 모습으로 참여해야겠다고 다짐하였다.

0개의 댓글