
앞전에 1. 몽고디비 계정과 클러스터를 생성했고,2. 몽구스(몽고디비 다루는 모듈)를 설치했고,3. VSCode와 몽고디비를 연결하고 테스트까지 완료했다.관련 게시글은 아래 링크를 참고한다.https://dev-traveler.tistory.com/64 [Node.js] 몽고DB 시작하기, VSCode에서 몽고디비 연결하기데이터베이스 비교관계형 데이터베이스 (RDBMS)NoSQL 데이터베이스저장할 자료의 구조를 행과 열로 된 표 형태로 관리문서 형태로 자료 저장SQL을 사용해서 SQL 데이터베이스라고도 함SQL을 사용하dev-traveler.tistory.com 이제 몽고디비를 이용하여 CRUD 기능을 만들어 줄 것이다. 주요 함수 소개아래 함수들은 mongoose의 내장 함수이다. create 함수 ..

애플리케이션특정 기능을 제공하는 프로그램. 그 자체로 완전한 소프트웨어사용자 인터페이스, 사용자가 상호 작용하는 기능을 모두 포함한다. API애플리케이션 간에 자료를 주고 받으면서 특정 기능을 실행하는 코드API를 사용하면 다른 시스템끼리 자료를 주고 받을 수도 있고, 새로운 애플리케이션을 만들 수도 있음예 : SNS 애플리케이션에서 사용하는 로그인 API, 게시물 작성 API예 : 소셜 로그인 API 처럼 API를 공개할 경우, 다른 애플리케이션에서 사용 가능 RESTHTTP 프로토콜(GET, POST, PUT, DELETE, PATCH) 활용해서 데이터를 주고받는 방식을 약속해놓은 것 RESTful API (= REST API)HTTP 프로토콜을 활용해서 자료를 주고 받는 API를 Restful한 ..

