SUP

만들고, 고치고, 배우는 것들을 짧은 글로 남길려고 합니다.

062026-08-07

Kafka 입문

작은 서비스에서 결제와 알림처럼 서로 알아야 할 것이 늘어나면 복잡해지므로 Kafka로 이벤트를 중앙에 남기고 각 서비스가 필요한 이벤트만 구독하게 하는 구조를 설명합니다. 핵심은 토픽·파티션·오프셋·컨슈머 그룹을 통해 병렬성과 순서, 재처리 지점을 관리하고, Kafka가 메시지 전달을 넘어 이벤트를 저장해 여러 서비스가 독립적으로 활용할 수 있게 해준다는 점입니다.

052026-07-27

이모저모

AI로만 작업하다 보니 편해졌지만 문득 "이러다 바보 되는 거 아냐?"라는 생각이 들어 기초부터 다시 짚어보기로 했다. 게시판 REST API를 직접 만들고 테스트·예외·권한·트랜잭션 등 Spring의 기본 흐름을 복습하면서, AI가 만든 코드를 제대로 판단하려면 결국 내 기본 원리가 더 단단해야 한다는 결론에 이르렀다.

042026-06-25

가비아 ssl 인증서 갱신

가비아에서 받은 인증서 파일을 윈도우 환경의 nginx에 맞게 cert.pem, chain.pem, privkey.pem으로 정리하고 fullchain.pem을 만들어 교체하는 과정을 정리한 글입니다. 백업을 먼저 하고 nginx 설정 검사를 한 뒤(권한 문제로 reload 대신) 재시작해 브라우저와 스크립트로 새 인증서가 반영되었는지 확인한 것이 핵심입니다.

032026-06-08

좋은 설계란 무엇일까?

객체지향책을 다시 읽으면서 깨달은 건, 좋은 설계란 단순히 클래스를 예쁘게 나누는 게 아니라 변경이 생겼을 때 덜 흔들리는 구조를 만드는 일이라는 점이다. 그래서 이제는 데이터보다 먼저 객체들이 어떤 행동을 하고 어떤 책임을 질지, 메시지는 어떻게 오갈지를 고민해 변경이 퍼지는 방향을 좁히는 쪽으로 설계하려 한다.

022026-05-28

SQL Server Logical Reads 기반 조회 쿼리 개선기

측정 데이터 목록 조회에서 최신 20건만 필요함에도 조인 순서 때문에 수집 로그 테이블에서 불필요한 읽기가 많이 발생하고 있었다는 문제를 STATISTICS IO/TIME으로 확인했습니다. 인덱스를 넣어 측정 테이블 읽기를 줄이고, 결국 먼저 20건을 뽑아서 그 결과만 로그와 대상자 테이블에 조인하는 구조로 바꿔 전체 logical reads를 약 98% 줄였습니다.

012026-05-07

CQRS 작게 시작하기

DDD 맥락에서 CQRS를 꼭 인프라 분리로 시작할 필요는 없다는 이야기입니다 — 쓰기와 조회의 관심사가 달라지며 서비스가 비대해질 때 같은 DB를 쓰더라도 CommandService와 QueryService로 책임을 분리해 코드를 더 명확하게 만들면 된다는 결론입니다.