2026년 상식닷컴 선정 식당 & 카페 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요

타입스크립트에서 클래스의 사용법은 무엇인가요?

_____
Q1: 타입스크립트에서 클래스란 무엇인가요?
A1: 클래스는 객체지향 프로그래밍에서 사용하는 템플릿으로, 속성(properties)과 메서드(methods)를 가지며 인스턴스를 생성하는 데 사용됩니다. 타입스크립트는 자바스크립트의 클래스 문법을 확장하여 타입을 지정할 수 있게 합니다.

Q2: 타입스크립트에서 클래스는 어떻게 정의하나요?
A2: `class` 키워드를 사용하여 클래스를 정의합니다. 예:
```typescript
class Person {
name: string;

constructor(name: string) {
this.name = name;
}

greet(): void {
console.log(`Hello, my name is ${this.name}`);
}
}
```

Q3: 생성자(Constructor)란 무엇이고 어떻게 사용하나요?
A3: 생성자는 클래스의 인스턴스를 만들 때 호출되는 특수 메서드입니다. 주로 인스턴스 속성을 초기화하는 데 사용합니다. 타입스크립트에서는 `constructor` 키워드를 사용합니다.

Q4: 클래스 속성에 타입을 어떻게 지정하나요?
A4: 속성명 뒤에 콜론(`:`)과 타입을 적어 타입을 지정합니다. 예:
```typescript
class Car {
make: string;
year: number;
}
```

Q5: 메서드에 타입을 지정하는 방법은?
A5: 매개변수와 반환값에 타입을 지정합니다. 예:
```typescript
drive(distance: number): void {
console.log(`Driving ${distance} km`);
}
```

Q6: 접근 제한자는 어떤 것이 있나요?
A6: `public`(기본값), `private`, `protected`가 있습니다.
- `public`: 어디서나 접근 가능
- `private`: 클래스 내부에서만 접근 가능
- `protected`: 클래스와 이를 상속받은 자식 클래스에서 접근 가능

Q7: 생성자 매개변수에서 바로 속성을 선언할 수 있나요?
A7: 네, 접근 제한자와 타입을 매개변수 앞에 붙이면 자동으로 클래스 속성으로 선언됩니다. 예:
```typescript
class Point {
constructor(public x: number, public y: number) {}
}
```

Q8: 클래스 상속은 어떻게 하나요?
A8: `extends` 키워드를 사용하여 다른 클래스를 상속받을 수 있습니다. 예:
```typescript
class Animal {
move(): void {
console.log("Moving...");
}
}

class Dog extends Animal {
bark(): void {
console.log("Woof!");
}
}
```

Q9: 오버라이딩은 어떻게 하나요?
A9: 상속받은 메서드를 자식 클래스에 같은 이름으로 작성하면 오버라이딩 됩니다. 부모 메서드를 호출하려면 `super`를 사용할 수 있습니다.

Q10: 정적 멤버(static)은 무엇인가요?
A10: 클래스 인스턴스가 아닌 클래스 자체에 속하는 멤버입니다. `static` 키워드로 선언합니다. 예:
```typescript
class MathUtil {
static PI = 3.14;
static square(x: number): number {
return x * x;
}
}
```

Q11: 추상 클래스는 무엇인가요?
A11: 직접 인스턴스를 만들 수 없고 자식 클래스에서 구현을 강제하는 `abstract` 키워드를 가진 클래스입니다. 추상 메서드는 메서드 서명만 정의하고 구현은 자식이 합니다.

Q12: 인터페이스와 클래스는 어떤 차이가 있나요?
A12: 인터페이스는 객체 구조를 정의하는 데 집중하며 코드가 없지만, 클래스는 실제 구현을 포함합니다. 클래스는 인터페이스를 `implements` 할 수 있습니다.

Q13: 클래스 사용 예제
```typescript
class User {
private name: string;

constructor(name: string) {
this.name = name;
}

public getName(): string {
return this.name;
}
}

const user = new User("Alice");
console.log(user.getName());
```

요약: 타입스크립트 클래스는 객체지향 프로그래밍을 지원하며, 속성과 메서드에 타입 지정, 접근 제한자, 상속, 추상화, 정적 멤버 등을 사용해 강력한 타입 안정성을 제공합니다.
타입스크립트(TypeScript)는 자바스크립트의 상위 집합으로, 정적 타입을 지원하여 코드의 안정성과 가독성을 높이는 데 도움을 줍니다.

타입스크립트에서 클래스는 객체 지향 프로그래밍(OOP)의 기본 개념 중 하나로, 객체를 생성하기 위한 청사진을 제공합니다.

