728x90
반응형

Dev 25

node Request path contains unescaped characters Error

api를 호출 중에 아래와 같은 에러를 마주하게 됐습니다. 해당 에러에 대해 해석을 해보니 요청 경로에 escaped 처리되지 않은 문자가 포함 되어있습니다. 해당 에러에 대해서 찾아보니 url의 path 부분에 치환되지 않은 문자가 포함 되어있어서 그렇습니다. const uri = `/test?query=테스트`; await request(application) .get(uri); url 주소로 요청을 보내는 경우 해당 에러를 마주하게 됐을 경우 encodeURI를 사용하여 해결할 수 있습니다. const uri = `/test?query=테스트`; await request(application) .get(encodeURI(uri));

Dev/Error 2023.03.12

[SQL] IN과 OR 성능 비교

SELECT * FROM table1 WHERE (id = 1 OR id = 2 OR id = 3) OR 사용한 쿼리 SELECT * FROM table1 WHERE id IN (1, 2, 3) IN 사용한 쿼리 위 두 쿼리는 같은 결과 값을 출력해줍니다. 하지만 성능에는 차이가 존재합니다. 지금은 많은 데이터를 비교하지 않아 성능차이가 눈에 보일 정도는 아니지만 많은 양의 데이터들을 조회하게 된다면 성능의 차이는 눈에 띄게 보일 것입니다. 가독성 면에서도 IN을 사용하는게 더 효과적일 거 같습니다. IN을 사용할 수 있을 쿼리라면 OR 사용을 지양하는 것이 좋습니다. 어느정도의 성능차이가 있는지 비교를 하는 글을 찾아봤습니다. 참고한 자료에서는 조건절에 10000개의 데이터를 가지고 비교했더니 IN으로..

Dev/DB 2022.12.22

[JavaScript] console.log찍는데 undefined도 나오는 이유

cmd(명령 프롬프트)에서 node를 실행하면 javascript를 사용할 수 있습니다. 이렇게 cmd에서 console.log(1)을 찍으면 1이 출력되는 것을 알 수 있습니다. 근데 1 밑에 undefined가 같이 출력되는걸 보고 console.log(1) 말고는 없는데 어디서 나온거지 너무 궁금했습니다. 결론은 REPL의 특성 때문입니다. REPL이란 Read Eval Print Loop의 약자입니다. REPL은 명령줄 인터페이스인 CLI에서 동작합니다. 윈도우에서는 cmd, powershell 환경에서 사용이 가능합니다. 약자에 의미가 다 담겨있습니다. REPL이 실행 상태에서는 입력한 소스코드를 읽고(Read) 명령어를 평가(Eval)하고 결과를 출력(Print)한 다음 다시 입력을 기다리는 ..

Dev/JavaScript 2022.12.18

[Error] yarn install 에러 info There appears to be trouble with your network connection. Retrying

프로젝트를 클론한 이후 yarn install을 진행하는데 info There appears to be trouble with your network connection. Retrying... 라는 문구와 함게 yarn install 작업이 freezing 되어있는 현상과 마주했습니다. 몇 가지의 해결법 중 간단한 것 부터 시도하기 시작했습니다. 첫번째는 네트워크가 느리거나 해당 패키지 파일이 너무 큰 경우에는 이러한 현상이 일어날 수 있다는 글을 보았으며 그에 대한 해결책으로는 네트워크 타임아웃 시간을 임의로 길게 잡아주면 된다고 되어 있었습니다. yarn install —network-timeout 600000 해당 명령어를 입력해도 여전히 똑같았습니다. 두번째는 yarn 캐시 문제로 인해 해당 현..

Dev/Error 2022.12.11

[JavaScript] Object.values 사용법

