목록Development/Node.js & JavaScript (18)
컴공생의 다이어리
[js] 현재 위치 받아오기 - Geolocation API 자바스크립트에서 사용자의 현재 위치 정보를 브라우저에게 요청할 수 있는 방법으로 Geolocation API가 있다. 브라우저가 지원하는 Geolocation API는 navigator.geolocation으로 정의되어 있다. 현재 위치 받아오기 navigator.geolocation.getCurrentPosition() 메서드를 통해 현재 위치 정보를 받아올 수 있다. 메서드를 통해 현재 위치를 가져오는 것에 성공하면 GeolocationPosition 객체를 첫번째 콜백 함수의 매개변수로 전달하고 실패하면 두번째 콜백함수에 GeolocationPositionError 객체를 매개변수로 전달한다. 아래는 navigator.geolocation..
[NestJS] Task Scheduling NestJS에서 주기적으로 반복적인 작업을 처리하는 Task Scheduling을 위해서는 @nestjs/schedule 패키지를 활용하면 된다. 이 글에서는 Task Scheduling에 대해서 정리해보고자 한다. 제일 먼저 Task Scheduling에 필요한 패키지인 @nestjs/schedule과 @types/cron를 아래 명령어로 설치해준다. $ npm install --save @nestjs/schedule $ npm install --save-dev @types/cron scheduler 사용을 위해 @nestjs/schedule 패키지에 포함된 ScheduleModule을 import를 해줘야 한다. 공식문서에는 AppModule에 아래와 같이..
[NestJS] Global prefix NestJS로 api를 개발하면서 모든 api 주소에 아래와 같이 일일히 /api를 붙여주고 있었다. @Controller('api/test1') export class Test1Controller {} @Controller('api/test2') export class Test2Controller {} 공통적으로 api라는 prefix가 붙는 것에 대해 전역으로 설정해줄 수 있는지 찾아보다 setGlobalPrefix로 전역 설정이 가능한 것을 알게 되었다. src/main.ts 파일에서 아래와 같이 setGlobalPrefix() 메소드로 prefix를 한번에 전역 설정할 수 있다. const app = await NestFactory.create(Applic..
JavaScript 반복문 - for, for in, for of 이번 글에서는 자바스크립트 반복문 중 for, for in, for of에 대해 정리하고자 한다. for 초기식, 조건식, 증감식을 사용하여 반복문을 수행한다. 고전적인 for문의 형태이다. for문의 초기식에서 변수 선언시, const를 쓰면 값 변경이 불가하기 때문에 에러가 발생할 수 있음을 주의해야 한다. for (초기식; 조건식; 증감식) { 반복을 수행할 문 } // example for (let i = 0; i < 5; i++) { console.log(i); } // 출력 결과 // 0 // 1 // 2 // 3 // 4 for in for in 문은 상속된 열거 가능한 속성들을 포함하여 객체에서 문자열로 키가 지정된 모든 열..
[Node.js] 파일 생성 - fs.writeFile(), fs.writeFileSync() Node.js의 fs모듈을 사용하면 파일과 관련된 I/O 작업을 수행할 수 있다. 이 글에서는 fs 모듈을 활용한 파일을 생성하는 2가지 방법에 대해 정리하고자 한다. fs.writeFile() 파일을 비동기적으로 생성한다. fs.writeFile(file, data[, options], callback); file: 파일을 저장할 경로, 파일명, 확장자를 넣기 data: 파일 속에 기록될 데이터 options: - encoding: 파일의 인코딩(default는 'utf8') - mode: 파일 모드(default는 0o666) - flag: 파일에 쓰는 동안 사용되는 플래그(default는 'w') call..
npm 전역(global)으로 설치된 모듈 리스트 보기 전역으로 설치된 모듈 리스트를 보려면 아래 4개의 명령어 중 하나를 입력하면 된다. # 전역으로 설치된 모듈 목록 출력 npm ls -g npm ls -global npm list -g npm list -global 하지만 위와 같이 명령어를 입력하면 설치된 항목의 하위 dependency까지 모두 출력되어 보기 쉽지 않다. depth 옵션에 0을 줘서 설치한 모듈에 대해서만 보려면 아래와 같이 명령어를 입력해주면 된다. npm ls -g --depth=0 https://zetawiki.com/wiki/Npm_%EC%84%A4%EC%B9%98%EB%90%9C_%EC%A0%84%EC%97%AD%EB%AA%A8%EB%93%88_%ED%99%95%EC%9..
[Ubuntu] -bash: /usr/local/bin/node: No such file or directory, -bash: /usr/local/bin/npm: No such file or directory 우분투에서 node와 npm을 삭제한 후, 다른 버전으로 재설치하고 나서 node -v와 npm -v 명령어를 입력해보니 -bash: /usr/local/bin/{node 혹은 npm}: No such file or directory 오류가 발생했다. 이를 아래 명령어를 통해 해결할 수 있었다. # node의 경우 sudo ln -s "$(which nodejs)" /usr/local/bin/node # npm의 경우 sudo ln -s "$(which npm)" /usr/local/bin/npm ..
[Node.js] 환경 변수(env) 관리하기 로컬에서 개발할 때와 서버에 배포할 때 DB 연결, 포트 설정 등 관련된 부분을 매번 수정해서 배포하는 것은 쉽지 않다. 또한 유출되면 안되는 secret key를 public으로 배포하면 안된다. 이러한 점을 해결하기 위해 환경 변수로 관리해주면 좋다. Node.js에서는 process.env라는 내장 자바스크립트 객체를 사용해서 환경 변수에 접근할 수 있다. .env라는 파일에 환경 변수를 설정하고 이 환경 변수를 읽어오기 위해 dotenv라는 모듈이 필요하다. 먼저 아래 명령어를 통해 dotenv를 설치해준다. npm install dotenv .env 파일에 설정하고 싶은 환경 변수를 변수명=값 형태로 아래와 같이 선언한다. # .env DB_HOST..
JavaScript 숫자 천 단위로 콤마(,) 찍기 - toLocaleString() 자바스크립트에서 숫자의 천 단위마다 콤마 찍는 방법으로 아래와 같이 toLocaleString()을 활용하는 것이 있다. 변수가 Number 타입일 때만 천 단위로 콤마를 찍어 문자열로 리턴하고 만일 숫자 데이터가 문자열이라면 제대로 동작하지 않는다. let num = 123456789; console.log(num.toLocaleString()); // 123,456,789 // 잘못된 사용예시 let strNum = "123456789"; console.log(strNum.toLocaleString()); // 123456789 https://velog.io/@devstefancho/js-toLocaleString-..
JavaScript 배열의 합 - reduce 활용 자바스크립트에서 reduce() 활용해 배열의 합계를 구하고 싶다면 아래와 같이 사용하면 된다. 아래 코드를 기준으로 acc에 누적값이 저장되고 cur이 배열의 현재 값을 의미한다. 0은 acc의 초기값이다. // example const arr = [1, 3, 5, 7]; let sum = arr.reduce((acc, cur) => acc + cur, 0); console.log(sum); // 16 https://cocobi.tistory.com/134 [JS] 자바스크립트 배열의 합계, 평균 구하기 📌 배열의 합계, 평균 구하기 자바스크립트에서 배열의 합계와 평균을 구하는 방법으로 reduce( )를 사용하면 된다. 또한, 배열의 역순으로 연산을..