2024/01 5

BE (3) - Express 백엔드 token 관련 해킹 예방하기

Access Token 의 문제점 여기서 지칭하는 Access Token은 단순히 아래 코드와 같이 jwt.sign() 을 이용해 반환받은 auth 관련 token 입니다. const accessToken = jwt.sign(userObject, secretKey); Refresh Token을 사용하지 않는 Express backend는 jwt.sign()을 통해 반환받은 Access Token이 하나만 있다면 해당 token을 갖고 계속 인증이 필요한 요청을 수행할 수 있습니다. jwt.sign()은 실행할 때마다 다른 token을 반환하지만 기본적으로는 과거에 반환한 token은 만료가 되지 않기 때문에 보안 상 관리하기 까다롭습니다. 임시 해결법 jwt.sign()으로 token을 발행할 때 tok..

개발 2024.01.31

BE (2) - PUT vs. PATCH

HTTP method는 기본적으로 서버에 어떤 작업을 수행할 것인지에 대한 정보를 전달하기 위해서 사용됩니다. 데이터를 서버에서 받아올 때 사용하는 GET method, 데이터를 서버에 등록할 때 사용하는 POST method, 서버에 있는 데이터를 삭제하기 위해 사용하는 DELETE method 등이 있습니다. 여러 method 들 중에서 데이터를 수정할 때 사용하는 method는 PUT 과 PATCH 두 가지가 있는데 이 둘의 차이점에 대해서 알아보도록 하겠습니다. PUT method 데이터를 '수정'한다는 느낌보다는 '교체'라는 단어가 더 잘 들어맞습니다. 데이터의 모든 필드의 값을 입력해야 되고 데이터 전체가 교체됩니다. //PUT { "username": "dongsunseng", "email"..

개발 2024.01.25

BE (1) - res.json() vs. res.send() vs. res.end()

res.json() vs. res.send() 기능상으로 수행하는 작업은 거의 동일합니다. res.json() 와 res.send()로 object를 보냈을 때의 차이점 object를 보내는 작업을 처리하는 순서에서 차이가 있습니다. res.json(): 1. 전달하려는 object를 문자열로 stringify합니다. 2. 만약 Content-Type header이 세팅되지 않았을 경우 res 객체의 Content-Type header를 this를 사용해서 "application/json"으로 세팅 해줍니다. 3. res.send()를 사용해서 stringify해준 object를 보내줍니다. → 1. res.json(object) 2. res.send(string) res.send(): 1. res.se..

개발 2024.01.24

복귀 - 2024.01.12

이전 포스트에 블로그를 꾸준히 해보겠다는 포부를 보였지만 갑자기 잠수를 탔었던 이유와 앞으로의 계획에 대해 말해보려고 한다. 일단 이번 학기는 학교 공부를 좀 열심히 해봐야겠다는 생각이 있었다. 뉴욕 본교에서 첫 학기여서 잘하고 싶기도 했고, 이번 학기는 장학금을 받고 싶다는 생각이 있었다(엄마의 무언의 압박 ㅋㅋ). 열심히 한 결과 나름의 성과는 있었다. 성적도 잘 나와서 장학금을 받을 수 있을 것 같고 이번학기는 사이드 프로젝트로 전에 만들었던 학교 수강평 웹사이트를 React Native로 모바일 앱으로 만들었다(85% 정도 완성). 이에 대한 자세한 내용은 '학교 수강평 사이트 개발 및 운영 도전기' 시리즈에서 다시 다루도록 하겠다. 앞으로의 계획 일단 졸업까지 한 학기를 남겨두고 있고 졸업 후에..

카테고리 없음 2024.01.13