BackEnd/Node (17) 썸네일형 리스트형 [노드교과서] 섹션 7. MongoDB 8.1 NoSQL vs SQL ⇒ NoSQL의 대표주자인 mongoDB(몽고디비) 사용 SQL(MySQL) NoSQL 규칙에 맞는 데이터 입력 자유로운 데이터 입력 안정성, 일관성 확장성, 가용성 테이블 간 JOIN 지원 테이블 간 JOIN 미지원 용어(테이블, 컬럼, 로우) 용어(컬렉션, 필드, 다큐먼트) - JOIN : 관계가 있는 테이블끼리 데이터를 합치는 기능이다. (몽고디비는 aggregate로 흉내는 가능하다) - 빅데이터, 메시징, 세션관리 등(비정형데이터)에는 몽고디비를 사용하면 좋다. 8.2 데이터베이스와 컬렉션 만들기 1. 데이터베이스 생성하기 admin> use nodejs; switched to db nodejs nodejs> show dbs; admin 132.00 KiB conf.. [노드교과서] 섹션 6. 데이터베이스 7.1 데이터베이스 1. 데이터베이스란 >> 메모리가 아닌 데이터를 영구적으로 저장할 수 있는 공간 >> MySQL 관계형 데이터베이스 사용 - 데이터베이스 : 관련성을 가지며 중복이 없는 데이터들의 집합이다. - DBMS : 데이터베이스를 관리하는 시스템 - RDBMS : 관계형 데이터베이스를 관리하는 시스템 - 서버의 하드디스크, SSD 등 저장 매체에 데이터들을 저장 - 서버 종료 여부와 관계없이 데이터를 계속 사용 가능하다. - 동시접속, 권한관리가 가능하다. 7.3 데이터베이스, 테이블 생성하기 1. 데이터베이스(스키마) 생성하기 >> 콘솔에서 Mysql 프롬프트에 접속 - create schema nodejs; 로 nodejs 데이터베이스(스키마) 생성 - use node;로 생성한 데이터베이.. [노드교과서] 섹션5. 익스프레스 웹 서버 만들기 6.1 익스프레스 프로젝트 시작하기 1. 익스프레스 소개 ⇒ http 모듈로 웹 서버를 만들 때 코드가 보기 좋지 않고, 확장성도 떨어진다. - 프레임워크로 해결하며 대표적으로 Express(익스프레스), Koa(코아), Hapi(하피) 가 있다. - 코드관리도 용이하고 편의성도 많이 좋아진다. Express점유율이 가장 높다. 2. package.json 만들기 ⇒ npm init 명령어를 통한 package 생성 - 'npm init' 명령어로 기본골격을 만든 후 'npm i express', 'npm i nodemon -D' 패키지를 설치 3. app.js 작성하기 const express = require('express'); const path = require('path'); // 앱 객체를 .. [노드교과서] 섹션 3. http 모듈로 서버 만들기. 섹션 4. 패키지 매니저 4.1. 요청과 응답 실행하기 1. 서버와 클라이언트 ⇒ 서버와 클라이언트의 관계 - 클라이언트가 서버로 요청(request)를 보내면 서버는 해당 요청을 처리한다. - 처리된 결과를 서버가 클라이언트로 응답(response)을 보낸다. 2. 노드로 http 서버 만들기 ⇒ http 요청에 응답하는 노드 서버 - createServer로 요청 이벤트에 대기 - req 객체는 요청에 관한 정보를 담고 있고, res 객체는 응답에 관한 정보를 담고있다. 1) http 서버 만들기 // server1.js const http : require('http'); const server = http.createServer((req,res) => { // res는 스트림이다. // response의 header정보를.. [노드교과서] 섹션 2. 노드 기본 기능 익히기 REPL ⇒ 자바스크립트는 스크립트 언어라 즉석에서 코드 실행이 가능하다. - REPL이란 입력된 명령어를 읽어(Read) 평가하고(Eval) 평가한 결과를 출력(Print) 후 다시 명령어 입력을 과정을 반복(Loop)하는 과정을 의미한다. - 윈도우의 명령 프롬프트 / 맥 or 리눅스의 터미널에 node 입력 등 ex) node console에서 REPL의 과정의 예 > const str = 'Hello node'; undefined > console.log(str); 'Hello node' undefined ex2) 윈도우 명령 프롬프트에서 js파일을 실행시키는 예시 Microsoft Windows [Version 10.0.19045.3693] (c) Microsoft Corporation. All.. [노드교과서] 프런트엔드 자바 스크립트 1. AJAX ⇒ 서버로 요청을 보내는 코드 - 라이브러리 없이는 브라우저가 지원하는 XMLHttpRequest 객체를 이용해야 한다. - AJAX 요청 시 Axios 라이브러리를 사용하는 게 편하다. ⇒ get 요청을 하는 코드(데이터 없이 서버로 보내는 경우) ⇒ post 요청을 하는 코드(데이터를 담아 서버로 보내는 경우) - 전체적인 구조는 비슷하나 두 번째 인수로 데이터를 넣어서 보낸다. 2. FormData ⇒ FormData Post 요청으로 보내기 - Axios의 data 자리에 formData를 넣어서 보내면 됨 (async () => { try { const formData = new FormData(); formData.append('name', 'zerocho'); formData... [노드교과서] 섹션 1. 알아두어야 할 자바스크립트 p.s javascript에서 가장 중요한 3가지 ⇒ 이벤트루프, 프로토타입, 실행컨테스트(this, scope) 2. 호출 스택 알아보기 2.1. 호출 스택, 이벤트 루트 1. 호출 스택 function first() { second(); console.log('첫 번째'); } function second() { third(); console.log('두 번째'); } function third() { console.log('세 번째); } first(); // console.log의 출력 순서 : '세 번째' → '두 번째' → '첫 번째' ⇒ Anonymousm는 가상의 전역 컨테스트이다. ( 항상 있다고 생각함이 이해하기 쉽다) - 함수는 호출하는 순서대로 스택에 쌓이고, 역순으로 실행된다. -.. [노드교과서] 챕터0. Node.js 설치하기 이전 1 2 3 다음