전체 글 132

TypeScript 타입 가드

TypeScript 타입 가드 컴파일러가 타입을 예측할 수 있도록 타입을 좁혀나가는 방법 is 키워드를 사용한다. is 함수명은 컨벤션이다. typeof - typeof 메서드를 사용해 분기 처리를 하면 타입스크립트는 해당 데이터의 타입을 좁혀진 범위로 이해한다. - 조건문 안에서 매개변수 str 타입이 문자열(string)이므로 문자열 메서드를 사용할 수 있다. - 조건문 안에서 매개변수 arr 타입이 배열(object)이므로 배열 메서드를 사용할 수 있다. 리터럴 타입 가드 - === / !== 연산자를 사용하여 타입을 구분할 수 있다. - 유니온 타입을 사용하여 타입을 구분할 수 있다. type Checker = "실버" | "골드" | "플래티넘"; const checker = (choice: C..

TIL 220526

TIL 220526 오늘은 extends 키워드와 타입 추론과 호환을 배웠다. 인터페이스와 클래스에서의 extends는 부모를 상속받는 의미이고 제네릭에서의 extends는 타입을 제한하는 의미다. 타입 추론은 타입을 지정하지 않았을 경우 내부적으로 타입스크립트가 유니언 타입으로 추론하는 과정이다. 타입 추론은 당연한 소리 같은데 정확히 어떤 상황에서 활용해야 하는 지 아직은 잘 모르겠다. 아마 내일을 끝으로 모듈 시스템과 유틸리티를 배우면 타입스크립트의 기본적인 문법과 내용은 끝날 거 같다. 이번 주 목표대로라면 오늘 끝내고 내일부터 노드에 타입스크립트를 써볼 계획이었는데 하루 늦었다.

기타/회고 2022.05.26

TIL 220525

TIL 220525 오늘은 개인 사정으로 공부를 거의 안 했다. 이런 상황에서 새로운 개념을 배우기보다 이번 주에 중점적으로 공부했던 내용을 복습하는 게 더 합리적일 거라 생각했다. 5월 초부터 오후 시간에 웹 사이트 코드 수정해 주는 일을 프리랜서 개념으로 하고있다. 그전까지 하루에 집중할 수 있는 시간이 10시간 정도였는데 일을 하다 보니 반 토막이났다. 그래도 이런 상황에서 나름대로 효율적인 시간 관리를 하고 있다 생각한다. 직장 다니면서 자기개발 매일 꾸준히 하시는 분들 진심으로 존경스럽다.

기타/회고 2022.05.25

TIL 220524

TIL 220524 오늘은 타입스크립트 클래스와 제네릭에 대해 배웠다. 타스는 쉬우면서도 어려운 거 같다. 현재 강의와 핸드북으로 공부하고 있는데 핸드북으로만 보면 이해가 안 가는 내용이 강의를 보면 어느 정도 이해가 된다. 개발자는 공식 문서 읽는 게 자연스러워야 하고 남의 코드 보는 게 생활화되어야 하는데 나는 아직 한참 멀었다. 시간이 지날수록 강의보다 문서를 통해 자료를 접하고 익혀야 하는데 문서 읽는 걸 천천히라도 습관을 들여야겠다. 지난주에 이어서 지금까지 문법 개념 공부를 하고 있는데 지루하긴 하다. 앞으로 클래스와 타입 추론과 가드 그리고 모듈 시스템 정도만 배우면 마무리될 거같다.

기타/회고 2022.05.24

TypeScript 제네릭

TypeScript 제네릭 단일 타입이 아닌 다양한 타입에서 작동하는 재사용이 가능한 컴포넌트를 만들 수 있는 방법이다. 제네릭 타입을 함수의 파라미터로 사용하는 걸 의미 함수 호출 시 타입을 정의할 수 있다. 선언은 여유롭게 짝만 맞춰놓고 실제 사용 시 확실하게 타입을 정의한다. 함수의 파라미터와 리턴값의 타입 정보를 알 수 있다. 는 Convention이다. 선언 제네릭 사용은 함수 타입 인수를 포함한 모든 인수를 전달하는 방법과 타입 인수 추론을 사용하는 방법 2가지가 있다. // 인수에 타입을 붙인다. function print(word: T): T { return word; } const result = print("제네릭"); 제네릭 배열 - 배열의 원소 중 어떠한 타입도 올 수 있다. fun..

TIL 220523

TIL 220523 오늘은 이넘 클래스 유니온 인터섹션을 공부했다. enum은 자스에서 지원 안 하지만 자바나 다른 객체지향 언어에서는 흔히 사용한다고 한다. 특정 값들의 집합인데 잘 만 이용하면 용이하게 쓸 수 있다고 한다. 유니온과 인터섹션은 각각 | 와 & 키워드로 사용한다. 둘 중 하나만 만족하는지 둘 다 만족하는지 자스의 올과 앤드 연산자랑 동일하여 어렵지 않았다. 클래스도 마찬가지로 생성자 함수 작성 전 생성자자에 매개변수로 들어갈 멤버들에 대해 타입을 먼저 정의해 줘야한다. 멤버별로 접근 제한자(public private protected)가 존재한다. 타입스크립트는 별도로 지정해 주지 않으면 public 다른 언어는 protected라고 한다. 지금 글을 작성하면서 접근 제한자에 대한 포스..

기타/회고 2022.05.23

TypeScript 인터페이스 타입

TypeScript 인터페이스 재사용이 가능한 구조(같은 모양)의 타입들의 이름을 작명할 수 있다. 속성과 값의 타입을 지정할 수 있다. 값을 지정할 수 있지만 보통 넒은 범위의 타입을 지정한다. 클래스와 마찬가지로 인터페이스도 상속이 가능하다. 동일한 이름의 인터페이스를 여러 개 생성할 수 있다. 선언 interface Post { postId: number; title: string; content: string; writer: string; } const write: Post = { postId: 1, title: "1번 게시물 타이틀", CONTENT: "2번 게시물 내용", writer: "관리자", }; 읽기 전용(readonly) - 처음 객체 생성 시에 할당하여 그 이후로는 속성값을 바꿀 ..

TypeScript 함수

TypeScript 함수 자바스크립트와 마찬가지로 기명과 익명 함수를 만들 수 있다. 타입스크립트의 함수는 모든 매개변수가 필요하다고 가정한다. 함수 호출 시 컴파일러는 각 매개변수에 대해 사용자가 값을 제공했는지 검사한다. 컴파일러는 매개변수들이 함수로 전달될 유일한 매개변수라고 가정한다. 함수에 주어진 인자의 수는 함수가 기대하는 매개변수의 수와 일치해야한다. 함수 타입 - 매개변수의 타입과 반환 타입이 있다. function testing(x: number, y: number): number { return x + y; } const result = testing(94, 1103); function testing(): void { return console.log("here") } testing()..

TIL 220520

TIL 220520 이번 주는 기본 타입과 함수에 대한 타스의 기본적인 내용을 공부했다. 모든 언어가 그렇지만 문법 공부와 초반 개념 공부가 제일 재미없는 거 같다. 강의가 기본 개념 공부와 그걸 활용해 게임을 만들면 서 진행이 되는데 타스의 새로운 개념 들은 이해가 잘 가지만 게임은 평소 흔하게 접할 수 있는 게임이 아니라 게임 자체를 이해하는데 시간이 좀 걸렸다. 원래 계획은 평일에 기본 개념을 어느 정도 공부하고 주말 동안 노드에 타스를 적용해 보려 했는데 생각보다 진도가 더디다. 분발하자.

기타/회고 2022.05.20

TIL 220519

TIL 220519 벌써 목요일이다. 날씨가 더워지니 시간이 더 빨리 지나가는 거 같다. 오늘은 어제 들었던 타스 강의를 다시 한번 들었다. 타스도 자스긴 한데 강타입 언어이다 보니 타입을 명시해 주는 게 처음이라 그런지 많이 어색하다. 하지만 타입을 정확히 명시해 주는 게 생각보다 큰 거 같다. 타스하다 자스로 넘어가는 일은 절대 없다고 하니 왜 그런 지 조금은 알 거 같다. 처음 프로그래밍 공부는 복습이란 걸 전혀 하지 않았던 거 같다. 개발이 원래 구글링이 8할이라고 하지만 기본적인 메서드도 가끔 검색을 해야 할 상황이 있다. 검색하면 해결되긴 하지만 문제는 시간을 의미 없이 허비한다는 생각이 많이 들었다. 모르거나 난해한 부분에 시간을 쏟기 위해 에빙하우스의 망각곡선을 생각하며 느리더라도 요즘은 ..

기타/회고 2022.05.19