본문 바로가기

JavaScript

Node.js 입문 주차 1주차_2

728x90

Node.js 입문 주차 1주차_2


객체 리터럴이란?

객체를 생성하기 위한 표기 방법

 

📌 사칙연산하는 객체

const calculater = {
    add : function (a, b) {return a+b},
    sub : function (a, b) {return a-b},
    mul : function (a, b) {return a*b},
    div : function (a, b) {return a/b}
}

console.log(calculater.add(3,2));
console.log(calculater.sub(3,2));
console.log(calculater.mul(3,2));
console.log(calculater.div(3,2));

Error handling

에러를 관리하는 방법, 예상치 못한 상황에 대처하는 방식

예상치 못한 에러가 일어날 가능성은 언제나 존재하고, 이러한 에러를 대비해 언제든지 처리할 수 있어야 한다.

 

📌 try-catch

서버에서 에러가 발생하지 않도록 예외처리 해줌

const users = ["Lee", "Kim", "Park", 2];

try {
    for(const user of users) {
        console.log(user.toUpperCase());
    }
} catch (err) {
    console.log(`Error: ${err.message}`)
}


// 출력
LEE
KIM
PARK
Error: user.toUpperCase is not a function

 

📌 throw

에러를 고의로 발생시킴

function withdraw(amount, account) {
    if (amount > account.balance)
        throw new Error("잔고가 부족합니다.");
    account.balance -= amount;
    console.log(`현재 잔고가 ${account.balance} 남았습니다.`);
}

const account = { balance: 1500 };
withdraw(2000, account)

//출력
        throw new Error("잔고가 부족합니다.");
        ^

Error: 잔고가 부족합니다.

 

📌 finally

에러 발생 여부와 상관없이 언제든지 실행

function errorException(isThrow) {
    try {
        console.log('자원을 할당하였습니다.');
        if (isThrow) throw new Error();
    } catch (error) {
        console.log('에러가 발생했습니다.');
    } finally {
        console.log('자원을 제거하였습니다.');
    }
}

errorException(true)
// errorException(false)

클래스(Class)

현실과 비슷한 개념(객체)을 나타내기 위한 도구

빵틀(User)

 

📌 인스턴스(Instance)

동일한 클래스를 이용해 생성한 객체

실제 빵(user)

 

📌 this와 프로퍼티(Property)

빵틀 전체 값을 바꾸고 싶은게 아니라, 빵 하나의 값을 바꾸는 것

class User {
    constructor(name, age, tech) { // User 클래스의 생성자
      this.name = name;
      this.age = age;
      this.tech = tech;
    }
  }
  
  const user = new User("이용우", 28, "Node.js"); // user 인스턴스 생성
  
  console.log(user.name); // 이용우
  console.log(user.age); // 28
  console.log(user.tech); // Node.js

 

📌 메서드(Method)

객체(Object)에 묶여 잇는 함수

getName(), getAge(), getTech()

class User {
    constructor(name, age, tech) { // User 클래스의 생성자
      this.name = name;
      this.age = age;
      this.tech = tech;
    }
  
    getName() { return this.name; } // getName 메서드
    getAge() { return this.age; } // getAge 메서드
    getTech() { return this.tech; } // getTech 메서드
  }
  
  const user = new User("이용우", "28", "Node.js"); // user 인스턴스 생성
  console.log(user.getName()); // 이용우
  console.log(user.getAge()); // 28
  console.log(user.getTech()); // Node.js

 

📌 상속

부모 클래스의 메서드, 내부 변수와 같은 정보를 자식 클래스에 할당해 줄 수 있음

class User { // User 부모 클래스
    constructor(name, age, tech) { // 부모 클래스 생성자
      this.name = name;
      this.age = age;
      this.tech = tech;
    }
    getTech(){ return this.tech; } // 부모 클래스 getTech 메서드
  }
  
  class Employee extends User{ // Employee 자식 클래스
    constructor(name, age, tech) { // 자식 클래스 생성자
      super(name, age, tech);
    }
  }
  
  const employee = new Employee("이용우", "28", "Node.js");
  console.log(employee.name); // 이용우
  console.log(employee.age); // 28
  console.log(employee.getTech()); // 부모 클래스의 getTech 메서드 호출: Node.js

 

 

📌 quiz

class Unit {
    constructor(name, hp) {
        this.name = name;
        this.hp = hp;
    }

    healing(heal) {
        if (this.hp <= 0) return;
        this.hp += heal;
        if (this.hp >= 100) this.hp = 100;
    }

    dameged(demage) {
        if (this.hp <= 0) return;
        this.hp -= demage;
        if (this.hp <= 0) this.hp = 0;
    }
}

const unit = new Unit('유닛', 100);
unit.dameged(70);
console.log(unit.hp) // 30
unit.healing(10);
console.log(unit.hp) // 40
unit.dameged(50);
console.log(unit.hp) // 0
unit.healing(100);
console.log(unit.hp) // 0

HTTP

  현실 세상 디지털 세상
의사표현 수단 네트워크
의사표현 방법 언어 통신규약

 

📌 Method

  • GET : 어떤 리소스를 얻을 때, 사용
  • POST : 웹 서버에 데이터를 게시할 때 사용

 

📌 Header

의사 표현을 위한 데이터

  • 브라우저가 어떤 페이지를 원하는지
  • 요청 받은 페이지를 찾았는지
  • 성공적으로 찾았는지

 

📌 Payload

데이터, 실질적인 데이터


Package Manager

  • npm
  • yarn

 

npm init
npm i express
npm install express

 

[터미널] - [새 터미널]

npm i express

 

📌 개발 단계에서만 필요한 모듈의 경우

npm install -D (모듈이름)

 

'JavaScript' 카테고리의 다른 글

Node.js 입문 주차 1주차_4  (0) 2022.12.14
Node.js 입문 주차 1주차_3  (0) 2022.12.13
Node.js 입문 주차 1주차  (0) 2022.12.12
Node.js 실무 기초 1주차  (1) 2022.12.12
자바스크립트 문법 뽀개기2  (0) 2022.11.22