도큐먼트(Document) : MongoDB에서 데이터를 저장하는 기본단위(JSON 형태), 관계형 데이터베이스에서 행(Row)에 해당함컬렉션(Collection) : 도큐먼트 들이 모여있는 그룹, 관계형 데이터베이스에서 테이블에 해당함스키마(Schema) : 애플리케이션에서 데이터가 어떠한 자료형으로 되어 있는지 정하는 명세서 같은 것, 몽고디비는 스키마가 자유로운(Schema-less) NoSQL DB이지만, Mongoose 같은 ODM(Object Document Mapping) 라이브러리를 사용하면, 관계형 데이터베이스처럼 데이터 구조를 정할 수 있음 컬렉션 이름을 users 라 하자. { "id": "user1", "name": "KIM", "email" : "kim@google.com"..

데이터베이스 비교관계형 데이터베이스 (RDBMS)NoSQL 데이터베이스저장할 자료의 구조를 행과 열로 된 표 형태로 관리문서 형태로 자료 저장SQL을 사용해서 SQL 데이터베이스라고도 함SQL을 사용하지 않아서 NoSQL 데이터베이스라 함표와 표를 연결하여 사용하기도 함(Foreign Key) 새로운 필드를 추가, 수정이 쉬움 자료를 여러 컴퓨터에 나누어 저장할 수도 있음 NoSQL 데이터베이스는 SQL을 사용하지 않는다. (예 : MongoDB)JSON 형식으로 자료를 추가, 수정, 삭제 등의 관리 가능 (SQL 없이 자바스크립트로 DB 관리할 수 있음) MongoDBNoSQL 데이터베이스 중 하나, JSON 형식으로 데이터 관리서버에 데이터베이스를 만들 수도 있고, 클라우드에서 데이터베이스를 사용..

바디파서 미들웨어서버로 요청을 보낼 때, 요청 본문에 담긴 것을 파싱하는 미들웨어로,익스프레스에서 자주 사용하는 미들웨어 중 하나임.* 바디는 요청 본문, 파서는 파싱을 처리해주는 것을 뜻한다.* 파싱이란, 요청할 때 전송한 자료를 프로그램에서 사용할 수 있는 형식으로 변환하는 것을 뜻한다. 바디파서는 요청 본문에 어떤 유형의 자료형을 포함하는 가에 따라 사용하는 함수가 달라진다.함수설명.json()JSON 형식의 본문을 파싱.urlencoded()URL로 인코딩된 본문을 파싱.raw()가공되지 않은 바이너리 자료를 파싱.text()텍스트 형식의 본문을 파싱 * urlencoded 란?: 구글 검색창에 아무 검색어를 입력하면, url에 search?q=검색내용&oq=검색내용&gs_lcrp=알수없는문..

익스프레스의 특징 중 하나는 미들웨어를 사용할 수 있다는 점이다.미들웨어란, 클라이언트의 요청과 서버의 응답 사이에서, 요청을 처리하거나 원하는 형태로 응답을 수정하는 기능을 가진 함수 혹은 모듈을 의미한다. 예) 로그인 미들웨어1. 요청 안에 포함된 아이디와 비밀번호의 값을 애플리케이션에서 읽을 수 있는 형태로 변환(파싱이라고 한다)2. 아이디와 비밀번호 값을 사용하여 사용자 인증 처리3. 처리 결과를 다음 단계(예: 화면 렌더링)로 넘겨줌 미들웨어의 역할속성설명요청 전처리요청이 서버에 도착하기 전에(클라이언트-미들웨어-서버 순) 실행하는 작업을 담당한다.예를 들면 사용자 인증이나 폼 내용 검증 등의 작업 같은 것들라우팅 처리지금까지 특정 URL로 들어오는 요청을 미리 만들어 둔 함수(라우트 핸들러라..

서론HTTP 메서드에는 GET, POST, PUT, DELETE 가 있다.URL에 어떤 경로를 작성하고 enter를 치는 행위는 GET 요청form에 데이터를 작성하고, submit 버튼을 클릭하여 서버에 데이터를 넘겨주는 것은 POST 요청수정은 PUT, 삭제는 DELETE get 요청과 post 요청 작성하기const express = require('express');const app = express();app.get("/", (req, res)=>{ res.send("Hello Node!");})app.get("/contacts", (req, res)=>{ res.send("contacts 페이지 조회");})app.post("/contacts", (req, res)=>{ re..

express 사용 이유Node.js의 HTTP 모듈로 서버를 만들 수도 있지만, 라우팅 처리가 보기 좋지 않다.express에는 HTTP 모듈 기능 외에도 다양한 기능이 포함되어 있다.많은 사용자들이 선택한 프레임워크이다.기능설명라우팅HTTP 모듈을 사용할 때는 if문이나 switch문으로 요청 메서드와 요청 URL에 따라 라우팅해야 했다.하지만 express에서는 더욱 간편한 방법으로 라우팅 할 수 있다.미들웨어express에는 미들웨어라는 개념이 있어서, 요청과 응답 사이에 여러가지 기능을 실행할 수 있다.이미 많은 사용자들이 미들웨어를 만들어서 "패키지"로 제공하므로, 자주 사용하는 미들웨어는 npm을 통해 다운받아 사용할 수 있다.템플릿 엔진HTML 페이지는 기본적으로 정적이지만, express..

서론클라이언트에서 서버 쪽으로 무언가를 요청하면,서버에서 그 요청에 대한 처리를 하고 결과를 클라이언트에게 보내준다. 이때, 클라이트와 서버 사이에 요청과 응답이 발생하는데,정해진 규칙, "HTTP 프로토콜"이라는 약속에 따라 요청과 응답을 주고 받는다.그것을 HTTP 요청, HTTP 응답이라 한다. 네트워크브라우저에서 google.com 접속하여 F12 키로 개발자 도구를 열고, Network 탭을 누른다. 개발자 도구를 열어둔 채로 새로고침 해본다. 화면이 리로드 되면서 어떤 파일이 오고 갔는지 확인할 수 있다.클라이언트에서 google.com 요청을 하면,서버는 이 화면을 보여주기 위해 여러 파일들을 다운로드하는데, 그 내역을 확인할 수 있다. 네트워크에 로드된 목록 중 가장 상단의 www.go..

path 모듈파일의 경로와 관련된 모듈 path 모듈이 왜 필요할까1. 경로 구분자를 통일할 수 있다.윈도우 : 역슬래시(\) 사용 (예: C:\Users\myCom\Desktop\myNode\basics\03\example.txt)맥OS : 슬래시(/) 사용 (예: /Users/myCom/Desktop/myNode/basics/03/example.txt)위와 같이 컴퓨터 운영체제에 따라 경로를 나타내는 기호가 다르다.path 모듈을 사용하면 경로 구분자를 하나로 통일해서 적용할 수 있다. 2. 경로를 나누거나 합칠 수 있다.여러 조각으로 되어 있는 문자열을 묶어서 경로로 표현할 수 있다. (아래 예문으로 확인해보자) 절대경로와 상대경로절대경로 : 파일이나 폴더의 위치를 루트 폴더부터 시작해서 파일까지..