FROM ubuntu:22.04RUN apt-get update && apt-get install -y \ openjdk-17-jdk \ wget \ gnupg \ && wget -q -O - https://dl.google.com/linux/linux_signing_key.pub | apt-key add - \ && if [ "$(uname -m)" = "aarch64" ]; then \ echo "Using Chromium for ARM64"; \ apt-get install -y chromium; \ else \ echo "Using Google Chrome for x86_64"; \ echo "deb [..
0. 들어가며테스트 환경을 구축할 수 있는 오픈소스 Testcontainers에 대하여 알아보겠습니다. 1. Testcontainers란?Java, go 등 여러 언어에서 사용할 수 있는 Test 환경 구성 오픈소스입니다.프로젝트 유닛, 통합 테스트를 진행할때 DBMS, Kafka, Nginx등의 외부 서비스와는 격리하여 테스트를 작성하는 경우가 많습니다.테스트를 하더라도, test 수행으로 인해 환경이 오염되고 깨지는 문제가 발생할 수 있죠.예를 들어 운영 환경에서, Postgre SQL을 쓰지만 test 환경에서 인메모리 H2 Database를 사용할 수 있는데, 이는 정확한 환경 일치라고 할 수 없습니다. 개발자 입장에서 PostgreSQL의 새롭고 좋은 기능을 발견해도, H2 Database에 구..
0. 시작하며https://nooroongzi.tistory.com/19 [SonarQube] 소나큐브 연동하기0. 시작하며 개인적으로 프로젝트 리팩토링을할때 "기존 대비 ~~의 향상!" 이라는 부분이 필요하다고 느꼈습니다. 따라서 프로젝트 코드의 기존 상태를 파악하기위해 사용한 소나큐브에대한 기nooroongzi.tistory.com저번글에 이어서 Jacoco도 같이 사용하는 방법을 가져왔습니다. Gradle 프로젝트 기반으로 진행하겠습니다! 또한 제가 사용한 소나큐브와 자코코의 버전은 java17과 호환합니다. 1. Jacoco란?Jacoco란 Java코드의 테스트 커버리지를 체크하는 라이브러리입니다. 테스트로 얼마나 커버가 되는지 수치와 html, xml등의 리포트로 확인할 수 있어서 직관적으로 바..
0. 시작하며개인적으로 프로젝트 리팩토링을할때 "기존 대비 ~~의 향상!" 이라는 부분이 필요하다고 느꼈습니다. 따라서 프로젝트 코드의 기존 상태를 파악하기위해 사용한 소나큐브에대한 기록을 하려고합니다. 1. 소나큐브란?SonarQube란 여러가지 프로그래밍 언어에서 버그, 취약점, 테스트 커버리지 등을 분석해주는 정적 코드 분석 도구입니다. 간단한 연동을 통해 자동으로 분석해주니 지속적 관리에 좋다고 생각하여 연동했습니다. 소나 큐브 구성SonarQube Server : 웹 어플리케이션의 형태로 SonarQube Scanner 로 업로드한 소스 코드를 분석하고 보여줍니다SonarQube Database : SonarQube 분석 결과를 저장SonarQube Scanner : SonarQube 분석을 위..
0. 시작하며https://nooroongzi.tistory.com/16 [InfluxDB] MySQL과 성능 비교0. 시작하며 지난 포스팅에서 이론적으로 InfluxDB에 대해 알아보았습니다. 이번 포스팅에선 InfluxDB를 사용해보고 다음 두가지의 조회 속도에 대해 측정을 진행해 보려고 합니다. 쿼리레벨 연산과nooroongzi.tistory.comk6를 활용해 부하테스트의 지표로 DBMS의 성능을 테스트했던 과정을 공유합니다. 1. 진행 과정처음 시도는 Naver에서 만든 오픈소스인 nGrinder를 사용하여 진행하고자 했습니다. nGrinder는 Java진영의 Junit5 기반의 Groovy언어로 스크립트를 작성할 수 있고, 한글로된 문서들이 많아 좀 더 쉽게 사용할 수 있을 줄 알았습니다만....