목록전체 글 (53)
동그란 도그린
입력 첫째 줄에 N과 K (2 ≤ N ≤ 50, 0 ≤ K ≤ N(N-1)/2) 출력 (조건) 문자열 S의 길이가 N이고 'A', 'B'로 이루어져 있을 때, 문자열 S에는 0 ≤ i = ..
StringBuilder와 StringBuffer를 사용하는 이유 String의 원본 값은 변경할 수 없음. 불변(immutable) 자료형 아래 코드에서 객체를 수정한 것처럼 보이지만, 사실 또다른 새로운 String 객체를 생성한 것임. String 타입의 문자열을 수정할 때마다 메모리 내의 힙 영역에 값이 변경된 새로운 인스턴스가 생성되므로 메모리 낭비가 될 수 있고, 속도도 느려짐. String str = "hello"; str += "world"; 따라서 문자열 변경 작업이 거의 없을 때는 String을 사용하고, 문자열을 빈번하게 추가, 수정, 삭제하는 경우에는 StringBuilder와 StringBuffer를 사용하는 게 좋음. StringBuilder와 StringBuffer는 내부 Bu..
6️⃣ 클래스 ✨ 클래스란? 동일한 모양의 객체를 더 쉽게 생성하도록 도와주는 문법 붕어빵 = 객체, 붕어빵 기계 = 클래스 클래스를 이용하여 새로운 객체를 생성할 때 new 클래스이름 형태로 클래스의 생성자 함수 호출 class Student { name; age; grade; // 생성자 constructor(name, age, grade) { this.name = name; this.age = age; this.grade = grade; } // 메서드 study() { console.log("열심히 공부함"); } } // 클래스 호출하여 객체 생성 const studentA = new Student("홍길동", 27, "A+"); ✨ 상속 앞서 만든 클래스를 기반으로 추가적인 필드와 메서드를 갖..
1️⃣ 타입스크립트 개론 ✨ 타입스크립트란? 기존의 자바스크립트를 더 안전하게 사용할 수 있도록 타입과 관련된 여러 기능(타입 지정 등)을 추가한 언어 (자바스크립트의 확장판) ⇒ 타입스크립트에서 자바스크립트 기본 문법들은 모두 사용 가능 ✨ 타입스크립트 등장 배경 자바스크립트는 처음에 간결한 일부 프로그램을 만들기 위해 사용되었기 때문에 아래와 같은 특성을 가짐 유연한 문법 버그 발생 가능성 높음 자유로움 하지만 Node.js(자바스크립트 런타임)이 탄생하며 자바스크립트를 어디서든 실행할 수 있게 되면서 다양한 프로그램을 만드는 데 사용됨 ⇒ 자바스크립트가 유연해서 프로그램을 안정성을 떨어뜨림! ⇒ 이를 극복하기 위해 안정성을 추가한 타입스크립트가 등장 ❓ 타입 시스템이란? 프로그래밍 언어를 사용할 때..
34-1. 이터레이션 프로토콜 이터레이션 프로토콜 ES6에 도입 순회 가능한terable 데이터 컬렉션(자료구조)을 만들기 위해 ECMAScript 사양에 정의하여 미리 약속한 규칙 이터러블 프로토콜과 이터레이터 프로토콜이 있음 ES6 이전 순회 가능한 데이터 컬렉션(배열 , 문자열 , 유사 배열 객체 , DOM 컬렉션 등)은 통일된 규약 없이 각자 나름의 구조를 가지고 for 문, for .. in 문, forEach 메서드 등 다양한 방법으로 순회 가능 ES6 순회 가능한 데이터 컬렉션을 이터레이션 프로토콜을 준수하는 이터러블로 통일하여 for … of문, 스프레드 문법, 배열 디스트럭처링 할당 대상으로 사용할 수 있도록 일원화 이터러블 이터러블 프로토콜을 준수한 객체를 이터러블이라고 함 이터러블은 ..
33-1. 심벌이란? 심벌 ES6에서 도입된 7번째 데이터 타입으로, 변경 불가능한 원시 타입의 값 다른 값과 중복되지 않는 유일무이한 값 ⇒ 주로 이름의 충돌 위험이 없는 유일한 프로퍼티 키를 만들기 위해 사용 33-2. 심벌 값의 생성 Symbol 함수를 호출하여 생성 생성된 심벌 값은 외부로 노출되지 않아 확인할 수 없으며, 다른 값과 절대 중복되지 않는 유일무이한 값 new 연산자와 함께 호출하지 X (new 연산자와 함께 생성자 함수 또는 클래스를 호출하면 객체가 생성되지만 심벌 값은 변경 불가능한 원시 값임) const mySymbol = Symbol(); console.log(mySymbol); // Symbol() : 심벌 값은 외부로 노출되지 않으므로 확인 불가 Symbol 함수에는 선택..
32-1. String 생성자 함수 String 객체는 생성자 함수 객체 new 연산자와 함께 호출하여 String 인스턴스 생성 가능 new 연산자와 함께 호출하면 [[StringData]] 내부 슬롯에 빈 문자열을 할당한 String 래퍼 객체를 생성 ⇒ ES5에서는 [[StringData]]를 [[PrimitiveValue]]라고 불렀음 String 래퍼 객체 배열과 마찬가지로 length 프로퍼티와 인덱스를 나타내는 숫자 형식의 문자열을 프로퍼티 키로, 각 문자를 프로퍼티 값으로 갖는 유사 배열 객체이면서 이터러블 배열과 유사하게 인덱스를 통해 각 문자에 접근 가능 단, 문자열은 원시 값이므로 변경 불가 String 생성자 함수의 인수로 문자열이 아닌 값을 전달하면 인수를 문자열로 강제 변환한 후..
27-1. 배열이란? 여러 개의 값을 순차적으로 나열한 자료구조 배열은 배열의 길이를 나타내는 length 프로퍼티를 가짐 자바스크립트에는 배열이라는 타입 존재 X, 배열은 객체 타입 배열은 배열 리터럴, Array 생성자 함수, Array.of, Array.from 메서드로 생성 가능 Array.prototype은 배열을 위한 빌트인 메서드 제공 배열은 객체지만, 일반 객체와는 다른 특징이 있음 27-2. 자바스크립트 배열은 배열이 아니다 일반 배열 vs 자바스크립트 배열 자료구조에서 말하는 배열 밀집 배열 동일한 크기의 메모리 공간이 빈틈없이 연속적으로 나열된 자료구조 배열의 요소는 하나의 데이터 타입으로 통일되어 있으며 서로 연속적으로 인접 요소에 빠르게 접근 가능하다는 장점 배열에 요소를 삽입 및..