전체 글

전체 글

    [Javascript] setInterval 바로 실행하기

    [Javascript] setInterval 바로 실행하기

    setInterval 함수는 인자로 받은 함수를 특정시간마다 실행시키는 함수이다. 즉시 실행되지 않고 먼저 기다린 뒤 특정 시간 간격으로 실행된다. setInterval(console.log("hello world"), 10000); // 1000 = 1초 // 10초 뒤 hello world 출력 // 20초 뒤 hello world 출력 // 30초 뒤 hello world 출력 // ... 하지만, 먼저 실행을 시키고 일정간격으로 동작시키고 싶을 때가 있다! 그럴땐 아래처럼 코드를 두 줄로 써도 가능하지만, 실행하는 함수가 중복이 된다. 아래 코드의 경우 console.log("hello world")가 중복이다. console.log("hello world") setInterval(console...

    [Mysql] mysql에서 현재 연결된 connection 찾기

    Node.js와 Mysql사이에 발생한 Connection lost 문제를 알아보던 중 사용한 mysql 명령어들을 정리한다. 현재 연결된 Thread 개수 show status like 'Threads_connected'; 현재 실행중인 Thread 개수 show status like 'Threads_running'; 최대 가능한 connection 개수 show variables like 'max_connections'; 현재 연결된 connection 목록 show full processlist;

    [Docker] Mysql 여러개 관리하기

    [Docker] Mysql 여러개 관리하기

    현재 한 프로젝트에서 DB를 여러개 사용하고 있다. 한 Host의 한 Port만 사용하는게 아닌, 여러 DB를 병렬적으로 사용중이다. 이와 유사한 환경에서 connection 테스트를 하기 위해 여러 port의 mysql을 만들려고 했는데, 기존에는 homebrew를 이용하여 port:3306의 mysql 서버 1개만 사용했었기때문에 Docker를 사용했다. Docker를 사용하면 port를 달리해서, 여러 mysql 서버를 관리할 수 있다. docker run -d -p {PORT}:3306 --name {DB_NAME} -e MYSQL_ROOT_PASSWORD={DB_PASSWORD} -d mysql # docker run -d -p 3307:3306 --name testdb -e MYSQL_ROOT..

    [NestJS] .env사용하기

    환경변수를 사용하시 위해 Node.js에서는 dotenv를 사용하는데, NestJS에서 @nestjs/config를 사용하면 된다. (@nestjs/config에서도 내부적으로는 dotenv를 사용한다.) 1. @nestjs/config를 설치한다. $ npm i @nestjs/config 2. app.module.ts의 imports에 ConfigModule을 추가한다. app.module.ts import { Module } from '@nestjs/common'; import { ConfigModule } from '@nestjs/config'; @Module({ imports: [ConfigModule.forRoot()], controllers: [], providers: [], }) export..

    switch문 OR연산하기

    switch문을 쓸때 case부분을 OR 연산하고 싶을때 switch(value){ case 1: case 2: // do something break; ... } 이렇게하면 value가 1 또는 2인 경우에 실행이 된다!

    [MySql] 숫자/문자 자리수 맞추기 (LPAD, RPAD)

    날짜의 경우, 주로 고정된 자리수로 표기하게 된다. 한자리 숫자인 경우 앞에 0이 붙어야한다. 예를 들어 2-28로 표기하지 않고, 02-28과 같이 표기하는 것을 sql을 이용해보면 LPAD('값', '2', '0') # 값, 자리수, 빈값에 넣을 문자 LPAD는 자리수를 맞추고, 남은자리에 3번째 파라미터의 값을 채워넣게된다. SELECT LPAD(2, '2', '0'); # result: '02' SELECT LPAD(1, '5', '0'); # result: '00001' LPAD는 왼쪽이라면, RPAD는 값의 오른쪽에 자리수를 맞춰서 문자를 넣는다. SELECT RPAD(1, '2', '0'); # result: '10' SELECT RPAD(100, '5', '0'); # result: '10..

    [MySql] GROUP BY 내부 정렬하기

    [MySql] GROUP BY 내부 정렬하기

    각 그룹내에서 랜덤한 행, 또는 특정조건으로 정렬을 해야하는 경우 나는 seedIdx컬럼으로 GROUP BY를 하고, 그룹내에서 stage를 랜덤하게 추출하고 싶다. SELECT * FROM PlantImg; 아주 단순하게 생각해서, 정렬(ORDER BY)과 그룹화(GROUP BY)를 동시에 해보면 SELECT idx, seedIdx, stage FROM PlantImg GROUP BY seedIdx ORDER BY RAND(); 이렇게 GROUP BY가 먼저 수행되기때문에 그루핑된 행들이 정렬되게 된다. 그래서 stage는 내부에서 정렬이 되지 않고 모두 각 그룹의 첫번째 행인 stage=1이 나오게 되었다. 해결방법 SELECT seedIdx, (SELECT stage FROM PlantImg WHE..

    [Spring Boot][Firebase] FCM설정 시, Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~

    [Spring Boot][Firebase] FCM설정 시, Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~

    바쁘신 분들을 위한 해결책 요약 firebase-message-sw.js 경로 확인 -> resources/static 경로에 있어야합니다!!!! https적용 여부, 나는 http://localhost에서도 1번 해결책만으로 위 오류는 없어졌지만, https에서만 된다고는 하니, 안된다면 시도해보길! 이슈 음~ 아까 생긴 오류 해결한지 30분도 안되서 오류 하나 추가요... 너무 좋다~~🙃🙃 FCM테스트 하려고 하는데 Messaging: We are unable to register the default service worker. Failed to register a ServiceWorker for scope ~ 검색해보니 http에서 이런에러가 난다길래, https적용된 도메인에 올려서 다시 테스트..

    [Spring Boot] Restful API 404 Found, html 출력

    [Spring Boot] Restful API 404 Found, html 출력

    이슈 최근에, Spring Boot를 initializr부터 직접사용해서 프로젝트를 만들어보고 있는데, 단순한 테스트용 Get API부터 호출이 안되고 404 Not Found가 떴다. 분명 제대로 만들 것 같은데...왜그런가해서 검색을 해보니 패키지 기본 경로 ex) com.demo.example 이 아래에 Controller및 Application 파일이 있지 않으면 찾지 못해서라고 한다. 하지만 나는 기본 경로 아래에 잘 작성한 것 같다고 생각되었다. 문제 & 해결 계속 Controller에서 이 경로로 못들어오는 줄 알았는데, 혹시나해서 프린트를 찍어봤더니 "hi"는 출력이 된다! 그럼 return "test"가 제대로 동작하지 않아서 Not found가 뜬다는 것이다. 현재 "test"에 노란줄..

    ubuntu에 Jenkins설치, E: Package 'jenkins' has no installation candidate

    ubuntu에 Jenkins설치, E: Package 'jenkins' has no installation candidate

    Issue ubuntu에 jenkins를 설치하려했는데, 바로 Error 발생 $ sudo apt-get install jenkins E: Package 'jenkins' has no installation candidate 문제 jenkins key가 변경되어서 위와 같은 에러가 뜰 수 있다고 한다! 해결 wget -q -O - https://pkg.jenkins.io/debian/jenkins.io.key | sudo apt-key add - sudo sh -c 'echo deb https://pkg.jenkins.io/debian-stable binary/ > \ /etc/apt/sources.list.d/jenkins.list' sudo apt-get update sudo apt-get insta..