도커 컨테이너에서 호스트 네트워크 연결 curl http://host.docker.internal:20001host.docker.internal 이름을 사용해 호스트 연결
배운것들
ESLint?ESLint는 Javascript 코드에서 발견된 패턴을 식별하고 보고하는 툴로 버그 방지 및 코드의 일관성을 높히는 것을 목표로 합니다.그동안 문법적인 오류만 잡아주고, 사용하지 않은 변수를 알려주는 역할을 하는 것으로만 알고 있었는데 우아한 테크코스 프리코스를 진행하면서 너무나도 편리한 여러가지 기능이 있다는 것을 알게 되었습니다.정말 편리한 기능들이 많아서 Prettier와 같이 앞으로도 계속 사용할 것 같아서 사용법을 정리해두려 합니다. 설치ESLint를 사용하기 위해서는 NodeJS가 설치되어 있어야 합니다. (NodeJS 호환성 정보: ^12.22.0, ^14.17.0, >=16.0.0)ESLint는 npm 또는 yarn 을 사용해서 설치할 수 있습니다.npm install esl..
HTTP 는 상태가 없는 stateless 프로토콜이기 때문에 웹 서버는 요청을 보낸 클라이언트가 로그인한 회원인지에 인증하는 작업이 필요합니다. 인증 방식은 세션 기반 인증과 토큰 기반 인증으로 나뉘고, 두 방식의 동작 및 장단점에 대해 설명하도록 하겠습니다. 세션 기반 인증 세션 일정 시간 동안 같은 사용자(브라우저)로 부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지시키는 기술 동작 방식 클라이언트가 로그인을 요청하면 서버는 세션 ID 를 키로 갖는 세션을 메모리에 저장 서버는 세션 ID 를 쿠키에 담아 클라이언트에게 전달 클라이언트는 로그인 이후 모든 요청에 세션 ID 가 담긴 쿠키를 함께 전송 서버는 클라이언트에게 받은 세션 ID 가 세션 메모리에 있는지 확인하고, 응답을..
Node JS 를 사용하다보면 process.env.PORT 와 같이 특정 값에 접근하는 것들을 자주 볼 수 있다. 보통 포트 번호 또는 데이터베이스 URI, 클라이언트 시크릿 값들을 저렇게 숨겨놓고 사용한다. 사용법은 간단하다. 일단 dotenv 패키지를 설치한다. yarn add -D dotenv 이후 프로젝트의 루트 디렉터리에 .env 파일을 만들고, 해당 파일에 자신이 사용하려는 내용을 작성한다. PORT=4000 MONGO_URI=mongo.com 이제 이 값을 사용하려는 위치에서 아래와 같이 사용하면 된다. import dotenv from 'dotenv'; dotenv.config(); app.listen(process.env.PORT); dotenv.config() 를 통해, 위에 작성한 ..
나이스페이 결제 프로세스 브라우저는 나이스페이에 인증 요청을 보냅니다. 나이스페이는 요청을 검토 후 인증 토큰을 포함한 결과를 브라우저로 전송합니다. 브라우저는 인증 토큰 및 구매 정보를 WAS로 전송합니다. WAS는 브라우저에게 받은 내용은 바탕으로 나이스페이에 승인 요청을 보냅니다. 나이스페이는 WAS에게 승인 결과를 전송합니다. WAS는 결제 결과에 대한 내용을 브라우저로 전송합니다. 나이스페이는 인증 토큰을 포함한 인증 결과를 브라우저에서 받습니다. 따라서, 인증 결과를 WAS로 전달해주는 과정(3번)이 필요합니다. 이니시스 결제 프로세스 브라우저는 이니시스에게 인증 요청을 보내고, 이 때 Redirect URL 을 함께 전송합니다. 이니시스는 Redirect URL로 인증 토큰을 포함한 결과를 ..
OAuth 2.0을 사용해 소셜 로그인을 할 때의 장점은 우리의 서비스가 가지고 있는 사용자 정보를 최소화 할 수 있는 데에 있습니다. 사용자가 우리 제품이 아닌, 네이버, 카카오, 구글 등에 로그인하여 우리의 서비스를 사용할 수 있고, 이 때 우리는 사용자의 정보 중 필요한 부분(이메일, 이름, 프로필 사진 등)을 네이버, 카카오, 구글에게 요청해 받아옵니다. OAuth 2.0 구조 OAuth 2.0의 구조는 간단합니다. 사용자가 우리 제품의 소셜 로그인 버튼을 클릭하여 해당 사이트에 로그인 할 경우 `인가 토큰` 이 발행 됩니다. 우리는 이 인가 토큰을 다시 소셜로 전송해 `액세스 토큰` 을 받을 수 있습니다. 이 액세스 토큰으로 우리는 사용자의 정보를 요청하고 받을 수 있습니다. 인가 토큰 받기 인..
Typescript를 사용해 nodejs - express 환경 구현하는 방법에 대해 알아보도록 하자. 1. Typescript 글로벌 설치 npm install -g typescript 타입 스크립트를 글로벌로 설치해주자. 2. 프로젝트 생성 npm init npm 프로젝트를 생성한다. 3. 필요 모듈 설치 npm install express --save npm install ts-node typescript nodemon @types/node @types/express --save-dev 4. tsconfig 설정 tsc --init 위의 명령어를 입력하면 tsconfig.json 파일이 생성되는데, 아래와 같이 수정해주면 된다. { "compilerOptions": { "lib": [ "es5", ..
만약 자신의 GitHub에 SSH 키 등록이 되어 있지 않다면 GitHub에 SSH 키 등록하기를 보고 키를 등록해주세요. 디렉터리 만들기 일단 repository 디렉터리를 만들어야 한다. mkdir test 로 만들면 되고, test 대신 자신이 사용하고 싶은 이름을 사용해도 된다. git 시작하기 cd test git init 위의 명령어를 실행하면 git으로 해당 디렉터리를 관리할 수 있게 된다. branch 만들기 git branch -M develop 여기서도 마찬가지로 develop 대신 다른 이름을 입력해도 된다. initial commit 하기 보통은 README 파일을 만들어서 initial commit을 진행한다. echo "# test" >> README.md git add READ..
git init을 사용해 만든 레포지토리를 GitHub 원격 저장소에 올릴 때, 마지막 명령어로 git push -u origin master 를 작성하는데, 이 때 SSH 키를 사전에 GitHub에 등록하지 않았다면 아래 사진과 같은 에러가 날 것이다. SSH 키 생성 키를 생성하기 전에 키가 존재하는지 확인해야 한다. cd ~/.ssh ls 위의 명령어를 쳤을 때, id_rsa 파일과 id_rsa.pub 파일이 존재한다면 GitHub에 SSH 키 등록하기 부분으로 넘어가도 좋다. 없는 사람들은 그냥 따라치면 된다. ssh-keygen 위의 입력을 하면 키 생성 프로세스가 실행된다. 처음으로 id_rsa 파일의 위치를 설정하라는 질문이 나오는데 그냥 엔터를 누르면 기본 경로에 파일이 생성된다. 그럼 암..
새로운 커밋이 올라오거나, 이슈가 발생했을 때 Slack으로 메시지를 전달하는 것을 소개하겠다. 일단 Slack의 앱 부분에 앱 추가버튼을 클릭하면 여러가지 앱이 나타난다. 그럼 검색창에 github를 입력하고 이를 설치하면 github 앱이 추가된다. 이제 GitHub와 연결하는 부분이다. 처음에 들어가면 Connect GitHub account 버튼이 있을 것이다. 이를 클릭하자. 그럼 아래와 같은 윈도우 브라우저가 나타날 것이다. 그럼 저기 초록색 버튼을 누르면 인증 번호가 나타나는데 이제 슬랙으로 다시 돌아와서 Enter code 버튼을 누르고 해당 인증 번호를 입력하면 연결이 완료된다. 그리고 아래처럼 슬랙에 메시지를 보내면 된다. /github subscribe owner/repository ..