노드 간단하게 살펴보기 2장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03

Slides:



Advertisements
Similar presentations
ⓒ 2015 NHN Entertainment Corp. Django 로 만드는 초간단 블로그 시스템운영팀 김영태 개발환경 구축.
Advertisements

1 차시 : SW 코딩으로 배우는 3D 기초작품 및 톱니바퀴 만들기 1)SPL3D 프린팅 툴 설치하기 2) 도형 추가하기 3) 도형 연산 명령어 익히기 4)3D 프린터 출력을 위한 STL 파일 내보내기 5) 하트모양 만들기 6) 하트모양 열쇠고리 만들기 7) 변수와 수식.
2016 유성환 Hybrid MOBILE.
기초C언어 제1주 실습 강의 소개, C언어 개요, Cygwin/Eclipse 사용 컴퓨터시뮬레이션학과 2016년 봄학기
OpenCV 안드로이드 연동 환경설정 OpenCV-Android 를 다운 받습니다.
ㅎㅎ 구조체 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스 구조체 배열.
ㅎㅎ 구조체 C++ 프로그래밍 기초 : 객체지향의 시작 구조체 사용하기 함수 매개변수로서의 구조체 구조체 포인터와 레퍼런스
컴퓨터프로그래밍 1주차실습자료 Visual Studio 2005 사용법 익히기.
김태원 심재일 김상래 강신택. 김태원 심재일 김상래 강신택 인터넷 통신망의 정보를 제공하는 서비스 인터넷의 자원 및 정보는 NIC가 관리 IP주소 또는 도메인으로 정보 검색 이용자 및 통신망 관한 정보를 제공.
Image & Video processing
코크파트너 설치 가이드 Window 7.
Power Java 제3장 이클립스 사용하기.
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
5강. Servlet 본격적으로 살펴보기-I 프로젝트 만들기 doGet() doPost()
Windows Server 장. Windows Server 2008 개요.
1장. 이것이 C 언어다.. 1장. 이것이 C 언어다. 프로그래밍 언어 1-1 C 언어의 개론적 이야기 한글, 엑셀, 게임 등의 프로그램을 만들 때 사용하는 언어 ‘컴퓨터 프로그래머’라는 사람들이 제작 C 언어(C++ 포함)를 가장 많이 사용함.
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
Linux/UNIX Programming
네트워크 프로그래밍 및 실습.
ANSYS17.2 Student 제품 무료 다운로드
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
임베디드 시스템 개론 크로스 플랫폼 설치 2일차 강의 자료 Embedded System Lab.
4-1장. MySQL 제13장.
CHAPTER 02 OpenCV 개요 PART 01 영상 처리 개요 및 OpenCV 소개.
3.2 SQL Server 설치 및 수행(계속) 시스템 데이터베이스 master
1. C++ 시작하기.
FTP 프로그램 채계화 박재은 박수민.
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
뇌를 자극하는 Windows Server 장. Windows Server 2008 개요.
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
뷰 템플릿 적용하기 8장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
노드의 기본 기능 알아보기 4장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03
Method & library.
인터넷응용프로그래밍 JavaScript(Intro).
Device Driver 임베디드 시스템 I.
영상처리 실습 인공지능연구실.
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
3D 프린팅 프로그래밍 01 – 기본 명령어 강사: 김영준 목원대학교 겸임교수.
1차시: 낮과 밤이 생기는 원리 지구과학
2강_첫번째 안드로이드 프로젝트 에뮬레이터(AVD) 만들기 처음 만들어 보는 프로젝트 전체적인 구성 살펴보기
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 [01] Visual Studio 설치 및 사용방법
컴퓨터 개론 및 실습 1주차 2015년 03월 05일.
PMIS 서버 설정 환경설정 작성자 : 배경환.
빌드 성공.
학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성. 학습목표 처음 만드는 비주얼 베이직 프로그램 프로그램 실행과 실행 파일 생성.
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
OpenCV 설정 2.21 만든이 딩딩.
단축키 기능 1. 단축키 기능 설명 Alt + R 조회 S 저장 I 삽입 A 추가 D 삭제 P 출력 Q 닫기
암호학 응용 Applied cryptography
DK-128 개발환경 설정 아이티즌 기술연구소
수동 설치시는 설치 방법 1. 두번에 설치 CD 속에 fscommand 폴더 밑에 Osstem 이라는 폴더를
시스템 인터페이스 Lab#5 쉡 실습.
암호학 응용 Applied cryptography
3D 프린팅 프로그래밍 03 – 도형 회전 (손잡이컵 만들기) 강사: 김영준 목원대학교 겸임교수.
01. 분산 파일 시스템의 개요 네트워크에 분산된 파일을 사용자가 쉽게 접근하고 관리할 수 있게 해준다.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
함수, 모듈.
9 브라우저 객체 모델.
슬라이드 쇼의 설정 슬라이드 쇼의 실행 파일과 폴더의 관리 글꼴을 포함해서 저장 웹 페이지로 게시 압축 파일
Android -Data Base 윤수진 GyeongSang Univ. IT 1.
어드민 로그인 ID : admin 비밀번호 : 서보테크 1. 제품소개 등록 - MISUBISHI
숙제 작성 및 제출 과정 김진하 2008/03/14.
CODE INJECTION 시스템B 김한슬.
01. 로컬 사용자 계정 기본 사용자 계정은 Windows 2000, Windows XP, Windows Server 2003을 설치할 때 자동으로 생성 [시작] → [제어판] → [관리 도구]를 선택하고 [컴퓨터 관리] 창을 열어 ‘시스템 도구’ → ’로컬 사용자 및.
Docker Study 6~7.
7 생성자 함수.
6 객체.
20 XMLHttpRequest.
Presentation transcript:

