Type-Only Imports and Exports 이 기능은 대부분의 경우 필요하지 않은 기능이지만, 만약 --isolatedModules 옵션이나 타입스크립트, babel의 transpileModule API를 사용해 컴파일 할 때 이슈가 발생한다면, 이 기능이 필요할 수 있습니다. Typescript는 타입을 참조하기 위해 JavaScript의 import 문법을 재사용 사용합니다. 예를 들어, 아래의 예제에서 우리는 순수 TypeScript 타입인 Options과 함께 JavaScript 변수인 doThing을 import 합니다. // ./foo.ts interface Options { // ... } export function doThing(options: Options) { // ... ..
프로그래밍에서는 본질적인 데이터의 복잡성 때문에 논리적 정확성이 불가능할 때가 있습니다. 데이터를 추상화 시키는 것은 데이터의 단순한 표현을 만드는 데 도움이 되는 매우 유용한 도구입니다. 이를 위해 'Container' 를 만드는 방법이 있습니다. 'Container'는 오직 우리의 데이터만 가지고 있으며, 그 외에 다른 책임을 가지지 않습니다. 즉, OOP 처럼 'Container' 에 프로퍼티나 메소드를 제공하지 않습니다. 변수를 가져오고 Container 안으로 넣습니다. 그리고 Container 는 함수형 로직을 통과시키는 동안 변수를 안전하게 지키며 필요할 때 즉시적으로 변수를 가져올 수 있습니다. 따라서 Container 는 아래의 두 가지 책임이 있다는 것을 알 수 있습니다. 스스로 내부에..
명령형 프로그래밍과 선언형 프로그래밍에 대한 비교를 어디선가 한 번쯤은 접해봤을 거라 생각합니다. 그리고 그 둘이 실제로 무엇을 의미하는지 검색을 해보셨다면 아마 아래와 같은 정의를 마주했을 것입니다. 명령형 프로그래밍은 무엇을 어떻게 할 것인가에 가깝고, 선언형 프로그래밍은 무엇을 할 것인가와 가깝다. 이 정의를 처음 보면 무슨 말을 하는지 이해하기 어렵게 느껴집니다. 하지만 이 정의에는 명령형 프로그래밍과 선언형 프로그래밍의 핵심이 담겨 있습니다. 먼저, 이 정의를 쉽게 이해하기 위해 프로그래밍의 맥락에서 벗어나서 실세계의 예제를 살펴보겠습니다. 1. Red Lobster 나는 회사에서 열심히 일하고 퇴근을 한 뒤 Red Lobster에서 가족과 즐거운 외식을 하기로 결정했습니다. 그리고 Red Lo..
최근 이직을 한 후 개인적으로 '공부' 라는 것과 거리가 멀어져서 포스팅을 쓰면서 다시 시작해보고자 합니다. 마침 최근에 typescript 3.7이 새롭게 공개돼서 해당 문서를 번역해서 간단히 소개해보도록 하겠습니다. Optional Chaining Kotlin을 접해봤다면 가장 반가운 문법이지 않을까 싶습니다. Kotlin의 가장 편리한 문법중 하나가 바로 이 Optional Chaining 이라고 생각합니다. Typescript 에도 3.7 부터 Optional Chaining 이 추가 된다고 하니 반가웠습니다. Optional Chaining 을 간단하게 설명하면 기존의 복잡한 if문 을 줄여주는 문법이라 할 수 있을 것 같습니다. 기존에 null 또는 undefined 타입을 처리하기 위해서는 ..
해당 글은 github goldbergyoni 님의 javascript-testing-best-practices 를 번역하여 작성한 글 입니다. 번역 과정중 오류가 있을 수 있으니 댓글을 통해 피드백 주시면 감사하겠습니다. Error를 catch 하지 말고 검증하라 일부 입력이 에러를 발생시키는 것을 검증할 때 try-catch-finally 문을 사용하여 catch 스코프에 들어왔을 때 assertion 을 수행하는 방법을 사용할 것입니다. 하지만 이는 테스트의 의도와 기대 결과를 쉽게 파악할 수 없게 만듭니다. 좀 더 우아한 대안은 테스트 프레임워크에서 제공하는 expect(method).to.thorw or expect(method).toThrow() 과 같은 one-line throw assert..
해당 글은 github goldbergyoni 님의 javascript-testing-best-practices 를 번역하여 작성한 글 입니다. 번역 과정중 오류가 있을 수 있으니 댓글을 통해 피드백 주시면 감사하겠습니다. 스냅샷 테스트를 할 때는 짧은 인라인 스냅샵만 사용하라 snapshot testing이 필요하다면 핵심 검증 사항에만 집중된 (3~7 라인) 짧은 snapshots 을 외부 파일이 아닌 테스트 코드 내에서 사용하는 것을 권장합니다. 이 가이드라인만 지킨다면 테스트가 쉽게 깨지지 않고 좋은 가독성을 유지할 수 있습니다. 반면에, '고전적인 스냅샷'의 튜토리얼이나 도구들은 스냅샷을 매우 크게 만들고 외부 파일로 저장하도록 유도하고 있습니다. 그리고 테스트가 실행될 때 마다 외부에 저장된 ..