잡담과 망상을 좋아하는 개발자의 블로그

안녕하세요 👋
백엔드 개발자 장태환입니다. 이런저런 잡담과 망상, 개발 관련 글을 기록합니다.
글에 대한 질문과 피드백은 언제든지 환영합니다.

이벤트 왜? 그리고 어떻게?

TL;DR 이벤트는 Kafka 같은 브로커 전용이 아니다. 단일 애플리케이션 안에서도 결합도를 낮추고 후속 작업을 분리하는 데 충분히 유용하다. 규모가 작을 땐 직접 호출이 단순하고 빠르지만, 규모가 커지면 사건을 발행하고 소비하는 이벤트 드리븐 방식이 자연스럽게 필요해진다. 발행은 애플리케이션 레이어에서 담당하고, 리스너는 외부 연동은 interfaces, 내부 처리는 application 등 용도에 따라 위치를 구분할 수 있다. 동기/비동기 기준: 정합성이 중요하면 동기, 빠른 응답이 필요하면 AFTER_COMMIT + Async 이벤트를 적용하니 Facade/Handler로 경계가 드러나고, 코드가 간결해졌으며, 리팩토링과 협업이 한결 수월해졌다. 0. 이벤트에 대한 나의 오해 “이벤트 = Kafka, RabbitMQ 같은 메시지 큐"가 아닌가? MSA가 아닌데 꼭 써야하나? 그냥 호출하면 안될까? 불필요하게 복잡해지는건 아닐까? 나는 회사에서 RabbitMQ를 쓰고 있고 이벤트를 발급하고 수신해 처리하는 로직들도 많다. 그래서 round-7에서 이벤트를 다룬다길래 당연히 Kafka, RabbitMQ를 다루는 줄 알았다. MSA와 같이 도메인 별 기능들이 서버에 분산되어 있는 형태에서 이런 브로커가 필요하고, 이벤트도 그럴 때만 쓰는 줄로 생각했다. ...

August 29, 2025 · 5 min

인덱스 써보기

0. 이론은 알고 있었는데 인덱스에 대한 이론은 대학에서부터 배웠다. 책갈피를 만드는 것과 같다. 조회 성능이 빨라진다. EXPLAIN으로 쿼리 실행 계획을 확인하고 튜닝하면 된다. 어쩌고 저쩌고~~ 아 그래 좋은거구나~ 데이터베이스 강의들의 성적은 항상 A+이었는데 정작 인덱스가 정확히 어떤 타이밍에 필요한지, 튜닝을 어떻게 해야 하는지 전혀 들어보지 못했다. 조회 성능이 상승된다고는 하지만 조회 성능을 끌어내야 할 만큼의 상황도 지금까지 겪지 못했던 것 같다. 사이드 프로젝트는 데이터가 많지도 않았고, 회사에서 맡고 있는 제품은 B2B라서 비교적 데이터가 많지 않으면서 건드리기 무서웠다. (글을 쓰는 지금 생각해보면 회사에서는 인덱스니 캐시를 빡빡하게 넣어줘서 개선할 여지가 많다.) ...

August 15, 2025 · 4 min

개발자의 설계

TL;DR 설계는 기본이자 안전장치다. 기획 문서가 없어도 개발자가 개발을 할 수 있도록 좋은 설계와 문서를 만들어야 한다. 디테일한 설계 문서는 기획 문서를 대체할 수 있다. IDE를 켜기 전에 요구사항 -> 시나리오(Usecase) -> SequenceDiagram -> ClassDiagram/ERD 와 같은 스케치를 먼저 해야한다. 디테일은 한 번에 완성되지 않는다. 추상적으로 시작하고 TDD와 함께 보완하자. 우리는 코더가 아니라 비지니스 맨이다. 설계/문서는 개발자의 책임이다. 설계가 제일 중요해! 기본이야 기본! 0. 설계가 제일 중요하다. 기본이다. “출입항이 제일 중요해! 기본이야 기본!” ...

July 25, 2025 · 4 min

TDD에 대한 오해와 입문

0. 테스트 코드와 TDD에 대한 나의 오해 TDD는 테스트 주도 개발 (Test-Driven Development)의 약자로, 소프트웨어 개발 방법론 중 하나입니다. TDD는 먼저 자동화된 테스트 코드를 작성하고, 그 테스트를 통과하는 실제 코드를 작성하는 방식을 사용합니다. 즉, 테스트를 먼저 만들고, 그 테스트를 통과하도록 코드를 작성하는 방식으로 개발을 진행합니다. 항상 이상을 꿈꾸는 개발자로서 테스트 코드, TDD에 대한 얘기는 익히 들었다. “TDD를 하면 개발이 더 쉽다.”, “테스트 코드 덕에 리팩토링할 때도 좋다.”, “생산성이 향상된다.” 이 장점들은 이해를 할 수가 없었다. 테스트 코드의 작성은 어려웠고, 버벅거리며 작성해본 테스트 코드는 메서드를 수정할 때 몇 배의 수정을 겪어야 했다. 작성해야하는 코드의 양이 늘어 생산성이 저하된다고 느껴졌다. ...

July 18, 2025 · 4 min

Hugo 블로그 만들기

Velog는 뭔가 부끄러웠다. 취업 전에도 살짝, 취업 후에도 동기들과 “블로그 쓰기 내기”를 하며 또 살짝—두 번이나 Velog에 글을 올린 적이 있다. 하지만 어느 순간부터 자연스럽게 손이 멀어졌다. Velog는 왠지 “사람들 앞에 전시되는 공간” 같아서, 글 한 줄 쓰기가 괜히 부끄러웠다. 그래서 블로그 대신 Obsidian으로 공부 내용을 조용히 정리하는 편을 택했다. 그러다 최근, 다시 글을 공개적으로 남기고 싶어졌다. 개인 공부는 계속 Obsidian에 쌓더라도, 경험담이나 삽질 기록 같은 건 블로그에 남겨 두고 싶었다. 마침 “직접 호스팅”도 해보고 싶어서 정적 사이트 생성기를 찾아봤는데, Hugo·Jekyll·Gatsby 중에서 결국 Hugo가 가장 눈에 들어왔다. 마크다운 기반이라 옮기기도 편할 것 같고, 복잡하게 파고들기보다 일단 ‘써보고 배우자’ 라는 마음으로 시작했다. ...

May 24, 2025 · 4 min