본문 바로가기

Web/Backend10

[Koa] Koa에서 apidoc 사용하기 Swagger보다 가볍고, 설치가 쉬운 apidoc을 Koa에서 사용해보겠습니다. 직접 API와 응답을 기재해야 하기 때문에, 작은 프로젝트에서 적합할 것으로 생각됩니다. npm install apidoc -g 우선 전역으로 apidoc을 설치해준 후, 프로젝트 루트 디렉토리에 apidoc.json이라는 설정 파일을 만들어 다음 내용을 작성해줍니다. { "name": "이름", "version": "1.0.0", "description": "페이지 설명", "title": "페이지 제목", "url": "http://localhost:4000/apidoc" } 그 후 apidoc이 읽어올 파일에 /** * @api {get} /api/user/:id Request User by ID * * @apiVer.. 2023. 6. 5.
[백엔드 스터디] 2. 서버를 띄워보자 yarn add ts-node typescript 파일을 실행하기 위해 ts-node를 설치합니다. package.json 을 열고 script에 다음 줄을 추가합니다. "start": "ts-node src/index.ts", yarn start를 입력하면 index.ts를 실행하게 해줍니다. 서버를 띄우자 ncloud에서 서버를 만들어봅시다. 여기서 인증 키를 다운받아 둡니다. 꼭! ACG로 들어가서 ACG 설정을 누릅니다. 3000번 포트를 열거니까 허용 포트에 추가해줍니다. 이제 서버 부팅이 끝나면 공인 IP를 확인합니다. 이 공인 IP가 외부에서 우리 서버에 접근할 수 있는 IP입니다. 쉽게 말해 우리 서버 컴퓨터 집주소. 여기에 접속해서 우리 코드를 돌려야겠죠? 관리자 비밀번호 확인을 누르고,.. 2022. 9. 27.
[백엔드 스터디] 1. 익스프레스 찍어먹기 동아리에서 프로젝트장을 맡아 프론트엔드 및 백엔드 스터디를 이끌고 있습니다. 백엔드는 저도 초보이다 보니 공부하면서 스터디원들에게 전달하기 위해 만든 자료입니다. VSCode, Node 등의 설치는 이미 되어있다고 가정합니다. 공부할 것 서버, 데이터베이스에 대한 개념 알아오기 CORS란? SQL 문법 대충이라도 익혀보기 GET, POST, PUT 등 Rest API와 각 메소드에 대해 우선 Node.js Typescript 보일러플레이트를 갖다 써봅시다. git clone 으로 푹찍해옵니다. yarn add express 및 yarn add @types/express로 express와 타입 파일을 설치합니다. src/index.ts 에 다음과 같은 코드를 입력해봅니다. import express, { .. 2022. 9. 26.
[Strapi] Strapi 설치부터 배포까지 사내 위키에 작성한 글의 초안입니다! Strapi란? Strapi는 NodeJS 기반 헤드리스 CMS입니다. 헤드리스 CMS는 콘텐츠 저장소 역할을 하는 백엔드 전용 콘텐츠 관리 시스템입니다. 프론트엔드만 가져다 붙이면 컨텐츠에 접근할 수 있는 시스템이라고 생각하시면 될 듯 합니다. Strapi, Ghost 등이 있습니다. 그 중 가장 깃허브 스타 수가 많은 것이 Strapi입니다. 기본 admin 패널에서 설정하는 것 이외에 데이터를 주물주물 하는 등의 작업 또한 커스텀 코드 작성을 통해 자유롭게 할 수 있습니다. 이 글에서는 그 부분에 대해서는 다루지 않겠습니다. 프로젝트 세팅하기 npx create-strapi-app 프로젝트명 --quickstart 혹은 yarn create strapi-app .. 2022. 8. 23.
[GCP] 구글 클라우드 플랫폼에 Nginx로 리액트 프로젝트 배포하기 도메인을 산지 4달이 됐는데 아직 배포를 안 했다. 그래서 배포를 해보려고 한다. 구글 클라우드 플랫폼에서 새 VM 인스턴스를 만들어준다. 리전 / 영역은 적당히 서울로... HTTP / HTTPS 트래픽을 허용해준다. 눌러서 콘솔 들어간다. sudo apt-get update sudo apt-get upgrade 물어보면 그냥 Y 해준다. 설치 끝. sudo apt-get install nginx sudo systemctl enable nginx sudo systemctl restart nginx sudo systemctl status nginx 잘 설치가 됐다는 뜻인 것 같다. sudo apt install git git clone (깃 링크) 깃을 설치하고, 배포할 프로젝트를 클론해온다. cd ./.. 2020. 11. 29.
[JWT] JSON Web Token JWT(JSON Web Token)은 JSON 객체로 정보를 암호화해 전달해준다. 구조 | Header, Payload, Signature의 세 부분으로 이루어져 있고 .으로 구분된 xxxxx.yyyyy.zzzzz의 형식이다. - Header { "alg": "HS256", "typ": "JWT" } 토큰의 타입 (일반적으로 JWT)과 JWT가 토큰에 서명할 때 사용하는 알고리즘(RS256, HS256)의 종류로 이루어져 있다. RS256은 SHA-256 함수를 이용한 RSA 암호화 방식을 의미한다. 즉 공개 키 암호화이다. HS256은 비밀 키 암호화이다. - Payload key-value의 한 쌍을 claim이라고 하는데, Payload에는 이런 claim들이 들어있다. Registered clai.. 2020. 8. 19.
[GCP] 구글 클라우드 DNS에 도메인 연결하기 원래는 AWS Router53에서 구매하려고 했는데 원하는 도메인이 없어서 네임칩에서 도메인을 구입했다. 구글 클라우드에 기존에 만들어 놓은 인스턴스가 있어서 여기에 도메인을 연결하려고 한다. 우선 구글 클라우드 콘솔에서 Cloud DNS에 접속한다. 영역 만들기를 클릭한다. 각 필드를 적당히 입력해준다. 이렇게 네임서버 주소가 나온다. 레코드 모음 항목 추가를 누르고 A 레코드를 추가해주고, 연결될 서버 인스턴스 IP 주소를 입력해준다. 기존 도메인 구입처에서 네임서버를 위의 구글 네임서버 주소로 바꾸어 준다. 네임칩의 경우는 관리 패널에서 바꿀 수 있다. 이제 r4bb1t.dev로 들어가면 기존 인스턴스로 연결된다. DNS 설정 전에는 서버 IP 주소를 찾을 수 없다고 뜬다. DNS 설정 후에는 연결.. 2020. 7. 20.
[GCS] 구글 클라우드 스토리지(GCS)로 파일 업로드 후 접근 URL 생성하기 1. 새 프로젝트 및 버킷 만들기 | 구글 클라우드 스토리지에서 새 버킷을 만들어 준다. 나는 대충 이렇게 했다. 아래부터는 이 문서를 93.5% 정도 따라하는 내용이다😁 2. 초기 설정 | $ npm init -y $ npx tsc --init $ npm install -S typescript @google-cloud/storage dotenv express multer pug $ npm install -D @types/express @types/node nodemon ts를 쓸 것이기 때문에 typescript도 설치해 준다. { "compilerOptions": { "target": "es5", "module": "commonjs", "moduleResolution": "node", "outDir".. 2020. 6. 1.
[GCS] [번역] 브라우저에서 구글 클라우드 스토리지(GCS)로 파일 업로드하기 원글 | https://medium.com/imersotechblog/upload-files-to-google-cloud-storage-gcs-from-the-browser-159810bb11e3 Upload Files to Google Cloud Storage (GCS) From the Browser After having spent the better part of a day struggling to upload files straight from the browser to GCS I felt the internet could do good… medium.com ※ Papago와 짧은 영어 지식을 동원해서 번역했습니다. 오역한 부분이 있다면 알려주세요😏 브라우저에서 GCS로 파일을 직접 업로드하기 위.. 2020. 6. 1.
[NodeJS] 소켓을 이용한 간단한 채팅방 만들기 net 모듈을 이용하여 TCP 프로토콜로 서버-클라이언트 간 데이터를 전송하는 코드이다. 서버 | socket-server.js const net = require("net"); let pool = []; const server = net.createServer((socket) => { pool.push(socket); socket.on("data", (data) => { let d = JSON.parse(data); switch (d.type) { case "CONNECT": for (let s of pool) s.write(d.content + " connected!"); break; case "CHAT": for (let s of pool) s.write(d.content); break; } });.. 2020. 4. 30.