학습
JavaScript ES6 문법 심화
JavaScript ES6 문법 심화 — 중급
ES6 문법 심화
1. 도입 (왜 배워야 하는가)
ES6(ECMAScript 2015)는 JavaScript의 주요 업데이트로, 코드의 가독성과 생산성을 크게 향상시킵니다. 실무에서는 유지보수와 협업이 중요한 만큼, ES6 문법을 활용하면 더 효과적이고 일관된 코드를 작성할 수 있습니다.
만약 ES6 문법을 사용하지 않는다면, 구식 코드 스타일에 갇혀 코드가 복잡해지고, 오류 발생 확률이 높아집니다. 이는 팀원 간의 협업을 어렵게 하고, 새로운 기능을 추가하는 데 많은 시간이 소모될 수 있습니다.
2. 핵심 개념 설명
1. 화살표 함수 (Arrow Functions)
화살표 함수는 function 키워드를 사용하지 않고 함수를 정의하는 방법입니다. 문법이 간결하고 this 바인딩이 더 직관적입니다.
- 실생활 비유: 화살표 함수는 "짧고 빠른 경로"처럼, 코드가 더 간단해지고 이해하기 쉬워집니다.
- 실생활 비유: 템플릿 리터럴은 "조리법"처럼, 여러 재료(문자열)를 쉽게 결합하여 맛있는 요리를 만드는 것과 같습니다.
2. 템플릿 리터럴 (Template Literals)
템플릿 리터럴은 문자열을 쉽게 조합할 수 있도록 도와줍니다. 백틱(`` ``)을 사용하여 여러 줄 문자열과 변수 삽입이 가능합니다.
| 용어 | 설명 |
|---|---|
| 화살표 함수 | 간결한 함수 표현식 |
| 템플릿 리터럴 | 문자열을 쉽게 조합하고 표현하는 방법 |
3. 기본 코드 예제
화살표 함수
const add = (a, b) => a + b;
console.log(add(2, 3)); // 5
: add라는 화살표 함수를 정의, 두 숫자를 더함. : add 함수 호출하여 결과를 출력.템플릿 리터럴
const name = "홍길동"; const greeting =안녕하세요, ${name}님!; console.log(greeting); // 안녕하세요, 홍길동님!
안녕하세요, ${name}님!; : name 변수를 포함한 문자열 생성. : 생성된 문자열 출력.4. 실전 활용 예제
쇼핑몰에서 장바구니 구현
- 장바구니에 아이템 추가하기: 화살표 함수를 사용하여 장바구니에 아이템을 추가하는 로직을 작성합니다.
- 장바구니 내용 출력하기: 템플릿 리터럴을 사용하여 장바구니의 내용을 출력합니다.
- 잘못된 코드: this
를 사용한 일반 함수를 사용하면this가 의도한 대로 작동하지 않음. - 올바른 코드: 화살표 함수를 사용하여 this`의 범위를 유지.
- 잘못된 코드: 백틱 대신 작은따옴표 사용. 변수 치환이 이루어지지 않음.
- 올바른 코드: 백틱을 사용하여 템플릿 리터럴을 작성.
- ES6 문법은 코드의 가독성과 유지보수성을 높여줍니다.
- 화살표 함수와 템플릿 리터럴을 통해 더 간결하고 직관적인 코드를 작성할 수 있습니다.
- 다음에 학습하면 좋은 주제는 비동기 프로그래밍(Promises, async/await)입니다. 이는 현대 JavaScript 개발에서 매우 중요한 개념입니다.
const cart = []; const addItem = (item) => { cart.push(item); console.log(${item}이(가) 장바구니에 추가되었습니다.); }; addItem('사과'); // 사과이(가) 장바구니에 추가되었습니다.
const showCart = () => { console.log(장바구니에는 ${cart.length}개의 아이템이 있습니다: ${cart.join(', ')}); }; showCart(); // 장바구니에는 1개의 아이템이 있습니다: 사과
5. 흔한 실수와 주의사항
실수 1: 화살표 함수에서 this 사용
class Person { constructor(name) { this.name = name; } sayHello() { setTimeout(() => { console.log(안녕하세요, 제 이름은 ${this.name}입니다.); }, 1000); } } const person = new Person("김철수"); person.sayHello(); // 안녕하세요, 제 이름은 김철수입니다.
실수 2: 템플릿 리터럴의 백틱 사용
const name = "이순신";
const greeting = '안녕하세요, ${name}님!'; // 잘못된 사용
console.log(greeting); // 안녕하세요, ${name}님!