고잉메리호와 함께 항해를 시작하도록 하자.

WIL ?

Weekly I Learned 는 내가 이번 주에 뭘 했고, 뭘 배웠는 지 정리하는 공간이에요! 

이번주  내가 했던 일 

링크 : https://github.com/WhatYourStack/WhatsYourStack

 

GitHub - WhatYourStack/WhatsYourStack

Contribute to WhatYourStack/WhatsYourStack development by creating an account on GitHub.

github.com

일단 웹 미니 프로젝트를 완성 했습니다! Flask를 이용해서 팀원들과 제 자신의 자기소개를 하는 페이지를 만들었는데요, 제가 맡은 파트는 "로그인 파트" 였습니다. 

 

처음 로그인 파트를 맡고 어? 로그인이면 일단은 DB에서 ID / PW를 받아와서 유저의 입력과 맞는 지 아닌지만 판별하면 되는 거 아니야? 라는 생각으로 코드를 짰는데요, 

 

네. 현실이 그렇게 쉽게 흘러가진 않더라구요. 

 

몇 가지 이슈가 있었습니다. 

  1. PW(비밀번호)는 DB에서 bcrypt에서 해싱을 거친 값이 왔는데, 해싱 된 값인 줄 몰라서 로그인 할 때 유저의 입력을 그대로 받아서 DB와 비교해서 계속 로그인이 안 돼서 뭐지... 하고 앓다가 회원가입 부분 보고 비밀번호 저장 방식이 달라서 아..! 뭔가 잘못되었구나 라는것을 깨닫고 로그인 로직에서도 bcrypt.check_password_hash를 이용해서 app.py에서 로그인 함수를 구현했습니다. 
  2. 근데 로그인을 하면 아이디와 비밀번호가 맞으면 OK! 라는 것만 만들고 로그인 되었을 때 어떤 다른 처리 ( 예를들어 로그인 했으면 로그인 버튼은 안 보여야겠죠 )를 해야하는데, 로그인 유지를 어떻게 해야하지.. 라는 이슈가 있었습니다. 이부분은 기술매니저님께 질문해서 키워드를 받았는데, jwt, cookie, session, local storage 이런걸 알아보다보면 해결할 수 있을것이다 라는 말을 듣고, 찾아보다가 세션을 이용해서 app.py에 세션을 만들어서 로그인한 유저의 정보를 올려놓고, 로그아웃하면 정보를 없애면 되겠다! 라고 생각했습니다. 
  3. 근데 구현을 어떻게 하지.. 하다가 flask 공식문서에 flask_login이라는 라이브러리가 있어서 공식문서를 이용해서 해결했습니다! 

이런 이슈를 겪어보니 다른 로그인 방법도 구현해보면 좋겠다! 라는 생각도 해봤고, 로그인에 대한 지식이 늘어난 것 같아서 뿌듯했네요. 앞으로도 로그인 기능은 언제든 필요할 텐데, 새롭게 알게되는 로그인 방법이 있다면 또 적어보면서 제 지식의 나무를 늘려가는 주인장이 되겠습니다. 

1. 개발 공부가 처음이신가요? 처음이 아니라면, 어느 정도 기간을 가지고 어떻게 학습을 하셨나요?

  • 군대 전역하고 더이상은 물러날 곳이 없다! 라는 생각으로 뭐든 해보자 싶어서 개발을 공부했습니다.
    학교에서 복수전공을 하게되면서 2021년도 하반기부터 본격적으로 CS공부를 했어요
    22년도 상반기에는 교내 동아리 멋쟁이 사자처럼 이라는 동아리에서 기획/디자인 파트를 공부했는데, 웹 기획보다는 웹 개발이 더 취향에 맞는 것 같아서 23년도부터 웹 개발을 공부했습니다.

2. 내가 항해99에 참여한 계기는 무엇인가요?

  • 개발에서 가장 중요한 것은 사용자의 피드백을 받아 개선이 이루어지는 순간이라고 생각합니다. 프로젝트를 만드는 것에도 많은 노력은 필요하지만, 실제로 배포해보면서 일어나는 다양한 이슈를 해결할 수 있는 대처능력 또한 필요하다고 생각했습니다. 항해 99에서는 총 4번의 팀 프로젝트를 경험하고, 현업과 동일한 수준으로 사용자 및 현직 개발자의 피드백 또한 받을 수 있다고 하여 항해 99에 참가하게 되었습니다.

3. 개발자의 역할을 수행하는 데에 있어 나의 강점과 연관된 부분은 무엇이라고 생각하나요?

  • 저의 역량은 "소통" 이라고 생각합니다. 개발에서도 늘 소통하는 것이 중요하다고 생각합니다. 자기가 맡은 코드에 주석을 꼼꼼하게 달고, 코드와 깃도 컨벤션에 맞추어 올리는 것 또한 소통의 하나의 방식이라 생각해 컨벤션에 맞도록 커밋하려고 노력하고 있습니다.

4. 항해99 수료 후, 어떤 모습으로 성장하고 싶나요?

  • 실제 프로젝트를 진행해보며, "나는 ~ 이런 프로젝트를 진행했다." 로 끝나는 자기 소개가 아닌, "나는 ~ 이런 프로젝트를 진행했다. 프로젝트를 진행하며 "~ 한 문제점이 있었다. 그래서 ~ 를 이용해서 해결했다. 그렇게 해결하고나니 (예를들어) 동일 유저수 기준으로 트래픽수가 기존 대비 80% 가량 줄어서 더욱 안정적으로 운영할 수 있었다" 와 같이 수치로 말할 수 있는 경험을 갖고싶습니다.