반응형

Back-end/Node.js 32

[Node.js] ws 모듈과 Socket.IO 로 웹 소켓 사용하기

웹 소켓이란? 웹 소켓은 HTML5에 새로 추가된 스펙으로 실시간 양방향 데이터 전송을 위한 기술입니다. 최신 브라우저는 대부분 웹 소켓을 지원하고 노드에서는 ws나 Socket.IO 같은 패키지를 통해 웹 소켓을 사용할 수 있습니다. 웹 소켓이 생기기 전에는 주기적으로 서버에 새로운 업데이트가 있는지 확인해서 새로운 내용을 가져오는 방법을 사용했습니다. 웹 소켓은 연결이 이루어지고 나면 계속 연결된 상태이므로 업데이트가 있는지 요청을 보낼 필요가 없고 업데이트가 있으면 서버에서 클라이언트에게 바로 알려줍니다. HTTP 프로토콜과 포트를 공유할 수 있으므로 다른 포트에 연결할 필요도 없습니다. 1. ws 모듈로 웹 소켓 사용하기 socket.js 파일을 생성하고 웹 소켓 로직 코드를 작성합니다. 익스프레..

Back-end/Node.js 2021.08.06

[Node.js] 노드 서비스 테스트 하기

이번 포스팅에는 노드 서비스를 테스트하는 방법에 대해 알아보겠습니다. 유닛테스트, 통합테스트, 부하테스트 등 여러 가지 테스트가 있는데 하나씩 차근차근 알아보겠습니다! 1. 유닛 테스트 - 작은 단위의 함수나 모듈이 의도된 대로 정확인 작동하는지 테스트하는 것 테스트에 사용할 패키지를 설치하고, package.json 을 수정합니다. 테스트용 파일은 파일명과 확장자 사이에 test 나 spec을 넣으면 됩니다. 콘솔에 "npm test" 를 입력하면 테스트 코드를 실행할 수 있는데 파일명에 test 나 spec 이 들어간 파일들을 모두 찾아 실행합니다. npm install -D jest // 개발시에만 사용하므로 -D 옵션 사용 // package.json { //.. 생략 "scripts": { "s..

Back-end/Node.js 2021.08.03

[Node.js] 웹 API 서버 만들기 (2)

https://soohyun6879.tistory.com/176 [Node.js] 웹 API 서버 만들기 (1) 저번에 만들었던 SNS 서비스인 NodeBird 앱을 사용하여 웹 API 서버를 만들어보겠습니다. API 는 Application Programming Interface 로 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 허용하 soohyun6879.tistory.com 이전 포스팅에서는 웹 API 서버와 토큰 인증하는 부분을 만들었습니다. 이번 포스팅에서는 웹 API 서버에 내가 올린 게시글과 해시태그 검색 결과를 가져오는 부분을 추가하고, 사용량 제한을 구현해보겠습니다. 1. 내가 올린 게시글과 해시태그 검색 결과 가져오기 먼저 웹 API 서버 부분을 수정하겠습니다. nodeb..

Back-end/Node.js 2021.08.01

[Node.js] 웹 API 서버 만들기 (1)

저번에 만들었던 SNS 서비스인 NodeBird 앱을 사용하여 웹 API 서버를 만들어보겠습니다. API 는 Application Programming Interface 로 다른 애플리케이션에서 현재 프로그램의 기능을 사용할 수 있게 허용하는 접점을 의미합니다. 따라서 웹 API는 다른 웹 서비스의 기능을 사용하거나 자원을 가져올 수 있는 창구입니다. 제공하고 싶은 부분만 API를 열어 둘 수 있고 인증된 사람만 일정 횟수 내에서 가져가게 제한을 둘 수도 있습니다. 1. 웹 API 서버 만들기 package.json 파일을 생성한 후 "npm install" 을 콘솔에 입력하여 패키지를 설치합니다. { "name": "nodebird-api", "version": "0.0.1", "description"..

Back-end/Node.js 2021.07.30

[Node.js] 익스프레스로 SNS 서비스 만들기 (3)

https://soohyun6879.tistory.com/174 [Node.js] 익스프레스로 SNS 서비스 만들기 (2) https://soohyun6879.tistory.com/170 [Node.js] 익스프레스로 SNS 서비스 만들기 (1) 익스프레스로 간단한 SNS 서비스를 만들어보겠습니다! 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 기능이. soohyun6879.tistory.com 이전 포스팅에서는 로그인을 구현해보았는데 이번 포스팅에서는 이미지 업로드, 게시물 업로드, 팔로잉, 해시태그 검색 기능을 만들어보겠습니다! 1. 이미지 업로드, 게시글 업로드 게시물을 작성할 때 이미지도 같이 업로드할 수 있습니다. 이미지를 업로드 하기 위해 multer 모듈을 사용하겠습니다. 먼..

Back-end/Node.js 2021.07.27

[Node.js] 익스프레스로 SNS 서비스 만들기 (2)

https://soohyun6879.tistory.com/170 [Node.js] 익스프레스로 SNS 서비스 만들기 (1) 익스프레스로 간단한 SNS 서비스를 만들어보겠습니다! 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 기능이 들어갈 예정입니다 하나씩 차근차근 해보겠습니다 :) 1. 프로젝트 세팅 soohyun6879.tistory.com 저번 포스팅에서 프론트 구성과 데이터베이스 세팅까지 완료하였습니다! 이번 포스팅에서는 Passport 모듈로 로그인을 구현해보겠습니다 1. Passport 모듈 연결 로그인 구현을 위한 필요한 패키지들을 설치합니다. npm install passport passport-local passport-kakao bcrypt app.js 파일을 다음과 같이..

Back-end/Node.js 2021.07.27

[Node.js] 익스프레스로 SNS 서비스 만들기 (1)

익스프레스로 간단한 SNS 서비스를 만들어보겠습니다! 로그인, 이미지 업로드, 게시글 작성, 해시태그 검색, 팔로잉 기능이 들어갈 예정입니다 하나씩 차근차근 해보겠습니다 :) 1. 프로젝트 세팅하기 npm init 을 콘솔에 입력하여 package.json 파일을 만듭니다. npm init { "name": "nodebird", "version": "0.0.1", "description": "익스프레스로 만드는 SNS 서비스", "main": "app.js", "scripts": { "start": "nodemon app" }, "author": "sh", "license": "MIT" } 데이터베이스 연결을 위해 시퀄라이즈를 사용할 것입니다. 시퀄라이즈를 설치하고 sequelize init 으로 프로젝..

