bravo my life!

[항해99][1주차][WIL] 웹 미니 프로젝트 회고 본문

Study/항해99

[항해99][1주차][WIL] 웹 미니 프로젝트 회고

losajjang 2022. 3. 13. 18:45
728x90

항해99의 시작

항해99가 시작하기 전에는 항상 두려웠다. 심지어 적지않은 금액을 결제를 한 상황에서도 그랬다.

하루 최소 12시간, 주 6일, 99일동안 과연 이 것을 완료할 수 있을지에 대한 걱정이 앞섰다.

항해99가 시작되기 전, 사전제공 강의인 웹개발종합반 강의를 수강할 수가 있었다. 그리 어렵지 않은 수준의 강의였고 큰 어려움 없이 수강을 종료했다. 총 3회를 수강했고 모든 강의의 내용을 이해한 듯한 나는 '나 좀 짱인듯.'이라 생각했고 이 것은 곧 좌절이 되었다.

1주차의 시작

1주차는 웹 미니 프로젝트가 진행되었다.

바로 이 1주차부터 좌절이 시작되었다. 나를 포함하여 총 4인의 팀이 구성되었고 웹페이지의 이름과 컨셉부터 구현해야할 기능들을 협의했고, 곧바로 업무의 분배가 이루어졌다.

내가 구현해야 할 기능은 회원가입, 로그인 기능이었다. 구현해야 할 기능을 협의하면서 앞서 말한 좌절이 시작되었는데, 다른 팀원간에는 적절한 용어를 사용하면서 의사소통을 하고 있었지만 나는 전혀 그렇지 못했다. 그들의 대화에 끼어들만큼의 실력을 갖추지 못함이었다. 내가 알고 있다고 생각한 사전강의에서의 지식은 나의것이 아니었다.

좌절은 하루종일 이어졌지만 이미 결제한 돈과 주변사람의 기대와 더이상 물러설 곳이 없다는 사실, 그리고 밀도있는 삶을 살아보자는 예전의 다짐을 다시 생각하며 다시금 마음을 부여잡았다.

좌절은 딱 하루뿐이었다. 이해하지 못하는 팀원들과의 대화에서 내가 무엇이 부족한지 느꼈으니 그 부분을 채워가면 되는 것이었고, 처음으로 해보는 회원가입, 로그인 기능도 배우면 되는 것이었다. 모르면 배우고 알면 되는것이 불안과 좌절을 떨치는 방법이었다.

해결 과제

  • 회원가입시 비어있는 배열이 db로 저장될 수 있을 것.
  • 회원가입시 아이디 중복체크 및 필요 구문 추가.
  • 최신버전의 JWT패키지 이용시 클라이언트측에서 로그인 불가 문제. .decode('utf-8')구문 삭제.
  • 로그인 여부 확인 후 true시 메인페이지로 리다이렉트.
  • 로그인을 한 상태여도 로그인페이지으로 진입이 가능한 문제를 해결.

미해결 과제

  • 회원가입시 질문카테고리에 있는 체크박스 값을 db로 저장하는 것.

얻은 것들

  - API

API가 무엇인지 사전강의에서 다루어보아서 알고 있지만 어느정도 더 뚜렸하게 알게 되었다. 나는 프로그래밍적인 지식이 없어 쉽게 이해하도록 했다.

내가 이해한 바로는 아래와 같다.

  • API는 프로그램들이 서로 상호작용한 것을 도와주는 매개체
  • 서버와 데이터베이스에 대한 출입구 역할

  - JWT

Jason Web Token. 인터넷 표준 인증 방식.

로그인은 그냥되는 것이 아니다. 쿠키라는 것과 토큰이라는 것을 알아야 한다.

클라이언트에서 로그인시 아이디와 암호를 입력하면, 암호는 해시값으로 암호화된다. 서버는 db에서 해당 정보와 같은 유저를 찾고 만약 존재한다면 JWT를 이용하여 토큰을 만들어 발급한다. 이 토큰은 시크릿키가 필요해서 시크릿키가 없는 임의의 사용자는 접근을 할 수 없다.

토큰을 시크릿키로 디코딩하여 보면 payload가 있는데 이 것은 아이디나 로그인 유효시간 등등의 정보를 담을수 있는 값이다.

발급된 토큰을 클라이언트에 반환하면 일련의 과정은 끝이다.

이 후 토큰은 쿠키의 형태로 저장이 되어 로그인이 필요한 API에 진입시 사용이 된다.

2주차 진입

2주차부터는 알고리즘을 배워보는 주차인데 맛만 본 상태로는 아주 어렵다. 하지만 재미있다.