[이펙티브 타입스크립트] 아이템 35, 47, 47 - 타입 이름

코드의 구석 구석까지 타입 안정성을 얻기 위해 API 또는 데이터 형식에 대한 타입 생성을 고려해야 합니다.

[이펙티브 타입스크립트] 아이템 33, 34 - 정확하고 구체적인 타입

"문자열을 남발하여 선언된" 코드를 피합시다. 모든 문자열을 할당할 수 있는 string타입보다는 더 구체적인 타입을 사용하는 것이 좋습니다.

[이펙티브 타입스크립트] 아이템 17 - readonly 사용하기

만약 함수가 매개변수를 수정하지 않는다면 readonly로 선언하는 것이 좋음. readonly 매개변수는 인터페이스를 명확하게 하며, 매개변수가 변경되는 것을 방지

[이펙티브 타입스크립트] 아이템 15, 16 - 인덱스 시그니처

런타임 때까지 객체의 속성을 알 수 없을 경우에만 인덱스 시그니처를 사용

[이펙티브 타입스크립트] 아이템 14 - 타입 연산과 제너릭 사용으로 반복 줄이기

타입에 이름을 붙여서 반복을 피해야합니다. extends를 사용해서 인터페이스 필드의 반복을 피해야합니다.

[이펙티브 타입스크립트] 아이템 13 - 타입과 인터페이스의 차이점 알기

타입과 인터페이스의 차이점 알기

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

타입스크립트는 자바스크립트의 상위집합입니다. 다시 말해서, 모든 자바스크립트 프로그램은 이미 타입스크립트 프로그램입니다. 반대로, 타입스크립트는 별도의 문법을 가지고 있기 때문에 일반적으로 유효한 자바스크립트 프로그램이 아닙니다.

[함수형 프로그래밍] RxJS - 스케쥴러, takeWhilte, concat

RxJS로 타이머 기반의 애니메이션을 구현하기 위해서는 스케쥴러에 대한 이해가 필수적이다.

[함수형 프로그래밍] RxJS - reduce, scan

scan과 reduce

[함수형 프로그래밍] RxJS Observable 만들기

Observable 생성자를 이용하여 Observable 만들기

[함수형 프로그래밍] RxJS란?

RxJS는 Observable을 사용하여 비동기 및 이벤트 기반 프로그램을 작성하기 위한 라이브러리다.

[함수형 프로그래밍] 첫 프로젝트 코드를 함수형으로 리팩토링 해보기 - Make amout string

이직한 회사에서 함수형 프로그래밍을 적용해본지 언 1년이 다되어간다.

2020년 계획

그렇다면 당연히 2020년은 개발자로서의 성장을 중점적으로 나아가야한다.

2020년 1분기가 끝나는 와중에 쓰는 2019년 회고

내가 성장을 위해 노력한 점이 있나 싶을 정도로 부끄러운 한해였다. 훌륭한 개발자가 되기 위해 노력은 거의 전무했다고 하면 되겠다.

[Ramda] 한 달간 함수형 프로그래밍을 구경하고 적용하면서

새로 이직해온 회사의 주요 스택은 Vue.js + Vuex + Ramda.js + Rx.js 이다.'

[React 공식문서] Optimizing Performance

아래글은 ko.reactjs.org 공식문서 번역 프로젝트의 일환으로 contribute한 번역글입니다.

create-react-app v3 릴리즈!

2019년 4월 22일, `create-react-app` 3.0이 정식 릴리즈되었습니다.

[후기] 세번째 콘샐러드(by 레이니스트)

요즘 핫한 기업인 레이니스트에서 주최하는 세번째 콘샐러드에 참관했다.

[React 공식문서] Rules of Hooks

아래글은 ko.reactjs.org 공식문서 번역 프로젝트의 일환으로 contribute한 번역글입니다.

[후기] GDG Seoul 면접왕 김지디지

혹시나 오게될지 모르는 이직의 순간을 대비하기 위해 GDG 에서 개최하는 `면접왕 김지디지` 라는 행사에 참석했다.

[JavaScript] this

this는 생성자 혹은 메소드에서 객체를 가리킬 때 사용하는 키워드입니다. 자바스크립트의 경우 호출 패턴에 따라 어떤 객체를 this에 바인딩할 지가 결정됩니다.

