728x90
728x90
서버에서는 클라이언트를 구별하기 위한 방법으로 ip주소를 확인할 수 있다. express에서는 이를 어떻게 확인할 수 있을지 알아보았다. const express = require("express"); const app = express(); const port = 8080; app.get("/", (req, res) => { res.send("Hello World!"); }); app.get("/ip", (req, res) => { const ip = req.headers["x-forwarded-for"] || req.ip; console.log("req.ip", ip); res.status(200).send({ ip, message: "Check Your Ip" }); }); app.listen(po..
ORM, Object-Relational Mapping 은 model을 기술하는 도구이다. ORM을 통하여 SQL query문을 직접 작성하지 않고, 프로그래밍 언어를 통해서 Model에 접근할 수 있다. 이렇게, 프로그래밍 언어의 관점에서 Model에 접근할 수 있는 까닭은, ORM이 대신 프로그래밍 언어를 SQL query문으로 변환해주기 때문이다. 🏁 데이터베이스와 프로그래밍 언어 사이의 개념의 간극을 좁힌다. ORM은 entity나 record를 객체나 클래스를 다루듯이 접근할 수 있게 한다. 🍙 ORM을 통해서 객체에서의 각 속성은 데이터베이스에서 필드를 의미하게 된다. 각 언어마다 사용할 수 있는 ORM API가 있다. 자바에서는 JDBC(Java Database Connectivity) 자바..
오픈소스 라이브러리를 사용하다보면, 불가피한 이유로 node_modules 속 라이브러리를 수정할 일이 발생할 수 있다. 이 경우, 매번 npm install을 할 때마다 수정해야하는 것은 물론이고 다른 사람과의 협업이 진행중이라면, 매번 라이브러리 수정 이슈에 대해서 설명하고 문서를 남겨야하는 번거로움이 있다. 이때 사용할 수 있는 라이브러리로 patch-package가 있다. npm i patch-package patch-package를 설치한 뒤 node_modules에서 라이브러리를 수정한다. 그리고 npx patch-package 해당_라이브러리_이름 으로 patch-package를 실행하면, patches 폴더가 생기고 내부에 라이브러리 이름과 버전을 이름으로 갖는 patch 파일이 생긴것을 ..
노드를 사용한 서버에서 요청에 대한 로그를 남기기 위해서 미들웨어를 작성할 수 있다. 좀 더 편리한 방법으로 morgan이라는 라이브러리를 설치하여 사용할 수 있다. 난 express 환경에서 morgan을 사용해 보았다. const express = require("express"); const morgan = require("morgan"); const app = express(); app.use(morgan("dev")); 위와 같이 morgan을 사용하여 로그를 남길 수 있다. 인자로 설정을 넣을 수 있는데, 나는 dev설정을 사용하였다. combined, common, dev등의 설정이 있는데 앞의 두 개는 표준 Apache 로그에 관한 설정이고 dev는 개발용으로, 요청에 따라서 색상이 다른 ..