정지용
기술스택 목록
언어

TypeScript

프로젝트 23에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.

이 기술은 무엇인가요?

자바스크립트에 정적 타입을 더해 대규모 코드의 안정성을 높이는 언어

TypeScript는 마이크로소프트가 만든 오픈소스 언어로, 자바스크립트 문법을 그대로 확장하면서 변수·함수·객체에 타입을 명시할 수 있게 한다. 컴파일(트랜스파일) 시점에 타입 오류를 미리 잡아내어, 런타임에서야 드러나던 버그를 코드 작성 단계에서 발견하도록 돕는다. 결과물은 결국 순수 자바스크립트로 변환되므로 브라우저나 Node.js 등 자바스크립트가 동작하는 모든 환경에서 그대로 실행할 수 있다. 코드베이스가 커지고 협업 인원이 늘어날수록 타입 정보가 문서 역할과 자동완성·리팩토링 지원을 해준다는 점이 도입 동기가 된다.

이럴 때 사용합니다

  • 여러 명이 함께 작업하는 중~대규모 프로젝트에서 타입 불일치로 인한 버그를 줄이고 싶을 때
  • API 응답이나 함수 시그니처 등 데이터 구조를 명확히 문서화하고 싶을 때
  • 에디터의 자동완성·정의 이동·리팩토링 지원을 적극적으로 활용하고 싶을 때
  • 프런트엔드와 백엔드가 타입 정의를 공유하며 일관성을 맞춰야 할 때

핵심 개념

Type Annotation
변수나 함수 매개변수, 반환값에 타입을 명시적으로 선언하는 문법으로, 잘못된 타입의 값이 들어오면 컴파일 단계에서 오류로 알려준다.
Type Inference
타입을 직접 쓰지 않아도 대입된 값이나 문맥을 보고 컴파일러가 타입을 자동으로 추론해주는 기능이다.
Interface / Type Alias
객체나 함수의 모양(shape)을 이름 붙여 재사용할 수 있게 정의하는 방법으로, 서로 다른 모듈 간 데이터 구조를 약속하는 데 쓰인다.
Structural Typing
타입 이름이 아니라 실제로 가진 속성과 형태가 같으면 호환되는 것으로 보는 타입 검사 방식이다.
tsconfig.json
컴파일 대상, 출력 형식, 엄격도(strict) 등 TypeScript 컴파일러의 동작 방식을 프로젝트 단위로 설정하는 파일이다.
Generics
타입을 매개변수처럼 받아 함수나 클래스가 여러 타입에 대해 재사용 가능하도록 만드는 문법이다.

기본 타입 선언과 인터페이스 사용

User 인터페이스로 객체의 모양을 정의하고, 이를 함수 매개변수 타입으로 사용해 잘못된 데이터가 전달되는 것을 컴파일 단계에서 막는 예시다.

TypeScript
interface User {
  id: number;
  name: string;
  email?: string; // 선택적 속성
}

function greet(user: User): string {
  return `Hello, ${user.name}!`;
}

const user: User = { id: 1, name: "Jiyoung" };
console.log(greet(user));

// 타입이 다른 값을 넣으면 컴파일 시점에 오류 발생
// const invalid: User = { id: "1", name: 42 };

처음 쓸 때 흔한 함정

  • 타입을 any로 남발하면 TypeScript를 쓰는 의미가 사라지고 타입 안정성이 무너진다
  • 컴파일 시점 타입 검사일 뿐 런타임에는 타입 정보가 사라지므로, 외부 입력값은 별도 검증이 필요하다
  • strict 모드 설정 여부에 따라 타입 검사 엄격도가 크게 달라져 팀 컨벤션 통일이 중요하다

위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.

프로젝트별 활용 방식

위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.

  1. 11Web3
    2026년 7월

    NFT 런치패드 NestJS 백엔드 서비스

    NestJS와 TypeORM으로 구성된 NFT 런치패드 백엔드로, Docker 다중 환경과 컨트랙트 연동 스크립트를 함께 관리한다

    이 프로젝트에서의 TypeScript 활용

    백엔드 서비스 및 마이그레이션/Hardhat 설정 코드 작성에 사용

    nft-launchpad-backend-service-docs프로젝트 자세히 보기 →
  2. 17Web3
    2026년 7월

    Discord NFT 홀더 인증 서비스

    Discord 사용자의 지갑 서명과 NFT 보유 여부를 검증해 서버 접근 권한을 자동으로 부여하는 NestJS 기반 인증 서비스

    이 프로젝트에서의 TypeScript 활용

    NestJS 기반 백엔드 서버 개발 언어

    discord-nft-holder-verification-docs프로젝트 자세히 보기 →

함께 사용한 기술

위 프로젝트들에서 같이 쓰인 다른 기술입니다.