Programming

·Programming/NodeJS
8.1 NoSQL vs SQL [SQL] SQL는 관계형 데이터베이스로 RDBMS에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다. 관계형 데이터베이스에는 핵심적인 두 가지 특징이 있다. - 데이터는 정해진 데이터 스키마에 따라 저장된다. - 데이터는 관계를 통해 여러 테이블에 분산된다. 장점 명확하게 정의된 스키마, 데이터 무결성 보장 관계는 각 데이터를 중복없이 한번만 저장 단점 관계를 맺고 있어서 조인문이 복잡 덜 유연하여 데이터 스키마를 사전에 계획하고 알려줘야함 (수정하기 힘듬) [NoSQL] NoSQL은 비관계형 데이터베이스로 SQL을 사용하지 않는 데이터베이스를 NoSQL이라고 한다. 스키마도 없고 관계도 없다. 비관계형 데이터베이스의 특징 - 레코드를 문서라고 부른다. - 테이블을 컬렉..
·Programming/NodeJS
7.1 데이터베이스란? 데이터베이스는 관련성을 가지며 중복이 없는 데이터들의 집합이다. 이러한 데이터베이스를 관리하는 시스템을 DBMS(데이터베이스 관리 시스템)라고 한다. 보통 서버의 하드 디스크, SSD 등의 저장 매체에 데이터를 저장한다. 서버에 데이터베이스를 올리면 여러 사람이 동시에 사용할 수 있다. 데이터베이스를 관리하는 DBMS 중 RDBMS라고 부르는 관계형 DBMS가 많이 사용된다. 대표적인 RDBMS로 Oracle, MySQL, MSSQL 등이 있다. 이들은 SQL 이라는 언어를 사용해 데이터를 관리한다. 7.2 데이터베이스 및 테이블 생성하기 CREATE SCHEMA [데이터베이스명]이 데이터베이스를 생성하는 명령어이다. SCHEMA라고 되어 있는데 MySQL에서 데이터베이스와 스키마..
·Programming/NodeJS
6.1 익스프레스 프로젝트 시작하기 - package.json 생성 제일 먼저 package.json을 생성한다. npm init 명령어를 콘솔에서 호출해 단계적으로 내용물을 입력해도 되고, npm init -y를 입력해 파일을 만든 뒤 내용을 수정해도 된다. // package.json { "name": "learn-express", "version": "0.0.1", "description": "최하호의 익스프레스 성장기", "main": "app.js", "scripts": { "start": "nodemon app" }, "author": "haho", "license": "MIT", "dependencies": { "express": "^4.18.2" } } script 부분에 start 속성을..
·Programming/NodeJS
5.1 npm 알아보기 [ npm ] npm은 Node Package Manger의 약어로 이름 그대로 노드 패키지 매니저를 의미한다. 대부분의 자바스크립트 프로그램은 패키지라는 이름으로 npm에 등록되어 있으므로 특정 기능을 하는 패키지가 필요하다면 npm에서 찾아 설치하면 된다. npm에 업로드된 노드 모듈을 패키지라고 부른다. 패키지가 다른 패키지를 사용할 수 있는데 이런 관계를 의존 관계라고 한다. [ yarn, pnpm ] npm의 대체자로 yarn과 pnpm이 있다. yarn은 페이스북이 내놓은 패키지 매니저로 리액트나 리액트 네이티브 같은 페이스북 진영의 프레임워크를 사용할 때 종종 볼 수 있다. pnpm은 npm의 성능을 개선한 패키지 매니저이다. 5.2 package.json으로 패키지 ..
·Programming/NodeJS
4.1 요청과 응답 이해하기 클라이언트에서 서버로 요청을 보내고 서버는 요청의 내용을 읽고 처리한 뒤 클라이언트에 응답을 보낸다. 따라서 서버에는 요청을 받는 부분과 응답을 보내는 부분이 있어야 한다. const http = require('http'); http.createServer((req, res) => { // 여기에 어떻게 응답할지 적어줍니다 }); http 모듈을 사용하는 이유는 http 서버가 있어야 웹 브라우저 요청을 처리할 수 있기 때문이다. createServer메서드는 인수로 요청에 대한 콜백 함수를 넣을 수 있으며 요청이 들어올 때마다 매번 콜백 함수가 실행된다. req객체는 요청에 관한 정보를 res는 응답에 관한 정보를 담고 있다. const http = require('htt..
·Programming/NodeJS
3.7 이벤트 이해하기 스트림을 할 때 on('data', 콜백) 또는 on('end', 콜백)을 사용했다. 바로 data라는 이벤트와 end라는 이벤트가 발생할 때 콜백 함수를 호출하도록 이벤트를 등록한 것이다. createReadStream같은 경우 내부적으로 이벤트를 호출하지만 직접 이벤트를 만들 수도 있다. const EventEmitter = require('events'); const myEvent = new EventEmitter(); myEvent.addListener('event1', () => { console.log('이벤트 1'); }); myEvent.on('event2', () => { console.log('이벤트 2'); }); myEvent.on('event2', () =>..
·Programming/NodeJS
3.5 파일 시스템 접근하기 fs 모듈은 파일 시스템에 접근하는 모듈이다. 즉 파일을 생성하거나 삭제하고 읽거나 쓸 수 있다. 또한 폴더도 만들거나 지울 수 있다. // readme.txt 저를 읽어주세요. const fs = require('fs'); fs.readFile('./readme.txt', (err, data) => { if (err) { throw err; } console.log(data); console.log(data.toString()); }); /* 실행 결과 저를 읽어주세요. */ fs 모듈을 불러온 뒤 읽을 파일의 경로를 지정한다. 여기서 파일의 경로가 현재 파일 기준이 아니라 node 명령어를 실행하는 콘솔 기준이다. readFile의 결과물은 버퍼라는 형식으로 제공되기 때문..
·Programming/NodeJS
3.5 노드 내장 모듈 사용하기 노드는 웹 브라우저에서 사용되는 자바스크립트보다 더 많은 기능을 제공한다. 운영체제 정보에도 접근할 수 있고 클라이언트가 요청한 주소에 대한 정보도 가져올 수 있다. 3.5.1 os 웹 브라우저에 사용되는 자바스크립트는 운영체제의 정보를 가져올 수 없지만, 노드는 os 모듈 정보가 담겨 있어 정보를 가져올 수 있다. // os.js const os = require('os'); console.log('운영체제 정보---------------------------------'); console.log('os.arch():', os.arch()); console.log('os.platform():', os.platform()); console.log('os.type():', ..
최하호
'Programming' 카테고리의 글 목록 (3 Page)