nogamsung
지우는 게 없다면 삭제라고 부르지 말자, 상태 컬럼으로 소프트 삭제 설계하기

지우는 게 없다면 삭제라고 부르지 말자, 상태 컬럼으로 소프트 삭제 설계하기

새 ERP 백엔드를 시작하고 16일 동안 상태 enum이 세 번 바뀌었습니다. 하드 삭제, deleted_at, 상태 컬럼, Hibernate @SQLRestriction 중 상태 컬럼을 고른 이유와, "삭제" API가 실제로는 아무것도 지우지 않는다는 사실을 이름에 드러내기로 한 결정, 그리고 그 대가로 안게 된 고유성·조회 필터 문제를 정리합니다.

당근 2024 테크 밋업 후기: 당근알바 초기 전략, 채팅 시스템, Istio 장애와 당근페이 네트워킹

당근 2024 테크 밋업 후기: 당근알바 초기 전략, 채팅 시스템, Istio 장애와 당근페이 네트워킹

당근 2024 테크 밋업 후기입니다. 이벤트 기반 분석으로 속도를 낸 당근알바 초기 엔지니어링 전략, 서버가 늘어날 때 채팅 시스템이 메시지 큐로 바뀌는 과정, CPU Limit에서 끝난 Istio 네트워크 장애 추적기, 그리고 당근페이 머니서비스팀·어카운트 서비스팀 네트워킹 세션에서 나눈 이야기를 정리했습니다.

SLASH24 후기: 리플레이 검증, MySQL 코어뱅킹, 보상 트랜잭션

SLASH24 후기: 리플레이 검증, MySQL 코어뱅킹, 보상 트랜잭션

토스 SLASH 24 서버 세션 후기입니다. 리플레이 검증(Read/Write Verifier)으로 레거시 원장을 안전하게 전환한 사례, Oracle 대신 MySQL과 MSA로 만든 외화 코어뱅킹, SAGA 패턴과 보상 트랜잭션으로 환전을 처리하는 방법, 그리고 커널 Observability와 마이데이터 서킷 브레이커 세션에서 얻은 키워드를 정리했습니다.

여러 서버에서 같은 요청이 겹칠 때, Redisson 분산 락을 애노테이션 하나로 걸기

여러 서버에서 같은 요청이 겹칠 때, Redisson 분산 락을 애노테이션 하나로 걸기

서버가 여러 대이면 synchronized로는 동시성 문제를 막을 수 없습니다. 이미 Redis가 있는 환경에서 Redisson 분산 락을 골랐고, 커스텀 @RedissonLock 애노테이션과 AOP Aspect로 SpEL key, waitTime·leaseTime을 처리하도록 만든 과정, 락 획득 실패와 트랜잭션 순서에서 조심할 점, 그리고 스레드 세 개로 확인하는 동시성 테스트까지 정리합니다.