노드 간단하게 살펴보기 2장 Do it! Node.js 프로그래밍 이지스퍼블리싱 제공 강의 교안 2017/03 ○ 본 강의 자료는 이지스퍼블리싱에서 제공하는 강의 교안입니다. ○ 본 강의 교안은 아래 출판 서적의 내용을 기준으로 구성되었습니다. 또한 다수의 기타 서적이나 사이트를 참조하였습니다. 레퍼런스를 참조하십시오. 2017, 정재곤, “Do it! 노드제이에스 프로그래밍 (개정판)”, 이지스퍼블리싱 - 강의 교안에 사용된 화면 캡처나 실습 자료의 경우에는 문서 업데이트에 따라 변경될 수 있습니다.

노드를 어떻게 사용하는지 먼저 간단하게 알아봐요. 강의 주제 및 목차 강의 주제 노드를 어떻게 사용하는지 먼저 간단하게 알아봐요. 목 차 1 첫 번째 노드 프로젝트 만들기 2 콘솔에 로그 뿌리기 3 프로세스 객체 간단하게 살펴보기 4 노드에서 모듈 사용하기 5 간단한 내장 모듈 사용하기

1. 첫 번째 노드 프로젝트 만들기 난이도 소요시간 10분

브라켓에서 만들기 파일>폴더 열기 메뉴를 누르고 brackets_nodejs 폴더 아래의 NodeExample 폴더 지정 (기존에 지정되어 있으면 그대로 사용) 확장 기능 중에서 NodeJs Integration 설치

브라켓에서 노드 바로 실행하기 자바스크립트 파일은 명령프롬프트를 열고 node 실행 파일을 이용해 실행 가능 브라켓에서 NodeJs Integration 확장기능을 이용해 실행 가능 왼쪽 프로젝트 영역에서 파일 선택 후 오른쪽 마우스 버튼 눌러 Add to Node.js 메뉴 선택 아래쪽에 탭 보이면 새로 만든 파일 지정 후 실행

브라켓에서 노드 디버깅하기 디버깅 버튼을 눌러 디버깅 가능

노드 프로그램의 실행 과정 node 명령어를 이용해 실행하면 지정한 자바스크립트 파일의 내용을 읽어 들인 후 실행 실행 결과는 콘솔에 출력됨

2. 콘솔에 로그 뿌리기 난이도 소요시간 10분

명령프롬프트에서 자바스크립트 파일 실행하기 cmd 명령어로 명령프롬프트 실행하면 사용자 폴더가 기본 위치로 지정됨 NodeExample 폴더로 이동 후 node 명령어를 이용해 실행 (% 기호는 입력 안함) % cd brackets_nodejs\NodeExample % node ch02_test1.js

명령프롬프트에서 직접 코드 입력하여 실행하기 명령프롬프트에 직접 코드를 입력할 수 있음 node 명령어를 실행하면 코드를 입력할 수 있는 상태로 바뀜 % node % console.log(‘결과는 %d입니다.’, 10);

