조아마시

쓸모 있는 상세페이지 만들기

반응형

웹개발/typescript 16

[타입스크립트] 배우기 목록

타입스크립트를 처음 배우려는 분들을 위한 체계적인 학습 목록을 아래와 같이 정리해 드릴게요. 기초 개념부터 실전까지 순차적으로 익힐 수 있도록 구성했어요.📘 타입스크립트 배우기 목록1. 기초 문법 이해타입스크립트란? 왜 쓰는가?타입스크립트 설치 및 설정 (tsc, tsconfig.json)기본 타입들 (string, number, boolean, null, undefined, any, unknown 등)타입 추론과 명시적 타입 지정2. 함수와 객체 다루기함수의 매개변수와 반환값 타입 지정선택적 매개변수와 기본값객체 타입 정의 (type, interface)구조 분해 할당과 타입 지정3. 고급 타입 사용유니온 타입 / 인터섹션 타입 (|, &)타입 가드 (typeof, in, instanceof)리터럴 ..

[타입스크립트] 타입 모듈

타입스크립트 타입 모듈은 타입스크립트 코드의 재사용성과 유지보수성을 높이기 위해 타입 정의를 모듈화한 것입니다. 즉, 특정 도메인이나 라이브러리에 대한 타입 정보를 별도의 파일로 관리하여 다른 프로젝트에서도 쉽게 활용할 수 있도록 합니다.왜 타입 모듈이 필요할까요?코드 재사용성: 한 번 정의된 타입을 여러 프로젝트에서 재사용할 수 있어 개발 시간을 단축하고, 일관된 코드 스타일을 유지할 수 있습니다.타입 안정성: 복잡한 데이터 구조나 함수 시그니처를 정확하게 정의하여 컴파일 시점에 오류를 잡아내고, 실행 시 오류를 줄일 수 있습니다.코드 가독성: 복잡한 타입 정의를 모듈로 분리하여 코드를 더욱 명확하게 만들고, 다른 개발자들이 코드를 이해하기 쉽도록 합니다.커뮤니티 활용: 타입스크립트 커뮤니티에서 제공하..

[타입스크립트] 타입 호환