[CS] 버블 정렬 자바스크립트로 구현하기

JavaScript로 개발에 입문을 하고 CS를 공부하다보면 예시 코드가 C계열 언어나 Java계열의 언어인 설명이 대다수이다. JavaScript가 위에 언급된 언어들이 할 수 있는 메모리 관리를 비롯한 몇몇 기능을 할 수 없다는 것이 이유 중 하나일 것 같다.

[JavaScript] null, undefined

undefined와 null은 Javascript에서 많이 다뤄지는 주제입니다.(~~조금은 부정적으로다가..~~)

[JavaScript] Iterator, Generator

Iterator, Generator 1. Iterable Iterable object는 ES2015에 도입되었습니다.

[JavaScript] 버블링과 캡쳐링

버블링과 캡쳐링 HTML 은 계층적이므로 이벤트를 꼭 한 곳에서만 처리해야 하는 건 아닙니다. 여러 요소에서 이벤트를 처리할 수 있다면, 그 이벤트에 응답할 기회는 어떤 순서로 주어지는가 하는 의문이 생길 수 있습니다.

[JavaScript] Map, Set

Map, Set ES6 에서 새로 도입한 데이터 구조입니다.

[JavaScript] 객체 프로퍼티 설정

객체 프로퍼티 설정 1. 접근자 프로퍼티 getter와 setter 접근자 프로퍼티를 사용하면 데이터나 변수의 부주의한 접근을 차단하고 자연스러운 문법으로 객채의 프로퍼티를 활용할 수 있습니다.

[Algorithm JavaScript] Level2. 가장 긴 팰린드롬

앞뒤를 뒤집어도 똑같은 문자열을 palindrome이라고 합니다. longest_palindrom함수는 문자열 s를 매개변수로 입력받습니다. s의 부분문자열중 가장 긴 palindrom의 길이를 리턴하는 함수를 완성하세요.

[JavaScript] 배열의 요소 조작하기

1. 배열 요소 조작 1. 배열의 처음이나 끝에서 요소 하나를 추가하거나 제거하기 push, pop 각각 배열의 끝에 요소를 추가하거나 제거합니다. 기존의 배열이 수정됩니다.

[JavaScript] var, let, const

var, let, const / let, const 변수 / ES2015에서 도입된 let, const에는 이전의 변수와는 다른 몇 가지 특징이 있습니다. 먼저 같은 이름을 갖는 변수의 재선언을 허용하지 않습니다.

[Algorithm JavaScript] Level1. 스트링을 숫자로 바꾸기

strToInt 메소드는 String형 str을 매개변수로 받습니다. str을 숫자로 변환한 결과를 반환하도록 strToInt를 완성하세요.

[Algorithm JavaScript] Level1. 행렬의 덧셈

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬을 입력받는 sumMatrix 함수를 완성하여 행렬 덧셈의 결과를 반환해 주세요.

[Algorithm JavaScript] Level1. 피보나치 수

피보나치 수는 F(0) = 0, F(1) = 1일 때, 2 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 점화식입니다. 2 이상의 n이 입력되었을 때, fibonacci 함수를 제작하여 n번째 피보나치 수를 반환해 주세요.

[Algorithm JavaScript] Level1.문자열 다루기 기본(Number타입 및 길이 확인)

alpha_string46함수는 문자열 s를 매개변수로 입력받습니다. s의 길이가 4혹은 6이고, 숫자로만 구성되있는지 확인해주는 함수를 완성하세요. 예를들어 s가 a234이면 False를 리턴하고 1234라면 True를 리턴하면 됩니다

[Algorithm JavaScript] Level1. 문자열 내 p와 y의 개수

numPY함수는 대문자와 소문자가 섞여있는 문자열 s를 매개변수로 입력받습니다. s에 'p'의 개수와 'y'의 개수를 비교해 같으면 True, 다르면 False를 리턴하도록 함수를 완성하세요. 'p', 'y' 모두 하나도 없는 경우는 항상 True를 리턴합니다.

[Algorithm JavaScript] Level1. 정수 제곱근 판별하기

nextSqaure함수는 정수 n을 매개변수로 입력받습니다. n이 임의의 정수 x의 제곱이라면 x+1의 제곱을 리턴하고, n이 임의의 정수 x의 제곱이 아니라면 'no'을 리턴하는 함수를 완성하세요.

