
1) express 서버 사용해보기 http 모듈로 웹 서버를 만들 때 가독성이 떨어지고 확장성이 떨어짐 프레임워크로 해결 대표적인 것은 express, Koa, Hapi 코드 관리도 용이하고 편의성이 많이 높아짐 package.json 만들기 nodemon이 소스 코드 변경시 서버를 재시작해준다. npm init npm i express npm i -D nodemon app.js: 서버 구동의 핵심 파일 app.set('port', 포트)로 서버가 실행 될 포트 지정 app.get('주소', 라우터)로 GET 요청이 올 때 어떤 동작을 할 지 지정 app.listen('포트', 콜백)으로 몇 번 포트에서 서버를 실행 할 지 지정 2) express로 HTML 서빙하기 app.js: 핵심 서버 스크립트 ..

1) npm Node Package Manager 다른 사람들이 만든 소스 코드들을 모아놓은 저장소 패키지: npm에 업로드 된 노드 모듈 모듈이 다른 모듈을 사용할 수 있듯 패키지도 다른 패키지를 사용할 수 있음 2) package.json으로 패키지 관리하기 현재 프로젝트에 대한 정보와 사용 중인 패키지에 대한 정보를 담은 파일 노드 프로젝트 시작 전 만들고 시작함 (npm init) { "name": "npmtest", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "start": "node index" }, "autho..

1. http로 서버 만들기 1) http로 서버 만들기 * 서버와 클라이언트 클라이언트가 request -> 서버는 request를 처리하여 response 2) 노드로 http 서버 만들기 * http 요청에 응답하는 노드 서버 createServer로 요청 이벤트에 대기 req 객체는 요청에 관한 정보가, res 객체는 응답에 관한 정보가 담겨 있다. 3) 8080 포트 연결 * res 메서드로 응답을 보냄 write로 응답 내용을 적고 end로 응답 마무리 http://127.0.0.1:8080에 접속 localhost는 컴퓨터 내부 주소로 외부에서는 접근 불가능 4) 이벤트 리스너 붙이기 2. REST API와 라우팅 1) REST API 서버에 요청을 보낼 때는 주소를 통해 요청의 내용을 표현..
1) url 모듈 기존 노드 방식 WHATWG 방식 https:// user : password @ sub.host.com: 8080 /p/a/t/h ? querstring #hash protocol username password hostname port pathname search hash 2) 단방향 암호화(crypto) 암호문: 평문을 암호로 만듦 복호화: 암호를 평문으로 해독 Hash 사용하기(sha512) 3) util 각종 편의 기능을 모아둔 모듈 deprecated, promisify 4) file system 파일 시스템에 접근하는 모듈 파일/폴더 생성, 삭제, 읽기, 쓰기 가능 웹 브라우저에서는 제한적이었으나 노드는 권한을 가지고 있다. 파일 읽기 예제 5) 동기와 비동기 6) 버퍼와 ..

1) REPL Read, Evaluate, Print, Loop 2) CommonJS 모듈 시스템 * 모듈 만들기 노드는 JS 코드를 모듈로 만들 수 있다. 모듈: 특정한 기능을 하는 함수나 변수들의 집합으로 여러 프로그램에서 재사용 가능 파일 끝에 module.exports로 모듈로 만들 값 지정 다른 파일에서 require(file path)로 그 모듈의 내용을 가져온다. 3) exports //var.js const odd = '홀수'; const even = '짝수'; //모듈 선언 module.exports = { odd, even } //func.js const { odd, even } = require('./var'); //구조 분해 할당과 모듈 내용 호출 4) this * this 노드에서..

1) 출력 리디렉션: > [n]>[l] work 출력 스트림을 특정 대상 파일에 저장 표준 출력 스트림 번호: 1 표준 에러 스트림 번호: 2 생략 시 표준 출력 대상 파일이 존재하는 경우 덮어쓰기 noclobber 옵션 설정 시 덮어쓰기 시도 시 에러 발생 >| 사용시 noclobber 옵션 설정 여부와 관계없이 덮어쓰기 성공 $ ps //현재 돌아가고 있는 프로세스 확인 $ ps > result //현재 실행중인 프로세스 내용을 result 파일에 redirection 하여 보여준다. $ ls /sdfsdfdf 2> result 2) 추가 모드 출력 리디렉션: >> [n]>>word 스트림을 대상 파일 끝에 저장 표준 출력 스트림 번호: 1 표준 에러 스트림 번호: 2 생략 시 표준 출력 $ ps >..

1) 프로세스 실행중인 Program 프로그램 VS 프로세스 프로세스: CPU가 메모리 상에서 실행 프로그램: 디스크 상에서 실행 프로그램의 실행 2) 프로세스 스케쥴링(Process Scheduling) 여러 프로그램의 동시 실행 CPU가 적절히 처리를 해줘야 많은 프로세스들이 잘 실행될 수 있다. 애플리케이션의 성능 특성에 따라 자원 소모를 고려할 수 있다. CPU 개수가 늘어나면 프로세스 동작이 좋아진다. core 수가 증가하면 성능 수가 높아진다. 어떻게 모두를 만족시킬 것인가? 3) 프로세스 상태(process state) 프로세스 전이 다이어그램(process transition diagram) Created Wating: 프로세스 대기 상태 Running: CPU의 프로세스 실행 Blocke..

1) 사용자와 그룹 * System Administrator: root 2) 파일의 소유권과 권한 * 파일의 소유권 Permisiions | Links | Owner | Group | Size | Date | Time | File or directory name * 파일 접근 권한(permisiion or mode) - Read, Write, Execute - 실행 가능한 파일이어야 execute 권한을 줄 수 있다. 일반 테스트 파일은 보통 rw. [- or d] [r w x] [r w x] [r w x] | | | | FileType Owner Group Other Users 1 7 7 7 3) 파일 권한 표기법 - chmod 권한 file - 8진 표기법 - 의미 표기법(symbolick form)..