타입스크립트의 타입 호환은 코드의 안정성과 유지보수성을 높이는 데 핵심적인 역할을 합니다. 타입스크립트는 자바스크립트의 동적 타이핑 문제를 해결하고, 컴파일 시점에 타입 오류를 검출하여 개발자가 더욱 안심하고 코드를 작성할 수 있도록 돕습니다.타입 호환의 기본 개념구조적 타이핑: 타입스크립트는 명목적 타이핑(C#이나 Java처럼 이름으로 타입을 비교) 대신 구조적 타이핑을 사용합니다. 즉, 두 개의 타입이 동일한 구조(프로퍼티, 메서드 등)를 가지고 있으면 호환된다고 판단합니다.하위 타입: 어떤 타입 A가 다른 타입 B의 모든 프로퍼티를 가지고 있을 때, A는 B의 하위 타입이라고 합니다. 하위 타입은 상위 타입에 할당될 수 있습니다.할당 호환성: 어떤 타입 A의 값을 다른 타입 B의 변수에 할당할 수 ..

[타입스크립트] 타입 가드

더욱 안전하고 명확한 코드를 위한 필수 도구타입스크립트는 강력한 타입 시스템을 갖춘 언어로, 개발 중에 오류를 조기에 발견하고 코드의 신뢰성을 높이는 데 도움을 줍니다. **타입 가드(Type Guard)**는 이러한 타입 시스템의 핵심 기능 중 하나로, 런타임에 변수의 실제 타입을 검사하여 코드 블록 내에서 더 정확한 타입 추론을 가능하게 합니다.왜 타입 가드가 필요할까요?유연한 타입 시스템: 타입스크립트는 다양한 타입을 지원하지만, 때로는 여러 타입을 가질 수 있는 변수를 다뤄야 할 때가 있습니다.런타임 오류 방지: 타입 가드를 통해 변수의 타입을 검사하여 예상치 못한 타입으로 인한 오류를 미리 방지할 수 있습니다.코드 가독성 향상: 명확한 타입 검사를 통해 코드의 의도를 명확하게 표현하고 다른 개발..

[타입스크립트] 타입 단언

타입 단언(Type Assertion)**이란, 타입스크립트 컴파일러에게 "나는 이 값이 특정 타입이라고 확신하므로, 이에 맞춰 코드를 처리해줘"라고 알려주는 것을 의미합니다. 마치 개발자가 컴파일러에게 직접 타입을 지정해주는 것과 같습니다.왜 타입 단언을 사용할까요?타입 추론의 한계: 타입스크립트는 대부분의 경우 타입을 자동으로 추론하지만, 모든 상황을 완벽하게 파악하지 못할 때가 있습니다. 특히, 함수 오버로드, 제네릭, 또는 외부 라이브러리와의 상호 작용 시 타입 단언이 필요할 수 있습니다.더 나은 타입 안정성: 타입 단언을 통해 코드의 타입 안정성을 높일 수 있습니다. 예를 들어, 특정 조건에서 값이 특정 타입이라는 것을 확신할 때, 타입 단언을 사용하여 이후 코드에서 안전하게 해당 타입의 메서드..

[타입스크립트] 타입추론

타입 추론이란?타입스크립트에서 타입 추론이란, 개발자가 명시적으로 변수의 타입을 지정하지 않아도 컴파일러가 코드 컨텍스트를 분석하여 변수의 타입을 자동으로 추론하는 기능입니다. 이는 개발 생산성을 높이고 코드 가독성을 향상시키는 데 큰 도움이 됩니다.왜 타입 추론이 중요할까요?개발 생산성 향상: 반복적인 타입 선언을 줄여 개발 속도를 높입니다.코드 가독성 향상: 자연스러운 코드 작성이 가능해져 코드 이해를 쉽게 합니다.오류 조기 발견: 컴파일 시점에 타입 오류를 잡아내어 실행 시 예기치 못한 오류를 방지합니다.타입 추론이 일어나는 경우변수 초기화:let message = 'Hello, TypeScript!'; // message는 string 타입으로 추론let count = 42; // count는 n..

[타입스크립트] 옵셔널 파라미터

옵셔널 파라미터란 함수를 호출할 때 반드시 값을 전달해야 하는 필수 파라미터와 달리, 값을 전달하지 않아도 되는 선택적인 파라미터를 의미합니다. 타입스크립트에서는 파라미터 이름 뒤에 ?를 붙여 옵셔널 파라미터임을 나타냅니다. 왜 옵셔널 파라미터를 사용할까요?유연성: 함수의 사용 방식을 다양하게 만들 수 있습니다. 예를 들어, 기본값을 설정하여 사용자가 값을 생략하도록 하거나, 특정 상황에서만 값을 전달하도록 할 수 있습니다.안정성: 필수 파라미터가 아닌 경우, 값이 없을 때 발생할 수 있는 오류를 미리 방지할 수 있습니다.가독성: 코드를 더 명확하게 만들 수 있습니다. 어떤 파라미터가 필수이고 어떤 파라미터가 선택적인지 명확하게 구분할 수 있기 때문입니다.옵셔널 파라미터 사용 예시function gree..

[타입스크립트] 블리언 타입

타입스크립트에서 블리언 타입(boolean)**은 true 또는 false 두 가지 값만 가질 수 있는 가장 간단한 타입입니다. 마치 컴퓨터가 "예" 또는 "아니오"로 질문에 답하는 것과 같다고 생각하면 됩니다.왜 블리언 타입이 중요할까요?명확한 코드 작성: 변수에 어떤 종류의 값이 들어갈지 명확하게 지정하여 코드의 가독성을 높이고 예상치 못한 오류를 방지합니다.조건문 활용: if, else if, else 문과 같은 조건문에서 true 또는 false에 따라 코드의 실행 흐름을 제어합니다.함수의 반환값: 함수가 특정 조건을 만족하는지 여부를 boolean 값으로 반환하여 다른 함수에서 활용할 수 있습니다.다양한 예시// 변수 선언let isDone: boolean = false;let lightOn: ..

[타입스크립트] 숫자 타입

타입스크립트에서 숫자 타입은 숫자 값을 나타내는 기본적인 데이터 타입입니다. 자바스크립트와 마찬가지로 모든 숫자는 부동 소수점 숫자로 취급됩니다.숫자 타입 선언하기let num: number = 10; // 10진수let hex: number = 0xf00d; // 16진수let binary: number = 0b1010; // 2진수let octal: number = 0o744; // 8진수10진수: 우리가 일반적으로 사용하는 숫자입니다.16진수: 0x로 시작하며, 주로 색상 코드나 비트 연산에서 사용됩니다.2진수: 0b로 시작하며, 컴퓨터 내부에서 숫자를 표현하는 방식입니다.8진수: 0o로 시작하며, 과거 유닉스 시스템에서 자주 사용되었습니다.숫자 연산let x: number = 10;let y: n..

[타입스크립트] 객체 타입

타입스크립트의 객체 타입은 자바스크립트 객체의 구조와 특성을 명확하게 정의하는 데 사용됩니다. 이를 통해 개발자는 코드의 안정성을 높이고 예측 가능한 결과를 얻을 수 있습니다.객체 타입 기본 구조interface Person { name: string; age: number; isStudent: boolean;}interface: 객체의 형태를 정의하는 키워드입니다.Person: 인터페이스의 이름입니다.name, age, isStudent: 객체의 속성(property)이며, 각각의 타입이 명시되어 있습니다.다양한 예시1. 복잡한 객체interface Address { street: string; city: string; zipCode: string;}interface User { id: n..

[타입스크립트] 튜플 타입

*튜플(Tuple)**은 타입스크립트에서 길이와 각 요소의 타입이 고정된 배열을 의미합니다. 즉, 미리 정해진 순서대로 다양한 타입의 값을 가질 수 있는 특별한 배열 형태라고 생각하면 됩니다.왜 튜플을 사용할까요?명확한 데이터 구조 표현: 각 요소의 타입을 명시적으로 지정하여 코드 가독성을 높이고, 예상치 못한 오류를 방지할 수 있습니다.함수 인자 및 반환값 정의: 함수의 입력 값과 출력 값의 형태를 정확하게 지정하여 함수의 동작을 명확히 하고, 타입 안전성을 높일 수 있습니다.튜플 사용 예시// 튜플 선언let person: [string, number] = ['Alice', 30]; // 이름(문자열), 나이(숫자)// 튜플 요소 접근console.log(person[0]); // Aliceconso..

[타입스크립트] 함수 타입

타입스크립트에서 함수 타입은 함수의 매개변수와 반환 값의 타입을 명확하게 지정하여 코드의 안정성을 높이고 개발 생산성을 향상시키는 중요한 개념입니다.기본적인 함수 타입// 매개변수가 없고 숫자를 반환하는 함수function add(x: number, y: number): number { return x + y;}// 빈 배열을 반환하는 함수function createArray(): string[] { return [];}함수 선언: function 함수명(매개변수: 타입, ...): 반환타입 형태로 선언합니다.매개변수: 각 매개변수의 타입을 명시합니다.반환 값: 함수가 반환하는 값의 타입을 명시합니다.함수 타입 별칭// 함수 타입에 별칭을 부여type AddFunction = (x: numbe..

[타입스크립트] any 타입 / unknown 타입

타입스크립트의 any 타입은 어떤 값이든 할당할 수 있는 타입입니다. 마치 자바스크립트의 var 키워드처럼 타입 검사를 우회할 수 있게 해줍니다. 하지만 타입스크립트의 강력한 타입 시스템을 무력화시킬 수 있기 때문에 신중하게 사용해야 합니다.왜 any를 사용할까요?기존 자바스크립트 코드와의 호환: 타입스크립트로 마이그레이션하는 과정에서 타입을 정확히 알 수 없는 부분에 any를 임시로 사용할 수 있습니다.외부 라이브러리와의 상호 작용: 타입 정의 파일이 없는 라이브러리를 사용할 때, 임시적으로 any를 사용하여 타입 오류를 해결할 수 있습니다.동적 코드: eval()과 같은 동적 코드를 사용할 때, 결과 값의 타입을 미리 알 수 없으므로 any를 사용해야 합니다.any의 문제점타입 안정성 저하: 타입 검..

[타입스크립트] 배열 타입

타입스크립트에서 배열은 특정 타입의 값들을 순서대로 모아놓은 자료구조입니다. 자바스크립트 배열과 유사하지만, 타입스크립트에서는 각 요소의 타입을 명시하여 더욱 강력한 타입 안전성을 제공합니다.기본적인 배열 타입숫자 배열:let numbers: number[] = [1, 2, 3, 4];문자열 배열:let strings: string[] = ['apple', 'banana', 'cherry'];불리언 배열:let booleans: boolean[] = [true, false, true];다양한 타입의 요소를 가진 배열any 타입: 어떤 타입의 값이든 허용 (주의: 타입 안전성이 약화될 수 있음)let anyArray: any[] = [1, 'hello', true];유니온 타입: 여러 타입 중 하나를 가질..

[타입스크립트] 문자열 타입

타입스크립트에서 문자열 타입은 우리가 일상적으로 사용하는 문자들의 집합을 나타냅니다. 즉, "Hello, world!", "안녕하세요", "123" 등과 같이 따옴표("") 안에 들어 있는 모든 글자들이 문자열입니다.왜 문자열 타입이 중요할까요?코드 가독성 향상: 변수의 타입을 명확히 함으로써 코드를 더 쉽게 이해하고 유지 관리할 수 있습니다.오류 예방: 컴파일 시에 타입 오류를 미리 감지하여 실행 중 오류를 줄일 수 있습니다.자동 완성 및 리팩토링 지원: IDE의 강력한 기능을 활용하여 개발 생산성을 높일 수 있습니다.다양한 문자열 타입 예시// 기본 문자열let greeting: string = "Hello, TypeScript!";// 빈 문자열let emptyString: string = "";/..

[타입스크립트] null과 undefined

null과 undefined는 자바스크립트에서도 자주 등장하는 개념이지만, 타입스크립트에서는 더욱 엄격하게 관리됩니다. 두 값은 비슷해 보이지만 미묘한 차이가 있고, 코드의 안정성을 위해 올바르게 이해하고 사용하는 것이 중요합니다.null과 undefined의 개념undefined:변수가 선언되었지만 값이 할당되지 않은 상태를 의미합니다.함수에서 값을 반환하지 않거나, 객체의 프로퍼티가 존재하지 않을 때 undefined가 할당됩니다.null:의도적으로 값이 없음을 나타내기 위해 할당하는 값입니다.객체가 존재하지 않거나, 특정 값이 없음을 나타낼 때 null을 사용합니다.왜 null과 undefined를 구분해야 할까요?타입 안정성: 타입스크립트는 변수의 타입을 명확히 지정하여 오류를 미리 방지합니다. ..

728x90
반응형