9월 16일 - 4차

은채·2022년 9월 15일
0
post-thumbnail

동적타입, 정적타입

타입 체커가 컴파일 타임에 수행되는지 런타임에 수행되는지 여부

정적 타입

  • 개발자가 타입을 명시적으로 타이핑해야한다.
    • Java, C#, C++
  • 타입 체커와 타입 추론을 통해 일부 타이핑을 생략할 수 있다.
    • TypeScript, Scala, Haskell
  • 보다 빠르게 오류를 잡아낼 수 있다. => 빌드 전 오류 발견, 실행하지 않아도 컴파일러에서 오류 발견
  • 자동 완성을 통해 데이터 타입 혹은 속성에 대한 확신을 가질 수 있다.
    • 타입스크립트가 정적 타입의 언어와 완전히 같지는 않다.

동적 타입

  • 동적 타입 시스템은 런타임 상황에도 타입이 동등한지 확인한다.
    • JavaScript, Python, Ruby, Perl, PHP
  • JavaScript는 느슨한 타입의 동적 타입 언어
    • 변수는 어떤 타입과도 연결되지 않는다.
    • 프로그램이 실행 모든 타입의 값으로 할당하거나 재할당 할 수 있으며 타입을 변경하거나 객체에 새로운 속성이나 메서드를 추가할 수 있다.

타입스크립트가 타입을 이해하는 방법에 대한 이야기

구조적 타입 (Structural Type)

  • 객체가 어떤 속성들을 가지는지 즉 구조를 기준으로 타입을 따진다.
  • 자바스크립트, 타입스크립트
  • 타입스크립트에서 타입을 이해할 때는 이제 구조적 타입 시스템을 따른다 => 집합 확인 (타입끼리의 관계가 집합으로 이루어짐)

명목적 타입 (Nominal Type)

  • 각 타입이 고유하다는 것을 의미 즉 동일한 타입이나 데이터가 있더라도 타입을 공유할 수 없다.
  • 이름 기반으로 타입을 따진다
  • 작성한 타입이 런타임에 존재한다.
  • C#, Java

덕 타이핑

  • 타입의 생김새가 오리와 같다면 바로 오리의 타입임을 뜻한다.
    • 오리처럼 보이고, 오리처럼 수영하고, 오리처럼 꽥꽥거리면 그것은 오리일 것이다.
  • 거위가 오리와 같은 속성을 가지고 있다면 그것조차도 오리 타입
  • 일반적으로 동적 타입 시스템을 설명하는 데 덕 타이핑이 사용된다.

4차 회고

3차 게시물이 사라졋다.....ㅜㅜ
이번 챌린지는 리액트쿼리 때보다도 거의 참여를 못했다.
타입스크립트 심화에 대한 내용은 스스로 공부해야겠다...
타입스크립트 세션 이후에는 이력서 첨삭 및 면접, 취업 전략 세션이었는데 아무래도 이제 지원을 시작하다보니 이 부분에만 더 집중해서 들었던 것 같다.
타입스크립트는 .. 다시 처음부터 시작해보자 하하..

profile
반반무마니

0개의 댓글