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 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 |