라벨이 실무인 게시물 표시

MongoDB와 VScode 이용한 드라이빙app 개발 일지 (2022.4.10)

 1. 카카오 API 사용을 통한 토큰 발급  일단 카카오 로그인을 구현하려면 카카오에서 제공하는 api를 이용해야 했다.  https://developers.kakao.com/docs/latest/ko/message/rest-api 공식 카카오톡 api 문서이다. 이전에 말했던 대로 우리는 사업자 등록이 5월로 예정되어있어 아직 카카오톡으로 전화번호 등 몇몇 필요한 정보를 가져올 수는 없었다.  따라서 카카오톡 선택 요구 정보를 프로필, 성별, 이메일로 한 후 토큰 발급을 실행했다.  전체적인 프로세스는 다음과 같았다. (첫 등록일 경우) 첫 등록 확인 - join 등록, 카카오톡에 인증 요청 - 카카오톡 토큰 발급 완료시 - 토큰 처리해 - 필요 정보 확인 후 자동 회원가입  (기존 사용자의 경우) 기존에 등록 확인 - kakao login 등록 - 카카오톡 로그인 -  인증 완료시 프로젝트 로그인 토큰 발급까지 연동 첫 등록의 경우 기존의 회원가입 미들웨어를 이용함과 동시에 위의 카카오 api를 이용하여 새로운 엔드포인트를 만들었다.  기존 사용자의 경우 조금 복잡하게 구현하다 카카오에서 발급 받은 토큰에서 정보를 읽어 기존의 사용자인지 확인하는 미들웨어를 짜고 구현해두었던 로그인 토큰 발급과 연결해서 새로운 엔드 포인트를 만드는 방식으로 해결하였다. 2. 벡엔드 관리, 보수  기존의 sms send 모듈에 관련하여 네이버 api 계정의 등록자 변경관련 논의와 현재 있는 미들웨어들의 표시형식 통일, 중복 부분 수정 등의 작업을 따로 진행했다. 또한 카카오톡 로그인 구현 중 로그인 에러가 나와 그것 또한 수정했다. 3. 개발환경  개발은 github,VScode, postman, mongoDB를 활용해 진행하고 있으며 특히 카카오 Api를 실험하는데 가상으로 토큰을 발급받고 인증하는 것이 가능한 postman이 큰 도움이 되었다. 4. 팀을 떠나며  초기에 아무...

MongoDB와 VScode 이용한 드라이빙app 개발 일지 (2022.2.10)

이미지
 실제로 진행되는 프로젝트이므로 코드는 공개하지 않습니다. 1. 비밀번호 변경 비밀번호를 변경해야 하는 상황이 왔다. 하지만 그냥 아이디, 비밀번호만 하기에는 보안이 너무 취약하다.. 따라서 본인인증을 수단을 생각하니 SMS인증을 시도했다. 어차피 우리 어플리케이션을 사용하려면 전화번호를 입력해야했다. 따라서 이제 SMS 전송 API를 공부하기 시작했다. 2. SendSMS모듈 제작 일단 기본적으로 네이버에서 제공하는  SENS(Simple & Easy Notification Service) 서비스를 이용하기로 했다. 그래서 공식 REST문서를 읽어가며 만지작 거리던 중 계속 오류가 났다. 하루종일 머리를 싸메다가 결국 발견한건 request라는 함수를 더이상 사용하지 않는다는것 즉 나는 요청을 보낼 수 없는 코드를 가지고 하루종일 머리를 싸멘 것이였다. 결국 axios로 변경하니 정상적으로 메일이 발송되었다. 수많은 노력의 흔적들.jpg 3. 인증번호 저장 및 인증 절차 이제 가장 큰 문제가 남았다. 인증 번호를 발송한 것 까지는 좋았으나 인증번호를 확인하고 인증 절차를 구성하는데 자꾸 인증번호를 넘기지 못하는 오류가 났다. 결국 캐시메모리를 사용하는 라이브러리를 임포트하고 나서야 인증이 가능해졌고 그 뒤의 비밀번호 재설정의 경우는 크게 어렵지 않게 구현하였다.  4. 다음 Task 이제 다음은 카카오톡으로 로그인이다. 카카오톡으로 로그인을 구현하려면 토큰, 인증, 카카오톡 API등 공부해야 할게 더 많아. 산넘어 산이다. 잘 할 수 있을까 걱정이 된다.   참고로 네이버 SENS에서 문자의 경우 50통까지는 매달 무료로 하며 그 이후 한통당 7원이 부과된다. 알림톡의 경우는 무료가 없으며 각 5원이 부과됨으로 본인에게 맞는 걸 사용하기를 바란다. 우리는 아직 개발중이라 일정 비율 무료인 SMS를 사용해 개발하였다.

MongoDB와 VScode 이용한 드라이빙app 개발 일지 (2022.1.21)

 실제로 진행되는 창업 프로젝트이므로 소스 코드는 없습니다. 1. 개발 환경 구축  평소 jetbrain IDE만 쓰던 나는 VScode는 생각보다 낯설었다. 그래도 어쩌랴 빨리 적응해야지.. 하고 부랴부랴 설치 후 개발환경을 세팅하기 시작했다. 물론 수많은 error가 났지만 나에게는 든든한 stackoverflow와 Google이 있었기에 간신히 세팅을 완료하고 mongodb와 연결해 서버를 돌렸다. 2. 첫 미팅 첫 개발팀 미팅에서 현재까지 진행된(혹은 구현된) 정도를 보았고 앞으로 나가갈 방향을 소개하셨다. 생각보다 할일이 많았다. 내가 할 수 있을까 일단 기본적인 작업부터 시작했다. 3. 암호화 그리고 postman 분명 어렵지 않은 hash화를 맡아서 진행하는 중 이였다 하지만 단 한번도 써보지 않은  VScode와 지식이 0 인 app 개발이라는 2연타를 맞고 나는 그대로 그로기 상태가 되었다. 구글도 스택오버플로우도 소용이 없었다. 결국 천천히 다시 공부를 시작했고 모 학우의 조언을 받아 postman을 프로젝트와 연결해 시험 환경 구축에 완료했다.  4. 암호화 그리고 postman2 구축이 끝나니 실제 task는 생각보다 간단했다. bcrypt를 사용해 코드를 몇줄 넣고 postman으로 요청을 보내니 순식간에 끝났다. 그 후로 조금 손을 보고 몇가지 수정사항을 변경하기는 했지만 솔직히 하루가 채 안걸렸었다. 사실 진정한 적은 개발환경 구축이었던듯하다. 5. 다음 Task 다음 Task는 비밀번호 재설정이다. bcrypt를 이용했기 때문에 복호화는 안되고 비밀번호를 잊으면 재설정하는 방식으로 해야하는데 이를 구현하려면 sns api를 통한 인증번호 발신 + 인증번호 확인 후 token발행 + 비밀번호 재설정 구현 까지 3연타이다. 연구실을 나오면 이제 앞으로 이 Task에만 매달려야 할 것 같다.