console 객체 % console.log(‘숫자 보여주기 : %d’, 10); 전역 객체 이름 설명 console 콘솔 창에 결과를 보여주는 객체 process 프로세스의 실행에 대한 정보를 다루는 객체 exports 모듈을 다루는 객체 % console.log(‘숫자 보여주기 : %d’, 10); % console.log(‘문자열 보여주기 : %s’, ‘안녕!’); % console.log(‘JSON 객체 보여주기 : %j’, {name: ‘소녀시대’});

console 객체의 주요 메소드 Console객체에는 dir, time, timeEnd 등의 메소드가 있음 메소드 이름 설명 dir(object) 자바스크립트 객체의 속성들을 출력합니다. time(id) 실행 시간을 측정하기 위한 시작 시간을 기록합니다. timeEnd(id) 실행 시간을 측정하기 위한 끝 시간을 기록합니다.

코드 실행한 시간 체크하기 왼쪽 [NodeExample] 프로젝트 선택 후 오른쪽 마우스 버튼 눌러 [파일 만들기] 메뉴 선택 파일 이름으로 ch02_test2.js 입력 새로 만들어진 파일 안에 아래 내용 코드 입력 실행 var result = 0; console.time('duration_sum'); for (var i = 1; i <= 1000; i++) { result += i; } console.timeEnd('duration_sum'); console.log('1부터 1000까지 더한 결과물 : %d', result);

실행한 파일 이름과 객체 정보 출력 __filename, __dirname 전역 변수 사용하여 파일 이름 출력 console.dir 함수 이용하여 객체 정보 출력 자바스크립트의 객체는 { } 를 이용해서 만들고 형태는 { 속성이름 : 속성값, 속성이름 : 속성값 } … 중략 console.log('현재 실행한 파일의 이름 : %s', __filename); console.log('현재 실행한 파일의 패스 : %s', __dirname); var Person = {name:"소녀시대", age:20}; console.dir(Person);

3. 프로세스 객체 살펴보기 난이도 소요시간 5분

프로세스 객체 console.log('argv 속성의 파라미터 수 : ' + process.argv.length); 속성/메소드 이름 설명 argv 프로세스를 실행할 때 전달되는 파라미터(매개변수) 정보 env 환경 변수 정보 exit( ) 프로세스를 끝내는 메소드 console.log('argv 속성의 파라미터 수 : ' + process.argv.length); console.dir(process.argv); process.argv.forEach(function(item, index) { console.log(index + ' : ', item); });

4. 노드에서 모듈 사용하기 난이도 소요시간 20분

기능을 각각의 파일로 분리하기 파일을 읽을 때 필요한 코드를 기능별로 각각의 파일에 나누어 넣을 수 있음

모듈 별도의 파일로 분리된 독립 기능을 모듈이라고 함 모듈을 만들어 놓으면 다른 파일에서 모듈을 불러와 사용할 수 있음 CommonJs 표준 스펙을 따르며 exports 전역 객체를 사용함

exports와 module.exports의 사용

더하기 함수를 모듈로 분리하기 var calc = {}; calc.add = function(a, b) { 모듈 분리 전의 더하기 함수 사용 코드 var calc = {}; calc.add = function(a, b) { return a + b; } console.log('모듈로 분리하기 전 - calc.add 함수 호출 결과 : %d', calc.add(10, 10));

모듈 파일 exports.add = function(a, b) { return a + b; } 모듈 파일 생성, calc.js

메인 파일 var calc = require('./calc'); 모듈 파일을 불러들인 후 add 함수 호출 require 함수를 이용해 모듈 파일을 불러들임 불러들인 결과 객체는 exports 객체로 간주할 수 있음 파일이 아닌 폴더를 지정하면 그 폴더 안에 들어있는 index.js 파일을 불러들임 var calc = require('./calc'); console.log('모듈로 분리한 후 - calc.add 함수 호출 결과 : %d', calc.add(10, 10));

모듈 파일에서 module.exports 사용 모듈 파일 생성, calc2.js calc 객체를 만들고 그 객체 그대로 module.exports에 할당 var calc = {}; calc.add = function(a, b) { return a + b; } module.exports = calc;

메인 파일 var calc2 = require('./calc2'); 모듈 파일을 불러들인 후 add 함수 호출 require 함수를 이용해 모듈 파일을 불러들임 불러들인 결과 객체는 module.exports 객체로 간주할 수 있음 var calc2 = require('./calc2'); console.log('모듈로 분리한 후 - calc2.add 함수 호출 결과 : %d', calc2.add(10, 10));

외장 모듈의 사용 var nconf = require('nconf'); nconf.env(); 외장 모듈을 사용할 때는 상대 패스를 사용하지 않음 var nconf = require('nconf'); nconf.env(); console.log(‘OS 환경 변수의 값 : %s', nconf.get(‘OS'));

