본문 바로가기

반응형

백엔드/노드

(18)
[NodeJS] 이메일의 도메인이 존재하는지 확인해보자 포스트 목적 노드메일러 등의 SMTP 를 활용한 메시지 전송 패키지나 도구를 사용할 때, 이메일을 받는 이의 도메인이 존재하는지 아닌지 확인하기 위한 기능을 만들어 보았고, 이에 대한 정리를 위해 작성한다. 우선 이번 기능을 구현하기 앞서 사전 지식이 필요하다. 세부적으로 살펴본다면 DNS의 전반적인 내용을 다뤄야 하는게 맞지만, 필요한 개념만 살펴본다면 그 중 제일 중요한 MX 레코드에 대해 언급하고자 한다. MX 레코드 MX 레코드는 쉽게 말해 SMTP 로 전송되는 이메일 메시지를 라우팅(경로 나누기) 하는 방법을 나타내는데 쓰인다. 그래서 해당 도메인에 대한 MX레코드를 조회 해보면, 각 라우트 가능한 서버가 우선순위에 따라 나눠서 조회되는 것을 확인할 수 있다. 즉, 각 우선순위에 따라 우선순위가..
[nodejs] 엑셀 파일을 json 데이터로 변환 해보기 node-telegram-bot-api 와 mongoose 를 사용하여 텔레그램 챗 봇을 만들어 보던 중 엑셀 파일을 json 형태로 변환해서 데이터베이스에 저장하는 기능을 만들어 보기로 했다. 이 기능을 구현하는 것에 큰 의미는 없지만, 연습 삼아서 해본다. 텔레그램 봇이나 데이터베이스 사용을 떠나서 엑셀 파일을 json 형태로 바꾸는 것에만 초점을 두고 기록해둘 것이다. 패키지 설치 우선 json 형태로 변환하기 위해 npm 패키지를 설치한다. 이번에 사용한 패키지는 convert-excel-to-json 이라는 것인데, 자세한 사용법은 아래 패키지 공식 깃허브에 자세하게 나와있다. npm install convert-excel-to-json GitHub - DiegoZoracKy/convert-ex..
[node.js] express.json() 간략 정리 express.json() 보통 app.use(express.json()) 형태로 쓰이는 미들웨어는 Express 애플리케이션에서 JSON 형태의 요청(request) body를 파싱(parse)하기 위해 사용되는 미들웨어(middleware)입니다. 따라서, Express 애플리케이션에서 JSON 형태의 요청 body를 받아야 한다면 이 코드를 사용해야 합니다.(사용하지 않을 경우 인간이 알기 어려운 용어로 전달되거나 예기치 못한 에러가 발생할 수 있습니다.) 예를 들어, 클라이언트에서 서버로 JSON 형태의 데이터를 전송할 때, Content-Type 헤더를 application/json으로 설정하고 요청 body에 JSON 데이터를 포함하여 전송합니다. 이때, app.use(express.json(..
[node.js] morgan "HTTP 요청과 응답에 관련한 정보를 기록하는 미들웨어" morgan Node.js 웹 애플리케이션에서 * HTTP 요청 로깅을 위한 로깅 미들웨어 패키지입니다. 이 패키지는 HTTP 요청의 상태 코드, 응답 시간, 요청 메소드, 요청 URL, 요청 바디 등을 기록할 수 있습니다. 즉, 클라이언트 측과 서버 측 사이에서 HTTP 요청과 응답 사이에 발생하는 정보들을 기록해주는 미들웨어 입니다. Morgan 패키지는 사용하기 쉽고 유연합니다. 기본적으로 콘솔에 로그를 출력하지만, 파일에 로그를 저장하거나 로그를 다른 곳으로 전송하는 등 로깅을 다양한 방식으로 구성할 수 있습니다. 또한 로그 포맷을 구성할 수 있어서, 개발자가 원하는 대로 로그를 출력할 수 있습니다. Morgan 패키지는 Node.js의 Express 프레임워크와 함께 많이 사용됩니다. Expre..
[node.js] node.js 에서 express서버를 구축할 때 포트 지정 시 process.env.PORT 를 사용하는 이유 node.js 에서 일반적으로 포트를 개설할 때 아래 두 가지 방식 중에 하나를 사용합니다. 일반적으로 아래 예시 중 전자의 방식을 자주 사용하는데, 전자 보다는 후자의 방식을 사용하는 것이 더욱 안전합니다. // 포트번호를 직접 지정한 경우 const port = 3000 app.listen(port,()=>{ console.log(port +'포트로 대기중 입니다.') }) ---------------------------------------- //process.env.URL 를 사용한 경우 const port = process.env.URL || 3000; app.listen(port,()=>{ console.log(port +'포트로 대기중 입니다.') }) 일단, 전자의 방식을 사용하는 것을 ..
[node.js] express.urlencoded 에 대한 이해 express.urlencoded 이 미들웨어 함수는 HTTP POST 요청의 본문(body)에 인코딩된 데이터를 해석하고, req.body 객체에 채워넣어주는 역할을 합니다. 간략하게 사용되는 예시를 보여 드리면 다음과 같습니다. const express = require('express'); const app = express(); app.use(express.urlencoded({ extended: false })); //false : querystring 모듈 사용 app.post('/login', (req, res) => { console.log(req.body.username); // POST 요청의 body에 포함된 username 값을 출력 console.log(req.body.passwo..
[node.js] static 파일과 static 미들웨어 미들웨어 미들웨어는 클라이언트 측의 요청과 서버의 응답 사이에서 문지기 역할을 하는 중간 계층입니다. 예를 들어 클라이언트 측에서 서버 측에 로그인 요청을 한다고 가정 할 때 중간 계층인 미들웨어는 요청으로 받은 정보가 서버 측에 전달해도 괜찮은지 그 여부를 판단하는 역할을 할 수 있습니다. static 파일 과 static 미들웨어 Node.js에서 static 파일은 클라이언트 측에서 서버에 요청을 보내면 서버에서 응답으로 전송하는 파일 중 변경되지 않는 파일을 의미합니다. 예를 들어, 이미지, CSS 파일, JavaScript 파일 등이 이에 해당합니다. Static 파일은 클라이언트 측에서 요청한 URL 경로에 대한 파일을 찾아서 응답으로 전송하는 방식으로 작동합니다. 이 때, Node.js에서는..
[node.js] MVC 패턴 MVC 패턴 MVC 패턴은 소프트웨어 아키텍처 디자인 패턴 중 하나이며, 각각의 역할을 분리하여 코드를 구성함으로써 유지보수 및 확장이 용이하게 되는 장점이 있는 모델 입니다. MVC는 모델(Model), 뷰(View), 컨트롤러(Controller)로 구성됩니다. 각각의 역할을 다음과 같이 정리 됩니다. 모델(Model): 데이터를 관리하고 처리합니다. 뷰(View): 사용자에게 보여지는 인터페이스를 제공합니다. 컨트롤러(Controller): 사용자의 요청을 처리하고, 모델과 뷰를 연결합니다. 아래는 간단한 예시 코드입니다. 대충 MVC 패턴이 각각 어떠한 느낌으로 이루어지는지 아는게 중요하다고 생각합니다. 참고) 참고로 예시는 MVC패턴의 이해를 위한 간단한 예시를 보여줄 뿐 실제 개발에서 아래와 ..

반응형