목록전체 글 (123)
마이의 개발 블로그
배경최근 진행하는 프로젝트 요구사항에 맞춰 빌드 방식을 gradle -> maven으로 전환 후 전체 디렉토리 구조를 손봐야하는 일이 있었습니다. 이 과정에서 .gradle 폴더의 삭제도 필요했는데, 디렉토리를 삭제하더라도 git에서 변화사항을 감지하지 못하는 현상이 발견되었습니다. 알고보니 git은 파일의 변화가 없으면 디렉토리의 변화를 별도로 감지하지 않는데 이를 위해서는 강제로 변화를 감지하게 해야합니다. 이번 포스트에서는 그 방법을 소개하고자 합니다.방법1. 디렉토리 삭제macOS / Linuxrm -rf .gradleWindowsrmdir /s /q .gradle2. Git에서 강제로 변화 감지 후 커밋하기git add -Agit commit -m "Remove .gradle folder"Not..

배경아래 스크린샷의 메시지와 함께 스웨거가 렌더링되지 않는 현상이 발생했습니다. 내용만 보면 간단한 문제같아 보입니다. OpenAPI 설정에 필요한 버전 정보를 명시해주면 되는 것처럼 보이기 때문입니다. 취합한 정보를 바탕으로 여러 가지 방법을 적용해봤습니다. 그 과정에서 application.properties에 설정값도 넣어보고, @OpenAPIDefinition 어노테이션을 통해 문서 정보를 기입해보기도 하고, 별도의 SwaggerConfig 클래스를 생성하여 설정을 주입해보기도 하고, 스프링부트 버전과 springdoc의 버전을 변경해보기도 했지만 문제를 해결할 수는 없었습니다. 문제의 원인1. 파싱 불가능한 형태로 openapi 명세가 리턴됨스웨거에서는 왜 버전 필드를 읽어오지 못했을까요?저..
배경지정된 사양에서의 부하테스트를 위해 도커가 사용하는 로컬머신의 코어와 메모리를 제한할 필요가 있었습니다. 하나의 도커 컨테이너만 동작시킨다면 실행 옵션에 명령어를 사용하는 방법도 있겠습니다만, 10개 이상의 도커 컨테이너가 도커 컴포즈로 동작하는 상황이었기 때문에 자원을 유동적으로 공유해서 사용해야하므로 OS에서 도커에게 할당하는 자원을 제한하는 편이 낫다고 판단했습니다. 여기서는 cgroups 명령어를 통해 도커 사용 자원을 제한하는 방법을 소개하고자 합니다. cgroups 명령어를 통해 도커 사용 자원을 제한하는 방법1. cgroups 디렉토리 생성(디렉토리명: docker_limit)sudo cgcreate -g memory,cpu:/docker_limit2. CPU, 메모리 제한 설정 추가//..

배경납품한 솔루션 WAS의 응답이 피크 시간대에 느려지는 현상이 관찰되었습니다. 초당 약 600개 이상의 페이지 요청이 지속적으로 발생함을 모니터링할 수 있었는데 이는 기존 고객사들 대비 많은 처리량을 요구하다보니 별도의 조치가 필요했습니다. 이에 따라 제한된 자원 내에서 수평 스케일(scale-out)에 대한 부하 테스트를 수행하여 적당한 타협점을 도출해낼 수 있었는데, 그 과정과 결과를 공유하고자 합니다. 로드밸런싱은 도커와 Nginx를 이용하여 수행했습니다.테스트 수행 방식- JMeter 이용- OS에서 도커 자원 제한: 8코어 16GB 메모리 (다수 컨테이너가 공유함)- 가장 많은 부하가 걸리는 WAS의 API에 대해 초당 요청 수를 증가시켜가며 평균, 최대 응답시간 측정테스트 결과*결과표의 'C..
배경도커 관련 의존성과 설정 파일들을 삭제한 후에도 도커 네트워크 인터페이스가 남아있는 경우가 있었습니다. 도커가 아직 설치되어있는 상태라면 docker network ls, docker network rm 명령어를 통해 네트워크 인터페이스도 함께 삭제할 수 있지만, 도커를 사용할 수 없는 경우 도커 네트워크 삭제를 위해 사용 가능한 간단한 명령어를 소개합니다.방법- iproute 설치: yum install iproute- 명령어 입력:ip -o link show | awk '/02:42/ && /docker0|br-/ {print $2}' | sed 's/://g' | xargs -I {} ip link delete {}명령어 설명1) ip -o link show- 현재 시스템의 네트워크 인터페이스..