0601 Node.js

2021. 6. 1. 13:18Node.js

http://www.yes24.com/Product/Goods/91860680

 

Node.js 교과서 개정2판

Node.js베스트셀러1위!전면 개정판!Node.js 14로,노드의 기본부터 실무까지 전 과정 총망라!다양한 서비스를 직접 만드는,실무에 가장 가까운 강의!노드와 패키지를 최신 버전으로 업데이트!노드v12

www.yes24.com

http://www.yes24.com/Product/Goods/36886447

 

Do it! Node.js 프로그래밍

지금 당장 서버가 필요하다면? 실제 서버로 구동 가능한 코드로 배워라! 웹 서버, 채팅 서버, 모바일 서버, 위치 기반 서비스 서버, JSON-RPC 서버까지 한 권으로 끝낸다! 이 책은 누구나 쉽게 접근

www.yes24.com

 

HTTP 프로토콜의 특징

  1. 클라이언트에서 요청을 하고 서버가 응답한다. 1번에 1번만 요청/응답
  2. stateless:  상태를 저장하지 않는다. 그 후엔 연결을 끊어버려 다시 연결을 해야한다.
  3. URI 서버의 자원 : 자원의 위치를 알려주기 위한 주소
    예시 ) https://rulic.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F
    위의 주소에서 ? 뒤를 제외하고 앞부분이 URI
  4. 메서드 : 데이터를 전송하는 방법
    4-1. GET: URL 뒤에 붙혀서 데이터를 전송하는 방식, 정보를 요청하기 위해서 사용한다.
    4-2. POST: URL 뒤에 붙히지 않고 body라는 곳에 붙혀서 전송하는 방식, 정보를 DB로 밀어넣을때 사용한다.
    4-3. PUT: DB에 있는 정보를 업데이트하기 위한 방식
    4-4. DELETE: DB에 있는 정보를 삭제하기 위한 방식
    CRUD라 칭한다. (Create, Read, Update, Delete)

  5. Node.js는 언어가 아닌 자바 스크립트 엔진으로 빌드된 런타임이다.
    Node.js는 이벤트 기반, 논블로킹 (병렬식 방식) I/O를 사용해 가볍고 효율적이다.
    노드js의 패키지 생태계는 npm, npm은 세계에서 가장 큰 오픈 소스 라이브러리이다.

    이벤트 기반: 이벤트가 발생할 때 미리 지정해둔 작업을 수행하는 방식이다.
    이벤트로는 클릭이나 네트워크 요청 등이 있다.
    이벤트 기반 시스템에서는 특정 이벤트가 방생할 때 무엇을 할지 미리 등록 해두어야 한다.
    클릭 이벤트 이스너에 경고 창을 띄우는 콜백 함수를 등록해주면 클릭 이벤트가 발생할 때마다 경고창이 뜬다.
    노드는 자바스크립트 코드에서 맨 위에서 한 줄씩 실행된다.
     
    예시) unction sayHello(){}
    void SayHello(){};


  6. 서버: 네크워크를 통해 클라이언트에 정보나 서비스를 제공하는 컴퓨터 또는 프로그램
    클라이언트: 요청을 보내는 주체 (브라우저, 앱, PC든 모든 것)
    도메인: 네트워크 상의 서버 위치를 문자열로 바꾼 것.

node.js 공식 사이트에서 다운로드 받고

npm 최신 버전으로 업데이트를 해준다.

 

 


 

javascript에선 변수 선언 시 let/const 를 사용한다.
변수의 값이 변한다 =let
변수의 값이 변하지 않는다 =const
블록 스코프 = 영역
변수가 허용될 수 있는 지역 영역
' '+" " 문자열을 감싸는 것과는 다르게 백틱 ``으로 감싼다.
문자열 안에 변수를 넣을 수 있다.

let age =21;
let name = `홍길동`;
const message = `age:${age},name:${name}`;
console.log(message);
console.log(age);
console.log(`age:${age},name:${name}`);

//함수 선언
function sayHello(){
    console.log('Hello World');
}
sayHello();

obj3['age']=34; //동적으로 속성추가
obj3.level=00;
//객체에 속성 추가:variable
let obj3= {
    name:'임꺽정'
}

//객체에 속성 출력
console.log(obj3.name);
console.log(obj3.age);
console.log(obj3.level);

 

객체에 함수 속성 추가 방법1.

//객체에 속성 추가:function
let obj2 = {
    sayHello(){
        console.log("hello");
    }    
}

2.

let obj2={
    sayHello:function(){
        console.log('hello2');
    }
}
console.log(obj2);

 


//함수 선언 후 반환
function sayHello3(){ 
    return 'hello3';
}

let message = sayHello3();
console.log(message);

//객체에 속성 호출
obj.sayHello();

//함수선언+파라미터
function sayHello2(message)
{
    console.log('Hello World'+message);
}

 

foreach문 사용하기

//function선언 대신 화살표 기호로 선언한다.
//변수에 대입하면 나중에 재사용이 가능하다.
//return 문을 줄일 수 있다.

// let relationship = {
//     name: 'zero',
//     friends: ['nero','hero','xero'],
//     logFriends: function(){
//         let that = this; //
//         this.friends.forEach(function(friend){
//             console.log(that.name,friend);
//         });
//     }
// }
// console.log(relationship);
// relationship.logFriends();

let relationship = {
    name: 'zero',
    friends: ['nero','hero','xero'],
    logFriends(){
        this.friends.forEach((friend)=>{
            console.log(this.name,friend)
        });
    }
}
console.log(relationship);
relationship.logFriends();