Book

    2. 객체의 행동이 상태를 결정한다 | 객체지향의 사실과 오해 2장

    2. 객체의 행동이 상태를 결정한다 | 객체지향의 사실과 오해 2장

    이상한 나라의 앨리스 객체 앨리스는 작은 문 너머 아름다운 정원으로 이동하고 싶다. 작은 문의 높이는 40cm이며, 현재 앨리스는 이보다 크다. 작은 문은 열쇠로 열 수 있는데, 너무 작은 사람은 이 열쇠를 사용할 수 없다. 앨리스는 케이크/버섯/음료를 먹거나, 부채질을 하는 행동을 통해 자신의 키를 변화시킬 수 있다. 여기서 앨리스를 객체로 생각해보자. 앨리스는 문을 통과하기에 적당한 상태로 자신의 키를 계속해서 변화시킨다. 특정 시점의 앨리스의 상태란 특정 시점에서의 앨리스의 키를 의미한다. 앨리스는 무언가를 먹거나 부채질을 하면서 키를 변화시킨다. 앨리스의 키를 변화시키는 것은 앨리스의 행동이다. 앨리스가 하는 행동에 따라 앨리스의 상태가 변하게 된다. 앨리스의 상태를 결정하는 것은 행동이지만, 행..

    1. 객체지향이란? | 객체지향의 사실과 오해 1장

    1. 객체지향이란? | 객체지향의 사실과 오해 1장

    객체지향의 목표는 실세계의 모방이 아니다. 하지만 실세계의 모방이라는 개념은 객체지향을 이해하는 데는 효과적이다. 역할, 책임, 협력 객체지향 패러다임의 핵심은 자율적인 객체들의 협력이다. 손님: 커피 주문하기 캐셔: 주문 받기 바리스타: 커피 제조하기 const customer = { order: () => { return casher.takeOrder("아메리카노"); }, }; const casher = { takeOrder: (coffee: string) => { return barista.makeCoffee(coffee); }, }; const barista = { makeCoffee: (coffee: string) => { return coffee; }, }; 커피를 주문하고 제조하는 과정은 ..

    3. 타입스크립트의 타입시스템(2/2) | 이펙티브 타입스크립트 2장

    3. 타입스크립트의 타입시스템(2/2) | 이펙티브 타입스크립트 2장

    12. 함수 표현식에 타입 적용하기 js/ts에서는 함수 선언식과 표현식을 다르게 인식한다. 타입스크립트에서는 함수 표현식을 사용하는 것이 좋다. 매개변수나 반환 값에 타입을 명시하기보다는 함수 표현식 전체에 타입 구문을 적용하는 것이 좋다. 더 간결하고 안전하다. 만약 같은 타입 시그니처를 반복적으로 작성한 코드가 있다면 함수 타입을 분리해 내자. type BinaryFn = (a: number, b: number) => number; const add: BinaryFn = (a, b) => a + b; const sub: BinaryFn = (a, b) => a - b; const mul: BinaryFn = (a, b) => a * b; const div: BinaryFn = (a, b) => a ..

    1. UX에 관심이 있다면 읽어봐야 할 책, (사용자를) 생각하게 하지 마! (1/2)

    1. UX에 관심이 있다면 읽어봐야 할 책, (사용자를) 생각하게 하지 마! (1/2)

    이 책의 키워드는 ‘사용성’이다. 사용성은 기술이 아니라 사람에 대한 것이고 사람이 사물을 이해하고 사용하는 방법에 대한 것이다. 전문가 사용성 리뷰: 사용자가 하고 싶어 할 만한 것을 수행하고 막힐 법한 부분을 기록 사용성 평가: 다른 사람이 사용하는 모습을 관찰하며 어디에서 막히는지 기록 사용성이 뛰어나다 = 평범한 혹은 평균 이하의 능력과 경험을 가진 사람이 어떤 사물을 사용해서 무언인가 하려고 할 때 사용법을 스스로 알아낼 수 있다. 단 투입한 수고에 비해 얻은 가치가 더 커야 한다. 1. 사용자를 고민에 빠뜨리지 마라! 사용자가 찰나의 순간이라도 클릭 여부를 고민하는 데 쓰게 하지 마라. 모든 물음표는 인지적 부하를 더하는 주의 분산 요인이 된다. 명백하게 만들기 어렵다면 최소한 설명을 추가할 ..

    2. 타입스크립트의 타입 시스템(1/2) | 이펙티브 타입스크립트 2장

    2. 타입스크립트의 타입 시스템(1/2) | 이펙티브 타입스크립트 2장

    6. 편집기를 사용하여 타입 시스템 탐색하기 타입스크립트를 설치하면 다음 두 가지를 실행할 수 있다. 타입스크립트 컴파일러(tsc) 단독으로 실행할 수 있는 타입스크립트 서버(tsserver) 타입스크립트 서버 또한 '언어' 서비스를 제공한다는 점에서 중요하다. 언어 서비스에는 코드 자동 완성, 명세 검사, 검색, 리팩터링이 포함된다. 편집기에서 타입스크립트 언어 서비스를 적극 활용해야 한다. 편집기를 사용하면 어떻게 타입 시스템이 동작하는지, 타입스크립트가 어떻게 타입을 추론하는지 개념을 잡을 수 있다. 타입스크립트가 동작을 어떻게 모델링하는지 알기 위해 타입 선언 파일을 찾아보는 방법을 터득해야 한다. 7. 타입이 값들의 집합이라고 생각하기 변수에는 다양한 종류의 값을 할당할 수 있고, 코드가 실행되..

    1. 타입스크립트 알아보기 | 이펙티브 타입스크립트 1장

    1. 타입스크립트 알아보기 | 이펙티브 타입스크립트 1장

    1. 타입스크립트와 자바스크립트의 관계 이해하기 타입스크립트는 자바스크립트의 상위집합이다. .js 파일에 있는 코드는 이미 타입스크립트라고 할 수 있다. .ts로 바꾼다고 해도 달라지는 것은 없다. 이는 기존의 자바스크립트 코드를 타입스크립트로 마이그레이션하는 데 엄청난 이점이 된다. 다시 말해, 모든 자바스크립트 프로그램은 이미 타입스크립트 프로그램이다. 반대로, 타입스크립트는 별도의 문법을 가지고 있기 때문에 일반적으로는 유효한 자바스크립트 프로그램이 아니다. 예를 들어, 다음 코드는 유효한 타입스크립트 프로그램이지만 단순 node로 실행할 경우 오류를 출력한다. function greet(who: string) {} // SyntaxError: Unexpected token : 타입스크립트 컴파일러..