카일_

전체 글

Programming/TypeScript

[TS] Never | Any | Unknown

Never never는 값이 결코 발생하지 않는 것을 나타내는 타입이다. 이는 함수나 메서드의 반환 타입으로 사용되거나, 변수나 매개변수의 타입으로 사용될 수 있다. 보통 never는 예외를 던지거나 무한 루프 등과 같이 실행이 끝나지 않는 경우에 사용된다. function throwError(message: string): never { throw new Error(message); } 위의 throwError 함수는 항상 예외를 던지므로, 반환 타입으로 never를 사용한다. 이렇게 never를 사용하면, 해당 함수를 호출한 코드에서는 반환값을 받지 않아도 되기 때문에, 예외를 던지는 것과 같은 예기치 않은 동작을 방지할 수 있다. 또한 never는 다른 타입의 서브 타입이 아니기 때문에, 모든 타입..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - Mapped Types

매핑 타입(Mapped Types) 매핑 타입(Mapped Types)은 기존 타입을 변환하여 새로운 타입을 만들 수 있는 유틸리티 타입 중 하나다. 매핑 타입을 사용하면 기존 타입의 속성 이름, 타입 등을 변경하여 새로운 타입을 만들 수 있다. 매핑 타입의 구조는 아래와 같다. { [P in K]: T } 위 구조에서 P는 속성 이름의 타입, K는 P에 포함될 속성 이름의 타입을 의미하며, T는 속성의 타입을 나타낸다. interface Person { name: string; age: number; location: string; } 위 Person 인터페이스를 매핑 타입을 사용하여 다음과 같이 변환할 수 있다. type ReadonlyPerson = { readonly [P in keyof Pers..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - 3

Recursive Types(재귀 타입) Recursive Types(재귀 타입)는 자기 참조하는 타입을 정의할 수 있도록 해준다다. 이는 트리, 그래프 등과 같이 반복적인 형태의 데이터 구조를 다룰 때 유용하다. 예를 들어, 다음과 같은 트리 구조를 타입으로 표현할 수 있다. type TreeNode = { value: number; left?: TreeNode; right?: TreeNode; } 위 타입 정의에서 TreeNode은 left와 right 프로퍼티가 자기 자신을 참조하는 타입이다. 이는 트리가 자식 노드를 가질 수 있기 때문에 가능하다. Recursive Types은 무한히 중첩될 수 있기 때문에, 끝없이 반복되는 형태의 데이터 구조를 다루기에 적합하다. 하지만 이를 사용할 때에는 주의..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - 2

Literal Types(리터럴 타입) Literal Types(리터럴 타입)은 특정한 값 자체를 타입으로 사용하는 것을 말한다. 타입스크립트에서는 문자열, 숫자, 불리언 값 등의 Literal Types을 지원하며, 이를 통해 값을 정확하게 지정하여 유효성 검사나 코드의 가독성을 높일 수 있다. 예를 들어, 아래와 같이 문자열 'hello'를 타입으로 지정할 수 있다. let greeting: 'hello'; greeting = 'hello'; // OK greeting = 'hi'; // 에러: Type '"hi"' is not assignable to type '"hello"' 위 예시에서 greeting 변수는 문자열 'hello'를 타입으로 지정되어 있으므로, 다른 값인 'hi'를 할당하면 컴파..

Programming/TypeScript

[TS] 고급타입(Advanced Types) - 1

Generic Types(제네릭 타입) Generic Types(제네릭 타입)은 다양한 타입의 인자를 받아들이는 타입을 정의할 수 있게 해준다. 이를 통해 코드의 재사용성을 높이고 유연성을 확보할 수 있다. 예를 들어, Array는 여러 타입의 원소를 담을 수 있는 배열을 생성할 수 있다. 하지만 Array는 한 가지 타입만을 받아들이는 것이 아니라, string, number, boolean 등 다양한 타입의 원소를 담을 수 있다. 이런 경우, Array를 사용하기 위해서는 Array, Array와 같은 형태로 타입 인자를 전달해야 한다. function identity(arg: T): T { return arg; } let output1 = identity("myString"); // 타입 인자로 s..

Careers/Interview

[FE 면접질문] 인성 및 기타

인성 및 기타 질문에 대한 답변은 개인마다 다를 수 있으므로 질문만 작성함 기본 빈출 질문 자기소개를 부탁드립니다. 저희 회사에 지원하게된 동기가 무엇인가요? 입사 후 포부에 대해 말씀해주세요. 빈번한 질문의 의도 우리 회사가 아니면 안 되는 이유는 무엇인가요? - 지원한 회사를 선택한 기준에 대해 생각해 볼 것 우리 회사 입사를 위해 남다른 무엇을 했나요? - 차별화 왜 지원자를 뽑아야 하는지 이유를 말씀해주세요. - 자신감 우리 회사와 업계에 대해 아는대로 말씀해주세요. - 기업분석 입사하면 어떤 성과를 낼 수 있으실까요? - 직무 분석 지원자가 다른 사람들과 다른 점은 무엇인가요? - 가치관, 철학, 의식, 비전 등 학창시절, 학업 이외 다른 분야에 몰두한 경험이 있나요? - 적극성을 판단, 수동적..

Programming/TypeScript

[TS] 객체 타입(Object Types)

객체 타입(Object Types) TypeScript에서 Object Types는 다양한 형태의 객체를 나타내기 위한 타입이다. 다음은 TypeScript에서 제공하는 Object Types의 종류다. Object Array Tuple Function Class Void Never Enum Union Intersection 이러한 Object Types를 적절히 조합하여 다양한 데이터 타입을 정의할 수 있다. Object TypeScript에서 object 타입은 JavaScript 객체를 나타내는 타입이다. object 타입은 다른 객체 타입을 포함하여 모든 객체 유형에 대한 상위 유형이다. 예를 들어, 다음 코드에서는 object 타입의 변수 person을 선언하고 객체 리터럴을 할당한다. let ..

Programming/TypeScript

[TS] 원시 타입(Primitive Types)

원시 타입(Primitive Types) TypeScript에서는 다양한 원시 타입(primitive types)을 제공한다. 원시 타입은 JavaScript와 유사하며, 변수에 단순한 데이터 값을 저장하는 데 사용된다. Number String Boolean Null & Undefined Symbol Bigint 이러한 원시 타입들은 변수에 할당되는 값의 타입을 명시하는 데 사용된다. TypeScript는 이러한 원시 타입에 대한 타입 추론을 자동으로 수행하므로, 변수에 값을 할당하면 해당 변수의 타입이 자동으로 결정된다. String String은 문자열을 나타내는 자료형으로, TypeScript에서 기본 자료형 중 하나다. String 변수는 문자열을 저장하고 처리할 수 있다. 아래는 TypeScr..

Programming/TypeScript

[TS] 타입스크립트의 개요

타입스크립트란? JavaScript With Syntax For Types. TypeScript extends JavaScript by adding types to the language. TypeScript speeds up your development experience by catching errors and providing fixes before you even run your code. www.typescriptlang.org 타입스크립트(TypeScript)는 마이크로소프트(Microsoft)에서 개발한 오픈소스 프로그래밍 언어로, 자바스크립트(JavaScript)의 상위 집합 언어이다. 자바스크립트와 마찬가지로, 타입스크립트는 웹 브라우저와 노드(Node.js) 환경에서 실행되며, 객체 ..

Programming/JavaScript

[JS] 원본 배열을 변경하지 않는 메소드

아래 메소드들은 원본 배열을 변경하지 않고 새로운 배열을 반환하는 불변성을 지키는 메소드들이다. Array.prototype.concat() 배열을 병합하여 새 배열을 반환한다. const array1 = [1, 2, 3]; const array2 = [4, 5, 6]; const newArray = array1.concat(array2); console.log(newArray); // [1, 2, 3, 4, 5, 6] Array.prototype.filter() 주어진 함수의 테스트를 통과한 요소로 이루어진 새로운 배열을 반환한다. const array = [1, 2, 3, 4, 5]; const filteredArray = array.filter(num => num % 2 === 0); console..