typescript(7)
-
크롤러 개발 중 만난 Typescript 클래스 문제들
최근에 크롤링 기반으로 서비스를 만들고 있습니다. 데이터를 모으다 보니 욕심이 생겨서, 점점 비슷한 데이터를 가진 사이트들을 추가로 크롤링하게 되었어요.문제는 사이트별로 크롤러를 하나씩 만들다 보니, 나중엔 관리가 불가능한 수준이 돼버리더군요. 한마디로 미칠 노릇이었죠.그래서 Typescript 에서 지원하는 Class 를 만들어서, 상속 기반으로 같은 데이터 파이프라인을 유지한 채로 각 사이트 별로 상이한 웹 요소에 맞게 크롤링 할 수 있는 구조를 만들던 중 사소한 문제 몇개에 부딪히게 되어, 그 이야기를 풀어보려고합니다. 문제 1: 생성자 인자 순서 혼란 -> 옵션 객체로 리팩토링생성자 인자 순서를 잘못 기억하면 예상치 못한 버그가 발생할 수 있습니다.더군다나 크롤링을 위한 통합적인 클래스를 만들다보..
2025.05.29 -
이펙티브 타입스크립트: 3장 요약 및 핵심 정리
이펙티브 타입스크립트 3장에서는 타입스크립트를 효과적으로 사용하는 방법에 대해 다룹니다. 주로 타입 설계와 작성 시 올바른 습관과 패턴을 강조하며, 타입스크립트 코드의 품질과 유지보수성을 높이는 다양한 전략을 소개합니다.1. 값을 기준으로 타입을 설계하라타입 설계는 프로그램에서 사용하는 값(value)을 기반으로 해야 합니다. 타입은 값이 가질 수 있는 가능한 상태를 모델링하는 것이며, 실제 값이 타입의 설계와 잘 맞아야 합니다.const status = "success"; // 값 기반 타입 설계type Status = "success" | "error" | "loading"; // 유효한 상태만 나열Tip: 값의 패턴과 의미를 반영한 타입을 설계하면 불필요한 오류를 줄이고, 의도를 명확히 할 수 있습..
2025.01.24 -
이펙티브 타입스크립트: 2장 요약 및 핵심 정리
타입스크립트는 자바스크립트를 정적 타입 언어로 확장한 도구입니다. 타입스크립트를 제대로 활용하려면, 기본 원리를 이해하고 올바른 사용 방식을 익히는 것이 중요합니다. 이번 글에서는 이펙티브 타입스크립트 2장의 내용을 기반으로, 타입스크립트의 핵심 개념을 살펴보겠습니다.1. 타입스크립트의 타입 시스템타입스크립트는 구조적 서브타입 시스템(Structural Type System)을 채택하고 있습니다.이는 객체의 타입이 구조(속성과 속성 타입)에 의해 결정된다는 것을 의미합니다. 예를 들어, 아래 두 객체는 서로 다른 인터페이스로 선언되었지만, 속성과 타입이 동일하기 때문에 호환됩니다.interface Point2D { x: number; y: number;}interface Point3D { x: nu..
2025.01.24 -
TypeScript 의 열거형 (ENUM) 과 대안 패턴
TypeScript의 열거형(enum)은 코드의 가독성과 유지보수성을 높이기 위해 자주 사용됩니다.이번 글에서는 열거형의 역할과 대안 패턴들을 살펴보겠습니다.열거형의 역할TypeScript의 열거형은 크게 두 가지 역할을 수행합니다:객체 정의: 열거형은 멤버 키를 멤버 값에 매핑하는 객체를 정의합니다.타입 정의: 열거형은 멤버 값만을 포함하는 타입을 정의합니다.예를 들어, 다음과 같은 열거형이 있다고 가정해봅시다:enum Color { Red = 0, Green = 'GREEN',}위 코드는 Color.Red와 Color.Green이라는 두 가지 멤버를 정의하며, 각각 0과 'GREEN' 값에 매핑됩니다.열거형의 활용 사례열거형은 다음과 같은 상황에서 유용합니다:1. 관련된 상수들의 네임스페이스로 사..
2025.01.24 -
이펙티브 타입스크립트: 1장 요약 및 핵심 정리
이 글은 "이펙티브 타입스크립트"의 1장 "타입스크립트 알아보기"를 요약한 내용입니다. 이 장에서는 타입스크립트와 자바스크립트의 관계, 타입스크립트의 설정 옵션, 구조적 타이핑 개념 등을 다룹니다.타입스크립트와 자바스크립트의 관계 이해하기타입스크립트는 자바스크립트의 상위 집합으로, 자바스크립트에 타입 시스템을 추가한 언어입니다. 모든 자바스크립트 코드는 유효한 타입스크립트 코드지만, 그 반대는 성립하지 않습니다.타입스크립트 예시:function greet(who: string) { console.log('Hello', who);}자바스크립트 예시:function greet(who) { console.log('Hello', who);}타입스크립트 코드는 최종적으로 자바스크립트로 컴파일되어 실행됩..
2023.11.02 -
NestJS에서 @typescript-eslint/no-unused-vars 오류 해결 방법
NestJS 프로젝트를 개발하다 보면, @typescript-eslint/no-unused-vars 오류가 발생하는 경우가 있습니다. 특히, 특정 버전의 @typescript-eslint 패키지를 사용할 때 이 문제가 더 빈번히 나타날 수 있습니다. 이 글에서는 오류의 원인, 해결 방법, 그리고 관련 GitHub 이슈에서 제시된 최신 정보를 바탕으로 한 개선 사항을 다룹니다.1. 오류 발생 상황NestJS 프로젝트에서 다음과 같은 오류를 만날 수 있습니다:[eslint] '@typescript-eslint/no-unused-vars' error: 'XXX' is declared but its value is never read.예제 코드import { Injectable } from '@nestjs/co..
2022.12.15