본문 바로가기

728x90
반응형
백엔드
728x90
반응형
8

Access Token + Refresh Token JWT 인증 Refresh token 사용 이유 Access Token(JWT)를 통한 인증 방식의 문제 제 3자에게 탈취당할 경우 보안에 취약하다는 점입니다. 유효기간이 짧은 Token의 경우 그만큼 사용자는 로그인을 자주 해서 새롭게 Token을 발급받아야 하므로 불편합니다. ⇒ 유효기간을 늘리면, 토큰을 탈취당했을 때 보안에 더 취약해지게 됩니다. “유효기간을 짧게 하면서 좋은 방법이 있지는 않을까?”라는 질문의 답이 바로 "Refresh Token"입니다. Refresh Token Access Token과 똑같은 형태의 JWT 로그인 시 Access Token과 동시에 발급되는 Refresh Token은 긴 유효기간을 가지면서, Access Token이 만료됐을 때 새로 발급해주는 열쇠가 된다. ex. Ref.. 2021. 9. 10.
Javascript는 비동기를 어떻게 처리해 - 콜백함수 시리즈 목차 이 글은 시리즈 글입니다. 이번 글에서는 자바스크립트에서 처음으로 비동기 작업을 다뤘던 방식인 콜백함수에 대해 알아볼 것입니다. 기본적으로 자바스크립트가 비동기로 동작하지 않는다는 사실은 저번 글에서 다루었죠! 자바스크립트가 비동기함수를 어떻게 처리하는지 동작 원리를 모르시는 분들은 이전 글을 참고해보세요! Javascript는 비동기를 어떻게 처리해 - 동작 원리 Javascript는 비동기를 어떻게 처리해 - 콜백 함수 Javascript는 비동기를 어떻게 처리해 - 프로미스 Javascript는 비동기를 어떻게 처리해 - async await 콜백함수 예제 자바스크립트를 비동기 처리하기 위해 제일 처음으로 등장했던 방식은 콜백함수를 이용해 처리하는 것이었습니다. 요즘은 이 방식을 잘 사.. 2021. 1. 20.
CORS 이슈 해결하기 cors는 cross origin resource sharing의 약자로 개발할 때 많이 발생하는 이슈 중 하나입니다. 특히 최근에는 서버와 프론트의 ip 주소가 달라 이런 경우가 더 많이 발생하고 있는데, 이 이슈는 브라우저에서 요청 못하게 막는 거여서 제대로 해결하려면 어려운 부분이죠. cors가 뭔지 먼저 알아봅시다. CORS의 의미 cors에서 말하는 origin은 url에서 프로토콜(https) + 호스트(www.naver.com) + path(/users) + 쿼리(?sort=asc&page=1) + fragment(#foo)로 이루어진 부분을 말한다. 여기에 포트번호가 있다면 포트번호까지 합친 것이 origin 이고 포트번호가 없다면 기본포트인 80을 사용한다는 의미입니다. 여기서 포트번호까.. 2021. 1. 18.
Spring Boot 프로젝트 생성 백엔드 대기업 모집 문서를 보면 거의 대부분 적혀있는 프레임워크 중 대표적인 것이 있죠. 바로 자바 스프링입니다. 저는 Node.js 위주로 공부를 해왔었는데, 스프링이 도대체 뭐길래 이렇게 많이 찾는지, 어떤 차이점이 있고 어떤 장점이 스프링을 사용하게 하는 건지 공부해보려고 합니다. 이제부터 스프링을 공부해 보고자하는 초보 백엔드 개발자로써 제가 따라한 기본 프로젝트를 차근차근 설명해보겠습니다. Dependency Injection, Inversion of Control Spring에서 가장 핵심적인 개념으로 DI / IoC 가 있습니다. 스프링은 사용자가 컴포넌트를 관리하지 않고, 프레임워크가 컴포넌트를 관리합니다. 여기서 컴포넌트는 어플리케이션이 실행되게 해주는 코드를 말하고 대표적으로 뷰 컨트롤.. 2020. 5. 22.
3. Heroku 에 MySQL 생성 & async await [개발/백엔드 & 서버] - 2. Express, Heroku 라우팅 빌드해서 배포 2. Express, Heroku 라우팅 빌드해서 배포 [개발/백엔드 & 서버] - 1. Heroku 에 Node Express 올리기 Heroku 에 Node Express 올리기 간단하게 Express 프레임 워크를 사용한 Node 백엔드 서버를 Heroku 서비스에 올려보도록 하겠습니다. Heroku는 aws처럼.. donologue.tistory.com 연재물입니다. 이전 부분이 궁금하시다면 위 게시물을 읽고 와주세요! 저번 시간에는 간단한 라우팅으로 api 작성 후 빌드해서 배포하는 아주 간단한 예제를 해보았습니다. 이번에도 백엔드 구조 잡기라고 할 수 있는데요. DB 연결을 해서 Heroku 서버에서도 잘 연결.. 2020. 3. 1.
2. Express, Heroku 라우팅 빌드해서 배포 [개발/백엔드 & 서버] - 1. Heroku 에 Node Express 올리기 Heroku 에 Node Express 올리기 간단하게 Express 프레임 워크를 사용한 Node 백엔드 서버를 Heroku 서비스에 올려보도록 하겠습니다. Heroku는 aws처럼 물리서버 없이도 서버를 구동시켜주는 좋은 서비스에요! 무료로 사용할 수 있는 서버의 범.. donologue.tistory.com Heroku 설정을 안 보신 분들은 먼저 위의 이전 연재물을 보고 와주세요. Heroku를 사용하면 더 간단하고 무료로 서버를 배포할 수 있게 도와줍니다. 라우팅 이번 편에서는 간단히 api 라우팅을 하는 것만 알아보도록 하겠습니다. MySQL 연동하는 것까지 이번 화에서 올리려고 했더니 너무 길어질 것 같아서 다음.. 2020. 2. 27.
1. Heroku 에 Node Express 올리기 간단하게 Express 프레임 워크를 사용한 Node 백엔드 서버를 Heroku 서비스에 올려보도록 하겠습니다. Heroku는 aws처럼 물리서버 없이도 서버를 구동시켜주는 좋은 서비스에요! 무료로 사용할 수 있는 서버의 범위도 훨씬 넓구요. 하지만 url이 뒤에 herokuapp이 붙는다는 걸 생각해두셔야합니다. 간단한 서버 만들기 $ mkdir name $ cd name $ yarn init 먼저 폴더를 만든 후 yarn init 으로 package.json을 만듭니다. yarn init 필요한 필드만 입력하시고 엔터쳐서 넘어가셔도 됩니다. 이후 이이름 폴더 내에 .gitignore 파일을 만들어 node_modules를 미리 추가해두면 git에 업로드할 때 node_modules 내의 라이브러리들이.. 2020. 2. 26.
aws ec2 mongoDB 원격 접속 후 mongoose 설정 안녕하세요! 몽고DB를 AWS 서비스를 이용해서 원격 접속을 하는 방법을 알아보도록 하겠습니다. 먼저 aws ec2 인스턴스에 적용해야하니 ec2 인스턴스가 필요하겠죠? 인스턴스를 생성하시고 나서 보안그룹 설정시 27017 포트를 모든 아이피 (0.0.0.0)에게 열어주어야 합니다. 혹은 특정 아이피 구간에만 27017 포트를 허용해주는 게 보안에 더 좋은데, 이 방법은 제가 몰라서 찾아봐야 할 듯 합니다. User 생성 커맨드 툴을 이용해서 아래와 같이 ec2 에 접속해줍니다. 그리고 mongo를 입력해 mongoDB에 접속하면 됩니다. > use 디비이름; > db; 디비이름 그리고 사용할 데이터베이스로 접속해줍니다. //not work db.createUser({user: "developer", .. 2020. 1. 30.