Back-end/Node.js 2021.07.25

[Node.js+MongoDB] 몽구스 (2) (Mongoose)

https://soohyun6879.tistory.com/166 [Node.js+MongoDB] 몽구스 (1) (Mongoose) 몽구스란? (Mongoose) 몽구스는 MYSQL 의 시퀄라이즈와 같은 것입니다. 몽구스는 시퀄라이즈와 달리 ODM 이라고 불리는데 그 이유는 MongoDB는 릴레이션이 아니라 다큐먼트를 사용하기 때문입니다. Mongo soohyun6879.tistory.com 이전 포스팅에서 몽고디비와 몽구스를 연결하는 것까지 완료했습니다! 이번 포스팅에서 스키마를 정의하고 쿼리를 수행하는 쿼리를 만들어 사용자 등록, 댓글 등록, 댓글 수정 등 기능들을 완성해보겠습니다 1. 스키마 정의하기 schemas 폴더에 users.js 와 comment.js 를 만듭니다. (MongoDB의 컬렉션 ..

Back-end/Node.js 2021.07.23

[Node.js+MongoDB] 몽구스 (1) (Mongoose)

몽구스란? (Mongoose) 몽구스는 MYSQL 의 시퀄라이즈와 같은 것입니다. 몽구스는 시퀄라이즈와 달리 ODM 이라고 불리는데 그 이유는 MongoDB는 릴레이션이 아니라 다큐먼트를 사용하기 때문입니다. MongoDB 자체가 자바스크립트인데도 굳이 자바 스크리브 객체와 매핑하는 이유는 MongoDB 에 없어서 불편한 기능들을 몽구스가 보완해주기 때문입니다. MongoDB 는 테이블이 없어서 자유롭게 데이터를 넣을 수 있기 때문에 잘못된 자료형의 데이터를 넣거나 다른 다큐먼트에 없는 필드의 데이터를 넣을 수도 있습니다. 이러한 실수를 막기 위해 몽구스는 데이터를 필터링해주는 역할을 합니다. 또, populate 라는 메서드로 관계가 있는 데이터를 쉽게 가져올 수 있습니다. MongoDB 설치법과 계정..

Back-end/Node.js 2021.07.20

[Node.js+MYSQL] 시퀄라이즈 (3) (Sequelize)

https://soohyun6879.tistory.com/163 [Node.js+MYSQL] 시퀄라이즈 (2) (Sequelize) https://soohyun6879.tistory.com/162 [Node.js +MYSQL] 시퀄라이즈 (1) (Sequelize) 시퀄라이즈란? (Sequelize) 시퀄라이즈는 ORM 입니다. 즉, 자바스크립트 객체와 데이터베이스의 릴레이션을 매핑해주는 도구입.. soohyun6879.tistory.com 이전 포스팅에서 모델과 관계 정의까지 완료했습니다! 이번 포스팅에서 사용자 등록, 댓글 쓰기 등 쿼리 수행을 해보겠습니다 1. 시퀄라이즈 쿼리 알아보기 쿼리 수행을 하기 전에 시퀄라이즈에서 쿼리를 어떻게 사용하는지 알아야 합니다! 다음 예시를 보면 간단한 CRUD 쿼..

Back-end/Node.js 2021.07.20
반응형