댓또

    JMeter 사용법 및 Springboot App 부하테스트

    JMeter 사용법 및 Springboot App 부하테스트

    들어가며 Application을 개발한 뒤 성능을 테스트할 필요가 있다. 예상되는 실제 사용량 또는 부하를 시뮬레이션하여 만들어진 Application의 한계를 확인하고, 개선을 통해 안정적으로 서비스를 제공할 수 있기 때문이다. 부하 테스트를 수행하면 Application이 실제 사용 시나리오에서 어떤 성능을 보이는지, 동시에 사용자 수가 증가할 때 시스템이 어떻게 반응하는지 등을 확인할 수 있다. 이를 통해 문제를 개선할 수 있는 지점을 찾아낼 수 있게 된다. 이번 포스팅에서는 Springboot를 기반으로 개발한 WAS를 Apache Software Foundation에서 개발한 Java 기반의 오픈 소스 부하테스트 도구인 JMeter를 이용하여 테스트하는 법에 대해 알아보도록 한다. Apache ..

    Kerberos Authentication을 이용한 Kafka 보안

    Kerberos Authentication을 이용한 Kafka 보안

    들어가며 이번 포스팅에서는 MSA 기반 시스템에서 이벤트 파이프라인 역할을 주로 하는 Kafka(카프카)의 보안 방식에 대해 알아보도록 한다. 카프카 클러스터는 기본적으로 암호화 인증이나 ACLs 설정이 되어 있지 않다. 그래서 모든 클라이언트는 PLAINTEXT 포트를 사용하여 통신이 가능하다. 또한 네트워크 분할 and/or ACLs를 사용하여 신뢰할 수 있는 IP만 접근이 가능하도록 제한할 수 있다. 접근 제어 목록 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 접근 제어 목록[1](access control list, ACL) 또는 액세스 제어 목록[2]은 개체나 개체 속성에 적용되어 있는 허가 목록을 말한다. 이 목록은 누가 또는 무엇이 객체 접 ko.wikipedia.o..

    Docker Image 사이즈 줄이기

    Docker Image 사이즈 줄이기

    들어가며 이번 포스팅에서는 효과적으로 Docker image를 빌드하여 사이즈를 줄이는 방법에 대해서 알아보도록 한다. 필자는 주로 Spring Boot App을 빌드/배포한다. 오늘 다룰 조사내용을 알게 되기 이전에는 이미지의 크기가 마이크로서비스 하나당 약 700M 정도 잡아먹었다. 하지만 지금은 약 300M 정도까지 줄여서 사용하고 있다. ( x 마이크로 서비스 갯수 x 버전별 이미지 이런 식으로 계산해 보면 레이어가 재활용된다고 해도 생각보다 큰 용량을 차지하게 된다.) Docker Image에 대하여 Docker Image는 원하는 프로세스를 구동하기 위한 모든 파일들을 한번에 묶은 것이다. Docker Image는 순수한 파일들의 집합으로써 메모리 정보나 독자적인 형식으로 저장된 시스템 정보 ..

    Microservice Architecture의 서비스 설계, 개발, 관리 방식

    Microservice Architecture의 서비스 설계, 개발, 관리 방식

    들어가며 마이크로서비스 입문 단계에서 가장 고민스러운 부분은 '거대한 하나의 시스템을 어떤 식으로 나누는 것이 좋은가?' 이다. 필자가 2년간 마이크로서비스 기반으로 시스템을 설계하면서 느낀 것은 답은 정해져 있지 않다는 것이다. 고객과 약속한 SLA(Service Level Agreement)가 존재하거나, 시스템에서 미션크리티컬한 기능, 또는 관리적인 부분, 생산성을 위한 젼략 등 중요하게 생각하는 관점이 매번 달라지기 때문이다. 개발자가 반복문을 사용함에 있어 for 문 foreach 문 while 문 중 하나를 선택하여 개발하는 것처럼 시스템에서 제공해야 할 기능을 잘 동작한다면 상관없다. 하지만 필자가 처음 설계할 때는 뭔가 정답이 있을 것만 같아서 개운치 않은 기분을 느낀 적이 많았다. 이번 ..