본문 바로가기

Hello! I'm haein, a junior front-end developer. Welcome to my space.
간단한 자기소개 '◡'
안녕하세요. 정리하는 것이 주특기이고, 인문논술로 대학을 가서 나름 글쓰기에 자부심(?)이 있는 주니어 개발자입니다. 개발 공부를 하면서 좀 더 정돈된 기록을 해보고 싶어서 블로그를 시작하게되었습니다. 게시글 하나하나 정말 정성스럽게 열심히 썼구요. 되도록이면 공식문서를 참고해서 객관적이고 정확한 정보를 작성하려고 노력했습니다. 그리고 제가 이해가 될 정도로 디테일하게 서술해서 웬만한 사람들도 이해가 가능할 것이라는것이 저의 뇌피셜입니다. 아무쪼록 저의 글을 읽는 사람들이 어떤 방향으로든 도움이 되셨으면 좋겠습니다. 참고로 연보라, 연핑크를 좋아하구여, 그라데이션도 좋아합니다. 그래서 내 취향에 맞게 커스텀 했습니다 ㅎㅎㅎ MBTI는 ISTJ입니다. 너무 TMI라서 toggle로 해뒀습니다. 궁금한 사람들은 펼쳐보시겠죠?

전체 글

(209)
[JavaScript] 클래스 상속을 이용한 확장(extends) 클래스 상속을 이용해서 확장하는 법을 알아보자! 클래스 상속을 이용한 확장 class Animal { constructor(name) { this.speed = 0; this.name = name; } run(speed) { this.speed = speed; alert(`${this.name} 은/는 속도 ${this.speed}로 달립니다.`); } stop() { this.speed = 0; alert(`${this.name} 이/가 멈췄습니다.`); } } let animal = new Animal("동물"); 객체 animal과 클래스 Animal의 관계를 그림으로 나타내면 다음과 같다. Animal을 상속받는 또다른 클래스 Rabbit를 만들어볼 것이다. 토끼는 동물이므로 Rabbit은 동물 ..
[JavaScript] 클래스 (Class) 목차 1. "클래스"란? 2. 클래스의 기본 문법 3. 클래스의 prototype 4. 생성자 함수 vs 클래스 5. 클래스 표현식 클래스.. 너란 녀석.... 미루고...미루고... 미뤄왔다... 클래스를 알려면 생성자 함수, 프로토타입, this를 다 알아야했다. 그리고 난... 난..... class를 쓰고 싶지 않았다... 그저 생성자 함수만 고집해왔다... 타입스크립트를 공부하는데도 클래스에 대한 언급이 있어서 잊을만 하면 자꾸 나오니 안되겠다 싶어서 그냥 제대로 짚고 알고 넘어가야겠다 생각했다. 이 글을 쓰기 위해서 생성자함수, 프로토타입, this에 대한 게시글 작성도 완료했고, 야무지게 공부해왔다. 평소답지 않게 서론이 길었다...ㅎ 드디어! 클래스에 대해서 알아보자! 1. "클래스"란? ..
[JavaScript] 생성자 함수 (new 연산자, 인스턴스) 쉽게 이해해보기 목차 1. "생성자 함수"란? 2. "인스턴스"란? 3. 생성자 함수의 내부 작동 원리 (알고리즘) 4. 붕어빵 비유로 이해해보기 5. 생성자 함수를 사용했을 때 이점 생성자 함수에 대해서 알아보자! 1. "생성자 함수"란? * 생성자 함수: 객체 인스턴스를 만들고 초기화하는 함수 * 초기화: 해당 객체의 상태나 속성을 초기값으로 설정하는 것 생성자 함수는 일반 함수와 유사하지만, 일반 함수와 달리 보통 첫 글자를 대문자로 시작하여 이름을 지정하며, "new" 키워드와 함께 호출된다. 예시 1) this에 프로퍼티 정의하기 // 생성자 함수 (User) 정의 function User(name, age) { // name과 age라는 두 개의 매개변수를 받아서 객체의 프로퍼티로 설정함 this.name =..
[JavaScript] this 목차 1. this란? 2. 런타임에 결정되는 this 3. this를 사용하는 이유 4. this가 없는 화살표 함수 this에 대해서 알아보자! 1. "this"란? * this: 메서드를 호출할 때 사용된 객체 (즉, 현재 객체) let user = { name: "John", age: 30, sayHi() { alert(this.name); // 여기서는 this가 user임 } }; user.sayHi(); // John // user.sayHi()가 실행되는 동안에 this는 user를 나타냄 * 참고) 메서드 단축 구문 // 아래 두 객체는 동일하게 동작한다. user = { sayHi: function() { alert("Hello"); } }; // 단축 구문 user = { sayHi(..
[TypeScript] 이넘 (Enums) 타입스크립트의 이넘에 대해서 알아보자! 1. 이넘(Enum) 이란? 이넘: 특정 값들의 집합을 의미하는 자료형 - 프로그래밍 언어에서 사용되는 데이터 유형(Data Type) 중 하나 - 명명된 상수(named constants)의 집합을 정의하는 데 사용 - 일반적으로 코드를 읽고 이해하기 쉽도록 특정 값들에 이름을 지정하여 사용하는데 유용 2. 이넘의 장점 - 명명된 상수 : 이넘을 사용하면 각각의 상수에 이름을 지정할 수 있다. → 가독성을 향상, 코드의 의도를 명확히 전달 - 유연성과 확장성 : 이넘을 사용하면 프로그램에서 사용되는 값들을 한 곳에 집중시켜 정의할 수 있다. 이는 만약 값이 변경되어야 할 경우, 해당 이넘만 수정하면 되기 때문에 변경에 대한 유연성과 확장성을 제공한다. → 변경이 ..
[TypeScript] 연산자를 이용한 타입 정의 (Union Type, Intersection Type) 목차 1. 유니온 타입이란?2. 유니온 타입의 장점3. 유니온 타입을 쓸 때 주의할 점4. 인터섹션 타입이란?5. 인터섹션 타입 예시와 특징   타입스크립트에서 연산자를 이용해 타입을 정의해보자!    1. 유니온 타입 (Union Type) 이란?  * 유니온 타입: 자바스크립트의 OR 연산자(||)와 같이 A이거나 B이다 라는 의미의 타입 function logText(text: string | number) { // ...} 위 함수의 파라미터 text에는 문자열 타입이나 숫자 타입이 모두 올 수 있다.이처럼 | 연산자를 이용하여 타입을 여러 개 연결하는 방식을 유니온 타입 정의 방식이라고 부른다.      2. 유니온 타입의 장점  any를 사용하는 경우와, 유니온 타입을 사용하는 경우를 비교하..
[TypeScript] 타입스크립트의 인터페이스(interface) 목차 1. 인터페이스란? 2. 인터페이스 적용 전 후 살펴보기 3. 변수에 인터페이스 활용하기 4. 함수에 인터페이스 활용하기 5. 함수 스펙에 인터페이스 활용하기 6. 배열 인덱스에 인터페이스 활용하기 7. 인터페이스 딕셔너리 패턴 8. 옵션 속성 9. 읽기 전용 속성 10. 인터페이스 확장 타입스크립트의 인터페이스(interface)에 대해서 알아보자! 1. 인터페이스란? * 인터페이스: 상호 간에 정의한 약속 혹은 규칙 인터페이스는 보통 다음과 같은 범주에 대해 약속을 정의할 수 있다. 객체의 스펙(속성과 속성의 타입) 함수의 파라미터 함수의 스펙(파라미터, 반환 타입 등) 배열과 객체를 접근하는 방식 클래스 2. 인터페이스 적용 전 후 살펴보기 적용 전 let person = { name: 'Ca..
[TypeScript] 타입스크립트의 함수 타입 - 파라미터, 반환값, 인자, 옵셔널 파라미터 목차 1. 함수의 "파라미터"에 타입을 정의하는 방식 2. 함수의 "반환값"에 타입을 정의하는 방식 3. 함수의 타입을 정의하는 방식 4. 함수의 인자 5. 함수의 옵셔널 파라미터 타입스크립트 함수 타입에 대해서 알아보자! 1. 함수의 "파라미터"에 타입을 정의하는 방식 파라미터의 개수와 인자도 개수를 맞춰줘야 한다. (1:1 mapping이 돼야한다.) function sum(a: number, b: number) { return a + b; } sum (10, 20); 2. 함수의 "반환 값"에 타입을 정의하는 방식 function add(): number{ return 10; } 함수의 반환 값에 타입을 정하지 않을 때는 void라도 사용하기! 3. 함수의 타입을 정의하는 방식 (가장 기본적인 모습..