[이펙티브 타입스크립트] 아이템 35, 47, 47 - 타입 이름
코드의 구석 구석까지 타입 안정성을 얻기 위해 API 또는 데이터 형식에 대한 타입 생성을 고려해야 합니다.
코드의 구석 구석까지 타입 안정성을 얻기 위해 API 또는 데이터 형식에 대한 타입 생성을 고려해야 합니다.
"문자열을 남발하여 선언된" 코드를 피합시다. 모든 문자열을 할당할 수 있는 string타입보다는 더 구체적인 타입을 사용하는 것이 좋습니다.
만약 함수가 매개변수를 수정하지 않는다면 readonly로 선언하는 것이 좋음. readonly 매개변수는 인터페이스를 명확하게 하며, 매개변수가 변경되는 것을 방지
런타임 때까지 객체의 속성을 알 수 없을 경우에만 인덱스 시그니처를 사용
타입에 이름을 붙여서 반복을 피해야합니다. extends를 사용해서 인터페이스 필드의 반복을 피해야합니다.
타입과 인터페이스의 차이점 알기
타입스크립트는 자바스크립트의 상위집합입니다. 다시 말해서, 모든 자바스크립트 프로그램은 이미 타입스크립트 프로그램입니다. 반대로, 타입스크립트는 별도의 문법을 가지고 있기 때문에 일반적으로 유효한 자바스크립트 프로그램이 아닙니다.
RxJS로 타이머 기반의 애니메이션을 구현하기 위해서는 스케쥴러에 대한 이해가 필수적이다.
scan과 reduce
Observable 생성자를 이용하여 Observable 만들기
RxJS는 Observable을 사용하여 비동기 및 이벤트 기반 프로그램을 작성하기 위한 라이브러리다.
이직한 회사에서 함수형 프로그래밍을 적용해본지 언 1년이 다되어간다.
그렇다면 당연히 2020년은 개발자로서의 성장을 중점적으로 나아가야한다.
내가 성장을 위해 노력한 점이 있나 싶을 정도로 부끄러운 한해였다. 훌륭한 개발자가 되기 위해 노력은 거의 전무했다고 하면 되겠다.
새로 이직해온 회사의 주요 스택은 Vue.js + Vuex + Ramda.js + Rx.js 이다.'
아래글은 ko.reactjs.org 공식문서 번역 프로젝트의 일환으로 contribute한 번역글입니다.
2019년 4월 22일, `create-react-app` 3.0이 정식 릴리즈되었습니다.
요즘 핫한 기업인 레이니스트에서 주최하는 세번째 콘샐러드에 참관했다.
아래글은 ko.reactjs.org 공식문서 번역 프로젝트의 일환으로 contribute한 번역글입니다.
혹시나 오게될지 모르는 이직의 순간을 대비하기 위해 GDG 에서 개최하는 `면접왕 김지디지` 라는 행사에 참석했다.
this는 생성자 혹은 메소드에서 객체를 가리킬 때 사용하는 키워드입니다. 자바스크립트의 경우 호출 패턴에 따라 어떤 객체를 this에 바인딩할 지가 결정됩니다.
JavaScript로 개발에 입문을 하고 CS를 공부하다보면 예시 코드가 C계열 언어나 Java계열의 언어인 설명이 대다수이다. JavaScript가 위에 언급된 언어들이 할 수 있는 메모리 관리를 비롯한 몇몇 기능을 할 수 없다는 것이 이유 중 하나일 것 같다.
undefined와 null은 Javascript에서 많이 다뤄지는 주제입니다.(~~조금은 부정적으로다가..~~)
Iterator, Generator 1. Iterable Iterable object는 ES2015에 도입되었습니다.
버블링과 캡쳐링 HTML 은 계층적이므로 이벤트를 꼭 한 곳에서만 처리해야 하는 건 아닙니다. 여러 요소에서 이벤트를 처리할 수 있다면, 그 이벤트에 응답할 기회는 어떤 순서로 주어지는가 하는 의문이 생길 수 있습니다.
Map, Set ES6 에서 새로 도입한 데이터 구조입니다.
객체 프로퍼티 설정 1. 접근자 프로퍼티 getter와 setter 접근자 프로퍼티를 사용하면 데이터나 변수의 부주의한 접근을 차단하고 자연스러운 문법으로 객채의 프로퍼티를 활용할 수 있습니다.
앞뒤를 뒤집어도 똑같은 문자열을 palindrome이라고 합니다. longest_palindrom함수는 문자열 s를 매개변수로 입력받습니다. s의 부분문자열중 가장 긴 palindrom의 길이를 리턴하는 함수를 완성하세요.
1. 배열 요소 조작 1. 배열의 처음이나 끝에서 요소 하나를 추가하거나 제거하기 push, pop 각각 배열의 끝에 요소를 추가하거나 제거합니다. 기존의 배열이 수정됩니다.
var, let, const / let, const 변수 / ES2015에서 도입된 let, const에는 이전의 변수와는 다른 몇 가지 특징이 있습니다. 먼저 같은 이름을 갖는 변수의 재선언을 허용하지 않습니다.
strToInt 메소드는 String형 str을 매개변수로 받습니다. str을 숫자로 변환한 결과를 반환하도록 strToInt를 완성하세요.
행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.
피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요.
alpha_string46함수는 문자열 s를 매개변수로 입력받습니다. s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수를 완성하세요. 예를들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다
numPY함수는 대문자와 소문자가 섞여있는 문자열 s를 매개변수로 입력받습니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 리턴하도록 함수를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다.
nextSqaure함수는 정수 n을 매개변수로 입력받습니다. n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 'no'을 리턴하는 함수를 완성하세요.
두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다.
printReversedTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다. 다음을 참고해 `*`(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printReversedTriangle 메소드를 완성하세요
별이는 헬로월드텔레콤에서 고지서를 보내는 일을 하고 있습니다. 개인정보 보호를 위해 고객들의 전화번호는 맨 뒷자리 4자리를 제외한 나머지를 `*`으로 바꿔야 합니다. 전화번호를 문자열 s로 입력받는 hide_numbers함수를 완성해 별이를 도와주세요
함수를 완성해서 매개변수 array의 평균값을 return하도록 만들어 보세요. 어떠한 크기의 array가 와도 평균값을 구할 수 있어야 합니다.
printTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다. 다음을 참고해 *(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printTriangle 메소드를 완성하세요. printTriangle이 return하는 String은 개행문자(' ')로 끝나야 합니다.
water_melon함수는 정수 n을 매개변수로 입력받습니다. 길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.
어떤 수를 입력받아 그 수의 약수를 모두 더한 수 sumDivisor 함수를 완성해 보세요. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총 합은 28이 되므로 28을 반환해 주면 됩니다.
1937년 Collatz란 사람에 의해 제기된 이 추측은, 입력된 수가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음, 결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우 모든 수가 1이 된다는 추측입니다.
findKim 함수(메소드)는 String형 배열 seoul을 매개변수로 받습니다. seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하세요. Seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. Harshad함수는 양의 정수 n을 매개변수로 입력받습니다. 이 n이 하샤드수인지 아닌지 판단하는 함수를 완성하세요.
자연수로 이루어진 길이가 같은 수열 A,B가 있습니다. 최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다. 이러한 과정을 수열의 길이만큼 반복하여 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다.
numberOfPrime 메소드는 정수 n을 매개변수로 입력받습니다. 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하도록 numberOfPrime 메소드를 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.
adder함수는 정수 a, b를 매개변수로 입력받습니다. 두 수와 두 수 사이에 있는 모든 정수를 더해서 리턴하도록 함수를 완성하세요. a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
toWeirdCase함수는 문자열 s를 매개변수로 입력받습니다. 문자열 s에 각 `단어`의 짝수번째 인덱스 문자는 대문자로, 홀수번째 인덱스 문자는 소문자로 바꾼 문자열을 리턴하도록 함수를 완성하세요.