[Algorithm JavaScript] Level1. 최대공약수와 최소공배수

두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환해주는 gcdlcm 함수를 완성해 보세요. 배열의 맨 앞에 최대공약수, 그 다음 최소공배수를 넣어 반환하면 됩니다.

[Algorithm JavaScript] Level1. 역삼각형 출력하기

printReversedTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다. 다음을 참고해 `*`(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printReversedTriangle 메소드를 완성하세요

[Algorithm JavaScript] Level1. 핸드폰번호 가리기

별이는 헬로월드텔레콤에서 고지서를 보내는 일을 하고 있습니다. 개인정보 보호를 위해 고객들의 전화번호는 맨 뒷자리 4자리를 제외한 나머지를 `*`으로 바꿔야 합니다. 전화번호를 문자열 s로 입력받는 hide_numbers함수를 완성해 별이를 도와주세요

[Algorithm JavaScript] Level1. 평균 구하기

함수를 완성해서 매개변수 array의 평균값을 return하도록 만들어 보세요. 어떠한 크기의 array가 와도 평균값을 구할 수 있어야 합니다.

[Algorithm JavaScript] Level1.삼각형 출력하기

printTriangle 메소드는 양의 정수 num을 매개변수로 입력받습니다. 다음을 참고해 *(별)로 높이가 num인 삼각형을 문자열로 리턴하는 printTriangle 메소드를 완성하세요. printTriangle이 return하는 String은 개행문자(' ')로 끝나야 합니다.

[Algorithm JavaScript] Level1.수박수박수?(길이만큼 문자열 반환하기)

water_melon함수는 정수 n을 매개변수로 입력받습니다. 길이가 n이고, 수박수박수...와 같은 패턴을 유지하는 문자열을 리턴하도록 함수를 완성하세요.

[Algorithm JavaScript] Level1. 약수의 합

어떤 수를 입력받아 그 수의 약수를 모두 더한 수 sumDivisor 함수를 완성해 보세요. 예를 들어 12가 입력된다면 12의 약수는 [1, 2, 3, 4, 6, 12]가 되고, 총 합은 28이 되므로 28을 반환해 주면 됩니다.

[Algorithm JavaScript] Level2. 콜라츠 추측

1937년 Collatz란 사람에 의해 제기된 이 추측은, 입력된 수가 짝수라면 2로 나누고, 홀수라면 3을 곱하고 1을 더한 다음, 결과로 나온 수에 같은 작업을 1이 될 때까지 반복할 경우 모든 수가 1이 된다는 추측입니다.

[Algorithm JavaScript] Level1. 서울에서 김서방 찾기(index 활용하기)

findKim 함수(메소드)는 String형 배열 seoul을 매개변수로 받습니다. seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하세요. Seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

[Algorithm JavaScript] Level2. 하샤드수

양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. Harshad함수는 양의 정수 n을 매개변수로 입력받습니다. 이 n이 하샤드수인지 아닌지 판단하는 함수를 완성하세요.

[Algorithm JavaScript] Level2. 최솟값 만들기

자연수로 이루어진 길이가 같은 수열 A,B가 있습니다. 최솟값 만들기는 A, B에서 각각 한 개의 숫자를 뽑아 두 수를 곱한 값을 누적하여 더합니다. 이러한 과정을 수열의 길이만큼 반복하여 최종적으로 누적된 값이 최소가 되도록 만드는 것이 목표입니다.

[Algorithm JavaScript] Level2. 소수 찾기

numberOfPrime 메소드는 정수 n을 매개변수로 입력받습니다. 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하도록 numberOfPrime 메소드를 만들어 보세요. 소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다.

[Algorithm JavaScript] Level2. 두 정수 사이의 합

adder함수는 정수 a, b를 매개변수로 입력받습니다. 두 수와 두 수 사이에 있는 모든 정수를 더해서 리턴하도록 함수를 완성하세요. a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.

[Algorithm JavaScript] Level2. 이상한 문자만들기

toWeirdCase함수는 문자열 s를 매개변수로 입력받습니다. 문자열 s에 각 `단어`의 짝수번째 인덱스 문자는 대문자로, 홀수번째 인덱스 문자는 소문자로 바꾼 문자열을 리턴하도록 함수를 완성하세요.