Spring 86

[Security 기초] 봉투암호화, 블록 암호화 이해하기 (feat. AWS KMS + CBC)

해당 주제들은 필자가 회사에서 서버 코드를 분석하던 중 알게된 이번 글에서는 봉투암호화와 이와 관련된 여러 블록암호화 종류와 예시코드를 볼 예정이다. 0. 들어가기 전에암호화 기초로 이전에 대칭키, 비대칭키에 대해 공부했다. ([Security 기초] HTTPS와 SSL/TLS이해와 실습 (feat. 암호화 기초))구분대칭키비대칭키 (공개키/비공개키)동작 방식암호화와 복호화에 동일한 하나의 열쇠 사용암호화(공개키)와 복호화(비공개키)에 서로 다른 열쇠 쌍 사용속도연산이 단순하여 처리 속도가 매우 빠름수학적 연산이 복잡하여 처리 속도가 느림실생활 비유집 현관문 열쇠 (잠그고 열 때 같음)우체통 (누구나 잠글 수 있지만 우체부만 열 수 있음)치명적 한계단일 키 유출 시 시스템 전체가 뚫림 (안전한 키 전달..

[Security 기초] HTTPS와 SSL/TLS이해와 실습 (feat. 암호화 기초)

이번 글에서는 필자가 공부한 암호화 관련 정보를 정리하고 HTTPS와 SSL/TLS에 대해 이해하고자 글을 정리한다. 암호화 기초는 사실 가져다가 쓰기만 했고 그런가보다~ 했는데 깔끔하게 이를 정리하려고 한다. 해당 글은 생활코딩에 올라와 있는 HTTPS와 SSL 인증서의 흐름을 참고해서 정리했고, 필자의 mini pc 환경에서 실습을 진행했다. 0. 들어가기 전에 알고리즘(Algorithm)이란?알고리즘을 사전적으로 정의하면 어떤 의미일까? 어떠한 문제를 해결하거나 특정 작업을 완수하기 위해 정의된 명확하고 단계적인 절차나 방법의 집합 다시 쉽게 정리하면 특정 목적을 위해 정의한 절차 혹은 방법을 알고리즘이라고 한다. 1. 암호화 기초 정리 암호화란 무엇인가? 위키피디아 정의에 따르면 승인된 당사자..

[Netty] Netty가 뭐에요? - 12: 마지막 - MQTT와의 결합 및 병목점 확인(feat. JMeter Plugin 설치)

지난 Netty 시리즈에서는 Netty서버를 구축해서 도메인 코드와 결합을 했다.(지난 내용 여기 클릭 -11: Netty 프레임워크 확장하기) 이번 시간에는 MQTT를 활용해서, 수많은 처리량을 Netty가 감당하는지 확인하고 병목지점이 있다면 이를 해결하려고 한다. 목표 엄청난 요청이 오는 상황에서 Netty서버에 문제가 없는지 확인한다. 1. MQTT란? MQTT에 대해서는 다른 글에서도 동일하게 Gemini에게 정리를 요청했다. 물론 Messaging에 대해서 글을 정리했다. [Messaging] MQTT이해하기 - 1탄 : MQTT란 무엇인가? + mqtt introduction[Messaging] MQTT이해하기 - 2탄 : Pub/Sub 구조[Messaging] MQTT이해하기 - 3탄 :..

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

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

[Netty] Netty가 뭐에요? - 10: 정말 Netty는 빠를까? 2탄 - 대용량 데이터 처리 속도 비교(feat. Visual VM 활용하기)

지난 시간에는 실제로 Netty 가 일반 Blocking 으로 요청을 했을 때 보다 속도가 빠른지 성능 테스트를 해 보았다.(지난 내용이 궁금하면 여기 클릭!) 이번 시간에는 시나리오 2를 통해 성능을 좀 더 테스트해보려고 한다. 참고로 필자는 window 11 환경의 cmd 창에서 테스트를 진행했다. 0. 지난 내용을 복기해본다.1. 대용량 페이로드 테스트를 진행한다.2. 결과를 비교해서 어느것의 성능이 뛰어난지 확인한다.3. JVM 의 구조에 대해 이해한다. 4. VisualVM을 도입해서 JVM 현황을 파악한다.5. 결론 0. 지난 내용 복기지난 시간의 내용을 복기 + 정리하고 가려고 한다. Apache JMeter 를 다운로드 해서 세팅하는 법도 알아봤고 시나리오 1 대량 연결 유지 테스트 (..

[Netty] Netty가 뭐에요? - 10: 정말 Netty는 빠를까? 1탄 - 처리량과 지연시간 파악 (feat. Apache JMeter 활용하기)

이전 글에서는 어떻게 Java NIO는 비동기 프로그래밍을 구현했는지 알아보았다. (궁금하면 여기 클릭!) 이번 시간에는 다양한 예시를 통해서 성능 테스트를 해보려고 한다. 이를 Apache JMeter 를 사용하는 방법을 정리하면서 해가려고 한다. 목표0. Apachce JMeter 를 실행하는 법을 이해한다.1. 부하 테스트를 하기 위해서는 무엇을 고려해야 하는지 알아보고 시나리오를 작성한다.2. Spring boot 와 Netty 서버를 구축하고, 실제적으로 실행한 결과를 분석해본다. 0. Apache JMeter 다운로드 + 실행 필자는 Apache JMeter 공식 사이트에 들어가서 다음을 받았다. (다운로드 공식 사이트 여기!) 다운을 받으면 Github 사이트에서 어떻게 실행하는지 나와있..

[Netty] Netty가 뭐에요? - 부록2: NIO 는 어떻게 비동기를 구현했을까?

최근에 글을 계속 다시 정리하고 있는데, 문득 생각이 났다. 동일한 코드인데 어떻게 Java NIO는 비동기를 무엇을 통해서 구현했는지 궁금했다. 이에 대한 분석 및 이해를 하기 위한 글을 이번 섹션에서 정리한다. 목표 0. 동기와 비동기 그리고 블로킹과 논블로킹 차이점 재정리1. 비동기를 어떻게 구현하지?2. 직접 구현시의 문제점0. 동기 vs 비동기 & 블로킹 vs 논블로킹 차이점 재정리너무 자주 봤지만, 맨날 까먹는... 이 내용을 명확하게 다시 집고가자. 해당 내용은 Gemini에게 요청해서 내가 다듬도록 했다. 0.1) 동기와 비동기 (Synchronous vs Asynchronous)핵심 기준: "요청한 결과값을 누가, 언제 신경 쓰는가?" - 동기 (Synchronous)요청자(Caller)..

[Netty] Netty가 뭐에요? - 부록1: - Netty의 전체 구성도, Channel 분석 및 Bootstrap 활용법

이전 글에서는 Protocol Support 를 알아보았다. (이전 글 클릭) 현재 이전 글들을 보면서 다시 점검하고 있는데, Netty 시리즈 1~3탄 까지는 어느정도 써먹을 만 한데 그 이후는 영... 크게 머리에 쏙쏙 박히지 않고 글을 작성한 본인조차 다시 보려니 뭘 말하고 싶은건지 명확히 와닿지 않는 부분이 많았다. 이러한 문제들은 차차 정리할 예정이지만 읽다보니 그런데 문득 생각이 들었다. Netty에서는 다양한 Channel과 개발을 편리하게 해주는 기능을 제공해주고 있는데 Channel의 구현체들의 존재 이유와 어느 상황에서 어느 Channel이 좋은건지 파악하고, Bootstrap의 명확한 사용방법을 큰 그림을 그려가면서 알아가려고 한다. 사실 Channel 에 대해서는 해당 글..

[Netty] Netty가 뭐에요? - 9탄 : 공식 문서 - Protocol Support 탐방 (zbli/gzip Compression, Large File Transfer, RSTP, Legacy Text & Binary Protocols with Unit Testability)

해피뉴이어! 올해 새해가 밝았고, 2026년의 첫번째 글은... Netty가 차지하게 되었다 와.. 쩐다... 지난 시간에는 Protocol Support 섹션의 HTTP & WebSocket / SSL & StartTSL / Google Protobuf에 대해 알아보았다. (궁금하면 여기 클릭) 이번 시간에는 Protocol Support 섹션의 나머지를 알아보려고 한다. zbli/gzip Compression, Large File Transfer, RSTP, Legacy Text & Binary Protocols with Unit Testability가 이에 해당한다. 그럼 다시 한 번 가... 보자고! 1. zlib/gzip Compression 해당 섹션의 Package Summary를 보면..

[Netty] Netty가 뭐에요? - 8탄 : 공식 문서 - Protocol Support 탐방 (HTTP & WebSocket / SSL & StartTSL / Google Protobuf)

지난 시간에는 Netty의 구조 중 Core와 Transport Services에 대해 알아보았다. (지난 내용은 여기!) 이번에는... 가장 잘게 쪼개져 있는 섹션인 Protocol Support를 보려고 한다. 이전과 동일하게 각각 항목에서 이것들이 도대체 무슨 말인지... 이해를 해보려고 한다. 그러면 시작 전에... 다시 구조를 보도록 하자. 0. Protocol Support사실 너무 기본적이고... 지겹지만 그래도 다시 한 번 체크하자. Protocol은 무엇인가? 규약이다. 사람들끼리 대화를 한다고 하면, 어느 언어로 할지 정해야 한다. 예를 들어 한국사람들은 보통 한국어로 말을 하지만 영국인은 영어를 할 것이다. 이와 마찬가지로 컴퓨터나 장치들은 대화를 하는게 아니라 데이터를 주고받는데,..