분류 전체보기 218

[Java] LMAX Disruptor 공식문서 읽기 3 : Disruptor 개발자의 블로그 글 읽기

지난 글에서는 LMAX Disruptor에 관한 논문 하나를 천천히 읽어보며 부족한 부분을 채웠다.(지난 글 여기 클릭!) 이번 글에서는 실제로 Disruptor 코드를 보고, 이를 어떻게 적용했을 때 정말 빠른지 Apache JMeter 로 보려고 한다. 지난 글에서 참고로 언급을 했지만, 실제 Disruptor 개발자 분 께서 블로그로 이에 대해 설명해주는 글이 있는데, 전반적으로 해당 글의 흐름대로 코드도 다 들여다보려고 한다. (disseecting the disruptor writing to the ring buffer)안타깝게도 해당 글은 좀 오래되어서 현 버전과 안맞을 수 있다. 고로, 글을 다 읽어보고 현재와 다른점을 짚어볼 필요가 있다.그럼에도! 큰 흐름은 변하지 않았으리라 판단한다. ..

[Java] LMAX Disruptor 공식문서 읽기 2 : 3. Design of the LMAX Disruptor ~ 6. Conclusion

이번에는 지난 시간에 이어 다 읽지 못한 LMAX Disruptor Technical Paper를 3장부터 이어서 읽어보려고 한다.(지난 내용 여기 클릭) 초록, 개요와 기존 메모리 구조에서 오는 문제점을 해결해야 한다는게 이전 글에서의 핵심 요약이라면 이번에는 이를 해결하는 내용이 나오지 않을까 생각한다.목표1. LMAX Disruptor가 어느 점에서 효율적인지 이해한다.1. 3) Design of the LMAX Disruptor위에서 설명한 문제들을 해결하기 위해, 큐에서 혼재되어 있던 것으로 보이는 관심사들을 엄격하게 분리하는 방식을 통해 하나의 설계가 도출되었습니다. 이 접근 방식은 쓰기 접근에 대해 모든 데이터가 오직 하나의 스레드에 의해서만 소유되도록 보장함으로써 쓰기 경합을 제거하는 데..

[Java] LMAX Disruptor 공식문서 읽기 1 : 1. Overview ~ 2.6 Pipelines and Graphs

사실 필자는 해당 내용에 대해서는 그다지 관심이 없었다. 최근 가장 큰 관심사는 Netty를 확장해서 프레임워크를 구축하는 것인데, Log4J에 대한 공식문서를 읽고 정리할 까 고민했다. Log4j를 가져다가 사용하는게 괜찮은지 보다가 성능이며 동시성 문제며 이러한 여러가지 performance 분석에 대해서 보니.. 가져다가 쓰는것이 많은 부분에서 장점이라고 느껴졌다. 다만, LMAX에서 Discruptor라는걸 만들었는데, 이것을 활용해서 Apache Log4j 2의 성능을 극적으로 올렸다고 했다. 내가 꼳힌 부분은 Discruptor가 도대체 뭔지 글을 좀 진득~하게 읽어보고 싶었고 요약을 좀 하고 싶었기에 해당 글을 적는다. 물론 AI에게 물어보면서 모르는 부분들을 채우고 그림도 한번 도식화하면서..

[도서 회고록] 친절한 SQL 튜닝을 읽고

최근에 회사에서 DB 구조와 성능에 관련해서 많은 고민을 했다. 일을 하면서 맘에 안드는 부분이 있었는데, 이에 대해서 제대로 반박을 못했다. 특히 성능 부분도 부분이지만 화면상에서의 쓰임과 데이터의 흐름을 잘 집어내야 합리적인데... 하지만 그 당시 키메라는 이를 정확히 찝어낼 수 가 없었다.! (이런 된장고추장! 팍팍무쳐 먹어! ㅠㅜ...) 그래서! 내가 내 스스로의 무능함(?)에 짜증이나서 SQL관련 책을 읽기 시작했다. 가장 최근에는 SQL Antipattern 을 읽었는데, 다 읽고 나니 좀 오래된 책이다 보니 이해는 되는데 글이 그렇게 잘 눈에 들어오지는 않았고, 대부분의 문제는 사실 정규화를 잘 따라서 하면 되는 문제였다. 그리고 이전에 사두고 읽기 않고 박혀있는 '친절한 SQL 튜닝..

[회고란] 다가오는 2분기 목표와 요즘 나의 생각 정리

오랜만에 현재 상황 점검과 목표에 대해서 다시 고민하고 논의하는 글을 적어보려고 한다. 지난 회고글에 비해서 얼마나 진전했는지 보려고 한다. 이번 분기의 컨셉은 독서광 + 고성능이다. 1. Netty꾸준히 공부하기 - 만족도 중중상?Netty에 대해서 글을 적는 빈도수가 많이 적어지긴 했다. 아무래도 Netty를 실제로 세팅하면서 객체지향 관련 지식을 다시 복습하고 이를 그대로 들고와서 Claude Code 를 설치하고 CLI로 코딩을 지시하면서 Netty환경 구축을 학습했다. Netty가 왜 빠른지 공식문서 뒤져가면서 키메라가 이해할 수 있게 정리하는 점에서 많은 도움이 되었다. 얼마 전까지 Vibe Coding 이 그렇게 유명하지 않았나? 어느정도 Netty가 이런 맛이구나~ 하는 느낌을 알게 ..

