전에 적어놨던 것들
Type과 Interface의 차이
- Type
타입을 정의하기 위한 키워드
기존 타입을 확장하거나 별칭을 만들 수 있다. - Interface
객체의 구조를 정의하기 위한 키워드
클래스나 객체의 형태를 지정하고 메소드나 속성을 정의할 수 있다.
타입 추론
타입스크립트에서 변수나 함수의 타입을 명시적으로 지정하지 않아도, 초기 값이나 사용 방법을 분석하여 타입을 추론
타입스크립트를 사용하는 이유
- 정적 타입 검사
런타임 에러를 줄이고 코드 품질을 향상 - 코드 가이드 및 자동 완성
IDE에서 타입 정보를 활용하여 더 빠르게 코딩 - 유지보수 및 리팩토링 용이성
타입 정보가 있는 경우 코드 변경 시 어떤 부분이 영향을 받는지 쉽게 파악
제네릭
타입이 여러 종류의 값을 가질 수 있도록 일반화된 타입을 생성하는 방법
함수나 클래스에서 사용하여 재사용성을 높이고 타입 안정성 유지
Public, Private, Protected
- Public
모든 곳에서 접근 가능한 멤버 - Private
멤버가 선언된 클래스 내부에서만 접근 가능한 멤버 - Protected
멤버가 선언된 클래스 및 그 자식 클래스에서 접근 가능한 멤버
Static
클래스 레벨에서 사용되며, 클래스 자체에 속하고 인스턴스에 속하지 않는 멤버를 정의
클래스에서 직접 접근 가능
Enums
열거형은 관련된 상수 값들을 그룹화하여 표현할 수 있는 기능
코드 가독성을 높이고 유지보수를 용이하게 할 수 있다.
Union Types
여러 타입 중 하나가 될 수 있는 타입을 표현할 때 사용
변수나 매개변수가 여러 타입의 값을 받을 수 있을 때 유용
최근에 다시 정리한 것들
TypeScript는 자바스크립트의 상위 집합으로, 정적 타입을 지원하여 개발자가 더욱 안정적이고 유지보수가 쉬운 코드를 작성할 수 있도록 도와주는 언어다.
TypeScript란?
TypeScript는 Microsoft에서 개발한 오픈소스 프로그래밍 언어로, 자바스크립트의 확장된 버전입니다. 정적 타입을 지원하여 컴파일 시간에 오류를 검출할 수 있게 해줍니다.
TypeScript의 주요 특징
- 정적 타이핑
- 인터페이스와 클래스
- 제네릭 타입
- 데코레이터
- 네임스페이스와 모듈
- 튜플 타입 등
TypeScript와 JavaScript의 가장 큰 차이점은 무엇인가요?
가장 큰 차이점은 TypeScript의 정적 타입 지원이다.
TypeScript는 변수와 함수에 타입을 명시할 수 있어서 컴파일 시간에 타입 관련 오류를 확인할 수 있다.
TypeScript의 데이터 타입 종류?
기본 타입(숫자, 문자열, 불리언, null, undefined 등)
객체 타입(인터페이스, 클래스)
함수 타입, 제네릭 타입 등을 지원
TypeScript의 장점?
- 타입 에러의 사전 방지
- 코드 가독성과 유지보수성 향상
- 강력한 개발 도구 지원 (자동 완성, 타입 체크 등)
TypeScript를 사용하는 프로젝트의 초기 설정?
TypeScript 프로젝트를 시작하기 위해서는 tsconfig.json 파일을 생성하고 필요한 설정을 지정해야 한다.
tsconfig.json: 컴파일러 옵션과 프로젝트 설정을 담당
TypeScript의 컴파일?
TypeScript 코드는 .ts 확장자로 작성되며, TypeScript 컴파일러(tsc)를 사용하여 자바스크립트 코드로 변환된다.
타입 단언(Type Assertion)?
타입 단언은 개발자가 컴파일러에게 "나는 이 변수의 타입을 알고 있다"고 명시적으로 알려주는 것
예를 들어, variable as Type 형태로 사용할 수 있다.
인터페이스와 클래스의 차이점?
- 인터페이스: 타입 체크만을 위해 사용
- 클래스: 객체의 생성과 동작을 정의하는 데 사용
제네릭 타입?
함수나 클래스가 여러 종류의 타입에서 동작하도록 하기 위해 타입을 매개변수화하는 기능
네임스페이스와 모듈의 차이점?
- 네임스페이스: 코드를 논리적으로 그룹화하여 충돌을 피하는 데 사용
- 모듈: 파일 기반으로 코드를 구성하여 재사용성을 높이는 데 사용
TypeScript의 추상 클래스(Abstract Class)?
직접 객체를 생성할 수 없는 클래스
다른 클래스에서 상속받아 사용하도록 설계
추상 클래스 내에는 추상 메서드가 포함될 수 있다.
타입 가드(Type Guard)?
런타임에서 변수의 타입을 정확하게 판별하기 위한 TypeScript의 기능
typeof, instanceof, in 등을 활용하여 구현할 수 있다.
비구조화 할당(구조 분해 할당)?
객체나 배열의 내부 값을 변수로 추출하는 방법
TypeScript에서도 이 기능을 활용할 수 있다.
TypeScript에서의 클래스 상속과 인터페이스 구현.
- 클래스 상속: extends 키워드를 사용하여 부모 클래스의 속성과 메서드를 자식 클래스로 확장할 수 있다.
- 인터페이스 구현: implements 키워드를 사용하여 클래스가 인터페이스의 규약을 따르도록 한다.
모듈 시스템?
TypeScript에서 모듈은 코드를 논리적으로 구성하고 재사용하기 위한 방법으로 사용된다.
import와 export 키워드를 사용하여 모듈 간의 의존성을 관리할 수 있다.
async/await 사용 방법?
async 함수 내에서 await 키워드를 사용하여 비동기 작업을 동기적으로 처리할 수 있다.
await은 Promise가 결과를 반환할 때까지 함수 실행을 일시 중지시킨다.
타입스크립트 컴파일 시, "ambient module declaration"이란?
타입스크립트 컴파일러에게 타입 정보를 제공하기 위해 선언하는 방법 중 하나
주로 외부 라이브러리의 타입을 선언할 때 사용
타입과 인터페이스를 언제 사용?
- 타입
기본 타입이나 유니온, 인터섹션 등 복잡한 타입을 정의할 때 사용 - 인터페이스
객체의 구조와 메서드를 정의할 때 사용하며, 클래스나 객체의 구조에 대한 규약을 제공하는 역할
열거형(Enum)?
이름에 연결된 숫자 또는 문자열 값의 집합을 정의하는 기능
열거형을 사용하면 명시적인 값들을 가지며, 가독성과 유지보수성을 높일 수 있다.
'TIL > 취준' 카테고리의 다른 글
React 면접 예상 질문 (0) | 2023.08.21 |
---|---|
JS 면접 예상 질문 (0) | 2023.08.21 |
웹, HTML/CSS 예상 면접 질문 정리 (0) | 2023.08.21 |
면접 예상 질문 시리즈 (0) | 2023.08.01 |
댓글