Welcome To

후니's Blog

Hello World
Let's Focus On
인터페이스
·
Typescript
인터페이스인터페이스는 객체의 구조를 정의한다.즉, "이 객체는 어떤 프로퍼티와 메서드를 가져야 하는가?"를 명확히 규정할 수 있어 타입 안정성과 일관성을 보장한다.이러한 특성은 특히 협업 시 코드의 신뢰성과 가독성을 높이는 데 매우 유용하다.interface 키워드로 생성한다.자바스크립트에서 비슷한 객체 구조를 만들 수 있지만, 런타임에서만 에러를 발견할 수 있다. 반면, 타입스크립트의 인터페이스는 컴파일 타임에서 타입 검사를 수행해, 더 안전한 코드를 작성할 수 있다. interface Person { name: string; age: number; welcome(text: string): void;}인터페이스의 이름은 대문자로 시작하는 것이 관례이다.프로퍼티 기본값은 정의할 수 없으며..
싱글톤
·
Typescript
싱글톤객체지향 프로그래밍에서 사용되는 패턴 중 싱글톤 패턴이라는 것이 있다.싱글톤 패턴에서는 한 클래스의 인스턴스를 정확히 1개만 생성한다.정적 메서드나 프로퍼티를 사용할 수 없거나 사용하고 싶지 않을 때 유용하게 사용할 수 있다.하지만 클래스의 객체를 여러 개 생성하지 않고 정확히 1개만 생성할 수 있도록 제한해야 한다. abstract class ShoppingMall { constructor(protected productId: string, protected productName: string) {} abstract printProduct(this: ShoppingMall): void;}class Grocery extends ShoppingMall { constructor(prod..
추상화(abstract)
·
Typescript
추상화(abstract)특정 클래스를 상속 받을 때 특정 메서드를 구현하거나 특정 메서드를 오버라이드하도록 강제하고 싶을 때 사용한다.언제 강제해야 할 상황이 생길까 ?예를들어 한 클래스를 상속받는 모든 클래스에서 특정 메서드를 구현할 필요가 있고, 상속받는 각 부서마다 메서드를 다르게 구현해야 할 때 이를 강제할 상황이 생긴다. 한 클래스의 메서드 또는 프로퍼티를 공통으로 공유하면서 기본 클래스에서 고정된 값이나 구현을 제공할 필요 없이 상속받는 클래스에서 구현하도록 만들 수 있다.abstract 키워드를 사용한 클래스는 인스턴스화 할 수 없다.즉, 오로지 상속을 주기 위한 클래스로 존재한다. abstract class ShoppingMall { constructor(protected produc..
정적 메서드
·
Typescript
정적 메서드정적 프로퍼티와 메서드는 클래스의 인스터스를 통해 액세스하지 않더라도 사용할 수 있는 프로퍼티와 메서드이다.즉, new 키워드로 인스턴스를 생성하지 않더라도 클래스 자체에서 액세스할 수 있다.주로 클래스에서 사용할 유틸리티 함수를 정의하거나 클래스에 저장하는 전역 상수를 관리하는데 사용된다.타입스크립트에서 정의되거나 직접 정의되지 않고 자바스크립트에 내장된 예시로 Math 클래스가 있다.Math의 인스턴스로 액세스하는 메서드나 프로퍼티가 아니므로 new Math와 같이 인스턴스를 생성하지 않아도 된다.클래스 자체에서 액세스하는 프로퍼티나 메서드이기 때문이다.이와 같이 클래스에서도 직접 정의할 수 있다.class ShoppingMall { protected employees: string[..
getter & setter
·
Typescript
getter & settergetterclass ShoppingMall { protected employees: string[] = []; constructor( private productId: string, private productName: string, public productType: string ) {} printProduct(this: ShoppingMall) { console.log("productId : " + this.productId); console.log("productName : " + this.productName); console.log("productType : " + thi..
상속, protected
·
Typescript
상속class ShoppingMall { constructor( private productId: string, private productName: string, public productType: string ) {} printProduct(this: ShoppingMall) { console.log("productId : " + this.productId); console.log("productName : " + this.productName); console.log("productType : " + this.productType); }}const shoppingMall = new ShoppingMall..