제목 가이드 : [Day1] Do it! NodeJs 프로그래밍 00~02장
1. 공부한 책DB를 검색하여 넣어 주세요.
정재곤
이지스퍼블리싱 2017.03.06
2. 공부한 페이지 : p.13 ~ p.80
3. 공부한 내용 :
0 노드로 만들 수 있는 대표적인 서버와 용도
이 장에서는 서버에 대하여 서술한다.
서버의 필요성과 대표적인 서버 유형에 대해 설명해 준다.
서버의 개념을 알기위해서는 클라이언트의 개념도 알아야 한다.
간단하게 설명하면 방대한 양의 데이터를 클라이언트에 둘수 없기에 서버를 통하여 데이터를 활용한다고 본다.
책에서 서버의 유형에는 크게 5가지로 설명한다.
웹서버, 채팅서버, JSON-RPC 서버, 위치기반 서비스 서버, 모바일 서버로 분류한다.
01-1 노드에 대해 알아보고 개발 도구 설치하기
노드(Node.js)는 자바스크립트를 이용해서 서버를 만들 수 있는 개발 도구이다.
노드의 비동기 입출력 방식은 하나의 요청 처리가 끝날 때까지 기다리지 않고 다른 요청을 동시에 처리할 수 있다.
파일을 '비동기 방식으로 읽는다'는 것은 파일 시스템에 읽기 요청을 한 후에 프로그램이 대기하지 않고 다른 작업을 진행한다는 것을 의미한다. 프로그램에서 해당 파일의 내용을 처리할 수 있는 시점이 되면 콜백 함수가 호출된다.
콜백함수는 파라미터로 전달된 함수를 다른 함수의 내부에서 호출하는 것이다.
노드의 기반 이벤트 기반 입출력방식은 이벤트 큐에 등록된 새로운 이벤트를 감지하여, 해당 이벤트 시 수행하여야 할 작업을 실행하게 된다.
노드의 모듈은 메인이 되는 자바스크립트 파일의 일부 코드를 떼어 별도의 파일로 만들 수 있다. 여러 개의 모듈을 합쳐서 하나의 패키지로 만든다.
npm은 Node Package Manager의 줄임말로 다른 프로그래머가 미리 개발하여 올려 둔 패키지를 찾아 설치하는 방법을 제공한다.
01-2 개발 도구 설치하기
- 브라켓 설치 URL : http://brackets.io
- 브라켓 확장 기능 설치 : 파일 → 확장 기능 관리자
- 노드 설치 URL : https://nodejs.org.en
02-1 첫 번째 노드 프로젝트 만들기
[자바스크립트 파일생성]
파일 탐색기 - brackets-node.js - nodeExample1 폴더 만들고, ch01_test0.js 파일 생성한다
윈도우 명령 프롬프트를 실행하면 명령하면 명령을 실행할 수 있는 창이 뜨며 사용자 폴더가 기본위치로 지정된다.
브라켓의 확장 기능 설치하고 브라켓에서 노드 프로그램 실행한다.
자바스크립트 파일 실행하고, 노드 셀에서 직접 코드 입력하고 실행하고 결과는 콘솔에 출력되어 사용자가 볼 수 있다.
02-2 콘솔에 로그 뿌리기
콘솔 객체는 전역 객체라고 부르며 필요할 때 코드의 어느 부분에서나 사용할 수 있다.
JSON 포맷은 자바스크리비트의 객체 포맷으로 단말끼리 데이터를 주고 받을때 많이 사용한다.
함수는 프로그래밍 언어에서 공통으로 사용한다. 자바스크립트는 객체지향언어의 특징인 객체를 만들 수 있는데
객체를 만들었을 때 그 안에 정의한 함수는 메소드라고 부른다.
02-3 프로세스 객체 간단하게 살펴보기
process 객체는 프로그램을 실행했을 때 만들어지는 프로세스 정보를 다루는 객체이다.
주요 속성과 메소드
argv : 프로세스를 실행할 때 전달되는 파라미터 정보
env : 환경 변수 정보
exit() : 프로세스를 끝내는 메소드
process.env['OS'] : 사용자 정의 환경변수 뿐만 아니라 시스템 환경변수도 접근할 수 있다. [윈도우기준, 맥OS는 안됨]
02-4 노드에서 모듈 사용하기
모듈을 불러올때는 require() 메소드를 사용한다.
모듈에서 exports 객체에 설정한 속성들은 이 모듈 객체를 통해 접근한다.
module.exports를 사용해도 된다.
어떤 것을 사용하는가에 따라 메인 파일에서 모듈을 불러와 사용하는 방식이 약간 다를 수 있다.
외장 모듈을 사용할때는 npm (node package manager)으로
다른사람이 올려놓은 패키지를 다운로드하여 설치해 사용한다.
package.json 파일안에 설치한 패키지들의 정보를 넣어 둘수 있다.[npm init]
02-5 간단한 내장 모듈 사용하기
시스템 정보를 알려주는 os 모듈
hostname() 운영체제 이름을 알려준다.
totalmem() 시스템 전체 메모리를 알려준다.
freemem() 시스템에서 사용가능한 메모리 용량을 알려준다.
cpus() CPU정보를 알려준다.
networkInterfaces() 네트워크 인터페이스 정보를 담은 배열 객체를 반환한다.
파일 패스를 다루는 path 모듈
join() 여러개 이름을 합쳐 하나의 파일패스로 만들어준다.
dirname() 파일패스에서 디렉터리 이름을 반환한다.
basename() 파일패스에서 파일의 확장자를 제외한 이름을 반환한다.
extname() 파일패스에서 파일의 확장자를 반환한다.
## 실습코드 : https://github.com/dlckdgjs89/NodeJS
'Programing > NodeJs' 카테고리의 다른 글
Do it! NodeJs 프로그래밍 - Day 8 (0) | 2020.08.08 |
---|---|
Do it! NodeJs 프로그래밍 - Day 6 (0) | 2020.08.08 |
Do it! NodeJs 프로그래밍 - Day 4 (0) | 2020.08.08 |
Do it! NodeJs 프로그래밍 - Day 3 (0) | 2020.08.08 |
Do it! NodeJs 프로그래밍 - Day 2 (0) | 2020.08.08 |