1장 풀스택 자바스크립트 세계에 오신것을 환영합니다.
Book/노드JS와 몽고DB로 웹 개발 시작하기 2018. 12. 15. 15:52노드JS와 몽고DB로 웹 개발 시작하기
스터디
저작권에 문제가 있을시 비공개하겠습니다.
p29 ~ p44
노드JS는 구글의 V8엔진 위에서 구현된 자바스크립트를 위한 런타임 환경
node.js는 싱글스레드 모델
싱글스레드를 통해 비동기 처리를 통해 많은 양의 웹 트래픽을 처리 하는 애플리케이션에 성능과 확장성을 제공한다.
장점 : 동시 접속 요청 처리
단점: CPU코어들을 활용하지 못함.
스레드, 프로세스의 개념에 대해
http://www.cs.ucsb.edu/~rich/class/cs170/notes/IntroThreads/
논블로킹 비동기 실행
이벤트에 의해 구동되면서 비동기적으로 실행되는 것이 노드 JS의 가장큰 장점임.
자바스크립트의 비동기 모델과 콜백에 대한 개념
https://developer.mozilla.org/ko/docs/Web/JavaScript
npm : 노드 패키지 매니저
다운로드 가능한 모듈 목록 : https://www.npmjs.com/
설치명령어 : npm install package
path : node_modules/ 폴더
버전 : major.minor.patch
클라이언트 요소 로드 시간 최적화
언더스코어 underscore
업무 자동화 해주는 도구
그런트 JSGrunt.js
커피스크립트 CoffeeScript
공학용 라이브러리
조니 파이브 Johnny-Five
Cylon.js
에디터
깃허브Github의 오픈소스 에디터 아톰 Atom
노드JS의 탄생이유중 가장 중요한 하나는 실시간 웹 애플리케이션을 지원하는 일
실시간 웹 애플리케이션을 위한프레임워크를 보유
- socket.js
WebSocket 클라이언트 응용 프로그램 작성
node.js로 구현한 간단한 서버
1 2 3 4 5 6 | var http = require('http'); http.createServer(function(req, res){ res.writeHead(200, {'Content-Type':'text/plain'}); res.end('Hello World!\n'); }).listen(8080, 'localhost'); console.log('Server running at http://localhost:8080'); | cs |
가진것이 망치밖에 없다면 모든것이 못처럼 보일것이다.
언제 사용하는 것이 좋을까?
- 많은 양의 동시 접속 처리하기 위한 앱
- 사용자 요청이 매우 적은 CPU사이클을 필요로 하는 앱
NoSQL운동
RDBMS : Relational Database Managerment System
부루어의 CAP이론 :
분산 컴퓨팅 환경에서 일관성(Consistency), 가용성(Avalabillity), 분산 가용성(Parition Tolerance)이라는 세가지 특징을 동시에 모두 만족시키기란 불가능 하다.
RDBMS: 일관성측면에서 장점, 가용성(데이터읽기), 분산 측면에서 타협
NoSQL: 가용성이나 분산 가용성에 더 중점을 둠
NoSQL 하위 분류
도큐먼트 스토어
키-값 저장소
그래프 기반의 데이터 베이스 솔루션
- 카산드라 (Cassandra)
- 레디스 (Redis)
- Neo4j
- HBase
- 등
몽고DB
NoSQL 데이터베이스의 도큐먼트 스토어로 분류
JSON친화적인 데이터베이스
문서저장 반환시 자바스크립트 오브젝트 (JSON)포멧으로 이루어짐
내부적으로 시스템에 저장될때는 BSON포멧으로 변환
스키마를 필요로 하지 않음
래자일 기반의 개발에 잘 맞음
몽고DB와 node.js의 유사점 : 동시성과 읽기 트래픽이 많은 앱을 염두하고 설계
수평/수직적 확장 가능하게 하는 샤딩(Sharding)의 개념을 도입
표준을 엄격하게 지키지 않기 때문에 데이터 일관성에 영향을 끼칠수 있다.
많은 양의 집합 연산을 위해 설계되지 않았음 (많은 수의 조인이 필요하는 데이터모델에는 부적합)
앞으로 배우게 될것들...
익스프레스 (Express) 프레임워크
핸들바 (Handlebars) 템플릿엔진
몽고DB
레스트풀 Restful API 작성
끝
'Book > 노드JS와 몽고DB로 웹 개발 시작하기' 카테고리의 다른 글
2장 일어나달려가기 (0) | 2018.12.16 |
---|