전체 글

· 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
🎯 Goals SpringBoot - H2 DB 간 적절한 연결 방법을 선택할 줄 안다. SpringBoot - H2 DB Automatic mixed 연결을 직접 실행해본다. H2 DB 연결 3가지 모드 1. Embedded Mode 이름 그대로 JVM App 내에 DB를 '내장'하는 모드다. 네트워크 IO가 없기 때문에 가장 빠른 대신 외부 클라이언트로 접근이 불가능하다는 단점이 있다. (심지어 로컬 호스트 내의 다른 앱이라도 불가하다.) 2. Server - Client Mode H2 DB 공식문서에서 추천하는 방식으로 외부에서 접근이 가능하다. 대신, TCP/IP 네트워크 IO 로 데이터 통신이 이뤄지기 때문에 Latency 발생이 불가피하다. It's recommended to use the c..
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..
· 기타
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) 대시보드 추가 아래와 같은 사이트에서 템플릿화된 대시보드를 ..
문제 상황 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..
· Private
개발 Design Pattern 대표적인 패턴 9가지 Docker container & compose Go goroutine Windows & macOS desktop app packaging msix pkg, dmg 사업 Toolbox Dev 는 개인 사이드 프로젝트로 시작했지만, 사업 아이템의 모습으로 변모하고있다. 할말이 참 많다. 많은 시행착오를 겪었고 포기하고 싶은 마음이 들었었다. 개발보다도 앱 패키징과 마케팅 과정에서.. 앱 랜딩페이지 구성 유튜브 영상 촬영 Google Ads & Analytics 개인정보 처리방침 Apple & Microsoft 개발자 등록 및 앱 패키징 진짜 만만한게 없었고 정교하게 작업해야만했다. 아무것도 그냥 알아서 되는 것은 없다. Toolbox Dev v1.0.0..
M_Falcon
Falcon