목록전체 글 (73)
Ted's Codding study
1. 클래스(Class)1-1) 클래스 정의'객체'를 생성하기 위한 템플릿 또는 설계도데이터와 해당 데이터를 조작하는 코드를 함께 캡슐화 1-2) 클래스 특징캡슐화: 데이터(속성)와 데이터를 처리하는 함수(메서드)를 하나로 묶는 것추상화: 복잡한 세부사항X, 필수적인 부분만을 강조하는 것상속: 한 클래스의 속성과 메서드를 다른 클래스가 상속받을 수 있는 것다형성: 하나의 인터페이스를 통해 다른 클래스의 객체(인스턴스)를 다룰 수 있는 것 2. 객체(Object)2-1) 객체 정의'클래스'에 의해서 생성된 인스턴스(instance)실제 프로그램에서 사용되는 데이터와 기능의 집합체 2-2) 객체 특징상태와 행동: 객체는 속성(상태)과 메서드(행동)를 갖는 것독립성: 각 객체는 독립적인 성격을 가지며 다른 객..
프로그램을 객체들의 집합으로 보는 패러다임(구조)각 객체들은 서로 메시지를 전달하며 상호 작용1. 객체상태와 행동을 가지는 모든 것상태는 속성(attribute), 행동은 메서드(method)로 표현 2. '객체 지향 프로그래밍'의 주요 개념2-1) 클래스(Class)와 객체(Object)클래스공통적 성질을 가진 대상들을 정의한 것데이터(속성)와 메서드(행동, 동작)을 포함ex) (요리) 레시피 필요한 재료(데이터, 속성)와 조리방법(메서드, 동작) 포함객체클래스에 의해서(정의된 대로) 생성된 실체(데이터)클래스에 의해 생성되어 클래스에서 정의한 행동을 수행 가능ex) 요리된 팬케이크 레시피를 바탕으로 실제로 완성된 팬케이크, 실제로 존재 2-2) 캡슐화객체의 속성과 행동(메서드)을 하나로 묶는 것외부에..
💡 요구 사항Todo 항목의 인터페이스 정의(ITodoItem)Todo 항목은 id(number), task(string), completed(boolean)Todo 리스트를 관리할 수 있는 함수 구현addTodo: 새로운 Todo 항목을 추가completeTodo: Todo 항목의 completed 상태를 true로 변경deleteTodo: Todo 항목을 삭제 각 함수는 Todo 항목 배열을 입력받고, 변경된 배열을 반환editTodo: Todo 항목의 task를 편집 - 전체 배열 / 수정하고자하는 요소의 id / 새롭게 작성될 task 내용clearCompleted: 완료된 모든 Todo 항목을 삭제 - 전체 배열getAllTodos: 모든 Todo 항목을 조회 - 전체 배열filterTodos..
1. 타입 가드의 정의 및 사용법특정 범위 내에서 변수의 타입을 보다 구체적인 타입으로 좁히기 위해 사용하는 식(expression)컴파일러는 해당 범위 내에서 변수가 가질 수 있는 타입을 더 명확하게 인식타입 관련 에러를 예방타입에 특화된 속성이나 메소드를 안전하게 사용 가능function isNumber(x: any): x is number { return typeof x === 'number';}function double(x: any) { if (isNumber(x)) { console.log(x * 2); } else { console.log('Not a Number'); }}double(5); // 10double('5'); // Not a Number 2. is 키워드와 타..
1. 타입 단언의 개념개발자가 타입스크립트 컴파일러보다 해당 값의 타입을 더 잘 알고 있음을 명시적으로 선언하는 방법컴파일러에게 "이 변수의 타입을 내가 지정한 타입으로 간주해라"라고 지시타입 체크 과정에서 강제로 타입을 지정하는 것이므로 주의해서 사용2. as 키워드를 사용하여 타입 단언하기주로 as 키워드를 사용하여 타입 단언JSX와 함께 사용될 때 충돌을 피하기 위해 추천되는 방식사용 예제let someValue: any = 'this is a string';someValue = false;// ? someValue를 string으로 단언let length: number = (someValue as string).length; 3. 실제 프로젝트에서의 타입 단언 사용HTML 코드 클릭해주세요! ..
1. 인터페이스 정의객체 구조를 정의하는 타입스크립트의 기능 / 함수 타입 정의 시에도 사용객체가 어떤 프로퍼티와 메서드를 가져야 하는지 명시 컴파일 시간에 타입 체킹을 위해 사용되는 개념코드의 가독성과 유지 보수성을 향상다양한 구현체에 동일한 인터페이스를 적용하여 일관성과 재사용성을 제공1-1) 그 동안 써왔던 타입 속성 예시type UserType = { name: string; age: number;};type AdminUserType = UserType & { admin: boolean };type manyType = number | string | boolean; 1-2) 인터페이스 명시interface 키워드를 사용하여 명시인터페이스명은 대문자로 시작type 속성의 선택적 프로퍼티(옵셔널)..