๐ฏํต์ฌ ํค์๋ ์ ๋ฆฌ
๐นES๋?
- ํ์คํ๋ ์คํฌ๋ฆฝํธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
- ES๋ผ๊ณ ๋ถ๋ฅด๋ ๊ฒ์ ECMA Script์ ์ฝ์์ด๋ฉฐ, ES5๋ ECMA Script 5์ ๊ท๊ฒฉ์ ๋ฐ๋ฅธ๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค.
๐นECMAScript ํน์ง
- ํ์คํ: ๋ธ๋ผ์ฐ์ ๋ ๋ค๋ฅธ ํ๊ฒฝ์์ JavaScript๊ฐ ์ผ๊ด๋๊ฒ ๋์ํ๋๋ก ๋ณด์ฅํ๋ค.
- ๋ฒ์ ๊ด๋ฆฌ: ECMAScript๋ ์ฌ๋ฌ ๋ฒ์ ์ผ๋ก ๋ฐ์ ํด ์์ผ๋ฉฐ, ๊ฐ์ฅ ๋๋ฆฌ ์๋ ค์ง ๋ฒ์ ์ค ํ๋๊ฐ ECMAScript 6(ES6) ๋๋ ECMAScript 2015์ด๋ค.
- ์ฃผ์ ๊ธฐ๋ฅ: ECMAScript๋ ๋ณ์ ์ ์ธ, ์ ์ด ํ๋ฆ, ํจ์, ํด๋์ค, ๋ชจ๋ํ ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ํนํ ES6์์๋ let, const, arrow function, class, modules ๋ฑ ํ๋์ ์ธ ํ๋ก๊ทธ๋๋ฐ ์คํ์ผ์ ์ง์ํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ ๋์๋ค.
- ๋ธ๋ผ์ฐ์ ํธํ์ฑ: ECMAScript๋ ๋๋ถ๋ถ์ ์ต์ ์น ๋ธ๋ผ์ฐ์ ์์ ์ง์๋๋ฉฐ, ์ด๋ฅผ ํตํด JavaScript ๊ธฐ๋ฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ค์ํ ํ๊ฒฝ์์ ์ผ๊ด๋๊ฒ ์๋ํ ์ ์๋๋ก ํ๋ค.
ES6์ ์ฃผ์ ๋ณํ ๋ฐ ํน์ง
ES6(ECMAScript 6)๋ 2015๋ ์ ๋์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ์ 6๋ฒ์งธ ํ์ค์
๐นES6์ ์ฃผ์ ๋ณํ
1. ๋ณ์ ์ ์ธ ๋ฐฉ์์ ์ฐจ์ด (var, let, const)
- let, const ํค์๋ ์ถ๊ฐ (๊ธฐ์กด var ํค์๋์ ์์์ ์ฌํ ๋น์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ์ถ๊ฐ)
- var์ ์ฌ์ ์์ ์ฌ์ ์ธ ๋ชจ๋ ๊ฐ๋ฅํ๋ค.
- let์ ๊ฐ๋ณ๋ณ์๋ก ์ฌ์ ์๊ฐ ๊ฐ๋ฅํ์ง๋ง ์ฌ์ ์ธ์ ๋ถ๊ฐ๋ฅํ๋ค.
- const๋ ๋ถ๋ณ๋ณ์๋ก ์ฌ์ ์ธ๊ณผ ์ฌ์ ์ ๋ชจ๋ ๋ถ๊ฐ๋ฅํ๋ค.
//๋ณ์ ์ ์ธ
var x = 2;
// ์ฌ์ ์
x = 4;
// ์ฌ์ ์ธ
var x = 4;
2. ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด (Template literals)
- ๋ฐฑํฑ ์ถ๊ฐ${}๋ฅผ ํตํด ํํ์ ์ฝ์ ์ด ๊ฐ๋ฅ
var jsp = "์๋ฐ์คํฌ๋ฆฝํธ";
// ๊ธฐ์กด ์ฝ๋
console.log("์ด๊ฑด " + jsp + "์
๋๋ค.");
// ํ
ํ๋ฆฟ ๋ฆฌํฐ๋ด ๋ฐฉ์
console.log(`์ด๊ฑด ${jsp}์
๋๋ค.`);
// ์ถ๋ ฅ ๊ฒฐ๊ณผ -> ์ด๊ฑด ์๋ฐ์คํฌ๋ฆฝํธ์
๋๋ค.
3. ํ์ดํ ํจ์ (Arrow function)
- ํ์ดํ ํจ์ (Arrow Function) ์ถ๊ฐํจ์๋ฅผ ๊ฐ๊ฒฐํ๊ฒ ๋ํ๋ผ ์ ์๊ฒ ๋์์.๊ธฐ์กด ํจ์์ this ๋ฐ์ธ๋ฉ์ด ๋ค๋ฆ.
// ๊ธฐ๋ณธ ํจ์ ํ์
let sum = function(a, b) {
return a + b;
};
// ํ์ดํ ํจ์ ํ์
let sum = (a, b) => a + b;
4. ํด๋์ค (class)
- ES6์์๋ ํด๋์ค ๊ตฌ๋ฌธ์ด ๋์ ๋์ด ๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋์ฑ ์ฝ๊ฒ ํ ์ ์๊ฒ ๋์๋ค
- ์์ฑ์, ์์, ๋ฉ์๋, ์ ์ ๋ฉ์๋ ๋ฑ์ ์ง์
class Person {
constructor(name) {
this.name = name;
}
greet() {
console.log(`Hello, ${this.name}!`);
}
}
class Employee extends Person {
constructor(name, company) {
super(name);
this.company = company;
}
}
5. ๊ตฌ์กฐ๋ถํดํ ๋น (destructing)
- ๊ฐ์ฒด์ ๋ฐฐ์ด์ ๊ฐ์ ์ฝ๊ฒ ๋ณ์๋ก ์ ์ฅํ ์ ์๋ค
const introduce = {name: 'unknown', age: 23};
// key์ ๊ฐ์ ์ด๋ฆ์ผ๋ก ๋ณ์ ์ ์ธ
const { name, age } = introduce;
// ๋ค๋ฅธ ์ด๋ฆ์ผ๋ก ๋ณ์ ์ ์ธ -> ๋ณ์์ด๋ฆ: ํค๊ฐ
const { myName: name, myAge: age } = introduce;
console.log(myName) // unknown
console.log(myAge) // 23
6. Rest Operator / Spread Operator
Rest Operator(๋๋จธ์ง ๋งค๊ฐ๋ณ์)๋ ๋๋จธ์ง ํ์ ๋งค๊ฐ๋ณ์๋ค์ ๋ฌถ์ด ํ๋์ ๋ฐฐ์ด์ ์ ์ฅํด์ ์ฌ์ฉํ๋ ๊ฒ (…์ผ๋ก ์ ์ฅ)
Spread Operator(์ ๊ฐ ๊ตฌ๋ฌธ)๋ ๋ฌถ์ธ ๋ฐฐ์ด ํน์ ๊ฐ์ฒด๋ฅผ ๊ฐ๋ณ์ ์ธ ์์๋ก ๋ถ๋ฆฌ
7. forEach() / map() / reduce()
- forEach() : ๋ฐฐ์ด ์์๋ง๋ค ํ ๋ฒ์ฉ ์ฃผ์ด์ง ํจ์(์ฝ๋ฐฑ)๋ฅผ ์คํ
๋ฐฐ์ด.forEach((์์, ์ธ๋ฑ์ค, ๋ฐฐ์ด) => { return ์์ });
- map() : ๋ฐฐ์ด ๋ด์ ๋ชจ๋ ์์ ๊ฐ๊ฐ์ ๋ํ์ฌ ์ฃผ์ด์ง ํจ์(์ฝ๋ฐฑ)๋ฅผ ํธ์ถํ ๊ฒฐ๊ณผ๋ฅผ ๋ชจ์ ์๋ก์ด ๋ฐฐ์ด์ ๋ฐํ
๋ฐฐ์ด.map((์์, ์ธ๋ฑ์ค, ๋ฐฐ์ด) => { return ์์ });
-reduce() : ๋ฐฐ์ด์ ๊ฐ ์์๋ฅผ ์ํํ๋ฉฐ callbackํจ์์ ์คํ ๊ฐ์ ๋์ ํ์ฌ ํ๋์ ๊ฒฐ๊ณผ๊ฐ์ ๋ฐํ
๋ฐฐ์ด.reduce((๋์ ๊ฐ, ํ์ฟ๊ฐ, ์ธ๋ฑ์ค, ์์) => { return ๊ฒฐ๊ณผ }, ์ด๊น๊ฐ);
8.๋ชจ๋ (ESM)
- ๋ชจ๋ : ๋ ๋ฆฝ์ฑ์ ๊ฐ์ง ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ธ๋ก
- import, export ๊ตฌ๋ฌธ์ ์ด์ฉํด ๋ชจ๋ ๊ฐ์ ธ์ค๊ธฐ & ๋ด๋ณด๋ด๊ธฐ ๊ฐ๋ฅ
export default func;
import func from './utils/func';
๐น ES6๋ฅผ ์ค์์ ํ๋ ์ด์
1. ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฌ๊ฒ ํฅ์
- ํ์ดํ ํจ์, ํ ํ๋ฆฟ ๋ฆฌํฐ๋ด, ๋์คํธ๋ญ์ฒ๋ง ํ ๋น ๋ฑ์ ๊ธฐ๋ฅ์ ํตํด ๊ธฐ์กด๋ณด๋ค ํจ์ฌ ๊ฐ๊ฒฐํ๊ณ ๋ช ํํ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํด์ก๋ค
// ES5
var add = function(a, b) {
return a + b;
};
// ES6
const add = (a, b) => a + b;
2. ๋น๋๊ธฐ ์ฒ๋ฆฌ์ ๊ฐ์
- ES6์์ async/await๊ฐ ๋์ ๋์ด ๋์ฑ ํธ๋ฆฌํ๊ฒ ๋น๋๊ธฐ ์์ ์ ๋ค๋ฃฐ ์ ์๊ฒ ๋์๋ค.
fetchData()
.then(result => {
// ์ฒ๋ฆฌ ๋ก์ง
})
.catch(error => {
// ์๋ฌ ์ฒ๋ฆฌ
});
3. ๋ชจ๋ํ ์ง์
- ES6๋ ๋ชจ๋ ์์คํ ์ ๋์ ํ์ฌ, ์ฝ๋ ๋ถ๋ฆฌ์ ์ฌ์ฌ์ฉ์ ๋ ์ฝ๊ฒ ํ ์ ์๋๋ก ์ง์ํ์๋ค
- ๊ฐ ํ์ผ์์ ํ์ํ ์ฝ๋๋ง ๊ฐ์ ธ์ค๊ณ , ๋ถํ์ํ ์ฝ๋์ ์ค๋ณต์ ์ค์ผ ์ ์๊ฒ ๋์์ต๋๋ค. ์ด๋ ๋๊ท๋ชจ ํ๋ก์ ํธ๋ ํ ๋จ์ ๊ฐ๋ฐ์์ ํนํ ์ ์ฉํ๋ค.
๊ฐ๋ ์ ๋ฆฌ ๋ฐ ๋ง์ธ๋๋งต



๐ฅ ๋ฏธ์ ์ธ์ฆ
1๏ธโฃ๋ก์ปฌ DB ์ค๋น ํ๊ธฐ
์ ๋ MYSQL๋ฅผ ์ฌ์ฉํ์ฌ ๋ก์ปฌ DB๋ฅผ ์ค๋นํ์์ต๋๋ค.
- ์์ฑํ ํ ์ด๋ธ ์ฝ๋ ์์ฑ
ํ ์ด๋ธ์ ๊ฐ๋จํ ์ ์ ํ ์ด๋ธ์ ์๋กญ๊ฒ ๊ตฌ์ฑํ์ฌ ์์ฑํ์์ต๋๋ค.
-- ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ (์ ํํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉ)
USE new_schema;
-- ๊ฐ๋จํ ํ
์ด๋ธ ์์ฑ
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ฝ์
(์ด๋ฆํ๊ณ ์ด๋ฉ์ผ!)
INSERT INTO users (name, email)
VALUES
('chaewon', 'alice@example.com'),
('winny', 'winny@example.com');
2. DB ์์ฑ ์๋ฃ


2๏ธโฃ๊นํ๋ธ ์ค์ ํ๊ธฐ
- ๋ ํฌ์งํ ๋ฆฌ ์์ฑ ํ feature/mission-04 ์์ฑํ๊ธฐ
UMC-winny-repo๋ฅผ ์์ฑ ํ ๋ค ๋ธ๋์น๋ฅผ ์์ฑํด ์ฃผ์์ต๋๋ค!
2. vscode์์ ํ์ผ ์์ฑ ํ ํธ์
๋ค์ vscode์์ git checkout ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํด ๋ธ๋์น ์ด๋ ํ ํ์ผ์ ํธ์ํด์ฃผ์์ต๋๋ค!

'{Extracurricular Activities} > UMC 7๊ธฐ - Node.js' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| [UMC 7th Server] Chapter 6. ORM ์ฌ์ฉํด๋ณด๊ธฐ (5) | 2024.11.07 |
|---|---|
| [UMC 7th Server] Chapter 5. ES6์ ํ๋ก์ ํธ ํ์ผ ๊ตฌ์กฐ์ ์ดํด (4) | 2024.10.28 |
| [UMC 7th Server] Chapter 3. API URL์ ์ค๊ณ & ํ๋ก์ ํธ ์ธํ (1) | 2024.10.10 |
| [UMC 7th Server] Chapter 2. ์ค์ SQL ์ํฌ๋ถ (1) | 2024.10.06 |
| [UMC 7th Server] Chapter 1. Database ์ค๊ณ ์ํฌ๋ถ (3) | 2024.09.26 |