일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- wil
- Node.js
- java
- Joi
- mongoose
- 자바스크립트
- npm
- 프로그래머스
- https
- Nodejs
- MYSQL
- 노마드코더
- reduce
- 항해99
- nginx
- nomadcoder
- TypeScript
- Load Balancer
- it
- JWT
- 생활코딩
- AWS
- JavaScript
- 타입스크립트
- ubuntu
- mongodb
- CORS
- elb
- 메소드
- 조건문
- Today
- Total
목록항해99 (29)
V-logue
항해99 관련해서 몽구스를 사용하다가 이런 에러가 발생했다. Model Schema를 수정한 후 새로운 Index Key 값이 생성될 때 생성하려는 데이터가 충돌하면서 발생하는 문제이다. 해결 방법은 index ServerError가 발생한 collection의 인덱스를 확인한다. 여기서는 constId Robo 3T의 db를 보러가자, 여기서 보면 안보이겠지만 원래는 Collections/carts/Indexes에 _id_ / goodsId말고도 constId라는 값이 존재했다. 아마, 초기에 constId라는 값으로 줬다가 나중에 goodsId로 바꿨는데 그 과정에서 문제가 생긴 모양이다. _id_ / goodsId / constId 이런 모양이 었던 Indexes의 값 중 constId를 지우고 나..
다사 다난 했던, 2주차가 끝났다. 저번주 금 ~ 이번주 목까지 이어진 알고리즘 마라톤은 기본적인 자바스크립트의 문법들을 이해하는데 좋은 도움이 됐다. reduce, map, filter, 삼항연산자 등등 다양한 메서드들을 사용해보고 이를 토대로 문제들을 해결함으로 자바스크립트의 문법들에 대해서 더 깊은 이해를 할 수 있던 시간이었다. 28개의 문제를 모두 풀었다는 것에 적당히 고무적인 생각이 든건 덤이다. 한가지 아쉬웠던 건 마지막 알고리즘 시험에서 문제를 제대로 읽지 않아 쉽게 풀 수 있던걸 틀렸다는 것이다. function solution(n){ let sum = []; let x = n.toString().split('').map(Number).sort().reverse(); // sort를 빼면..
JavaScript의 자료형과 JavaScript만의 특성 느슨한 타입 자바 스크립트는 느슨한 타입의 언어이다. 느슨한 타입의 언어라면 이해가 잘 안가는 사람이 있을텐데, 예를 들어본다면 강력한 타입의 언어와 비교를 들 수 있다. var a = 11; var b = "ELEVEN" // javascript Example int a = 11; string b = "ELEVEN" // java Example 위의 예시를 보면, 자바스크립트는 변수를 단순히 타입과 상관없이 var라고 주었지만 자바는 11은 정수를 표현할 때 사용하는 int를 ELEVEN은 문자를 표현할 때 사용하는 string으로 사용되었다. 자바스크립트의 변수는 타입을 가지고 있지만, 내부적으로 정해지는 것일 뿐이다. 1 + 1 + 1; =..
에.. 대충 어떤 문제냐면, 이런 문제다. function solution(x) { var arr = (x+"").split("").map(Number) for (let i=0; i acc+cur) === 0) { return true } else if (parseInt(x) % arr.reduce((acc , cur) => acc+cur) !== 0){ return false } } 이전에 사용했던 reduce함수를 다시 사용하면 되는데, 하샤드 수가 18이라고 치면 1+8 =9고 18 % 2 === 0 이 되야하기 때문에, 일단 18이라는 수를 나눠줄 필요가 있다. (x+"").split(..
function solution(n) { var answer = (n+'').split('').map(Number).reverse() return answer } 귀찮으니 간단하게 설명하자면 , (n+"")로 n을 문자열로 만들고 // .split("")으로 문자열이 된 n을 배열화 시켜준 뒤 .map(Number) 문자열이 된 배열의 요소들을 다시 숫자로 바꿔주고 배열의 순서를 reverse( )시켜주면 된다. 문제를 푸는데 도움을 주신 https://programmerpsk.tistory.com/128 문자열을 숫자 배열로 쉽게 바꾸기 가끔 ajax 통신을 하면 데이터 양이 너무 커서 스트링으로 변환해서 보낼때가 있다. 서버에서는 받아온 데이터를 다시 배열로 바꾸어줘야 하는데 그때 주로 사용하는 함수..
function solution(n) { var answer = (n % Math.sqrt([n]) === 0 ? (Math.sqrt([n]) + 1) * (Math.sqrt([n]) + 1) : -1 ) return answer; } x 값의 제곱인 n에 루트를 씌우는 함수인 Math.sqrt를 사용해 x값으로 만들어주고 n % x의 나머지가 0 이라면 x * x인 선택문1과 그게 아니라면 -1인 선택문 2를 만들었다. ez
일단 이 문제를 푸는데, 바로 생각난 것이 숫자를 배열로 만들어서 배열의 합을 구하면 될 것 같다는 생각을 했다. 그런데 reduce의 용법을 제대로 이해하지 못해, 정답을 확인하고 나서 알게 된 것이 function solution(n){ return n.toString().split('').reduce((function(acc, cur) {return +acc + +cur}),0); } 보면 알겠지만, 따로 변수를 주지않고 return값에 모든 코드를 집어 넣은 모습을 볼 수 있다. 일단 callback 함수에 대한 이해가 필요할 것 같아 찾아보았다. 개인적인 사견으로 Callback 함수란, 더보기 파라미터로 함수를 전달하는 함수, 익명으로도 전달 가능하다. 콜백(callback) 함수란 파라미터(..
처음에 위에 설명만 보면 이게 뭔소린가 싶지만, 아래에 입출력 예 설명을 보면 아 이거 엄청 쉬운거구나 하고 풀 수 있다. function solution(a, b) { let answer = 0; for (let i = 0; i < a.length; i++) { answer += a[i] * b[i] } return answer; } 어레이 a와 b에 a나 b값만큼 길이를 가진 i값을 하나씩 대입해서 곱해주고 그걸 재할당하여 answer에 쌓아주면 된다. ez