0. 시작하며https://nooroongzi.tistory.com/16 [InfluxDB] MySQL과 성능 비교0. 시작하며 지난 포스팅에서 이론적으로 InfluxDB에 대해 알아보았습니다. 이번 포스팅에선 InfluxDB를 사용해보고 다음 두가지의 조회 속도에 대해 측정을 진행해 보려고 합니다. 쿼리레벨 연산과nooroongzi.tistory.comk6를 활용해 부하테스트의 지표로 DBMS의 성능을 테스트했던 과정을 공유합니다. 1. 진행 과정처음 시도는 Naver에서 만든 오픈소스인 nGrinder를 사용하여 진행하고자 했습니다. nGrinder는 Java진영의 Junit5 기반의 Groovy언어로 스크립트를 작성할 수 있고, 한글로된 문서들이 많아 좀 더 쉽게 사용할 수 있을 줄 알았습니다만....
0. 시작하며지난 포스팅에서 이론적으로 InfluxDB에 대해 알아보았습니다. 이번 포스팅에선 InfluxDB를 사용해보고 다음 두가지의 조회 속도에 대해 측정을 진행해 보려고 합니다. 쿼리레벨 연산과 코드레벨 연산의 조회 성능 비교프로젝트를 하며 개발했던 API중 시간적 리소스로인해 코드레벨 연산을 그대로 두고 마무리했던 로직을 재현InfluxDB와 MySQL 성능 비교직접 Infra부터 설정해 진했지만 간단히 설명하고 넘어가겠습니다! ※ 비교 환경infra: AWS EC2 (t2.micro) ubuntu, dockerDB: inflxuDB 2.7.4, MySQL8.2 ( data: InfluxDB에서 제공하는 bitcoin price sample data를 활용했습니다. 7788 row)Server:..
0. 시작하며 서비스를 개발, 배포를 해보니 자연스럽게 누가 언제 얼마나 내 서비스를 사용하는지 궁금할 때가 있었습니다. 이런 생각을 같이 하고있던 팀원들과 함께 서비스 로그를 수집하고 분석하여 제공하는 대시보드 프로젝트를 진행했는데요. 이때 사용했던 InfluxDB에 대해 정리하려합니다. 1. 후보군 https://www.influxdata.com/comparison/ Compare Popular Databases See how the most popular databases compare to each other on prices, features, scalability, and more using this side-by-side comparison. www.influxdata.com InfluxDB..
0. 시작하며 https://nooroongzi.tistory.com/12 [SpringBoot] SSE알림과 비동기 0. 시작하며 프로젝트에서 SSE(Server Sent Event) 방식의 알림을 구현을 담당했습니다. 이때발생한 에러와 트러블 슈팅을 기록하려합니다. 1. 알림 구현 방식 후보군 1-1 Short Polling 클라이언트가 서버 nooroongzi.tistory.com 위 글에서 이어지는 글 입니다. SpringBoot에서의 비동기처리를할때 많이 고려되는 ConcurrentHashMap에대하여 알아보겠습니다. 1. ConcurrentHashMap 이란? Multi-Thread 환경에서 동시성을 고려하여 최적화한 자료구조 입니다. 여러 스레드가 맵에 동시에 접근해도 성능이 저하되지 않도록..
0. 시작하며 https://nooroongzi.tistory.com/12 [SpringBoot] SSE알림과 비동기 0. 시작하며 프로젝트에서 SSE(Server Sent Event) 방식의 알림을 구현을 담당했습니다. 이때발생한 에러와 트러블 슈팅을 기록하려합니다. 1. 알림 구현 방식 후보군 1-1 Short Polling 클라이언트가 서버 nooroongzi.tistory.com 위 글에서 이어지는 글 입니다. SpringBoot에서의 비동기처리를할때 많이 고려되는 CompletableFuture에대하여 알아보겠습니다. 1.CompletableFuture란? 자바에서 비동기프로그래밍을 가능하게 하는 인터페이스 입니다. 이름에서도 알 수 있듯 Future에서 발전된형태이며 단점을 보완했습니다. 이를..
0. 시작하며 프로젝트에서 SSE(Server Sent Event) 방식의 알림을 구현을 담당했습니다. 이때발생한 에러와 트러블 슈팅을 기록하려합니다. 1. 알림 구현 방식 후보군 1-1 Short Polling 클라이언트가 서버에 요청을 보내어 새로운 정보가 있는지 확인하는 방식입니다. 서버는 즉시 응답을 보내며 사용가능한 데이터가 있다면 보내줍니다. 일정 시간 혹은 동작후, 클라이언트는 다시 서버에 요청을 보내게됩니다. 이 방법은 쉽고 빠르게 구현될 수 있지만 필요치 않은 클라이언트의 요청이 많이 생길 수 있습니다. 이는 트래픽과 서버의 부담이될 수 있는 요인입니다. 1-2 Long Polling Short Polling에서 조금 더 개선된 방식입니다. 마찬가지로 클라이언트가 서버에 요청을 보내어 사..