본문 바로가기

Back-End/Node.js

(103)
[패스트캠퍼스:Node.js 올인원] 크롤링 / Puppeteer 1. 크롤링 개념 1.1 크롤링 도서관에 무한이 많은 책이 있다. 이 책들 중 내가 원하는 책을 찾아야만 한다. 웹은 이 도서관과 같다. 웹 또한 계속하여 정보가 늘어나고 있고, 이 정보들을 검색할 수 있게끔 어딘가에 저장하여 관리해야 한다. 이를 위해 만들어진 것이 크롤링(crawling)이고, 그것을 소프트웨어로 만든 것이 크롤러(crawler)이다. 1.2 크롤러 조직적, 자동화된 방법으로 월드 와이드 웹을 탐색하는 컴퓨터 프로그램 - 위키백과 달라지는 웹 트렌드에 따라서 크롤러는 이에 맞춰서 자동화된 방법으로 데이터를 수집할 수 있어야 한다. 따라서 크롤러는 정교하고 어려운 기술이다. 크롤러가 작동하는 과정 먼저 씨앗이라 불리는 사이트들(Seeds)을 정한다. 이 출발점으로 시작으로부터 크롤링을 ..
NPM과 NPX [번역] 그래, npx! npm말고 — 차이점 설명 최근에 리액트를 배우기 시작했을 때, 나는 많은 사람들이 (나를 포함해서) 잘 알려진 npm대신 npx를 보고 헷갈려하는 것을 보았습니다. 우리중에 몇몇은 이상하다고 느꼈지만 별로 깊게 생각하지 velog.io
readFile(비동기)와 readFileSync(동기)의 차이 fs fs는 노드가 기본적으로 제공하는 FileSystem 모듈로, opendir, readdir, closedir 등 다양한 디렉토리 메서드를 제공한다. readFile과 readFileSync readFile(비동기) 다음 예제를 살펴보면서 콘솔 결과를 예상해보자. // test.txt readFile const fs = require('fs'); fs.readFile('./test.txt', 'utf-8', (err, data) => { if (err) throw err; console.log(data); }); console.log('1'); 콘솔 결과는 '1' ➡ 'readFile' 이다. 일반적으로 프로그램은 코드 순서대로 진행될 것이라고 생각한다. 하지만 비동기 처리는 그렇지 않다. 순서대로..
JavaScript / Node.js / Express.js 참고 자료 [Express] JavaScript, Node.js, Express 헷갈리는 개념들 정리 JavaScript는 뭐고 Node.js는 뭐고 Express는 무엇일까? 간단히 말해서 JavaScript(이하 자스)는 언어이다. 컴퓨터와 대화하기 위해서 사람이 기본적으로 알아야 하는 소통하기 위한 언어. 자바스크립트는 dunkey2615.tistory.com [Node.js] 왜 Node.js인가? Node.js는 서버사이드 자바스크립트이다. 구글의 바사크립트 엔진 V8을 기반으로 구성된 일종의 소프트웨어 시스템이다. 이벤트 기반으로 개발이 가능하며 Non-Blocking I/O를 지원하기 때문에 비동기 dunkey2615.tistory.com
모듈/패키지/라이브러리/프레임워크/플랫폼/API 용어의 의해 모듈/패키지/라이브러리 프레임워크 플랫폼 API jQuery Socket.io Express.js (Node.js 프레임워크) Node.js (서버사이드 자바스크립트 플랫폼) 구글 지도 API 페이스북 API 하나씩 차례대로 살펴보자. 모듈 모듈화란 수 많은 로직을 재사용할 수 있는 단위로 나누어 별도의 모듈이라는 형태로 떼어나 다른 프로그램에 부품으로 사용하는 기법이다. 그리고 그 결과물을 모듈이라 한다. 모듈은 데이터, 함수, 클래스 등이 담겨져 있는 파일이다. 내장 함수가 아닌 외장 함수의 경우 외부의 라이브러리(모듈)을 사용하기 위해서 따로 import하는 작업이 필요하다. 모든 Node.js 모듈은 package.json에 패키지가 등록이 된다. npm install [라이브러리명] 을 입력하면..
시퀄라이즈(Sequelize) 1. MySQL 1.1 DBMS 데이터베이스란 관련성을 가지며 중복이 없는 데이터들의 집합을 말한다. 이러한 데이터베이스를 관리하는 시스템을 DBMS(DataBase Management System)이라고 한다. 1.2 RDBMS 데이터베이스를 관리하는 DBMS 중에서 RDBMS(Relational DBMS)라고 부르는 관계형 DBMS가 많이 사용된다. Oracle, MySQL, MSSQL, ... SQL 언어를 사용하여 데이터를 관리한다. RDBMS별로 SQL문이 조금씩 다르다. 2. 시퀄라이즈 노드에서 MySQL 데이터베이스에 접속할 때, MySQL 작업을 쉽게 할 수 있도록 도와주는 라이브러리가 바로 시퀄라이즈(Sequelize)이다. 2.1 시퀄라이즈 시퀄라이즈는 *ORM(Object-relati..
[Node.js 교과서] 6. 익스프레스 웹 서버 만들기 노드로만 웹 서버를 만들 때 코드가 보기 좋지 않고 확장성도 떨어진다. npm에서는 서버를 제작하는 과정에서의 불편함을 해소하고 편의 기능을 추가한 웹 서버 프레임워크가 있는데, 이 중에서 가장 대표적인 것이 익스프레스(Express)이다. 익스프레스는 http 모듈의 요청(req), 응답(res) 객체에 추가 기능들을 부여했다. 기존 메소드들에 편리한 메소드들을 추가하여 기능을 보완하였고, 코드를 분리하기 쉽게 만들었기 때문에 관리하기에도 용이하다. 그리고 if문으로 요청 메소드와 주소를 구별하지 않아도 된다. 1. 익스프레스 프로젝트 시작하기 learn-express 폴더를 생성하자. 1.1 package.json 생성하기 항상 package.json을 가장 먼저 생성해야 한다. package.jso..
[Node.js 교과서] 4. http 모듈로 서버 만들기 목표 http 모듈로 서버를 직접 만들어 보면서 실제 서버 동작에 필요한 쿠키, 세션처리, 요청 주소별 라우팅 방법에 대해 알아본다. 1. 요청과 응답 이해하기 1.1 클라이언트와 서버의 관계 서버는 클라이언트가 있기에 동작한다. request (client->server) ➡ response (server->client) (1) 클라이언트에서 서버로 요청(request)을 보내고, (2) 서버에서는 클라이언트의 요청 내용을 읽고 처리한 후 클라이언트에 응답(response)을 보낸다. 1.2 이벤트 리스너를 가진 노드 서버 만들기 서버에는 요청을 받는 부분과 응답을 보내는 부분이 있어야 한다. 요청과 응답은 이벤트 방식이라고 생각하면 된다. 클라이언트로부터 요청이 오면 어떤 작업을 수행할지 이벤트 리스..

반응형