node

Node.js

[Node.js] iamport 결제 실패 시의 상황 대처법

결제시스템은 결제를 한다고 다가 아닙니다. 아이엠포트를 결제를 한다고 치면 프론트에서 결제 창이 뜨고 결제 완료가 됩니다. 그리고 그 결제완료된 내용을 서버로 보내고 서버에선 디비에 저장하게 됩니다. 그런데 프론트에서 결제 승인이 났는데 뜻밖의 이슈로 서버가 다운됐다고 쳐봅시다. 그럼 유저 입장에서 돈은 빠졌나갔는데 자신의 결제기록을 볼 수 없죠? 그러므로 안전하게 이를 핸들링하기 위해 상태값 중 결제 대기 상태를 만듭니다. 그래서 유저가 프론트에서 아이엠포트를 이용하기 전에 결제 대기 상태로 서버에 데이터를 보내줍니다. 결제 대기를 포함한 아이엠포트 서버 코드 예시들을 보여드리겠습니다. 우선 결제 대기 로직입니다. // 결재 대기 로직 WaitAccept : async (req, res) => { tr..

Elasticsearch

[Elasticsearch] 03. db연동하기

전차수들에서 엘라스틱 서치를 세팅하고 노리 형태소 분석기도 적용했습니다. 이제 데이터베이스에 있는 값을 엘라스틱 서치와 연동해서 검색해 봅시다. 일반적으로 엘라스틱 서치는 로그스태시를 사용하여 디비와 연동을 하지만, 버전을 맞춰줘야 하고 설정파일도 만져줘야 하는 등 까다롭고 m1에서 호환이 잘되지 않는 단점이 있습니다. 결국엔 로그스태시도 계속 켜놓은 상태로 일정 시간 주기로 스케줄링을 해주는 원리로 돌아가기에 배치서버 만들어서 돌리는 것과 성능에는 별 차이가 없기도 하고, 직접핸들링 하는 게 저는 더 편하기 때문에 로그스태시 같은 배치서버를 직접 만들겠습니다. 1. 서버 세팅 node 서버에 express 프레임워크 세팅해서 진행하겠습니다. 서버세팅법과 crud 부분은 아래의 링크를 참고해 주세요. h..

Node.js

[Node.js] prototype 사용예시

1. 클래스 선언을 한다. class User{} 2. 객체를 가져오는 방법은 아래의 양식이 된다. const user = new User() 이 객체의 프로토타입은 User.prototype 이 된다. 3. 객체에 새로운 프로퍼티를 추가해줄 수 있다. User.prototype.Hello = () => { console.log('user') } Hello라는 메소드가 프로퍼티로써 추가되었다. 이 프로퍼티는 콘솔에 user 를 출력해준다. 4. user라는 이름으로 선언된 User 프로토타입 안에 있는 Hello 프로퍼티를 콘솔로 찍어본다. console.log(user.Hello()) user가 출력될 것이다.

Server

Docker를 이용하여 Nginx 로드밸런싱하기

Nginx&Docker 콜라보레이션으로 로드밸런싱을 해보겠습니다. 프로젝트를 생성하고 index.js에 아래와 같은 내용을 작성했습니다. Dockerfile을 생성한 후 명령어를 이용하여 docker image를 추가합니다. 저는 hjng1이라는 이름의 이미지를 생성했습니다. 포트 번호 6000과 6001번으로 Nginx 로드밸런싱을 해보겠습니다. 도커 포트는 6000과 6001으로 하고 앱포트는 8081로 하여 도커 컨테이너를 생성했습니다. 컨테이너 이름은 각각 retry1과 retry2로 생성해주었습니다. 서버가 에러없이 잘 켜지는것을 확인했으면, Nginx설정을 해줍니다. nginx.conf 파일에서 upstream node_server를 아래와 같이 작성해줍니다. upstream node_serv..

AWS

Docker Compose를 이용하여 EC2환경에서 배포하기

자신의 프로젝트를 도커 컴포즈를 이용하여 AWS 환경에 배포해봅시다. 1.프로젝트 세팅 우선 각각 클라이언트와 서버에 도커 파일을 생성해줍니다. 루트에 docker-compose.yml 파일을 생성하여 도커 컴포즈 컨테이너를 만들기 위한 세팅을 합니다. 도커 파일 생성방법은 공식문서를 참고했습니다. https://docs.docker.com/get-started/08_using_compose/ git에 프로젝트를 push 합니다. 2. aws 세팅 AWS에서 데이터베이스는 RDS를 이용하여 연결하고, EC2 인스턴스를 생성해서 ppk키를 만들어옵니다. 제 블로그에도 자세한 방법이 포스팅되어 있습니다. https://daily-coding-diary.tistory.com/5 1.aws EC2 인스턴스 생성..

Node.js/TypeScript

[Node.js] express + TypeScript로 회원가입 구현

타입스크립트 맛보기 연습을 해보겠습니다! 우선 프로젝트 폴더하나 생성하고, package.json을 작성해볼까요 package.json { "name": "TypeScript", "version": "0.0.1", "main": "app.ts" } 타입스크립트로 만들 프로젝트니 main은 당연히 js가 아니라 ts파일이겠죠 app.ts를 파일을 생성하세요. 미리 필요한 내용을 작성해두겠습니다. import express from 'express'; import cors from 'cors'; const app = express(); app.use(cors()); app.use(express.json()); app.use(express.urlencoded({ extended: false })) app.li..

Node.js/MyTodoList

[Node.js] 01. 시작하기(express)

Node.js와 React를 이용하여 나만의 Todolist를 만들어봅시다. Todolist를 이용하면 기본적인 데이터 처리 기능 CRUD(create, read, update, delete)를 구현할 수 있으므로 모든 API 시작과 끝을 맛볼 수 있게 됩니다. 학습목록 NodeJS MySQL Express Sequelize React 1. 환경세팅 에디터는 vscode를 이용하도록 하겠습니다. 없으신 분들은 설치하시면 됩니다. 제가 사용하는 vscode extension에 관한 정보는 추후에 업데이트 하도록 하겠습니다. node와 mySQL도 자신의 환경에 맞게 설치합니다. 2. 원하는 위치에 MyTodolist폴더를 생성합니다. 저는 onedrive때문에 바탕화면이 아닌, user 디렉토리 안에 my..

hyun_ji
'node' 태그의 글 목록