내가 카카오톡 로그인을 구현하면서 생각한 로직은 이하와 같다. 1. 프론트에서 카카오 로그인 API 이용해서 access token 을 발행 받음 -> 이때 email값을 토큰값에 꼭 넣어줘야함 2. 이메일값을 추출해서 백엔드로 넘겨줌 3. 백엔드는 그 값을 받아서 비밀번호 없이 회원가입을 해줌 4. 로그인시에 기존 로컬 회원가입과 마찬가지로 우리 규칙에 맞는 토큰값을 발행해줌 -> 사용자 입장에서는 토큰이 재발행되는것. 우리의 규칙이란 , 토큰값에 userId값을 넣어주는것 카카오톡 API의 설정에 대해 공식문서를 더 깊이 보면 다른 방법이 있을 것 같긴 한데, 제일 간단하고 빠르게 구현하는것을 목적으로 했다. rest api 에서 토큰을 발행받아올 수 있는 방법도 따로 있는데 (백엔드로 받아오는것) ..
Node.js
내가 카카오톡 로그인을 구현하면서 생각한 로직은 이하와 같다. 1. 프론트에서 카카오 로그인 API 이용해서 access token 을 발행 받음 -> 이때 email값을 토큰값에 꼭 넣어줘야함 2. 이메일값을 추출해서 백엔드로 넘겨줌 3. 백엔드는 그 값을 받아서 비밀번호 없이 회원가입을 해줌 4. 로그인시에 기존 로컬 회원가입과 마찬가지로 우리 규칙에 맞는 토큰값을 발행해줌 -> 사용자 입장에서는 토큰이 재발행되는것. 우리의 규칙이란 , 토큰값에 userId값을 넣어주는것 카카오톡 API의 설정에 대해 공식문서를 더 깊이 보면 다른 방법이 있을 것 같긴 한데, 제일 간단하고 빠르게 구현하는것을 목적으로 했다. rest api 에서 토큰을 발행받아올 수 있는 방법도 따로 있는데 (백엔드로 받아오는것) ..
내배캠 수업을 듣던 중 , 이번 과제 시작이 서버를 객체화 부터였다 기본에 있던 코드들을 Class에 넣어서 import , export 하는 것. 이전에 쭉 하던 하던 방식들로도 잘 실행이 됐었는데 굳이 하는 이유가 뭘까? 뭐가 더 좋아지는 걸까 ? 하는 의문증으로 이 글을 쓰게 되었다 더 좋은 코드 ? 개발은 혼자하는 것이 아니다 이전 회사에서도 이미 다른 개발자들이 다 짜놓은 코드에서부터 시작을 했는데, 그걸 보는게 좋은 경험이 되었던 것처럼 내가 짠 코드들도 , 다른 사람들이 봤을때 이 사람이 뭘 구현하려고 했는지 명확히 보여아 한다는 것이다 훌륭한 개발자들이 만든 규칙들을 잘 지키는게 그 시작이라고 생각한다 객체화(모듈화) 하면 좋은 점 ? 우선 하단에 이전에 내가 이미 짜놓은 서버 부분과 , ..
기존 만들어놨던 것들을 객체화 (class) 하면서 require 들을 모두 import로 바꾸며 에러가 나고 있다 첫 에러는 app.js 첫번째줄부터 ... (node:15356) Warning: To load an ES module, set "type": "module" in the package.json or use the .mjs extension. (Use `node --trace-warnings ...` to show where the warning was created) C:\Users\hyem\Node_kiosk\app.js:1 import express from "express"; ^^^^^^ SyntaxError: Cannot use import statement outside a mo..
결제 기능에서 보유포인트보다 물건의 포인트가 작으면 결제가 되게끔 로직을 구현함에 있어서 트랜잭션의 필요성을 느끼게 되었다. 이런가능성 저런가능성을 생각하다보니 아 이래서 트랜잭션을 쓰는구나 싶었다. 우리는 결제와 잔여 포인트 감소를 원자적으로 처리해서 중간단계에서 실패하더라도 일관성있게 롤백하는 기능이 우선적으로 필요했다. 또한 여러 사용자가 동시에 잔여 포인트를 변경하려고 할때도 충돌을 방지하고 데이터의 정확성을 보장해야했다. 결론적으로 트랜잭션을 통해 변화가 모두 적용되거나 , 모두 적용되지 않게 되기 때문에 지속성도 보장이되고 정확히 빠진 금액이 보장되기 때문에 왜 모두가 트랜잭션을 결제기능에서 꼭 사용했는지 이해가 되었다. 그래서 트랜잭션을 사용하려 하는데 .. 기존에 한 파일내에서 다 끝내는 ..