Server/NodeJS
-
[NodeJS] nodemailer 모듈을 이용하여 메일 전송하는 법Server/NodeJS 2020. 11. 2. 10:28
이번 글에서는 NodeJS - Express를 이용해서 메일 전송을 하는 법에 대해 정리해보려 한다. nodemailer는 node서버에서 메일을 보낼 수 있는 메일 전송 모듈인데 이것을 이용하려 한다. 프로젝트 세팅 Express 프로젝트이름 ex) Express NodeJS_mailer npm install npm install nodemailer (모듈 설치) 그러면 위와 같이 프로젝트 구조를 볼 수 있을 것이다. (config, mail.js는 필자가 만든 것이다.) 이제 config 폴더와 routes 아래에 mail.js를 만들어보자. 1. config/senderInfo.json 먼저 config 폴더 아래 json형태의 파일을 하나 만들어주자. 해당 파일에는 보내는 이메일, 비밀번호를 입력..
-
[NodeJS] Passport로 카카오 로그인 구현하기Server/NodeJS 2020. 10. 27. 22:36
이번 글에서는 Passport 모듈을 이용하여 카카오 로그인을 구현하는 것에 대해서 정리하려 합니다. 먼저 카카오 개발자 페이지로 먼저 들어가보겠습니다. 그리고 [내 어플리케이션]을 클릭해보겠습니다. 여기서 [애플리케이션 추가하기]를 클릭해서 하나 만들어보겠습니다. 이것을 만들면 REST API Key를 발급받을 수 있는데 이것이 있어야 카카오 로그인을 구현할 수 있습니다. 그러면 위와 같이 [앱 키]를 발급 받을 수 있습니다. 우리가 사용할 것은 [REST API 키] 이다. 그리고 나서 Redirect URI 등록을 해줘야 한다. 이유는 아래 코드를 보면서 설명하겠습니다. Redirect URI 등록 위와 같이 본인이 사용할 URI를 설정하면 되는데 필자는 [http://localhost:3000/a..
-
[NodeJS] 몽구스(Mongoose) 사용하여 CRUD 해보기Server/NodeJS 2020. 10. 23. 02:57
MySQL에 Sequelize가 있다면 몽고디비에는 Mongoose가 있다. 몽구스는 시퀄라이즈와 달리 ODM(Object Document Mapping)이라고 불린다. 몽고디비 자체가 이미 자바스크립트인데도 굳이 자바스크립트 객체와 매핑하는 이유는 몽고디비에 없어서 불편한 기능들을 몽구스가 보완해주기 때문이다. 먼저 스키마(Schema)라는 것이 생겼다. 몽고디비는 테이블이 없어서 자유롭게 데이터를 넣을 수 있지만, 형식이 자유롭기 때문에 때로는 불편함을 초래한다. 몽구스는 몽고디비에 데이터를 넣기 전에 노드 서버 단에서 데이터를 한 번 필터링 하는 역할을 한다. 프로젝트 생성 및 모듈 설치 express 프로젝트이름 ex) express NodeJS_MongoDB cd NodeJS_MongoDB np..
-
[NodeJS] Sequelize를 이용하여 CRUD 해보기Server/NodeJS 2020. 10. 23. 00:44
이번 글에서는 Sequelize를 이용해서 간단히 유저, 댓글의 CRUD(Create: 생성, Read: 읽기, Update: 갱신, Delete: 삭제)를 해보려 한다. Sequelize 기본 세팅 여기에서 Sequelize의 기본적인 개념과 세팅을 한 후에 이 글을 읽으면 좋을 것 같다. Express 프로젝트 구조는 위와 같다. 그리고 routes 패키지 아래에 comment.js를 추가 하자. index.js const express = require('express'); const router = express.Router(); /* GET home page. */ router.get('/', function(req, res, next) { res.render('index', { title: '..
-
[NodeJS] Sequelize : ORM(Object-relational Mapping) 사용하기Server/NodeJS 2020. 10. 18. 03:17
노드에서 MySQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리가 있다.(이번 글에서는 MySQL을 사용할 것이다) 바로 시퀄라이즈(Sequelize)이다. 시퀄라이즈는 ORM(Object-relational-Mapping)이다. ORM은 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구이다. 시퀄라이즈를 쓰는 이유는 자바스크립트 구문을 알아서 SQL로 바꿔주기 때문이다. 따라서 SQL 언어를 직접 사용하지 않아도 자바스크립트만으로 MySQL을 사용할 수 있다. (하지만 SQL을 모르는 채로 Sequelize를 사용하는 것은 매우 비추이다) 1. Express 프로젝트 생성하기 Express 프로젝트이름 ex) Express NodeJS_ORM 그러면 위와 같이 Express 프로젝트 구조가..
-
[NodeJS] KAKAO BOOK OPEN API 사용하는 법Server/NodeJS 2020. 8. 14. 13:50
이번 글에서는 NodeJS를 이용해서 KAKAO OPEN 책 검색 API를 요청해보는 예제를 진행해보려 한다. (REST API 키는 발급받았다는 가정하에 글을 쓰도록 하겠다.) https://developers.kakao.com/docs/latest/ko/daum-search/dev-guide Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com 위의 사이트에 들어가서 "책 검색" 부분을 찾아보자. 그러면 위와 같이 설명이 되어 있는 부분을 찾을 수 있을 것이다. 어떻게 호출을 해야 하는 것인지에 대해서 간략하게 살펴보자. 먼저 Parameter를 ..
-
[JavaScript] async와 await란?Server/NodeJS 2020. 6. 25. 14:22
async와 await는 자바스크립트의 비동기 처리 패턴 중 최근에 나온 문법이다. 자바스크립트는 싱글스레드 기반 언어이기 때문에 비동기 처리가 필수적이다. 비동기 처리는 결과를 예측할 수 없기 때문에 동기식의 처리가 필요하다. 대표적으로 앞에 글에서 작성했던 것처럼 promise, callback이 있다. async와 await는 기존 동기식 처리의 단점을 보완하고 가독성을 높혀주는 코드를 작성할 수 있다. 먼저 다시 한번 자바스크립트의 비동기처리에 대해서 얘기하고 가려 한다. let first = 10; let second = 20; let result = 0; function add(x, y) { return x + y; } setTimeout(() => { result = add(first, se..
-
[JavaScript] Promise란 무엇인가?Server/NodeJS 2020. 6. 25. 01:17
저번 글에서 비동기 처리와 콜백함수에 대하여 간단히라도 공부하였다. 비동기 처리란 "특정 코드의 실행이 완료될 때 까지 기다리지 않고 다음 코드를 먼저 수행하는 자바스크립트의 특성"이다. function task1() { setTimeout( () => { console.log("task1"); }, 0); } function task2() { console.log("task2"); } function task3() { console.log("task3"); } task1(); task2(); task3(); 저번 글에서 setTimeout() 함수가 비동기 처리의 대표적인 예시라고 하였다. 위의 코드를 비동기의 개념을 모르고 출력결과를 예측해보라 한다면 아마도 task1 - task2 - task3 함..