June 25, 2026
리액티브 스택(Spring Data R2DBC + MariaDB)으로 도는 배치 서비스의 DB 자격증명을 정적 비밀번호에서 AWS Secrets Manager 동적 조회로 옮겨야 했습니다. DB 비밀번호가 일정 주기로 자동 로테이션되도록 설정돼 있어서, 앱에 넣어 둔 정적 비밀번호로는 로테이션 직후 접속이 실패합니다. 같은 회사의 JDBC 서비스는 드라…
June 03, 2026
AWS Summit Seoul 2026에서 참여했던 세션을 간단하게 정리해서 공유합니다. # 세션 발표 한 줄 1 AI 기반 개발 라이프사이클(AI-DLC) AWS 김수현 · LG전자 박태진 코드 생성만 빨라져선 생산성이 안 오른다 — SDLC 전체를 AI-native로 2 Agentic AI로 만드는 비즈니스 성과 LG CNS 이상원 "AI를 도입했나…
May 20, 2026
숙박과 장기 임대 도메인에서 개발을 하다 보면 거주자와 숙박 이용자에게 알림을 보낼 일이 자주 있습니다. 그중 계약 갱신·만 료 같은 통지는 일부 누락되어도 되는 정도가 아니라, 계약 상태가 바뀌었다면 반드시 함께 나가야 하는 알림입니다. 상태는 바뀌었는데 통지가 나가지 않으면 분쟁의 소지가 됩니다. 그런데 "DB에 계약 상태를 저장하는 것"과 "알림을 발…
March 20, 2026
저희 서비스는 조회 캐시와 분산락을 Redis로 처리합니다. Redis 장애로 timeout이 났을 때 조회 캐시는 원본(RDB)으로 우회하는 fallback(장애 시 대체 경로)을 두었는데, 이 fallback이 실제 장애에서 동작하는지는 확인하지 못했습니다. mock으로 예외를 던지는 테스트는 제가 의도한 예외를 확인할 뿐이었습니다. 그래서 카오스 엔…
March 13, 2026
관리비 및 공과금 데이터를 크롤링하는 파이프라인을 구축했습니다. 로컬 개발 환경에서는 크롤러를 Docker 컨테이너로 구동해 정상 동작을 확인했고, 스케줄링은 Apache Airflow로 처리했습니다. 그러나 이 크롤러를 dev 환경(AWS ECS)에 배포해 실행하자, 로컬에서 정상 처리되던 태스크가 Airflow에서 실패(Failed) 상태로 종료됐습니…
November 19, 2025
통합 테스트(IntegrationTestSupport 상속, 실제 DB 사용)에서 FixtureMonkey로 엔티티를 만들어 저장한 뒤 다시 조회 하는 코드가 있었습니다. 저장은 분명히 했는데 조회가 비거나 검증이 어긋났고, 원인은 FixtureMonkey가 필드에까지 랜덤 값을 채운 데 있었습니다. 이 글은 그 랜덤 ID가 어떻게 저장을 어긋나게 하는지…
November 04, 2025
여러 서비스(admin·customer·message·scheduler)의 Dockerfile이 모두 을 베이스 이미지로 쓰고 있었습니다. 한동안 잘 빌드되던 이미지였는데, 어느 날 빌드가 베이스 이미지를 받지 못하고 실패했습니다. 이 글은 그 원인이 "이미지 태그가 사라진 것"이었고, 왜 사라질 수 있었는지, 그리고 로 옮긴 과정을 정리합니다. 1. 현…
July 09, 2025
운영 DB(RDS for MySQL)는 감사 로그(audit log)를 켜 두면 모든 쿼리가 CloudWatch Logs로 쌓입니다. 여기서 원하는 건 좁습니다. 쓰기 권한이 있는 사람이 운영 DB에 직접 CUD(INSERT·UPDATE·DELETE 등) 쿼리를 날리면, 그 사실을 Slack으로 바로 알림받는 것입니다. 처음에는 "구독 필터에서 거르고 S…
April 30, 2025
이 글은 "S락·X락·갭 락·락 승격 — InnoDB 락 노트"에 이어지는 2편입니다. 1편에서 정리한 공유락(S)·배타락(X)·락 승격 개념을 그대로 가져다 씁니다. 운영 DB 모니터링에서 데드락(deadlock) 기록을 발견했습니다. 데드락 로그가 지목한 문장은 에 행 하나를 넣는 upsert 쿼리였습니다. 단순해 보이는 INSERT 한 번이 교착에 …
April 21, 2025
1. 두 개의 기본 락: 공유락(S)과 배타락(X) InnoDB의 행 락은 두 종류에서 출발합니다. 공유락(Shared Lock, S): 읽기를 위한 락. 여러 트랜잭션이 같은 행에 동시에 S락을 쥘 수 있습니다. 단, 그 행을 바꾸려는 배타락은 막습니다. (과거 )로 명시적으로 걸 수 있습니다. 배타락(Exclusive Lock, X): 쓰기를 위한 락…