-
06/01 node.js게임 웹 프로그래밍/node.js 2021. 6. 1. 13:06
자바스크립트
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Introduction
Introduction - JavaScript | MDN
이 장은 JavaScript를 소개하고 그 일부 기초 개념을 다룹니다.
developer.mozilla.org
http
- 한번 요청 한번 응답
- 상태를 저장하지 않음
- uri사용
- 요청 메서드(GET, POST 등)
https://joshua1988.github.io/web-development/http-part1/
프런트엔드 개발자가 알아야하는 HTTP 프로토콜 Part 1
API 데이터 요청을 위해 꼭 알아야 하는 HTTP 프로토콜의 정의, HTTP Status Code, HTTP Methods 등
joshua1988.github.io
CRUD
create
read
update
delete
node.js란
JavaScript 런타임환경
이벤트 기반
논블로킹 I/O 모델(비동기)
npm
오픈소스 라이브러리 생태계
서버
네트워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램
도메인
이벤트 기반
이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식
이벤트 리스너에 콜백함수를 등록
이벤트 루프
이벤트 기반 모델에서는 이벤트 루프라는 개념이 등장
여러 이벤트가 호출되었을 때 이벤트 루프가 판단
자바스크립트
코드에서 맨위부터 한 줄씩 실행
함수를 호출 스택에 넣음
이벤트 루프, 테스크 큐, 백그라운드
이벤트 루프
실행순서를 결정하는 역할
테스크 큐
이벤트 발생 후 호출되어야 할 콜백 함수들이 기다리는 공간
백그라운드
타이머나 I/O, 이벤트 리스너들이 대기하는 곳
만약 호출 스택에 함수들이 너무 많이 창 있으면 3초가 지난 후에도 run함수가 실행되지 않을 수도 있음
논블로킹 I/O
싱글 스레드
작업을 혼자서 처리
자바스트립트는 싱글 스레드
싱글 스레드 방식의 프로그래밍은 멀티스레드 방식보다 상대적으로 쉬움
개수는 많지만 크기는 작은 데이터를 실시간으로 주고 받는데 적합
JSON데이터를 제공하는 API 서버가 노드를 많이 사용
이미지나 비디오 처리, 대규모 데이터 처리는 권장하지 않음
안정성과 보안성 측명의 문제도 이미 충분히 검증되었음
나사, 에이비엔비, 우버, 넷플릭스에서 사용중
프로세스
서버 외의 노드
웹, 모바일, 데스크톱, 에플리케이션 개발에도 사용
노드 기반의 대표적인 웹 프레임워크 React
프로토콜 문서
1. visual studio code 다운로드
https://code.visualstudio.com/
Visual Studio Code - Code Editing. Redefined
Visual Studio Code is a code editor redefined and optimized for building and debugging modern web and cloud applications. Visual Studio Code is free and available on your favorite platform - Linux, macOS, and Windows.
code.visualstudio.com
2. node.js 다운로드
Node.js
Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.
nodejs.org
버전확인
node -v
npm -v최신 모듈 인스톨
npm install -g npm
-g
어느 경로에서도 사용하기 위한 글로벌 옵션
3. const, let
ES6로 개발하는 것이 좋음
큰따옴표나 작은따옴표 대신 `를 사용가능
let age = 21; let name = '홍길동'; const message = `age:${age}, name:${name}`; console.log(message);
4. 객체 리터럴
let sayNode = function() { console.log('Hello Node!'); }; let es = 'ES'; //변수 선언 let oldObject = { //객체의 속성 sayJs : function() { console.log('Hello, JS'); }, //위에서 정의한 함수 sayNode: sayNode, [es + 6]: "Fantastic" }; //oldObject[es + 6] = 'Fantastic'; //동적 속성 추가 oldObject.sayJs(); oldObject.sayNode(); console.log(oldObject.ES6);
sayNode: sayNode처럼 속성명과 변수명이 겹치는 경우 한번 사용 가능
let oldObject = { //객체의 속성 sayJs : function() { console.log('Hello, JS'); }, //위에서 정의한 함수 sayNode, [es + 6]: "Fantastic" };
5. 화살표 함수(=>), this
// 1 // let relationship1 = { // name: 'zero', // friends: ['nero', 'hero', 'xero'], // logFriends: function () { // let that = this; // this.friends.forEach(function (friend) { // console.log(that.name, friend); // }); // } // }; // console.log(relationship1); // relationship1.logFriends(); // 2 let relationship1 = { name: 'zero', friends: ['nero', 'hero', 'xero'], logFriends() { this.friends.forEach((friend) => { console.log(that.name, friend); }); } }; console.log(relationship1); relationship1.logFriends();
6. return
function sayHello() { return `Hello`; } console.log(sayHello());
'게임 웹 프로그래밍 > node.js' 카테고리의 다른 글
06/09 node.js (0) 2021.06.09 06/08 node.js (0) 2021.06.08 06/04 node.js (0) 2021.06.04 06/03 node.js 서버 (0) 2021.06.03 06/02 node.js (0) 2021.06.02