node.js 12

RDBMS와 NoSQL의 차이점

RDBMS : 관계형 데이터베이스 관리 시스템을 의미, RDBMS는 RDB를 관리하는 시스템이며 모든데이터를 2차원 테이블 형태로 표현하는 데이터베이스 이러한 관계를 나타내기 위해 foregin key를 사용해 테이블 간 Join이 가능하다는게 가장 큰 특징 사용여부 데이터 구조가 명확하며 변경될 여지가 없으며, 명확한 스키마가 중요하다 장점 정해진 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조 보장 각 데이터를 중복없이 한 번만 저장할 수 있다 단점 테이블간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어 질 수 있다 성능 향상을 위해서는 Scale-up만을 지원. 이로 인해 비용이 기하급수적으로 늘어날 수 있다 스키마로 인해 디에터가 유연하지 못하다 NoSQ..

node.js 2022.04.13

What is Socket.io?

Socket IO란? Socket.IO는 자바스크립트를 이용하여 브라우저 종류에 상관없이 실시간 웹을 구현할 수 있도록 한 기술이다. 웹소켓을 이용해 클라이언트에 실시간 데이터를 전송한다. socket.io는 Socket을 구현한 것으로 WebSocket개발을 쉽게 하기 위한 것이다. - 브라우저의 종류에 상관없이 실시간 웹 구현 가능 HTTP 양방향 통신 방법들 종류 Polling Long Polling Streaming Polling 클라이언트에서 일정 주기마다 요청을 보내고 서버는 현재 상태를 바로 응답하는 방식이다. Long Polling 클라이언트에서 요청을 보내고 서버에서는 이벤트가 발생했을 때 응답을 내려주고 클라이언트가 응답을 받았을 때 다시 응답을 기다리는 요청을 보내는 방식이다. Str..

node.js 2022.01.21

SQL? NoSQL?

SQL? NoSQL? 데이터 베이스에는 두 가지 타입이 존재한다 SQL 과 NoSQL -Database SQL: SQL은 Structured Query Language의 약자이다. 아주 오래전부터 사용되던 방식이라 DB라 한다면 SQL을 의미하는 경우가 많다. -No SQLDatabase : Non-SQL 혹은 Not Only SQL, non-relational database라고도 부른다. 관계형 테이블로 서로 이루어진 SQL과 달리 데이터 저장을 위한 메커니즘이 다른다. Unstructured된 방대한 데이터를 저장하기에 좋다. 서로 반대의 개념도, 경쟁상대도 아니다. NoSQL이 스케일링에 좋다고 하던데 무슨말일까? SQL의 경우엔 시스템이 커져가면서 Scale-Up형태로 DB를 증성하게 된다. 관..

node.js 2022.01.14

에러 처리하기

에러 처리하기 에러처리는 정말 중요한 역할이다 그래서 꼭 에러처리를 잘해야한다 예외 : 처리하지 못한 에러 노드 스레드를 멈춤 노드는 기본적으로 싱글 스레드라 스레드가 멈춘다는 것은 프로세스가 멈추는 것 setInterval(() => { console.log("시작"); try { throw new Error("Server is died"); } catch(err) { console.error(err); } }, 1000); promise에는 catch 붙이는 습관을 길러야 한다. 콜백 함수의 동작이 보장되지 않음 따라서 복구 작업용으로 쓰는 것은 부적합 에러 내용 기록용으로만 쓰는게 좋음

node.js 2022.01.03

버퍼와 스트림 이해하기

버퍼와 스트림 이해하기 버퍼 : 일정한 크기로 모아두는 데이터 일정한 크기가 되면 한 번에 처리 버퍼링 : 버퍼에 데이터가 찰 때까지 모으는 작업 스트림 : 데이터의 흐름 일정한 크기로 나눠서 여러 번에 걸쳐서 처리 버퍼(또는 청크)의 크기를 작게 만들어서 주기적으로 데이터를 전달 스트리밍 : 일정한 크기의 데이터를 지속적으로 전달하는 작업 대부분 스트림이 효율적이다 //buffer const buffer = Buffer.from("저를 버퍼로 바꿔보세요"); console.log("buffer", buffer); console.log(buffer.length); console.log(buffer.toString()); const array = [Buffer.from("띄엄"), Buffer.from("..

