MMax's Develop Story
Backend Chapter Lead · AIJINET

안녕하세요 🤚 Max입니다.

Spring / Java 생태계에서 마주친 문제, 의사결정, 그리고 그 이면의 트레이드오프를 기록합니다. 추상적인 best-practice 나열보다 재현 가능한 코드와 측정값을 우선합니다.

About me

Backend Chapter Leader - 글을 남기는 사람

  • 백엔드 챕터의 기술 방향과 코드 품질, 그리고 챕터원의 성장을 책임집니다.
  • 어려운 문제일수록 좋아합니다. "풀 수 있을지 모르겠다" 싶은 과제가 떨어졌을 때 가장 즐겁게 일합니다.
  • 혼자 얻은 인사이트는 절반만 가치 있다고 믿습니다. 학습한 것, 실패한 것, 회고한 것을 글로 남기고 챕터에 공유하는 데 진심입니다.
  • 본 블로그는 그 공유의 1차 채널입니다.
What I write about

다루는 주제

잡담 · 일상 · 홍보 글은 올라오지 않습니다. 글의 톤은 “읽고 나면 내일 출근해서 바로 써먹을 수 있는 것”을 지향합니다.

JVM / Java 내부

GC 튜닝JIT메모리 모델CompletableFutureLoom

Spring 생태계

Boot 3 ↔ 4 마이그레이션WebFluxJPA N+1트랜잭션 전파

Spring AI / LLM 응용

AI 상담사RAG 파이프라인프롬프트 회귀 테스트토큰 관측

분산 / 데이터

RabbitMQ DLXMySQL 인덱스Redis 캐시 일관성Outbox

아키텍처

DDD 경계HexagonalClean Architecture모듈러 모놀리스

운영 / SRE

장애 회고OpenTelemetry부하 테스트

챕터 활동 회고

코드 리뷰 문화기술 스터디온보딩
Backend Chapter Stack

주력 스택

Language
Java 21, 25 (LTS)
챕터 전 모듈 단일 스택, Kotlin 미사용
Framework (운영)
Spring Boot 3.x · Cloud
Spring Framework 6.x
Framework (신규)
Spring Boot 4.x
2026~ 신규 프로젝트의 기본 선택
AI / LLM
Spring AI
사내 AI 상담사 · RAG · 토큰 모니터링
Persistence
JPA · QueryDSL
MySQL 9.x · Redis
Messaging
RabbitMQ · Spring AMQP
Direct/Topic · DLX 재시도 전략
Build / Test
Gradle (Groovy)
JUnit 5 · Mockito · Testcontainers · AssertJ
Observability
Micrometer · OpenTelemetry
Prometheus · Grafana
CI / CD
GitLab CI · ArgoCD
Docker · Kubernetes
Code Conventions

코드 컨벤션 요약

01

테스트는 Given-When-Then

시나리오가 곧 명세입니다.

02

Optional.orElseThrow 기본

get() / isPresent() 직접 호출은 리뷰에서 제동을 겁니다.

03

객체 생성은 Builder

생성자 인자 4개 초과 시 강제 적용.

04

Stream API 우선

단, 한 줄을 위한 가독성 희생은 거부합니다.

05

트랜잭션 경계는 서비스 레이어

도메인 객체에 @Transactional 금지.

06

불변(immutable) 우선

record · final 필드 · 방어적 복사를 기본값으로.

Contact

연락하기

기술 토론 · 피드백 · 오탈자 제보는 모두 환영합니다.