javascript 11

[ES6][중급반] Step 6. 클래스와 모듈: 객체 지향과 코드 분리

1. Class (클래스): 객체 지향의 정석ES6 이전에는 함수와 프로토타입을 이용해 복잡하게 구현했던 상속 구조를 이제는 다른 언어들처럼 직관적인 class 키워드로 작성할 수 있습니다.constructor: 인스턴스가 생성될 때 실행되는 생성자 함수입니다.Method: 클래스 내부에서 함수를 정의하며, 자동으로 프로토타입에 등록됩니다.Static: 인스턴스가 아닌 클래스 자체에서 호출하는 정적 메서드나 속성을 정의합니다.JavaScript class Animal { constructor(name) { this.name = name; } // 메서드 정의 speak() { console.log(`${this.name}가 소리를 냅니다.`); } // 정적 메서드 (도구 모음 등에..

개발/Javascript 2025.12.24

[ES6][중급반] Step 5. 비동기 프로그래밍 2: Async/Await와 실전 데이터 통신

1. 🍭 Async/Await: 비동기 코드의 문법적 설탕 (Syntactic Sugar)Async/Await는 새로운 기능이 아니라 Promise를 기반으로 동작하는 특별한 문법입니다. 비동기 로직의 결과를 기다리기 위해 더 이상 .then() 체이닝을 길게 늘어뜨릴 필요가 없습니다.async 키워드: 함수 앞에 붙이며, 이 함수는 항상 Promise를 반환하게 됩니다.await 키워드: async 함수 내부에서만 사용 가능하며, Promise가 처리(settled)될 때까지 함수의 실행을 잠시 중단하고 결과값을 반환합니다.🛠️ 기본 구조 비교JavaScript // Promise 방식function fetchUser() { return fetch('https://api.example.com/us..

개발/Javascript 2025.12.24

[ES6][중급반] Step 4. 비동기 프로그래밍 1: Promise와 콜백 지옥 탈출

1. 비동기란 무엇인가? (Blocking vs Non-blocking)자바스크립트 엔진은 한 번에 하나의 작업만 수행할 수 있습니다. 하지만 네트워크 요청이나 타이머 같은 작업은 시간이 오래 걸립니다.동기(Synchronous): 앞선 작업이 끝날 때까지 다음 작업을 멈추고 기다립니다. (화면 멈춤 현상 발생)비동기(Asynchronous): 작업을 요청한 뒤, 결과가 나오기 전이라도 다음 코드를 먼저 실행합니다.2. 콜백 지옥 (Callback Hell)Promise가 등장하기 전에는 비동기 처리를 위해 함수 안에 함수를 계속 중첩시키는 '콜백' 방식을 사용했습니다. 이는 가독성을 해치고 에러 처리를 매우 어렵게 만듭니다.JavaScript // ❌ 콜백 지옥의 예시getData(function(a)..

개발/Javascript 2025.12.24

[ES6][중급반] Step 3. 현대적 이터레이션: Map, Set, 그리고 이터러블 프로토콜

1. Map (맵): 객체의 한계를 넘는 키-값 저장소일반 객체({})는 키로 문자열이나 심볼만 사용할 수 있지만, Map은 어떤 값(함수, 객체 포함)도 키가 될 수 있습니다.데이터 순서 보장: 삽입된 순서대로 요소를 유지합니다.크기 확인 용이: .size 프로퍼티로 데이터 개수를 즉시 알 수 있습니다.성능: 잦은 추가와 제거가 일어나는 시나리오에서 일반 객체보다 성능이 뛰어납니다.JavaScript const myMap = new Map();const keyObj = { id: 1 };const keyFunc = () => {};myMap.set(keyObj, '객체를 키로 사용');myMap.set(keyFunc, '함수를 키로 사용');myMap.set('name', 'Gemini');consol..

개발/Javascript 2025.12.24

[ES6][중급반] Step 2. 객체와 배열의 마법: 구조 분해 할당과 데이터 핸들링

1. 객체 구조 분해 할당 (Object Destructuring)객체의 프로퍼티를 꺼내어 변수로 만드는 과정에서 중복된 코드를 줄여줍니다.기본 사용법: 키 이름과 동일한 변수명을 사용합니다.이름 변경: : (새 이름)을 사용하여 변수명을 바꿀 수 있습니다.기본값 설정: 데이터가 없을 경우를 대비해 초기값을 줄 수 있습니다.JavaScript const user = { id: 1, nickname: "JSMaster", email: "test@test.com" };// nickname을 name이라는 변수로 받고, age가 없으면 20을 기본값으로 사용const { nickname: name, email, age = 20 } = user;console.log(name); // "JSMaster"cons..

개발/Javascript 2025.12.23

[ES6][중급반] Step 1. 함수의 고도화와 스코프: 자바스크립트의 엔진 속으로

1. Arrow Function (화살표 함수): 단순한 단축 문법이 아니다화살표 함수는 코드를 짧게 만들어주지만, 가장 중요한 차이점은 this 바인딩에 있습니다.일반 함수: 호출 방식에 따라 this가 동적으로 결정됩니다.화살표 함수: 함수가 선언된 위치의 상위 스코프 this를 그대로 물려받습니다 (Lexical this).JavaScript const user = { name: "Gemini", // 일반 함수: 호출한 user 객체를 가리킴 sayHi: function() { console.log(this.name); }, // 화살표 함수: 상위 스코프(전역)의 this를 가리킴 sayHiArrow: () => { console.log(this.name); } };user.sayHi..

개발/Javascript 2025.12.23

[ES6][초급반] Step 5. 비동기 처리를 정복하다: Promises의 등장

[ES6 핵심 정복 #5] 비동기 처리를 정복하다: Promises의 등장JavaScript는 기본적으로 코드를 순서대로 실행하는 단일 스레드(Single-Threaded) 언어입니다. 하지만 네트워크 요청(API 호출)처럼 시간이 오래 걸리는 작업은 코드가 멈추지 않도록 **비동기적(Asynchronous)**으로 처리해야 합니다. ES6에서는 이 비동기 처리를 훨씬 깔끔하게 관리할 수 있는 Promise가 도입되었습니다.1. 🤯 비동기 처리의 악몽: 콜백 지옥 (Callback Hell)Promise가 나오기 전에는 비동기 작업을 처리하기 위해 **콜백 함수(Callback Function)**를 사용했습니다. 여러 비동기 작업이 순차적으로 실행되어야 할 때, 콜백 함수가 중첩되면서 코드가 가독성이..

개발/Javascript 2025.12.12

[ES6][초급반] Step 4. 클래스로 객체 지향 시작: 모듈 시스템의 도입

[ES6 핵심 정복 #4] 클래스로 객체 지향 시작: 모듈 시스템의 도입JavaScript는 원래 프로토타입(Prototype) 기반의 언어였지만, ES6에서 클래스(Class) 문법이 도입되면서 다른 객체 지향 언어(Java, C++ 등) 사용자들에게 훨씬 익숙하고 체계적인 코딩이 가능해졌습니다. 또한, 코드를 파일 단위로 나누어 관리하고 재사용할 수 있는 모듈 시스템도 ES6의 큰 혁신입니다.1. 🏗️ 객체 지향의 시작: 클래스(Classes)ES6의 클래스는 새로운 객체 지향 모델이 아니라, 기존의 프로토타입 기반 상속을 더 쉽게 작성할 수 있도록 돕는 **문법적 설탕(Syntactic Sugar)**입니다. 하지만 코드를 구조화하는 데 매우 유용합니다.A. 기본적인 클래스 정의클래스는 데이터(속..

개발/Javascript 2025.12.11

[ES6][초급반] Step 3. 데이터 다루기의 마법: 구조 분해, 전개 구문, 객체 리터럴 개선

[ES6 핵심 정복 #3] 데이터 다루기의 마법: 구조 분해, 전개 구문, 객체 리터럴 개선이번 시간에는 배열이나 객체에서 데이터를 다루는 방식을 획기적으로 개선해 준 문법들을 배웁니다. 이 세 가지 문법은 코드를 압축하고 가독성을 높여주는 ES6의 '마법'입니다.1. 🔍 원하는 값만 쏙 뽑아 쓰는: 구조 분해 할당 (Destructuring Assignment)구조 분해 할당은 배열이나 객체의 속성을 해체(Destructure)하여 그 값을 개별 변수에 쉽게 담을 수 있게 해주는 문법입니다.A. 객체 구조 분해객체에서 필요한 속성(Key)의 이름을 사용하여 값을 추출합니다.JavaScript const user = { id: 1, name: 'Leo', city: 'Seoul' };// ❌..

개발/Javascript 2025.12.10

[ES6][초급반] Step 2. 코드를 간결하게, 가독성을 높이다: 함수와 템플릿 리터럴

[ES6 핵심 정복 #2] 코드를 간결하게, 가독성을 높이다: 함수와 템플릿 리터럴지난 시간에는 let과 const로 변수 관리를 안정화했습니다. 이번 시간에는 코드를 더 짧고 읽기 쉽게 만들어주는 **화살표 함수 (Arrow Function)**와 **템플릿 리터럴 (Template Literals)**에 대해 알아봅시다. 이 두 가지는 실무에서 가장 자주 사용될 ES6 문법입니다.1. 코드를 간결하게: 화살표 함수 (Arrow Function)화살표 함수는 function 키워드 대신 화살표(=>)를 사용하여 함수를 정의하는 새로운 문법입니다.A. 문법의 간결함익명 함수를 정의할 때 코드가 훨씬 짧아집니다.기존 함수 (ES5)화살표 함수 (ES6)function(a) { return a + 1; }(..

개발/Javascript 2025.12.10
반응형