본문 바로가기

분류 전체보기231

k6를 이용한 부하테스트 방법 k6는 Grafana Labs에서 만든 부하 테스트 툴로 API 엔드포인트에 대한 성능 테스트 도구로 사용되며 오픈소스이다. 부하테스트 및 테스트 시나리오를 자바스크립트 코드 기반으로 작성하여 재사용성과 가독성이 좋다. (타입스크립트로도 작성 가능) k6 의 설치 방법과 부하테스트 방법에 대해서 정리한다. k6를 이용한 부하테스트 방법 설치 다음 명령어를 통해 설치가 가능하다. (Mac OS 기준) brew install k6 OS가 다르다면 아래 문서를 참고하여 설치해준다. https://k6.io/docs/get-started/installation/ Installation k6 has packages for Linux, Mac, and Windows. As alternatives, you can a.. 2023. 3. 8.
VisualVM을 통한 원격 서버 도커 내 JVM 성능 모니터링 메모리 관련 이슈가 발생하여 (java.lang.OutOfMemoryError: Java heap space) 원인 분석을 위해 VisualVM을 사용하였고 해당 내용을 정리한다. OutOfMemoryError: Java heap space 가 발생한다면 힙 메모리의 사이즈를 늘리면 해결은 할 수 있겠지만 근본적인 원인을 해결하는 것은 아니기에 해당 방법은 추천하지 않는다. OOME 발생 시 메모리 관련 분석 툴 중에서는 VisualVM / Jmap / Eclipse Memory Analyzer 등이 있는데 그 중에서도 JVM을 실시간으로 모니터링을 할 수 있고 heap 덤프도 제공하는 툴인 VisualVM을 사용하기로 했다. 기본적으로 로컬 환경에서 분석하는 방법은 해당 툴이 알아서 인식하기에 따로 설.. 2023. 3. 4.
Github Actions & Docker & AWS ECR 을 활용한 CI/CD 구축 (1) - EC2 생성 & ECR 생성 & IAM 사용자 생성 기존에는 CI/CD 툴로 유명한 젠킨스를 사용하였지만 새로운 프로젝트를 하게 되어 개발하면서 빼놓을 수 없는 CI/CD 환경을 구축하기 위해서 Github에서 제공하는 Github Actions를 이용하여 CI/CD 환경을 구축하였다. Jenkins 와는 다르게 별도의 서버가 필요 없다는 장점이 있다. 구글링을 해보면 Github Actions CI/CD를 검색해보면 정말 다양한 방법들의 구축 방법들이 있다. 이 글에서는 Github Actions + Docker + AWS ECR + AWS EC2 환경에서의 CI/CD 환경 구축 방법에 대해서 정리한다. 내용이 많아 아래와 같이 총 3단계에 걸쳐서 내용을 정리한다. 1. EC2 생성 & ECR 생성 & IAM 사용자 생성 2. EC2 접속 후 JDK, .. 2023. 3. 1.
AWS - EC2 생성 및 접속 방법 EC2란 AWS에서 제공하는 클라우드 환경의 서버이다. EC2는 Amazon Elastic Compute Cloud의 약자이며, 이번 시간에는 EC2를 생성하는 방법에 대해서 정리하며 아래 순서대로 따라 실행하면 생성과 접속이 가능하다. (리전은 서울 지역으로 설정) AWS - EC2 생성 및 접속 방법 AWS EC2 대시보드 접속 첫번째로 AWS에 접속한다. https://aws.amazon.com/ko/ 클라우드 서비스 | 클라우드 컴퓨팅 솔루션| Amazon Web Services aws.amazon.com 만약 가입이 되어 있지 않다면 가입을 먼저해주자. 로그인 후 메인 화면에서 지역을 서울로 선택한다. (혹여 다른 지역 서비스 필요할 때는 해당 지역에 맞게 선택) 검색창에 ec2 검색하여 이동 .. 2023. 2. 27.
Spring - @ConfigurationProperties 사용방법 정리 및 @ConstructorBinding @ConfigurationProperties은 *.properties or *.yml 파일에 있는 property를 자바 클래스에 값을 가져와 사용할 수 있게 해주는 어노테이션이다. @Value를 통해서도 값을 가지고 올 수 있지만 클래스 파일로 관리할 수 있다는 점에서 차이가 있다. 스프링부트 2.2 버전 전 후로 사용방법에 차이가 있어 내용을 정리함과 동시에 @ConstructorBinding 어노테이션에 대해서도 정리한다. Spring - @ConfigurationProperties 사용방법 정리 및 @ConstructorBinding @ConfigurationProperties 스프링부트 2.2 버전 이전 사용방법 기존에는 @ConfigurationProperties 사용하기 위해서는 @Confi.. 2023. 2. 25.
H2 Database 연동 및 콘솔 접속 방법 정리 (+runtimeOnly) 애플리케이션을 개발 할 때 초기 테스트 디비로 H2 데이터베이스를 많이 사용하므로 설정하는 방법을 정리하고 설정할 때 궁금했던 점을 같이 정리해논다. H2 Database 연동 및 콘솔 접속 방법 정리 (+runtimeOnly) H2 데이터베이스 테스트 시 사용 이유 설정방법을 정리 해놓기 앞서 왜 테스트 데이터베이스로 많이 사용하는지에 대해서 정리하려고 한다. H2 데이터베이스는 다음과 같은 이유로 애플리케이션에서 개발 및 테스트 목적으로 메모리 내 데이터베이스로 사용된다. 1. 경량 및 내장형 - 내장형 디비로 실행하는데 별도의 서버 프로세스가 필요하지 않다. 대신 스프링부트 애플리케이션 내에서 라이브러리로 실행되어 손쉽게 개발 및 테스트를 목적으로 사용할 수 있다. 2. 빠르다 - H2 디비는 속도.. 2023. 2. 22.