본문 바로가기

백엔드5

Prisma와 PlanetScale - [1] ORM 최근에 진행 중인 MOSS 프로젝트는 Prisma와 PlanetScale로 백엔드를 구현하고 있다. 국내에선 낯선 스택이기도 하고 한국어로 된 자료가 거의 없어 접근하기 매우 어려웠다. 프로젝트에서 이 기술을 제안해주신 분이 영어에 능통해서 시도해 볼 수 있었다. MongoDB나 Mongoose도 간단하게만 접해봤는데, 이번 기회에 백엔드를 제대로 다뤄보게 되었다. 우선 글쓴이는 프론트엔드 쪽이다보니, 아래 설명은 이해하고 있는 선에서 정리했다. ODM/ORM 우선 ODM이나 ORM은 데이터베이스에서 정보를 꺼내어 쓰는 일을 편리하게 하는데 목적이 있다. 그 중에서 ORM(Object Relational Mapping)은 객체 지향 프로그래밍을 사용한다. 객체 지향 데이터 구조에서 모든 데이터는 객체(O.. 2022. 6. 9.
multer로 이미지 업로드 기능 만들기 multer를 이용해 파일을 서버로 요청해서 저장할 수 있다. 우선 아래 명령어를 입력하여, multer를 설치하자. npm install multer 암호화된 module/imageUpload.js const multer = require("multer"); const upload = multer( {dest: "uploads/"} ); // 여기서 dest는 destination(목적지)의 줄임말 // 해당 위치에 이미지를 저장하겠다는 뜻 module.exports = upload; routes/index.js const upload = require("../module/imageUpload"); // imageUplaod.js 불러오기 router.post('/upload', upload.singl.. 2022. 1. 1.
HTTP Method를 활용한 요청 및 응답 HTTP Method에는 여러가지가 있지만, 가장 많이 사용하는 것은 아래 네가지이다. get : 요청 받은 정보를 검색(read)하여 응답 post : 요청된 자원을 생성(create) put : 요청된 자원을 수정(update) delete : 요청된 자원을 삭제(delete) 라우팅 라우팅은 클라이언트의 요청에 맞게 분기처리해서 응답하도록 하는 것을 의미한다. routes/index.js var express = require('express'); var router = express.Router(); // post method let arr = []; router.post('/create', (req, res) => { const data = req.body.data // body의 raw jso.. 2022. 1. 1.
NPM 패키지 설치와 Express, Nodemon NPM(Node package manager)은 이름에서 알 수 있듯이, Node.js 개발의 편의를 위해 다양한 모듈들을 모아둔 패키지이다. 대부분의 Node.js 백엔드 개발자들인 이 NPM 패키지를 설치해서 사용하고 있다. 설치 우선 NPM을 설치하기 위한 임의의 폴더 하나를 생성한다. 터미널 창에서 아래의 코드를 입력한다. npm init 설치가 끝나면 package.json이라는 파일이 생성된 것을 볼 수 있다. 설치 과정 중 터미널에서 name을 비롯한 몇 가지를 물어보는데 입력하지 않고 엔터를 쳐도 무방하다. package.json { "name": "npm-test", "version": "1.0.0", "description": "", "main": "index.js", "scripts".. 2021. 12. 31.
Node.js Node.js는 네트워크 어플리케이션을 빌드하는데 서버 구축 등을 도와주는 JavaScript의 런타임 플랫폼이다. 프론트엔드의 대표적 언어인 JavaScript로 백엔드 개발을 할 수 있어서 많은 개발자들이 채택하고 있다고 한다. 이벤트 기반 처리 Node.js를 공부하기에 앞서, 이벤트 기반의 처리 순서에 대해 간단히 익혀본다. 여러 이벤트들이 실행될 순서대로 호출 Stack에 쌓여 있다. 필요하다면 Background로 이벤트가 이동한다. (예를 들어 setTime 함수) Background에서 작업이 완료되면, Task que로 이동한다. 호출 Stackd에 있던 이벤트들이 모두 완료되면, Event loop가 Task que 작업들을 호출 Stack으로 이동시킨다. 블로킹 I/O와 논블로킹 I/.. 2021. 12. 27.