외장 모듈의 설치 % npm install nconf 외장 모듈을 사용하려면 npm을 이용해 패키지를 설치해야 함 패키지 설치 후 앞에서 만든 자바스크립트 파일을 실행하면 OS 환경변수가 출력됨 % npm install nconf

설치된 외장 모듈의 사용 node_modules 폴더 안에 패키지가 설치됨 프로젝트별로 사용 가능하나 프로젝트 상위 폴더에 있어도 사용 가능

package.json 파일 npm으로 설치한 패키지 정보를 확인할 수 있음 { "name": "NodeExample", "version": "0.1.0", "description": "NodeExample1", "main": "hello-world-server.js", "scripts": { "test": "echo \"Error: no test specified! Configure in package.json\" && exit 1" }, "repository": "", "keywords": [ "node.js", "eclipse", "nodeclipse" ], "author": "", "license": "MIT", "readmeFilename": "README.md" }

패키지 삭제와 설치 시 package.json에 정보 추가 npm uninstall nconf 를 이용해 삭제 npm install nconf --save 옵션을 주면 package.json 파일에 패키지 정보 추가 프로젝트 폴더를 복사했을 경우 npm install 명령만으로 package.json 안에 들어있는 패키지 정보를 이용해 패키지 일괄 설치 { ...중략 "dependencies": { "nconf": "^0.7.1" }

5. 간단한 내장 모듈 사용하기 난이도 소요시간 10분

내장 모듈 노드 설치 시 미리 제공하는 모듈 http://nodejs.org/api 사이트에서 확인 가능 http://nodejs.org/api 사이트에서 확인 가능 시스템 정보를 알려주는 os 모듈 메소드 이름 설명 hostname( ) 운영체제의 호스트 이름을 알려줍니다. totalmem( ) 시스템의 전체 메모리 용량을 알려줍니다. freemem( ) 시스템에서 사용 가능한 메모리 용량을 알려줍니다. cpus( ) CPU 정보를 알려줍니다. networkInterfaces( ) 네트워크 인터페이스 정보를 담은 배열 객체를 반환합니다.

os 모듈 var os = require('os'); console.log('시스템의 hostname : %s', os.hostname()); console.log('시스템의 메모리 : %d / %d', os.freemem(), os.totalmem()); console.log('시스템의 CPU 정보\n'); console.dir(os.cpus()); console.log('시스템의 네트워크 인터페이스 정보\n'); console.dir(os.networkInterfaces());

os 모듈

path 모듈 파일을 다룰 때 파일 패스에서 파일 이름을 구별하는 등의 기능 제공 메소드 이름 설명 join( ) 여러 개의 이름들을 모두 합쳐 하나의 파일 패스로 만들어 줍니다. 파일 패스를 완성할 때 구분자 등을 알아서 조정합니다. dirname( ) 파일 패스에서 디렉터리 이름을 반환합니다. basename( ) 파일 패스에서 파일의 확장자를 제외한 이름을 반환합니다. extname( ) 파일 패스에서 파일의 확장자를 반환합니다.

path 모듈 var path = require('path'); // 디렉터리 이름 합치기 var directories = ["users", "mike", "docs"]; var docsDirectory = directories.join(path.sep); console.log('문서 디렉터리 : %s', docsDirectory); // 디렉터리 이름과 파일 이름 합치기 var curPath = path.join('/Users/mike', 'notepad.exe'); console.log('파일 패스 : %s', curPath);

path 모듈 ...중략 // 패스에서 디렉터리, 파일 이름, 확장자 구별하기 var filename = "C:\\Users\\mike\\notepad.exe"; var dirname = path.dirname(filename); var basename = path.basename(filename); var extname = path.extname(filename); console.log('디렉터리 : %s, 파일 이름 : %s, 확장자 : %s', dirname, basename, extname);

참고 문헌 [ References] 기본 서적 2017, 정재곤, “Do it! 노드제이에스 프로그래밍 (개정판)”, 이지스퍼블리싱 Node.js Site http://nodejs.org/