[JavaScript] ES6에서의 순회와 이터러블
·
JavaScript
1. ES6에서의 리스트 순회 우리가 일반적으로 사용하는 리스트의 순회는 for( let i = 0; 1 < 10; i++) 방식이다. const list = [1, 2, 3]; for(let i = 0; i < list.length; i++) { console.log(list[i]); } ES6에 오면서 새로운 방식의 리스트 순회가 생겼다. const list = [1, 2, 3]; for(const a of list) { console.log(a); } for of 방식으로 내부 데이터를 쉽게 조회하는 방법이 생겼다. 2. 이터러블/이터레이터 프로토콜 이터러블 프로토콜은 ES6에서 도입된 것으로 순회 가능한 객체를 나타내는 프로토콜이다. for of 반복문, ... 전개 연산자, 구조 분해 등과 같이..
[JavaScript] 고차 함수 ( Higher-Order Function )
·
JavaScript
고차 함수를 이해하기 위해서는 함수형 프로그래밍이 무엇인지, 퍼스트 클래스 함수의 개념이 무엇인지 이해하는 것이 도움이 된다. 함수형 프로그래밍 함수를 다른 함수의 파라미터로 넘길 수 있고, return 값으로 함수를 받을 수 있는 프로그래밍 형태이다. 퍼스트 클래스 함수 자바스크립트가 함수를 일급 시민( first-class citizen )으로 대해준다. 왜냐하면 자바스크립트 또는 함수형 프로그래밍 언어 함수들은 전부 객체이다. 자바스크립트에서, 함수는 Function 객체라는 특별한 타입이다. function special () { console.log("hello"); } special(); special.test = "!?"; console.log(special.test); // !? 자바스크립..
[JavaScript] 함수 ( 선언 ) 형 프로그래밍
·
JavaScript
함수형 프로그래밍? 함수를 다른 함수의 파라미터로 넘길 수 있고, return 값으로 함수를 받을 수 있는 프로그래밍 형태이다. // 명령형 function double (arr) { let results = [] for (let i = 0; i item * 2) } function add (arr) ..
Side Effect
·
개발정보
일반적으로 사이드 이펙트는 " 의도하지 않은 결과 " 를 의미한다. 특정 작업의 결과로 예상하지 않던 부수적인 효과를 말한다. 함수를 입력값에 대한 일정한 출력을 하는 것으로 가정할 때, 출력값에 영향을 미치지 않는 모든 결과를 Side Effect 라고 한다. 예를들어, a + b 를 해서 결과값을 리턴하는 함수에서 계산 기록을 저장하거나, 네트워크로 전송하는 것을 모두 Side Effect 라고 한다.
[알고리즘] 타겟 넘버
·
알고리즘
문제 설명 n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다. -1+1+1+1+1 = 3 +1-1+1+1+1 = 3 +1+1-1+1+1 = 3 +1+1+1-1+1 = 3 +1+1+1+1-1 = 3 사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 return 하도록 solution 함수를 작성해주세요. 제한사항 주어지는 숫자의 개수는 2개 이상 20개 이하입니다. 각 숫자는 1 이상 50 이하인 자연수입니다. 타겟 넘버는 1 이상 100..
[Node.js] express-generator 사용해 환경 구성
·
Node.js/기능
1. express 설치 express 설치 npm install express -g global 옵션을 사용해서 어느 경로에서든 express를 사용할 수 있게 한다. express-generator 설치 npm install express-generator -g express 환경을 구성해주는 express-generator를 설치한다. 마찬가지로 전역에 설치하기 때문에 어디서든 사용할 수 있다. 2. 프로젝트 생성 express 앱이름 express 명령어를 사용해서 원하는 nodejs 프로젝트명을 입력한다. 기본적으로 생성되는 프로젝트는 jade 형식으로 뷰가 구성된다. express --view-ejs 앱이름 만약 ejs 형식으로 프로젝트를 만들고 싶다면 --view-ejs 옵션을 사용해서 변경..
[알고리즘] 기능 개발
·
알고리즘
문제 설명 프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다. 또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다. 먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요. 제한 사항 작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다. 작업 진도는 100 미만의 자연수입니다. 작업 속도는 100 이하의 자..
[알고리즘] 124 나라의 숫자
·
알고리즘
문제 설명 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. 예를 들어서 124 나라에서 사용하는 숫자는 다음과 같이 변환됩니다. 10진법 124 나라 10진법 124 나라 1 1 6 14 2 2 7 21 3 4 8 22 4 11 9 24 5 12 10 41 자연수 n이 매개변수로 주어질 때, n을 124 나라에서 사용하는 숫자로 바꾼 값을 return 하도록 solution 함수를 완성해 주세요. 제한사항 n은 500,000,000이하의 자연수 입니다. 입출력 n result 1 1 2 2 3 4 4 11 나의 풀이 let n = 10; fu..