ECMAScript 6 (줄여서 ES6, 또는 ECMAScript 2015)는 자바스크립트(JavaScript)의 대대적인 개정판으로, 2015년에 공식 발표되었습니다. ES6는 JavaScript의 기능성과 생산성을 획기적으로 개선하면서 현대적인 웹/앱 개발의 기반이 되었습니다.

아래에 ES6의 핵심 개념과 주요 기능들을 상세하게 설명해드리겠습니다.

🔰 ECMAScript란?

  • ECMAScript는 JavaScript의 표준 사양입니다.
  • ECMA(유럽 컴퓨터 제조 협회)의 TC39 위원회에서 관리하고 발전시키고 있습니다.
  • JavaScript는 ECMAScript 사양을 구현한 프로그래밍 언어입니다.

🚀 ES6의 주요 특징 및 기능

1. letconst

  • 기존의 var는 함수 스코프(function scope)를 가지며, 호이스팅(hoisting) 문제를 유발함.
  • ES6는 **블록 스코프(block scope)**를 가지는 let상수 선언을 위한 const를 도입함.
let name = "Alice";
const age = 30;

let: 값을 나중에 변경 가능
const: 변경 불가능 (immutable)

2. 템플릿 리터럴 (Template Literals)

  • 문자열을 백틱() “으로 감싸고 ${}로 변수나 표현식을 쉽게 삽입
const name = "Bob";
console.log(`Hello, ${name}!`); // Hello, Bob!

✅ 다중 줄 문자열도 가능

3. 화살표 함수 (Arrow Functions)

  • 짧고 간결한 함수 표현
const add = (a, b) => a + b;

this 바인딩이 기존 함수와 다름 (lexical scope 사용)

4. 클래스 (Class)

  • 객체 지향 프로그래밍을 위한 문법적 설탕 (syntactic sugar)
class Person {
constructor(name) {
this.name = name;
}

greet() {
return `Hi, I'm ${this.name}`;
}
}

5. 모듈 (Modules)

  • 코드 분할 및 재사용성을 향상시킴 (import / export)
// math.js
export const add = (a, b) => a + b;

// app.js
import { add } from './math.js';
console.log(add(2, 3)); // 5

6. 디스트럭처링 (Destructuring)

  • 배열이나 객체의 값을 개별 변수로 쉽게 추출
// 배열
const [a, b] = [1, 2];

// 객체
const { name, age } = { name: 'Alice', age: 25 };

7. 디폴트 파라미터 (Default Parameters)

  • 함수의 기본 인자 설정 가능
function greet(name = "Guest") {
console.log(`Hello, ${name}`);
}

8. 스프레드 연산자 (...) & 나머지 파라미터

  • 복사, 병합, 나머지 추출 등 다양하게 활용
// 배열 병합
const nums = [1, 2, ...[3, 4]];

// 함수 파라미터
function sum(...args) {
return args.reduce((a, b) => a + b);
}

9. Promise (비동기 처리)

  • 콜백 지옥을 해결하기 위한 비동기 처리 방식
const fetchData = () => {
return new Promise((resolve, reject) => {
setTimeout(() => resolve("Data received"), 1000);
});
};

fetchData().then(data => console.log(data));

10. Map과 Set

  • 새로운 컬렉션 타입
const map = new Map();
map.set('key', 'value');

const set = new Set([1, 2, 3, 3]); // 중복 제거됨

📌 ES6 이후로도 계속 발전 중

ES6 이후에도 ES7, ES8, …, ES2024 등으로 ECMAScript는 매년 새로운 기능이 추가되고 있습니다. 하지만 ES6는 현재 자바스크립트의 기본 토대로 자리잡았으며, 이후의 모든 문법 발전의 기반입니다.

🧠 요약

기능설명
let/const새로운 변수 선언 방식
Template Literals문자열 보간과 멀티라인 문자열
Arrow Functions간결한 함수 선언 및 this 처리
Classes객체지향 문법 지원
Modules코드 분할과 재사용 가능
Destructuring배열/객체 분해 할당
Default Parameters기본 함수 인자 설정
Spread / Rest배열/객체 병합 및 분해
Promise비동기 처리 개선
Map / Set새로운 데이터 컬렉션

zerg96

Recent Posts

타입스크립트 (TypeScript)

1. 타입스크립트 개요 타입스크립트(TypeScript)는 마이크로소프트(Microsoft)가 개발한 자바스크립트(JavaScript)의 상위 집합(Superset) 언어입니다.즉, 자바스크립트에 정적 타입(Static Type)을 추가하고,…

7개월 ago

노트북(윈도우)에서 아이폰 유선 테더링 하기

윈도우 운영체제의 노트북에서는 iPhone 유선 테더링이 잘 안되는 경우가 많습니다. 보통 iPhone의 드라이버가 설치가 안되있어서인…

8개월 ago

오라클 래치(Latch)

오라클 데이터베이스의 성능을 논할 때, 내부적으로 발생하는 경합(Contention)은 피할 수 없는 주제다. 특히 다수의 프로세스가…

8개월 ago

사장님도 3표, 나도 3표? ‘3%룰’ 완전 정복!

안녕하세요, 혹시 이런 생각해 본 적 없으신가요? "내가 투자한 회사는 누가 감시하고, 어떻게 운영될까?" 오늘은…

8개월 ago

Vector Store(벡터 스토어)

'벡터 스토어' 완벽 가이드: AI 시대, 데이터의 새로운 심장을 만나다 IT 업계는 인공지능(AI)이라는 거대한 패러다임의…

9개월 ago

Gemini CLI (재미나이 CLI)

1. Gemini CLI란 무엇인가요? Gemini CLI는 터미널 환경에서 직접 Gemini 모델과 상호작용할 수 있도록 만들어진…

9개월 ago