1. 유효한 상태 효과적으로 타입을 설계하기 위해서, 유효한 상태만 표현할 수 있는 타입을 만들어 내는 것이 가장 중요하다. 여기서 말하는 유효한 상태란 무엇일까? 유효의 사전적 의미를 살펴보면 다음과 같다. 효력이나 효과가 있음. 즉, 효력이나 효과가 있는 상태가 유효한 상태라고 할 수 있다. 프로그래밍 관점에서 살펴보면 어딘가에 사용될 수 있는 상태이다. 다음과 같은 상태가 있다. interface State { a: string; b: string; c?: string; d?: string; } 이와 같은 상태는 다음과 같이 여러 가지 상태를 포함한다. interface StateOne { a: string; b: string; } interface StateTwo { a: string; b: st..
1. 타입 흐름 유지하기 타입 정보가 그대로 유지되면서 타입 흐름이 계속 전달되는 것은 개발자로 하여금 타입 체크에 대한 신경을 줄일 수 있게 도와준다. 직접 루프를 구현하는 것보다 내장된 함수형 기법과 로대시 같은 유틸리티 라이브러리를 사용하는 것이 타입 정보를 그대로 유지하는데 적합하다. 타입 정보가 그대로 유지되는 것엔 다음과 같은 장점을 가지고 있다. 타입 흐름을 개선한다. 가독성을 높인다. 명시적인 타입 구문의 필요성을 줄인다. 몇 가지 예시를 통해 절차형 프로그래밍, 함수형 프로그래밍 그리고 로대시를 통해 구현하여 어떤 특징이 있는지 살펴보자. 2. CSV 데이터 파싱하기 다음과 같은 CSV 데이터가 있다. 이를 파싱해보자. const csvData = `연도,제조사,모델,설명,가격 1997,..
개요 미션 기간 Repository PR & Review 자동차 경주 1단계 23-02-10 - 23-02-13 Repo PR & Review 🚀 미션 회고 첫 번째 미션의 2단계는 추가된 기능 구현이 없고 공통 피드백 및 코드 리뷰를 바탕으로 코드를 리팩터링 하는 것으로 진행하였다. 아마 우테코의 시스템에 적응하는 온보딩 미션이라 간단했다고 생각한다. 두 번째 미션부터는 step2가 무려 주말 포함 9일이니 과연 어떤 어려움이 있을까 두근거린다. 🛠️ 리팩터링 feat: 자동차 이름이 공백일 경우 에러 반환하기 feat: 자동차의 최종 위치를 구하기 feat: 자동차의 이동를 결정하는 숫자 배열 만들기 refactor: 도메인 로직과 UI 로직 폴더 분리하기 refactor: ES6 모듈 적용하기 re..
개요 미션 기간 Repository PR & Review 자동차 경주 1단계 23-02-07 - 23-02-09 Repo PR & Review 🚀 미션 회고 우테코 5기의 첫 미션은 자동차 경주이다. 해당 미션은 지난 기수의 프리코스 미션으로 이미 최종 코딩테스트를 준비하기 위해 한 번 구현을 했었다. 그렇기 때문에 큰 두려움 없이 미션을 시작할 수 있었다. 자동차 경주미션은 단 일주일동안 이루어진다. 그중 3일 동안은 페어프로그래밍으로 진행되며 이는 step1에 해당된다. 이후 리뷰어의 피드백을 받은 후 진행되는 step2는 스스로 리펙터링을 하는 과정이 이루어진다. 즉, 첫 리뷰를 기점으로 앞은 step1, 뒤는 step2가 된다. 우테코에서의 첫 미션이기도 하니 미션이 어떤 과정으로 이루어지는 간략..
1. 자바스크립트에서의 배열 1-1. 배열은 Object이다. const array = [1, 2, 3]; typeof array; // Object 자바스크립트에서 배열의 타입은 Object이다. 1-2. Object은 number 타입으로 접근이 불가능하다. 자바스크립트에서의 객체는 키-값 형태를 가지고 있으며 키는 보통 string(또는 심벌) 타입만 가능하다. 때문에 아래의 예시처럼 기존에 우리가 자주 배열의 값에 접근하기 위해 사용했던 방법은 불가능하다. const array = [1, 2, 3]; array[0]; array[1]; array[2]; 하지만 number 타입의 키로도 접근하는 것에 있어 오류가 나지 않는 이유는 자바스크립트 엔진에서 자동으로 string 타입으로 형변환이 되기 ..
1. 인덱스 시그니처란? 공식문서에는 아래와 같이 인덱스 시그니처의 사용 시점에 대해 설명하고 있다. Sometimes you don’t know all the names of a type’s properties ahead of time, but you do know the shape of the values. In those cases you can use an index signature to describe the types of possible values. 타입의 속성을 모르지만 값의 형태를 알고 있을 때, 인덱스 시그니처를 사용하여 타입을 설명할 수 있다. 2. 인덱스 시그니처의 기본 문법 type Props = { [property: string]: string }; Props 타입이 있다...
1. 타입은 할당 가능한 값들의 집합 자바스크립트에서는 변수에 다양한 값을 할당할 수 있다. 이러한 값들을 타입스크립트가 런타임 이전에 여기에 할당할 수 있는가?라는 의문을 품고 오류를 체크하기 시작한다. 오류를 통해 타입스크립트에서의 집합이라는 개념에 다가가보자. 1-1. 타입 오류1 타입스크립트가 만약 오류를 발견하면 아래와 같은 오류를 발견할 수 있다. Type 'number' is not assignable to type 'string'. 숫자 타입은 문자열에 타입에 할당을 할 수 없다는 것이다. 이 문구는 집합의 관점에서 아래처럼 해석할 수 있다. 숫자 타입은 문자열 타입의 부분 집합이 아니다.(두 타입의 관계) 1-2. 타입 오류2 또 다른 오류를 보며 집합이라는 개념을 적립해 보자. AB의 ..
1. 12월 28일의 학교 정말 매우 매우 바빴다. 당장 모레가 졸업식이기 때문에 예행연습을 해야 했고 학생부 정리와 짐 정리도 끝내야 했다. 또한 공로상과 장학금 수여도 오후 2시에 있었기 때문에 이것도 신경을 써야 했다. 사실 이날은 2시에 조퇴를 한 후 경건한 마음으로 우테코 메일을 기다리려고 했다. 하지만 바쁜 학교의 업무 덕에 그럴 여유가 없었다. 오히려 다행인 건가? 너무 바쁘다 보니 시간 가는 줄 몰랐다. 공로상과 장학금 수여가 끝나니 2시 반이 되었고 일찍 조퇴하는 것은 힘들다 생각하여 학교에서 남은 업무를 처리하면서 기다리기로 했다. 시간은 어느덧 2시 55분, 곧 우테코에서 최종 합격에 대한 메일이 발송된다. 일부로 신경을 쓰지 않은 채 업무에 집중을 하고 있었다. 하지만 내 눈은 컴퓨..
1. 개요 12월 14일 수요일 1차 합격자 발표와 함께 17일 잠실 캠퍼스에서 이루어진 최종 코딩 테스트에 대한 간단한 소개와 소감을 작성한다. 2. 떨리는 1차 합격자 발표 14일 수요일은 우테코 1차 합격자 발표날이다. 시간은 3시이고 모든 참가자에게 메일로 합격과 불합격의 여부를 알려준다. 발표날의 몇 주 전 부터 14일만 생각하면 가슴이 떨려왔다. 당일이 되니 떨리는 가슴은 더욱 요동치기 시작했다. 14일도 어김없이 출근을 하였다. 하지만 이날 만큼은 조퇴를 한 후 물리치료를 받으며 경건한 마음으로 이메일을 기다렸다. 3시가 되는 순간 네이버 메일함을 새로고침을 하였고 3시 1분이 되는 순간 우테코에서 하나의 메일이 발송되었다. 빨리 결과를 보고 싶어 1초의 고민도 없이 바로 이메일을 클릭하였다..
1. 개요 22년 11월 16일 15시에 4주 차 미션 안내 이메일이 도착했다. 일주일 동안 이루어진 우아한테크코스 프리코스 4주 차 다리 건너기 미션에 대한 간단한 소개와 소감을 작성한다. 2. 미션 소개 프리코스 4주 차의 미션은 다리 건너기 게임을 만드는 것이었다. 오징어 게임의 징검다리 건너기 게임과 같은 규칙의 게임을 직접 만드는 것이다. 오징어 게임과 다른 점은 목숨이 무한개여서 실패를 해도 다시 시도할 수 있는 점이 게임을 진행하는데 부담감을 줄여주었다. 오징어 게임에서의 징검다리 건너기 게임과 다른 점은 실패를 해도 다시 시도할 수 있다는 것이다. 오징어 게임에서는 바로 추락하여 사망을 하지만 다행히 프리코스의 다리 건너기 미션은 그러지 않았다. 그래서 게임에 실패하더라도 무한히 도전을 하..