[k8s] VirtualBox k8s cluster 생성 실패 이슈 해결
·
기타/Kubernetes
배경 Windows 환경에서 k8s cluster 를 Virtual Box 로 띄우려고 하는데 실패한다. 문제 상황 minikube & virtual box 를 설치한 상태에서 minikube 로 클러스터를 virtualbox 로 띄운다. $ minikube start --drier=virtualBox 원인 => 둘중 하나만 써야한다. Windows 에서 Hyper-V 사용중이면 Virtual box 구성 불가. Hyper-V 와 Virtual Box 둘다 가상화 도구다. Hyper V 는 HyperVisor version 1 VirtualBox 는 HyperVisor version 2 을 지원한다. If you install VirtualBox on a Windows machine, Make sure ..
Presentation - Business DTO를 분리시켜라
·
JVM/Java
Layered Architecture 개발 중이라면 Presentation - Business Layer 의 Request DTO의 분리를 고려하라. 공통의 Request DTO 사용시 문제점 Controller, Service 모두 같은 RequestDTO 를 쓰면 다음과 같은 문제가 발생한다. 1. Controller 의 Validation annotation 을 Service 가 그대로 달고간다. 2. DTO에 의해 Controller Business Layer 간 의존성이 생긴다. => Controller 및 Request DTO 추가 또는 변경시 Service Layer 가 영향을 받는다. 다이어그램으로 도식화하여 표현해보겠다. 만약, API Spec 이 확장된다면 어떻게 될까? DTO 분리 예..
[Database] H2 연결 옵션
·
DataBase
🎯 GoalsSpringBoot - H2 DB 간 적절한 연결 방법을 선택할 줄 안다.SpringBoot - H2 DB Automatic mixed 연결을 직접 실행해본다. H2 DB 연결 3가지 모드1. Embedded Mode이름 그대로 JVM App 내에 DB를 '내장'하는 모드다.네트워크 IO가 없기 때문에 가장 빠른 대신 외부 클라이언트로 접근이 불가능하다는 단점이 있다. (심지어 로컬 호스트 내의 다른 앱이라도 불가하다.) 2. Server - Client ModeH2 DB 공식문서에서 추천하는 방식으로 외부에서 접근이 가능하다.대신, TCP/IP 네트워크 IO 로 데이터 통신이 이뤄지기 때문에 Latency 발생이 불가피하다.  It's recommended to use the client..
[Intellij IDEA] DB datetime 기본 출력 포맷 변경
·
기타/잡동사니
DB의 datetime 데이터 자체는 그대로 두고 출력만 내가 원하는 타임존으로 설정할 수 있을까? 설정 방법 Settings > Database > Data Editor and Viewer Display temporal data in time zone 의 기본값은 공백으로 UTC(GMT) 와 같다. 이를 원하는 타임존으로 설정해주자. 나는 서울(`Asia/Seoul`)로 설정해봤다. 타임존 설정 외에 표기 포맷도 변경 가능하다/ Intellij 2023.2~ Ultimate 버전에만 사용 가능하다. 출처 What's new in IntelliJ IDEA Check out the new features and updates in the latest IntelliJ IDEA release. www.jetb..
MongoDB + Prometheus + Grafana
·
기타
Docker Container 기반으로 MongoDB 및 Prometheus , Grafana 를 통한 모니터링 대시보드를 구성해보자. 1. MongoDB Exporter 이미지 다운로드 Docker hub.docker.com 권한 설정 mongodb CLI 에 입력 의외로 이런게 중요하다. admin 유저 권한으로 필요한 DB 유저를 생성한다. Prometheus 설정 prometheus.yaml Docker Compose 설정 굳이 image 일일히 다운받을 필요가 없다. 이거 하나면 다 됨. Grafana 설정 (1) 초기 로그인 ID: admin PW: admin (2) Data Source 설정 Prometheus 를 선택한다. (3) 대시보드 추가 아래와 같은 사이트에서 템플릿화된 대시보드를 ..
[MongoDB] Drop DB on MongoDB with test
·
DataBase/NoSQL
문제 상황 mocha + typescript + node.js + mongoDB (contianer) 환경 테스트 코드 작성 파일 단위로 테스트 완료 후 DB clean-up 을 DB Drop 하는 함수로 감싼다. DB 초기화 함수 import {MongoClient} from 'mongodb' const DEFAULT_MONGO_DB_NAMES = ['admin', 'config', 'local']; export async function initDB() : Promise { const dbClient = new MongoClient(config); await dbClient.connect(); const res = await dbClient.db().admin().listDatabases(); con..