[도서 회고록] SQL Antipattern 을 읽고

오랜만에 책을 한 권 읽었다. 사실 해당 책을 산지는... 3년이 넘은 것 같다. 한창 inflearn에서 강의를 열심히 들을 때였다. 그 유명한 한국 Spring의 스타강사인 김영한씨께서 추천을 했던 책이다. SQL AntiPatterns! 라는 책으로 개발자가 알아야 할 25가지 SQL함전과 해법! 이라고 소개하고 있다. 해당 책의 목차를 쭈욱! 적어보고, 필자가 인상깊게 읽었던 부분에 대해 생각하려고 한다. 1. 해당 책에서 소개한 안티패턴무단횡단순진한 트리아이디가 필요해키가 없는 엔트리엔터티-속성-값다형성 연관다중 칼럼 속성메타데이터 트리블 반올림 오류31가지 맛유령 파일인덱스 샷건 모르는 것에 대한 두려움애매한 그룹임의의 선택가난한 자의 검색 엔진스파게티 쿼리암묵적 칼럼 읽을 수 있는 패스..

[AWS 학습] Lambda 사용 점검 - 현 상황 분석과 솔루션

회사에서 현재 람다를 쓰고 있는데 소비자에게 서비스를 하는 상황이 아닌데도 이상하게 자꾸 timeout이 나는 상황이었다. 그래서 왜 자꾸 별로 하지도 않는 작업인데 timeout이 나는지 찾아보았다.목표1. timeout이 나는 경우에 대해 조사한다.2. 나의 상황에 대입해 솔루션을 생각해본다.3. 개선점에 대해 고려한다.0. 람다에 대해서AWS Lambda는 서버 관리가 필요 없이 코드를 실행할 수 있는 컴퓨팅 서비스입니다. 코드는 자동으로 확장 및 축소되며, 사용량에 따라 요금이 부과됩니다.AWS Lambda is a compute service that runs code without the need to manage servers. Your code runs, scaling up and down..

[회고란] AWS 자격증 취득기 : SAA-C03 취득 후기

이제 2026년의 1분기가 끝나간다. 이번년도 1분기의 목표는 1. SAA-C03 자격증 취득2. Netty 학습 진행3. inflearn강의 수강4. 네트워크 도서 읽기 였는데... 현 시점에서 3은 성공! 4는 재미가 없어서 진작에 포기했다. 1에 관한 이야기는 해당 글에서 적어보도록 하겠다. 1. 강의 선택과 방향 + 그리고 합격시작은 1월부터 했다. 구매는 2025년 12월 말로 기억한다. 처음의 학습 방식은 다음과 같았다. 유데미에서 싸고 길게 들을 수 있는 Stephane Maarek 씨의 강의를 다 듣고! 시험 문제를 풀려고 했다. 하지만... 해당 강의는 수강을 58%에 멈추고 말았다. 너무 양도 많고, 이걸 내가 듣는다고 해서 기억을 한다는 자신이 없었기 때문이다. 마렉씨 미안... ..

[Netty] Netty가 뭐에요? - 11: Netty 프레임워크 확장하기 - 도메인 코드와 결합 및 바이브 코딩 도입(feat. Claude Code)

지난 시간에는 Netty를 활용해서 성능 테스트를 진행했다. 각각 처리량과 속도, 메모리 효율성 비교를 했다.(성능비교 1탄, 성능비교 2탄) 직접 restful한 요청도 처리해야하고 상세하게 구현한 channel파일들도 범용적으로 상용할 수 있게 해야하는데... 이걸 어찌 해야하나? 하는 생각이 문득 들었다. 고로! 이번 시간에는 어떻게 하면 Netty를 활용하면서, 테스크 코드도 작성하고 확장할 수 있는 구조로 만들 수 있는지 고민하려고 한다. 또한, 이 과정에서 키메라는 적극적으로 claude code를 이용할 예정이다. 계산은 계산기가 잘하는 것처럼, 코드는 이제 AI가 더 잘 작성한다. 과장이 아닌 100배의 효율성이 생겨버렸기에, 이를 안한다는건 힘들다는 생각이다. 빠르게 큰 맥락을 ..

[Java] 객체지향 연습 7 - 요금 기능 추가하기 (feat. 개인적인 생각과 향후 방향)

지난 글에서는 공부할 프로젝트에 대해 학습하고, 어느 기능을 추가할 것인지 고민했고 이를 위해 데코레이터 패턴과 책임 연쇄 패턴에 대해 알아보았다. (궁금하면 여기 클릭!) 이번 시간에는 요금 기능과 알림 기능을 추가하려고 하는데...! 생각해보니 지난 글에서 알림 기능은 내가 고민했는데 말만 하고 넘어가버리고 말았다. 요금 기능을 직접 구현하기 전에, 알림 기능을 위한 디자인패턴을 알아보고, 실제 코드를 확장할 것이다. 사실 객체지향을 연습하기 위해서는 코드를 직접 작성하고 학습해야 하는데, 일일히 이것을 복붙하고 설명하는것이 애매하다고 생각했다. 그래서 과감히 전부 제거했고, 해당 작업들에 대한 코드와 히스토리는 다음 Git Branch에서 다 확인할 수 있다(코드 보고싶으면 여기 클릭!) 목표1...