9월 11일, 운이 좋게도 Josh Long 밋업과 동시에 오픈소스 밋업에 당첨 소식 문자가 날라왔다. 장소는 이전과 마찬가지로 경기 스타트업캠퍼스였고, Josh Long 밋업 위치와는 다르게 인프랩 사무실에서 진행했다. 도착하자마자 정문에는 참가자들이 먹을 음료수와 샌드위치가 산처럼 쌓여있었다. 참가자 등록을 하고 명찰을 받은 후에, 다목적실(?) 같은 곳에 참가자들이 모여있어, 그곳에서 대기를 하고 있었는데 그 너머에 인프랩 사무실이 보였다. 사무실은 되게 넓었고, 탕비실은 먹을 것이 엄청 많았다.. (사무실은 사진을 못 찍음) 오늘 오픈소스 밋업에서의 발표자는 라인플러스에서 개발하고 계신 김인제 님이셨다. 밋업의 내용은, 쉽게 오픈소스에 참여할 수 있도록 도움을 줄 수 있는 프로그램의 홍보와..
2024년 9월 9일, 판교의 스타트업캠퍼스에서 인프런 주관으로 Josh Long을 초청하여 밋업 행사가 열렸다. 매번 인프런 퇴근길 밋업 행사에 신청을 넣었지만 계속 떨어지고 있던 찰나, 가장 규모가 큰 퇴근길 밋업에 추첨되었다. https://www.inflearn.com/course/offline/josh-long-meetup?srsltid=AfmBOopz_3eiPQtM6wvgJ4WoscuW6nTGhEz7vqZwHx59-I2EoXGfRZDy#program [지금 무료] [인프런 X VMware Tanzu] Spring Boot 밋업 with Josh Long | 인프런 - 인프런인프런 | , 자바 챔피언, 스프링 개발자 애드버킷Josh Long과 함께하는 특별한 Spring Boot 밋업! 인프런 ..
데이터의 양이 기하급수적으로 많은 IT 환경에서, 효율적인 데이터 관리와 저장은 중요한 과제로 떠오르고 있다.특히 대규모 시계열 데이터를 다루는 경우, 데이터의 저장 공간을 최적화하고 전송 속도를 향상시키는 것이 핵심 과제이다. 이번 포스팅에서는 사내 평가 데이터 테이블을 특정 인덱스로 조회한 뒤, 칼럼별로 정리된 리스트 데이터를 효율적으로 압축할 수 있는 솔루션을 개발한 경험을 공유하고자 하는 목적이 있다.이 솔루션은 gorilla 알고리즘을 활용해 Time, Timestamp 데이터와 부동소수점 데이터를 효과적으로 압축하여, 데이터의 효율적인 관리와 조회 속도를 개선하는 것을 목표로 하고 있으며 평가 데이터 테이블을 특정 인덱스로 조회하여 List형태로 가공하고, 이를 특정 알고리즘을 사용하여 효율적..
사내 데이터베이스에는 엄청나게 많은 시계열 데이터들이 있다.이 데이터들을 조회하거나 적재할 때 많은 시간이 소요되는데, 이 문제점을 해결해줄 것이 바로 시계열 데이터의 압축(Time-Series Compression)이다. 시계열 데이터의 압축 알고리즘 중, 가장 대중적으로 사용되는 알고리즘인 "고릴라 알고리즘" 에 대해 포스팅을 해 보자. 포스팅 전, 1-2주 정도 시간을 가지고 논문과 여러 참고자료를 조사하고 분석했다. 회사에서 신규 프로젝트로 구현해야 하는 것이 "시계열 평가 데이터 압축 모듈 구현"이라 분석하지 않을 수 없었다.https://www.vldb.org/pvldb/vol8/p1816-teller.pdf 한글로 된 레퍼런스는 거의 보이지 않았고, 영어로 논문에 대해 의견을 내거나 분석한..
회사에서 제공하는 웹 서비스는 B to B 모델이면서, 엄청나게 많은 데이터를 다룬다. (유저 데이터는 아니고 장비 데이터임) 이 웹 서비스의 초기 개발이 마치면서 나에게 기술과제가 하나 주어졌는데 그건 바로 데이터의 압축이다. 본 포스팅은 해당 압축에 대해 자료조사 했던 내용들과, 논문에 대해 해석한 내용을 바탕으로 작성한 것이다. 1. 압축???데이터 압축은 저장 공간을 절약하고 전송 속도를 높이기 위해 데이터를 효율적으로 변환하는 기술이다. 흔히 우리가 사용하는 알집이나, 반디집 같은 프로그램을 사용하여 특정 Encoding 알고리즘들로 원본 파일에 비해 더 작은 파일로 압축할 수 있다.기존에 알고있는 압축파일(.7z, .zip..) 말고도 이미지(jpeg)나 동영상(mp4, avi..)도 압..
회사에서 개발하는 주요 프로젝트는 웹 개발로, B2B 모델이다.트래픽이 적은 대신, 초 대용량의 데이터가 담겨 있는데, 이러한 데이터를 어떻게 처리하면 좋을지 쿼리 관점에서만 블로그를 작성해 볼 예정이다. 회사 코드는 보안 사항으로, 비슷한 데이터를 만들어서 예제를 작성해 보자. 엔터티/테이블은 아래처럼 되어있다. 한 개의 parents에 1만 개의 데이터들이 존재한다 가정하자. SELECT에서 IN절 사용하기 parent id들이 담긴 리스트를 메모리 상에 가지고 있다고 할 때, 이것들로 평범하게 data들을 조회하려고 하면 총 11번의 select쿼리가 나가게 된다. (parent 10개 조회 + data 1만개씩 10번 조회) 이걸 한 번에 처리하려면 in절 select를 해야 한다. 이 부..