Frameworks/Node.js
14개의 글
웹 스크래핑이란 ? 웹 스크래핑은 웹페이지의 정보를 프로그램을 통해서 가져오는 것을 뜻한다. 우리가 신문을 스크랩 하듯이, 웹페이지를 스크랩 해서 정보를 저장하는 것이 가능하다. 그러나 비정상적인 접근으로 금지하는 경우도 있으니 조심해야 할 것 ! 오늘 사용할 모듈은 2가지인데, Request와 Cheerio 이다. Request 모듈은 Node.js 내장 모듈로, 인터넷에 요청을 보내고, 요청에 해당하는 페이지를 가져온다. Cheerio 모듈은 그 받아온 페이지를 파싱하여 전체 페이지 중에서 필요한 부분의 정보만을 가져올 수 있다. Cheerio의 장점은, jQuery 문법을 그대로 사용할 수 있다는 것이다. 따로 공부할 문법이 없이, 그냥 jquery 선택자를 이용해서 쉽게 사용할 수 있다.(jque..
Socket.io 이번 포스팅은 Socket.io 최신버전의 새로운 기능들에 대해서 알아보자. 먼저 프론트엔드 측에서, socket.io 서버로 연결할 때에 호스트를 입력하지 않아도 되도록 바뀌었다. 기존의 코드가 다음과 같다면, 1var socket = io('http://localhost:3000/');cs 이제는 다음과 같이 써도 된다는 것이다. 1var socket = io();cs io는 자동으로 현재 접속해 있는 사이트의 호스트를 찾고, 해당하는 호스트에 socket.io 서버가 열려있다면 연결하게 된다. 무척이나 편리한 기능이 아닐 수 없다 ! Namespace 기존에 Socket.io 에는, Room이라는 기능이 있었다. 소켓에 접속하고, 같은 room 내부의 사람들과 통신할 수 있는 방식..
Bower ?혹시나 프론트 엔드라는 개념을 아직 모르시는 분이 계시는 분을 위하여 , 프론트 엔드는 사용자가 마주하는 부분을 의미합니다. 백 엔드는 프론트와 반대 개념으로, 사용자가 마주하지 못하는 뒤에서 돌아가고있는 서버를 뜻합니다. 따라서 웹 개발에 있어서 프론트엔드는 브라우저에서 보는 화면들 에 해당합니다. Bower는 이 프론트엔드에서 필요한 라이브러리들을 관리해줍니다. 웹페이지를 만들다 보면, 많은 라이브러리 들을 사용하게 됩니다. jquery, angularjs, bootstrap, materialize ..... 따라서 파일이 많아질수록 관리하는 것은 힘들어(귀찮아) 집니다. 그런 어려움을 극복하기 위한 모듈이 bower입니다. 설치 및 사용법Bower 또한 node.js 의 모듈 중 하나이..
Callback 함수 흔히 Node.js 에 대한 정보들을 검색하다 보면, Callback 지옥에 빠진다 ! 라는 글이 눈에 종종 띈다. 그렇다면 Callback 함수 는 무엇인가 ? 아주 간단한 예로 이해해보자. 콜백 함수 의 이름에서부터 알 수 있듯이, 전화를 다시 하다 (?) 라는 뜻이다. (물론 그런 의도가 아니었을지라도) 친구들과 즐겁게 시내를 돌아다니다가, 집에 갈 때 사갈 떡볶이를 사가려고 한다.그런데 이게 무슨일이람. 떡볶이가 너무 많이 밀려서 시간이 조금 걸린다고 한다 !그래서 나는 전화번호를 주고, 조리가 끝나면 받아갈테니 전화를 다시 주라고 하였다! 무슨 말인지 이해가 왔는가 ? 그렇다면 독자는.. 정말 똑똑한 사람일지도 모르겠다. 무엇인가 일을 다른 객체에게 시키고, 그 일이 끝나는..
Socket.io ? Socket.io는 저번에 나왔듯이, 소켓을 통해서 다른 환경의 프로그램들끼리 통신이 가능하게끔 해주는 모듈이다. 인터넷에서 사용하는 Websocket도 포함되어진다. Socket.io의 특징은, 연결 - 통신 - 종료 의 단계로 이루어진다. 따라서 크게 구분을 나누자면, Persistent 와 Non-Persistent의 두가지 방식이 있겠다. Non-Persistent는 socket 연결을 하고, 통신을 하고, 종료를 한다.다음 통신을 하기 위해선 다시 연결을 하고, 통신이 끝나면 또 종료를 한다.보통 페이지가 계속해서 움직이는 경우에는 이런 상황이 된다.페이지가 넘어가면, js 파일을 다시 불러서 socket을 연결해야하는 과정을 거친다. 그런데 여기에서 지연시간(delay)가..
웹페이지 준비웹페이지 뷰를 위한 css 파일과, ejs 파일을 먼저 만들어야겠죠? dalkom_talk.ejs 라는 파일을 먼저 만들어 봅시다. 위 파일 클릭시 다운로드할 수 있습니다. 지정된 폴더에 집어넣어주셔야 정상 작동합니다 123456789101112131415161718192021222324252627282930313233343536373839404142434445 Dalkom Talk $(function(){ var socket = io('http://localhost:3000/'); socket.on('my message', function (msg) { $('#messages').append($('').text(msg)); }); socket.on('other message', functi..
Socket.io ? 네트워크에 대해 공부했다면, 소켓 이라는 단어를 들어본 적이 있을 것입니다.혹은, 전구를 갈아본 적이 있다면, 혹은 설치해본 적 이있다면 소켓이란 말을 들어보았을 것입니다.전구와 전선의 연결 부분이 바로 전구 소켓입니다. 네트워크 상에서도 동일한 역할을 합니다.서로 다른 종류의 구동 환경에서, 서로를 연결해주고 데이터를 주고 받을 수 있도록 도와주는 것이 통신에서 말하는 소켓입니다. 이 Socket.io 모듈을 통해서 웹 서버는 웹 브라우저와 실시간 통신이 가능하게 됩니다. 그러기 위해서는 웹 서버, 즉 HTTP 서버를 구성할 때에 socket.io가 서버에 들어오는 소켓 통신을 받을 수 있도록 설정해주어야 합니다. 포스팅에서는 socket.io를 이용하여 간단한 채팅 웹 어플리케이..
Package.json ? package.json은 NPM을 위한 각종 정보들을 저장해놓은 파일입니다.어떤 프로젝트를 만들 때, npm을 통해서 다양한 모듈들을 설치하고 이용하게 되는데 이 때에 설치된 모듈들을 관리해주는 파일이라고 생각하시면 됩니다. 잘 관리해 두시면, 프로젝트 모듈 관리하거나 여러 js 파일들을 한번에 실행하거나 할 때에 편리하게 사용할 수 있습니다. Package.json 생성 npm의 명령어 중 init 이라는 명령어를 통해서 만들 수 있습니다.프로젝트의 시작 폴더에서 다음과 같이 입력합니다. npm init 위와 같이 커맨드 창에 입력하시면 사진처럼 나오게 됩니다.npm init을 하면 정보들을 요구하게되고, 그 정보를 입력하면 그 정보에 의거하여 아래 파일이 만들어지게 됩니다...
지난 포스팅에 이어 오늘 포스팅도 node.js 설치 시에 자동으로 내장되어 있는 http 모듈에 대한 공부입니다. HTTP(HyperText Transfer Protocol)은 TCP/IP 기반 프로토콜로, HTML 페이지를 전달하는 데 주로 쓰입니다.자세한 내용은 HTTP 프로토콜에 대해 공부할 때에 쓰도록 하겠습니다(언제 쓰련지) 따라서 HTTP 모듈은 우리가 node.js를 공부하기 위한 목적인 웹 서버를 구동하기 위하여 사용되는 기본 모듈입니다.(그러나 이후에는 Express 모듈을 사용할 예정입니다.) 우선 간단하게 모듈을 불러오는것 부터 시작해야겠죠 ? 1var http = require('http');cs HTTP 모듈에는 각종 요청과 연결을 처리하기 위한 Server 객체가 존재합니다. ..
Crypto이번 포스팅에서는 Node.js를 설치하면 들어 있는 내장 모듈 중에 Crypto 모듈을 직접 사용해보려고 합니다. crypto 형용사 비밀의, 숨겨진; 내밀(內密)의 출처 : 네이버 영어사전 위의 사전 정의에서 알 수 있듯이, 비밀 즉 암호와 관련된 모듈입니다. 평문(암호화 되기 이전의 텍스트)를 암호화하는 데에는 다양한 방법의 암호화 기법들이 존재하는데, 그 중 많은 방식들을 갖고 있는 고마운 모듈입니다. Crypto 모듈에서 사용할 수 있는 암호화 기법들은 다음과 같습니다. CertificateCipher DecipherDiffie HellmanECDH (Elliptic Curve Diffie-Hellman)HashHmac (a keyed-Hash Message Authenti..
모듈 사용법 Node.js 의 장점 중에 하나는, 전 세계 수많은 사용자들이 만든 모듈을 쉽게 사용이 가능하다는 것이다. node.js 내장 모듈은 require('모듈명')으로 사용이 가능하다. 그 외에 따로 모듈을 받아서 사용하려면, npm을 통하여 모듈을 다운로드하는 과정이 필요하다. 다운로드 하였다면 똑같이 require를 이용하여 사용이 가능하다. 1var crypto = require('crypto');cs 위는 node.js의 내장 암호화 모듈인 crypto를 불러오는 코드이다. C의 include, 자바의 import 등과 다른 점은 불러와서 객체(var crypto)에 저장을 한다는 것이다.NPM 사용법 npm은 최신 node.js는 설치 시 자동으로 함께 설치가 된다. 사용 방법은 커맨..
이번 포스팅은 Node.js의 기초 중에서도 기초를 훑어 볼 예정입니다. node에서 사용되어지는 객체 Console에 대해 배워 봅시다. console에서 가장 많이 사용되어지는 함수는 console.log('메시지'); 입니다. 흔히 C의 printf나, Java의 println과 동일한 함수입니다. 둘중에는 println과 더 닮았습니다, 왜냐하면 자동으로 개행을 해주거든요. 아주 간단하게 코딩을 짜 봅시다. 위와 같이 간단하게 출력만 하는 함수를 만들어 보았습니다. 실행은 커맨드 창에서 node [파일명] 을 통하여 할 수 있습니다. 의도했던 대로 문자가 출력되는 것을 볼 수 있습니다 ! 또 사용되는 Console 함수는 time과, 그 짝인 timeEnd 함수가 있습니다. Console.time..
개발 환경 구축을 위하여 먼저 Node.js 홈페이지에 들어가서 node.js를 다운받는다. https://nodejs.org/ 들어가면 위와 같이 자신의 OS에 맞게 다운로드를 받아서 설치를 하면 끝난다. 다음으로는 node.js 에디터를 선택하여야 한다. 어떤 에디터든 파일 수정이 가능하다면 사용이 가능하지만, 가능하면 깔끔하고, 다양한 기능에 가벼운 에디터가 좋지 않겠는가 ? 선택지는 4가지가 있다. 첫째, Eclipse. 이클립스를 통해 웹 프로젝트와 유지 보수가 가능하지만, 조금 무겁고 속도도 느리다. 두번째, Visual Studio. 마이크로소프트에서 제공하는 비쥬얼 스튜디오에 JS 플러그인을 설치하여 사용하는 방법이 있다. 추천 세번째, WebStorm. 상용 프로그램이다. 연단위로 정액을..
Node.js의 js는 Javascript이다 ! Node.js는 서버사이드 개발에 사용되는 소프트웨어 플랫폼이다. 작성 언어로는 위에서도 말했듯이 Javascript이며, 굉장히 많은 module, library들이 개발되어 있고 전 세계 곳곳에서 현재도 개발중이기 때문에 정보를 얻기가 굉장히 쉬운 편에 속한다. Node.js 의 구조적인 장점은, 비동기식 단일 쓰레드 서버라는 것이다. 그림 1. 동기식 다중 쓰레드 서버 그림 2. 비동기식 단일 쓰레드 서버 출처 : https://strongloop.com/strongblog/node-js-is-faster-than-java/ 위의 그림을 보면 알 수 있듯이, 비동기식으로 쓰레드가 돌아가기 때문에 작업을 위하여 대기하는 시간이 없다. 또한 코딩에 있어..