일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 리눅스
- 티스토리
- 알고리즘
- 학점
- JVM
- 파이썬 소스
- jsp
- resilience4j
- auto configure
- 오라클 디비
- dynamic query
- spring
- MongoDB
- 자바 프로젝트
- K6
- smart cast
- gradle
- c#
- oracle
- 운영체제
- 프로젝트
- hyperledger
- 문법 정리
- 유사코드
- 오라클
- 파이썬
- 백준 알고리즘
- 자바
- SQL
- 초대장
- Today
- Total
목록목차 (231)
모종닷컴

K6 설치하기 맥 기준 아래 명령어로 간단하게 k6를 설치할 수 있습니다. 맥이 아닌 다른 환경은 이 링크를 통해 확인하면 될 것 같습니다. brew install k6 K6 빠르게 사용해 보기 k6의 테스트는 자바스크립트 코드를 통해 테스트 스크립트를 만들 수 있습니다. 간단하게 아래 코드를 하나 만들어서 빠르게 실행시켜 봅시다. import http from 'k6/http'; import { sleep } from 'k6'; export default function () { http.get('https://test.k6.io'); sleep(1); } 터미널에서 아래 명령어로 테스트 스크립트를 실행시켜 보겠습니다. 나중에 설명하겠지만 이 스크립트 실행을 해석하자면 한 명의 사용자가 위 스크립트를 ..

간단하게 애플리케이션 성능 테스트를 하기 위해 사용해 본 툴입니다. 다른 Jmeter, vegeta, ngrinder 등 성능 테스트를 위한 많은 툴들이 있지만 다양한 툴들을 사용해보고 싶은 니즈가 있어서 k6를 한번 사용해 봤습니다. 오늘은 k6의 대한 소개를 먼저 하려고 합니다. https://k6.io/docs/ 의 소개를 그저 번역정도만 한 내용일 거라 가벼운 마음으로 흝어보면 좋을 것 같습니다.K6가 뭡니까?엔지니어링 팀의 성능 테스트를 쉽고 생산적으로 수행할 수 있는 무료 오픈 소스 부하 테스트 도구.전체적으로 개발자 중심적이며 확장성 있는 특징을 지니고 있다시스템의 신뢰성과 성능을 테스트하고 성능 저하 및 문제를 조기에 발견할 수 있다핵심 기능CLI에서 개발자에 친근한 api를 사용할 수 있..

spring boot r2dbc와 flyway를 같이 사용하니 flyway가 실행되지 않았던 문제가 있었습니다. 이에 대한 해결법과 원인에 대해 간단하게 공유드립니다. r2dbc 반응형 프로그래밍을 통해 관계형 데이터베이스와 비동기적으로 통신하기 위한 스펙입니다. spring-boot-r2dbc는 이러한 r2dbc 스펙을 기반으로 만들어진 spring boot 프레임워크 모듈입니다. flyway Git이 코드 버전 관리 시스템이라면 flyway는 데이터베이스의 버전 관리 툴 정도로 보시면 될 것 같습니다. 좀 더 풀어서 설명하면 개발자가 애플리케이션에 변경과 관련된 SQL 스크립트를 만들어 배포하면 애플리케이션이 실행될 때 Flyway가 타깃 데이터베이스에 이 SQL을 대신 실행시킵니다. 이렇게 함으로써..
mariadb에서 시퀀스 테이블을 생성하거나 혹은 변경할 때 변수를 사용할 수 없는 제약이 있습니다. 이는 동적 쿼리를 이용하여 해결이 가능한데 간단하게 공유드립니다. MariaDB 설치 및 실행 먼저 docker를 이용해서 maria db를 설치합니다. 가장 간단하게 mariadb를 실행하는 방법은 terminal에서 docker 명령어로 실행시키는 방법입니다. docker run -d \ --name=db \ -p 3307:3306 \ -e MYSQL_ROOT_PASSWORD=password \ -e MYSQL_DATABASE=mariadb_test \ --restart always \ mariadb:10.3.8 \ mysqld --character-set-server=utf8 --collation-..

개요 이번에 Out Of Memory( = OOM) 현상을 파악하기 위해 로컬에서 재현을 위해 JVM 몇 가지 옵션들을 설정했습니다. 혹시라도 누군가에게 도움이 될 수도 있을 것 같아 간단하게 적어봅니다. 먼저 Intellij Idea와 Visual VM을 사용하고 있는데 관련 설정이 필요한 분들은 이 포스트에서 확인하시고 설치해주시면 됩니다. VisualVM에 플러그인 추가 먼저 VisualVm은 기본적으로 JVM 메모리의 힙 영역 메모리를 보여주기는 합니다. 다만 우리가 아는 Survival 영역, Eden 영역, Old Generation 영역 등이 상세히 보여주진 않고 이 합산된 값들만 보여주고 있습니다. 그래서 조금 보기가 힘든데 각 영역을 상세히 보여줄 수 있는 플러그인이 있어 먼저 이를 설치..

