본문 바로가기

Coding/내일배움캠프

[내일배움캠프] TypeScript 3주차, 4주차 | Node.js 4기 | Day 58 | 24.03.02.(토)

TypeScript 문법 종합반 3주차

 

 

기본 타입 익혀보기

 

01. 타입을 왜 제대로 알아야 하는가

 

  • 타입 안정성 그리고 코드 품질!

 

02. 기본 타입 훑어보기

 

  • boolean
    : 2가지의 상태
    : 3가지 이상의 상태를 표현하고 싶은 경우 -> enum이나 string을 사용
  • number
    : TypeScript에서 사용하는 모든 숫자를 나타냄
  • string
    : 텍스트 데이터
  • 배열
    : 기본 타입에 []가 붙은 형태
  • 튜플 (tuple)
    : 서로 다른 타입의 원소를 순서에 맞게 가질 수 있는 특수한 형태의 배열
    : “정의된 데이터 타입의 개수와 순서에 맞추어 저장을 하는 것이 필수이다!”
  • enum
    : 명확하게 관련된 상수 값들을 그룹화하고자 할 때 사용하는 게 좋다.
    : 그러나 값의 수가 많지 않고, 값들 사이의 관계가 뚜렷하지 않으면 사용하지 않는 게 좋다.
    : enum은 열거형 데이터 타입이라고도 한다.

 

03. const, 그리고 readonly

 

  • const와 readonly는 불변성을 보장하는 친구!
  • let
    : 변수
  • const
    : 상수
  • readonly
    : TypeScript에서 객체의 속성을 불변으로 만드는 데 사용되는 키워드이다.

 

04. any와 unknown, union에 대하여

 

  • 어쩔 수 없이 가변적인 타입의 데이터를 저장하고 싶다면 any보다는 unknown을 사용하자!
    그리고, 가변적인 타입을 일일이 정의할 수 있다면 union 사용이 가장 낫다.
  • any
    : TypeScript의 any 타입은 모든 타입의 슈퍼 타입이다.
    : 어떤 타입의 값이든 저장할 수 있다는 의미이다.
    : JavaScript의 object 타입과 같은 최상위 타입이라고 생각하면 된다.
    : TypeScript에서 any를 쓰는 게 맞냐? 🤔
    : TypeScript를 사용하는 주된 이유 중 하나는 프로그램의 타입 안정성을 확보하기 위한 것이었음.
    : any 타입은 코드의 안전성과 유지 보수성을 저해할 수 있다. 가급적 사용을 지양해야 한다.
  • unknown
  • union
  • 여러 타입을 하나의 변수로 해결하겠다는 생각은 가급적 지양해주세요!

 

 

TypeScript 문법 종합반 4주차

01. enum과 object literal을 비교해보기

    - enum
        - 열거형 데이터 타입
        - 코드 가독성 높이고 명확한 상수 값 정의 가능
    - object literal(객체 리터럴)
        - const 또는 let 키워드를 사용
        - 키 + 값의 쌍(pair)으로 구성된 객체를 정의하는 방식
    - enum에 비해 object literal이 가지는 장점
        - enum의 각 멤버 : 상수 -> number, string 타입의 값만 대입할 수 있었음 but 객체 리터럴에서는 어떤 타입의 값도 대입 가능
        - 객체 리터럴 ~ 코드 내에서 사용하기 전에 값이 할당되어야 하므로, 런타임 에러를 방지할 수 있다.
    - enum을 쓰면 좋은 경우
        - 간단한 상수 값을 그룹화해서 관리할 때
        - 각 멤버의 값이 변하면 안 되는 경우
    - 객체 리터럴을 사용하면 좋은 경우
        - 멤버의 값이나 데이터 타입 변경이 필요한 경우
        - 복잡한 구조와 다양한 데이터 타입을 사용해야 할 때

02. 유틸리티 타입 훑어보기

    - Partial<T>
        - 타입 T의 모든 속성을 선택적으로 만든다.
        - 기존 타입의 일부 속성만 제공하는 객체를 쉽게 생성 가능
    - Required<T>
        - 타입 T의 모든 속성을 필수적으로 만든다.
        - T 타입 객체에 정의된 모든 속성이 반드시 전부 제공되는 객체를 생성할 때 쓰인다.
        - 속성명 뒤에 ? 가 붙는 친구들은 선택적 속성이다.
있어도 되고 없어도 되는 친구라는 뜻이다.
    - ReadOnly<T>
        - 타입 T의 모든 속성을 읽기 전용(read-only)으로 만든다.
        - 이를 통해 readonly 타입의 속성들로 구성된 객체가 아니어도 완전한 불변 객체로 취급할 수 있다.
    - Pick<T,K>
        - 타입 T에서 K 속성들만 선택하여 새로운 타입을 만든다.
        - 타입의 일부 속성만을 포함하는 객체를 쉽게 생성할 수 있다.
    - Omit<T, K>
        - 타입 T에서 K 속성들만 제외한 새로운 타입을 만든다.
        - 기존 타입에서 특정 속성을 제거한 새로운 타입을 쉽게 생성할 수 있다.

03. 실습_별다방 프로그램 만들기

NestJS

 

https://docs.nestjs.com/guards

 

Documentation | NestJS - A progressive Node.js framework

Nest is a framework for building efficient, scalable Node.js server-side applications. It uses progressive JavaScript, is built with TypeScript and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Rea

docs.nestjs.com