저번에는 Object.keys 메서드에 대한 포스팅을 작성했습니다. 이번에는 위 메서드와 같이 유용하게 사용할 수 있는 Object.values 메스드에 대해 알아보려고 합니다. 객체를 마주하다보면 가끔 객체의 value값들만 가지고 오고 싶을때가 종종 있습니다. Object.values() 메서드는 객체의 프로퍼티들 중에서 value값만 묶어서 배열로 반환해주는 메서드입니다. const obj = { 1: 'red', 2: 'blue', 3: 'yellow' 4: 'green' 5: 'black' } const values = Object.values(obj); console.log(values); // ["red", "blue", "yellow", "green", "black"] 위 예제에서는 obj..

Dev/JavaScript 2022.12.09

[JavaScript] Object.keys 사용법

JavaScript는 객체 기반 프로그래밍 언어입니다. 그렇기 때문에 자바스크립트를 구성하는 거의 대부분이 객체로 이루어져있습니다. 객체를 관련해 다루는 메서드가 있다면 유용하게 사용을 할 수 있을 것입니다. 객체를 마주하다보면 가끔 객체의 key값만 가지고 오고 싶을때가 종종 있습니다. Object.keys() 메서드는 객체의 프로퍼티들 중에서 key값만 묶어서 배열로 반환해주는 메서드입니다. const obj = { name: 'leo', age: '26', gender: 'm' } const keys = Object.keys(obj); console.log(keys); // ["name", "age", "gender"] 위 예제에서는 obj 객체에서의 key값들인 name, age, gender가 ..

Dev/JavaScript 2022.12.08

Moment.js를 Day.js로 대체하자

일단 Moment.js부터 설명을 하겠습니다. Moment.js는 JavaScript에서 날짜 및 시간을 조작하고 작업하는데에 도움을 주는 라이브러리입니다. 날짜 관련 라이브러리 중에서 가장 오래되고 가장 많이 사용되던 라이브러리입니다. 하지만 moment.js는 앞으로 업데이트가 없을 예정이기 때문에 다른 라이브러리 사용을 권장하고 있습니다. 현재로서는 moment를 사용해도 문제가 없지만 다른 라이브러리를 권장하고 있는 와중에 moment를 고집할 필요는 없다고 판단했습니다. (유지보수 측면에서도 유리할 것으로 생각했습니다.) 대체할 라이브러리를 찾아보던 와중에 day.js라는 라이브러리가 눈에 띄었습니다. moment.js의 문법과 거의 유사하여 어렵지 않게 적용이 가능할 것이라고 생각했습니다. d..

Dev/JavaScript 2022.12.04

[JavaScript] reduce 사용법

javascript에서의 reduce는 배열 내 각각 요소를 순회하여 callback 함수의 실행 값을 누적하여 최종 결과값을 반환해주는 메서드입니다. arr.reduce(callback[, initialValue]) Parameter 1. callback: 배열의 각 요소에 대해 실행할 함수입니다. 4가지의 인수를 받습니다 accumulator - 콜백함수의 반환값을 누적합니다. currentValue - 배열에서의 현재 요소 index(Optional) - 배열에서의 현재 요소의 인덱스 array(Optional) - 호출한 배열 2. initialValue(Optional): callback의 최초 호출에서 첫 번째 인수에 제공하는 값입니다. const numbers = [1, 2, 3, 4]; ..

Dev/JavaScript 2022.10.22

[Postman] file과 body 한 번에 요청하기 (feat.삽질)

평소에 postman을 이용해서 파일 요청(단 건)을 테스트 해본 적은 많이 있었습니다. 그리고 file과 body에 있는 데이터를 같이 요청하여 테스트 해본 적도 많이 있었습니다. 항상 테스트를 했었을 때는 body가 1depth일 경우에만 테스트를 진행했었습니다 { "name":"hello" } 이런 형태의 body 데이터를 form-data에 key값과 value 나열하여 테스트를 진행했었습니다. 하지만 이번에는 필요한 정보마다 객체를 묶었던 상황이여서 depth가 1 늘어난 상황이었습니다. userInfo: { "name":"hello" } 이런 형태의 body 데이터를 어떻게 form-data에 넣어줄지 곰곰히 생각했습니다... 내린 결론 객체의 이름을 키값으로 적어주고 해당하는 객체를 valu..

Dev/Error 2022.09.02
728x90
반응형