목록분류 전체보기 (20)
킹다의 개발블로그

현재 몽고디비에는 user라는 컬렉션이 이미 생성이 되어있고 데이터들이 들어가있다. 이때 나는 graphql 과 mongoose를 이용해 ‘user’라는 컬렉션에 있는 데이터들을 조회해오고싶다. 몽구스 스키마를 생성하고 model함수를 통해 스키마를 모델로 변환했다. 그리고 find() 함수를 사용해서 조회하는 코드를 만들었다. user.js const mongoose = require("mongoose"); let Schema = mongoose.Schema; const UserSchema = new Schema({ name: { type:String, required: true }, age: { type:String }, height: { type:String }, address: { country:..
중복된 값이 있으면 중복값까지 모두 제거 배열은 예시로 let arr = [54, 55, 60, 40, 50, 80, 60]; 배열에 중복값이 있는지 확인하기 위해 중복 true, false를 반환하는 함수를 호출한다. if(isDuplicate(arr)) { rtnArr = isDuplicateIndex(arr); arr = _.uniqBy(arr); rtnArr = [...rtnArr,...arr]; const uniqueArr = rtnArr.filter((v, i)=> rtnArr.indexOf(v)===rtnArr.lastIndexOf(v)); arr = uniqueArr } 배열에 중복값이 있는지 확인하는 함수 function isDuplicate(arr) { const isDup = arr...

1. 윈도우 + R 키를 이용해 CMD 창 열기 2. netstat -a -o 명령어를 이용해 실행중인 포트 리스트 확인 후 8080 의 PID를 찾음 3. taskkill 명령어를 이용해 포트 죽이기

Spring boot 와 JSP 보다는 권장 템플릿 엔진인 타임리프를 적용해보기 1. application.yml 설정 spring: thymeleaf: enabled: true cache: false #개발시 새로고침하면 적용. prefix: classpath:templates/ suffix: .html check-template-location: true thymeleaf - enabled : 타임리프 사용 활성화 thymeleaf - cache : 서버를 재시작할 필요없이 새로 고침만으로 반영되게 할 수 있음 (캐시를 남기지 않음) 개발할 때는 false로 두고 운영 시에는 true로 설정 thymeleaf - prefix : html 폴더 classpath 경로 지정 thymeleaf - suff..

SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %h:%i'); 결과 : 만약, 오후 3시를 15시로 바꾸고 싶다면 대문자 H로 변경하기 결과 : 어제 날짜 00:00 조회해보기 SELECT CONCAT(DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d'), INTERVAL 1 DAY), ' 00:00');

도커파일 생성 FROM adoptopenjdk/openjdk11:jre-11.0.6_10-alpine RUN mkdir -p jar WORKDIR /jar RUN mkdir -p conf COPY mySampleConfig.conf /jar/conf/scouter.conf COPY ./build/libs/cemsTemplate-0.0.1-SNAPSHOT.jar boot.jar COPY scouter.agent.jar scouter.agent.jar ENTRYPOINT ["java","-javaagent:/jar/scouter.agent.jar", "-jar","/jar/boot.jar"] EXPOSE 8080 FROM adoptopenjdk/openjdk11:jre-11.0.6_10-alpine jdk1..

1. Host Agent 실행 전 Collector 접속 설정 Host Agent 실행 전 Collector의 접속 설정이 필요하다. 설정 파일에 Collector의 IP, Port 정보를 설정한다. 설정파일 : [socuter-dir]/agent.host/conf/scouter.conf 확인 기본으로 설정되어있는 ip 및 port net_collector_ip, udp_port, tcp_port는 #을 삭제후 저장 2. Host Agent 실행 [scouter-dir]/agent.host/host.bat 실행 만약 host.bat 실행이 안된다면 JVM이 충돌나는지 확인! JDK11 버전은 agent.host가 실행이 안됨. jvm이 충돌나는 걸로 보임 8로 낮춰서 실행하면 됨 Window → Pref..

1. Server 설치 Release 페이지 접속 Releases · scouter-project/scouter scouter-all-{version}.tar.gz 다운로드 압축해제 후 [scouter-dir]/scouter/server 에 들어가 startup.bat 또는 startup.sh 실행 (운영체제에 맞게 실행) netstat -an | grep 6100 확인하면 tcp 6100과 udp 6100을 사용하는 것을 볼 수 있다. 2. Client 실행 Release 페이지에서 scouter.client.product 다운로드 (운영체제에 맞게 다운로드 필요) 압축해제 후 [scouter-dir]/scouter.client/scouter.exe 실행 초기 id = admin, password = ..
스프링 배치? 이번 글은 스프링 배치에 대해 알아보자.💨 사실 스프링 배치를 처음 들었을 때는 이건 또 뭐지? 어떤 개념이지? 전혀 알 수 없었다. 하지만 예시를 보면 바로 이해가 가능하고 어렵지 않은 개념이라고 생각한다. 스프링 배치(Spring Batch) 일괄처리라고 생각하면 된다. 정해진 시간에 자동으로 진행되는 업무를 처리하는 것이다. 예를 들어 가게에서 손님이 물건을 사갈 때 마다 마감을 하진 않는다. 이러한 작업은 불필요하기 때문이다. 그래서 가게가 문을 닫은 후 마감을 진행하는데 이럴 때 일괄처리로 진행을 한다. 이런게 바로 배치라고 생각하면 된다. 일단 여기까지는 이게 어떤것인지 감이 올 것이다. 그럼 이런 일괄처리를 어디서 사용할까? 1. 대용량의 비즈니스 데이터를 복잡한 작업으로 처리..
Docker Compose란? 도커 컴포즈는 여러 개의 컨테이너(container)로 구성된 애플리케이션을 관리하기 위한 간단한 오케스트레이션(Orchestration) 도구 YAML 파일로 도커 컴포즈를 사용할 수 있다. 도커 컴포즈안에는 크게 4가지 항목으로 구성되어 있다. 버전 정의 서비스 정의 볼륨 정의 네트워크 정의 docker-compose.yaml 예제 version: "3" services: back: image: youhost/fems:latest ports: - 9000:8080 1. 버전 정의 version 되도록 최근 버전을 사용하는 것이 좋다. YAML 파일의 맨 윗부분에 명시한다. 2. 서비스 정의 services 컨테이너를 실행하기 위해 정의한다. 컨테이너는 곧 서비스라는 개념..