현재 개인 프로젝트를 진행해보고 있는데요. 이런 니즈가 생겼습니다. 로컬에서 Gradle 빌드 태스크를 돌렸을 때 실행되지 않았으면 하는 테스트 코드가 있고, CI 환경에는 테스트 코드가 실행되었으면 좋겠습니다. 예를 들어 통합 테스트 코드가 있습니다. 보통 테스트 시 데이터베이스가 필요하다면 h2 같은 인메모리 데이터베이스를 사용할 수 있는데 저는 MySQL에 특화된 테스트 코드가 있어서 h2와 같은 인메모리 데이터베이스를 사용하기가 힘들었습니다. 사실 테스트 컨테이너를 통해 MySQL을 올려 통합테스트를 만들 수도 있는데 로컬 빌드 시에는 이런 통합 테스트가 오래 걸리기도 해서 CI 환경에서만 통합테스트코드가 실행되었으면 좋겠다는 생각이 들었습니다. 통합테스트, 유닛테스트 간단하게 통합 테스트와 유닛..

shebang (셔뱅) 셔뱅이란 # 기호와 ! 기호가 붙은 형태의 문자열을 의미합니다. 스크립트의 가장 첫 줄에 선언되며, sha-bang(샤뱅), hashbang(해시뱅), pound-bang(파운드뱅), hash-pling(해시 플링), crunchbang(크런치뱅)등으로 불리기도 한다고 합니다.셔뱅은 유닉스 기반 시스템에서 스크립트 파일의 첫 번째 줄에 사용을 하는데 셔뱅 이후의 경로에 스크립트를 실행할 인터프리터 지시자의 경로를 적어줍니다. 예로 "#!/bin/sh"에서 셔뱅(#!)을 제외한 /bin/sh이 인터프리터 지시자가 됩니다. 예시(쉘 스크립트) 파일 하나를 먼저 만들겠습니다. touch sh-script vi로 파일 내용을 수정해 주도록 하겠습니다. 파일 내용은 아래와 같이 입력해 주면..

.git 디렉토리로 이동하면 hooks 라는 폴더가 존재합니다. 이를 살펴보면 아래와 같이 파일들이 존재합니다. Git Hook git hook은 리포지토리에서 특정 이벤트가 발생할 때마다 자동으로 실행되는 스크립트라고 합니다. 리포지토리를 초기화하면 Git은 이 디렉터리에 샘플 스크립트를 자동으로 만들어줍니다. 확장자가 .sample로 되어있는데 이 경우 .sample 확장자를 제거하지 않으면 실행이 되지 않는다고 합니다. Hook 범위 Hook는 특정 Git 리포지토리에 로컬로 존재하고 git clone을 실행할 때 리포지토리로 복사되지 않는다고 합니다. 이 말을 좀 더 풀어 해석하자면 .git/hooks 디렉토리가 버전 제어가 어렵기 때문에 팀 단위의 개발이라면 관리하는 것이 약간 까다로울수 있다고..

MySQL insert 실패 테스트해 보기 user 테이블 생성 CREATE TABLE `user` ( `id` bigint(11) NOT NULL AUTO_INCREMENT, `name` varchar(50) DEFAULT NULL, `age` int(11) DEFAULT NULL, PRIMARY KEY (`id`) ) Lock 테스트 세션 두 개를 열어서 테스트를 진행합니다. 세션 1에서 인덱스 레코드 락을 걸고, 세션 2에서 같은 인덱스로 insert를 실행시킬 겁니다. 이때 락은 얼마나 잡고 있을 건지는 innodb_lock_wait_timeout 설정값에 따라 다릅니다. SHOW VARIABLES LIKE 'innodb_lock_wait_timeout'; 쿼리를 이용해서 락 대기 시간이 몇 초인..

Github Action CI Github Action CI를 사용하다 보면 빌드 혹은 테스트가 실패할 때가 있습니다. 이때 Gradle은 좀 더 상세한 실패 내용을 index.html로 만들어 제공해 줍니다. 이렇게 만들어진 파일을 무척이나 보고 싶은데 워크플로 데이터라서 접근하는 것이 어렵습니다. 빌드 실패 시 위 파일을 그냥 Cat 해버릴까? 가장 처음 생각했던 방법은 단순하게 그냥 위 html을 cat 명령어로 내용을 노출시키고 그걸 복사해서 보면 되지 않을까 싶었습니다. 그래서 아래와 같이 빌드가 실패했을 경우 해당 파일을 Cat 하도록 스텝을 추가해 봤습니다. 이렇게 하니 Html 내용을 그래도 볼 수 있었는데, 복사해놓고 보니 중간중간 href로 참조하고 있는 파일들이 있다는 걸 알았습니다...