백준 문제풀이 세팅 (Node.js)

28 November, 2021
#algorithm#node
개요 프로그래머스와 LeetCode와는 다르게 백준에서의 알고리즘 문제 풀이는 입력까지 모두 사용자가 구현해야 합니다. JavaScript로 문제를 풀이할 것이기 때문에 Node 세팅을 해보겠습니다. 설치 아래의 형식과 같이 프로젝트를 생성해 줍니다. 백준은 dev의 stdin파일에 입력 파일이 존재합니다. 해당 파일을 읽어와 코드를 실행할 수 있도록 해…

유클리드 호제법

22 November, 2021
#algorithm
유클리드 호제법이란? 유클리드 호제법이란 2개의 자연수로 최대공약수를 구하는 알고리즘입니다. 호제법이란 말은 두 수가 서로 상대방의 수를 나누어 결국 원하는 수를 얻는 알고리즘을 말합니다. 최대공약수 2개의 자연수 a, b에 대하여 a를 b로 나눈 나머지를 r이라고 하면(단, a > b) a와 b의 최대공약수는 b와 r의 최대공약수와 같습니다. 이 성질에…

지연된 평가를 병렬적으로 평가하기

22 November, 2021
#javascript#functional
지연된 함수열을 병렬적으로 평가하기 자바스크립트는 비동기 IO 동작을 합니다. 이는 하나의 쓰레드에서 IO작업을 효율적으로 처리할 수 있도록 하기 위함입니다. 하지만 데이터베이스 같은 외부에 IO 작업을 요청하는 경우에는 그저 명령을 전달 후 완료 시점을 대기하는 상황이기 때문에 자바스크립트에서도 병렬적인 작업이 필요합니다. 지연된 함수의 평가 명령을 요…

Hexo를 이용하여 깃허브 블로그 만들기

11 November, 2021
#hexo#blog
깃허브 블로그 만들기 개발 공부한 내용들을 정리할 기술 블로그가 필요하게 되었습니다. 편하고 많이들 사용하는 tistory, velog, brunch, notion 등 있지만, Hexo 이용하여 직접 개발 블로그를 작성한 데는 몇 가지 이유가 있습니다. 장점 커스터마이징의 자유 hexo.io 사이트에서 테마를 골라 빠르게 시작할 수도 있고 직접 만들 수도…

비동기 상황에서 잘 작동하는 함수

08 November, 2021
#javascript#functional
비동기 상황이란? 비동기는 동시에 일어나지 않는다를 의미합니다. 따라서 요청한 결과가 동시에 일어나지 않는다는 것입니다. 이전에 작성한 함수들을 비동기 상황에서도 잘 작동할 수 있도록 수정해 보겠습니다. 비동기 작업을 처리하는 go1 기존의 작성하였던 go함수에 비동기 상황이 발생하도록 코드를 만들어 보겠습니다. 중간의 비동기 상황이 발생 시에 의도하지 …

제너레이터를 이용하여 함수의 지연평가

05 October, 2021
#javascript#functional
지연 평가란? 컴퓨터 프로그래밍에서 느긋한 계산법(Lazy evaluation)은 계산의 결과 값이 필요할 때까지 계산을 늦추는 기법이다. 위키피디아 지연 평가를 이용하면, 불필요한 계산을 하지 않게 되어 성능상의 이점이 있으며, 무한의 자료구조를 사용할 수 있습니다. ES6에서 추가된 이터레이터와 제너레이터를 이용하여 지연 평가되는 함수를 작성해 보겠습…

이터레이터를 이용한 높은 다형성을 가진 함수

26 September, 2021
#javascript#functional
다형성(polymorphism)이란? 프로그램 언어의 다형성은 그 프로그래밍 언어의 자료형 체계의 성질을 나타내는 것으로, 프로그램 언어의 각 요소들(상수, 변수, 식, 오브젝트, 함수, 메서드 등)이 다양한 자료형(type)에 속하는 것이 허가되는 성질을 가리킨다. 반대말은 단형성으로, 프로그램 언어의 각 요소가 한 가지 형태만 가지는 성질을 가리킨다.…

일급함수란 무엇인가?

25 September, 2021
#javascript
일급함수란? 함수를 다른 변수와 동일하게 다루는 언어는 일급 함수를 가졌다고 표현합니다. 예를 들어, 일급 함수를 가진 언어에서는 함수를 다른 함수에 매개변수로 제공하거나, 함수가 함수를 반환할 수 있으며, 변수에도 할당할 수 있습니다. JavaScript의 일급함수 함수 할당 익명 함수를 변수에 할당하여 호출할 수 있습니다. 또한 매개변수의 값이 하나라…