node.js 2022.01.03

fs에 대해서

fs 파일 시스템에 접근하는 모듈 파일/폴더 생성, 삭제, 읽기, 쓰기 가능 웹 브라우저에서는 제한적이지만 노드는 권한을 가지고 있음 readfile - 다른 파일을 읽을 수 있다 const fs = require("fs").promises; fs.readFile("./readme.txt") .then((data) => { console.log(data.toString()) }) .catch((err) => { throw err; }); writefile - 글을 쓸 수 있다 const fs = require("fs").promises; fs.writeFile("./writMme.txt", "글이 입력됩니다.") .then(() => { }) .catch((err) => { throw err; }); 동..

node.js 2022.01.03

URL모듈이란? crypto 와 util에 대해서

URL모듈 searchParams WHATWG방식에서 쿼리스트링 부분처리를 도와준다 ?이후 문자열들 getAll : 키에 해당하는 모든 값들을 가지고 온다.category 키에는 두 가지 값, 즉 nodejs, javascript값이 같이 들어있다. get : 키에 해당하는 첫 번째 값만 가지고온다 has : 해당 키가 있는지 없는지를 검사한다 keys : searchParams의 모든 키를 반복기 객체로 가지고온다 values : searchParams의 모든 값을 반복기 객체로 가져온다 append : 해당 키를 추가한다 같은 키가 있어도 추가 set : append와 비슷하지만 같은 키의 값을 지우고 새로 추가 delete : 해당 키를 제거 tosString : 조작한 searchParams 객체..

node.js 2022.01.03

require? Process?

require require("./var"); //따로 변수를 선언하지 않으면 그냥 그 파일을 불러와서 실행하겠다는 말만된다. //var안에 파일의 변수들은 실행하지 않고 그냥 불러옴 require가 제일 위에 올 필요는 없다 (dotenv)는 맨 위에 require.cache에 한 번 require한 모듈에 대한 캐시 정보가 들어있다 require.main은 노드 실행 시 첫 모듈을 가리킴 Process 현재 실행중인 노드 프로세스에 대한 정보를 담고 있음 node 실행 ⇒ process로 접근 가능하다 process.env 환경변수 데이터베이스 비밀번호 등 노출되지 말아야 할 키들을 보관하는 용도로 쓰임 const secretId = process.env.SECRET_ID; process.nextTi..

node.js 2022.01.03

global과 콘솔 - 타이머

global과 콘솔, 타이머 노드 내장 객체 알아보기 1. global 노드의 전역 객체 브라우저의 window같은 역할 모든 파일에서 접근 가능 window처럼 생략도 가능 노드에서는 global생략하고 쓸 수 있다. 그래서 require도 global 안에 들어있는데 생략 가능하고 쓰는 것이다. global은 속성이 공유되는데 다른 곳에서 쓰여지면 복잡해지니 안스는게 좋다 2. console console.log : 평범한 로깅 console.error : 에러 로깅 console.dir : 객체로깅 3. 타이머 메서드 setTimeout(콜백함수, 밀리초) : 주어진 밀리초 이후에 콜백함수 실행 setIntervar(콜백함수, 밀리초 ) : 주어진 밀리초마다 콜백함수 실행 setImmeidate(콜..

node.js 2022.01.03

REPL과 exports로 보내고 require로 받기

REPL와 js파일 실행하기 자바스크립트는 스크립트 언어라서 즉석에서 코드를 실행할 수 있음 REPL이라는 콘솔 제공 Read, Evaluate, Print, Loop - 읽고 평가하고 출력하고 실행한다 원도에서는 명령 프롬프트, 맥이나 리눅스에서는 터미널 node입력 모듈 노드는 자바스크립트 코드를 모듈로 만들 수 있음 모듈 : 특정한 기능을 하는 함수나 변수들의 집합 모듈로 만들면 여러 프로그램에서 재사용 가능 //var.js const odd = "홀수"; const even = "짝수"; module.exports = { odd, even }; // 다른 파일에서 쓸 수 있게 보내는 것이다. //helloworld.js const value = require("./var"); //js생략 가능 c..

node.js 2022.01.02
반응형