클래스는 속성과 메서드를 정의할 수 있으며, 이를 통해 객체를 생성하고 관리할 수 있습니다.

클래스의 기본 구조 타입스크립트에서 클래스는 `class` 키워드를 사용하여 정의합니다.

기본적인 클래스 구조는 다음과 같습니다: ```typescript class Person { // 속성 정의 name: string; age: number; // 생성자 constructor(name: string, age: number) { this.name = name; this.age = age; } // 메서드 정의 greet() { console.log(`안녕하세요, 제 이름은 ${this.name}이고, 나이는 ${this.age}세입니다.

`); } } ``` 위의 예제에서 `Person` 클래스는 `name`과 `age`라는 두 개의 속성을 가지고 있으며, 생성자를 통해 이 속성들을 초기화합니다.

`greet` 메서드는 객체가 인사하는 기능을 수행합니다.

클래스 인스턴스 생성 클래스를 정의한 후, 해당 클래스를 기반으로 인스턴스를 생성할 수 있습니다.

인스턴스는 클래스의 구체적인 구현체로, 각 인스턴스는 고유한 속성 값을 가질 수 있습니다.

```typescript const person1 = new Person("홍길동", 30); const person2 = new Person("김철수", 2

5); person1.greet(); // 안녕하세요, 제 이름은 홍길동이고, 나이는 30세입니다.

person2.greet(); // 안녕하세요, 제 이름은 김철수이고, 나이는 25세입니다.

``` 접근 제어자 타입스크립트는 클래스의 속성과 메서드에 대해 접근 제어자를 지원합니다.

주요 접근 제어자는 `public`, `private`, `protected`입니다.

- `public`: 기본값이며, 클래스 외부에서도 접근할 수 있습니다.

- `private`: 해당 클래스 내부에서만 접근할 수 있습니다.

- `protected`: 해당 클래스와 상속받은 클래스에서만 접근할 수 있습니다.

```typescript class Animal { private species: string; protected age: number; constructor(species: string, age: number) { this.species = species; this.age = age; } public getSpecies(): string { return this.species; } } class Dog extends Animal { constructor(age: number) { super("개", age); } public bark() { console.log(`나는 ${this.age}세의 ${this.getSpecies()}입니다.

`); } } const dog = new Dog(

5); dog.bark(); // 나는 5세의 개입니다.

``` 상속 타입스크립트에서는 클래스 간의 상속을 통해 코드의 재사용성을 높일 수 있습니다.

`extends` 키워드를 사용하여 부모 클래스를 상속받을 수 있습니다.

```typescript class Vehicle { constructor(public brand: string) {} honk() { console.log("빵빵!"); } } class Car extends Vehicle { constructor(brand: string, public model: string) { super(brand); } displayInfo() { console.log(`차량 브랜드: ${this.brand}, 모델: ${this.model}`); } } const myCar = new Car("현대", "아반떼"); myCar.honk(); // 빵빵! myCar.displayInfo(); // 차량 브랜드: 현대, 모델: 아반떼 ``` 추상 클래스 추상 클래스는 직접 인스턴스를 생성할 수 없으며, 다른 클래스에서 상속받아 사용해야 합니다.

주로 공통된 속성과 메서드를 정의하고, 구체적인 구현은 자식 클래스에서 제공하도록 강제할 때 사용됩니다.

```typescript abstract class Shape { abstract area(): number; // 추상 메서드 displayArea() { console.log(`면적: ${this.area()}`); } } class Rectangle extends Shape { constructor(private width: number, private height: number) { super(); } area(): number { return this.width * this.height; } } const rectangle = new Rectangle(10,

5); rectangle.displayArea(); // 면적: 50 ``` 정적 메서드와 속성 정적 메서드와 속성은 클래스 인스턴스가 아닌 클래스 자체에 속합니다.

`static` 키워드를 사용하여 정의합니다.

```typescript class MathUtil { static add(x: number, y: number): number { return x + y; } } console.log(MathUtil.add(5,

10)); // 15 ``` 결론 타입스크립트에서 클래스는 객체 지향 프로그래밍의 핵심 개념을 구현할 수 있는 강력한 도구입니다.

클래스의 속성, 메서드, 접근 제어자, 상속, 추상 클래스 및 정적 메서드와 속성을 통해 복잡한 애플리케이션을 구조화하고 관리할 수 있습니다.

타입스크립트를 사용하면 코드의 가독성과 유지보수성을 높일 수 있으며, 타입 시스템 덕분에 런타임 오류를 줄일 수 있습니다.

작성자: 최지현 [비회원] | 작성일자: 1년 전 2024-09-10 05:32:09
조회수: 146 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.