프로젝트
지마켓로그인 장애 이후의 근본 대응

로그인 시스템 Java/Spring 전환

전체 로그인이 멈췄던 장애를 계기로 기존 플랫폼의 제약을 검토하고, 로그인 · 회원 기능을 Java/Spring으로 옮기는 작업에 참여했습니다.

회원정보 조회에 Caffeine 로컬 캐시 도입 (팀 작업)

기간
2023 — 2024
팀
팀 프로젝트
역할
원인 분석 · 전환 설계 기여

재기동으로 끝내지 않았다

DB 연결을 맺는 단계에서 문제가 생겨 전체 로그인이 불가능한 장애가 있었습니다. 서버와 DB를 재기동해서 복구했지만, 재기동은 증상을 없앤 것이지 원인을 없앤 것은 아니었습니다.

살펴보니 당시 사내 보안 라이브러리 지원 문제로 기존 .NET 런타임 버전이 고정되어 있었고, 이 제약 때문에 Redis Cluster나 MongoDB 같은 연동 기술을 붙이기도 어려운 상태였습니다. 이 제약이 곧 장애의 직접 원인이라고 말할 수는 없지만, 같은 문제를 다시 마주했을 때 손쓸 수 있는 폭을 좁히고 있는 건 분명했습니다.

언어를 바꾼 게 아니라 제약을 푼 것

그래서 재발 방지 패치가 아니라 로그인 · 회원 기능을 Java/Spring으로 옮기는 방향으로 설계에 참여했습니다. .NET이 나빠서가 아니라, 조직이 지원할 수 있는 런타임과 라이브러리 조건에서 유지보수와 연동이 가능한 쪽으로 옮긴 것입니다.

전환 과정에서 팀은 자주 조회되는 회원정보에 Caffeine 로컬 캐시를 적용했습니다. 인스턴스별 캐시는 갱신이 늦을 수 있어서, 차단이나 탈퇴처럼 즉시 반영되어야 하는 상태는 캐시 대상과 만료 정책을 따로 봐야 합니다.

내 역할의 범위

팀이 복구와 전체 전환을 함께 진행했고, 저는 DB 연결 문제 분석과 전환 설계에 참여했습니다. 회원정보 Caffeine 캐시 적용도 팀 작업으로 진행했습니다.

구조와 구현

재기동으로 증상은 사라졌고, 남은 런타임 제약을 전환으로 풀었습니다

재기동으로 증상은 사라졌고, 남은 런타임 제약을 전환으로 풀었습니다DB 연결 단계 문제로 전체 로그인이 불가능한 장애가 났고 재기동으로 복구했습니다. 이후 원인과 제약을 분석하고 Java/Spring 전환을 설계했으며 저는 이 두 단계에 참여했습니다. 기존 .NET은 사내 보안 라이브러리 때문에 런타임 버전이 고정되어 Redis Cluster·MongoDB 연동이 어려웠습니다. 이 제약이 장애의 직접 원인은 아니지만 대응 폭을 좁혔습니다. 전환과 운영, Caffeine 캐시 적용은 팀 작업입니다.진행 흐름장애전체 로그인 불가재기동증상만 복구원인 · 제약 분석DB 연결 단계전환 설계Java/Spring전환 · 운영팀 작업제가 참여한 범위바꾼 것은 언어보다 제약기존 .NET 서비스× 런타임 버전 고정 사내 보안 라이브러리 지원 문제× Redis Cluster · MongoDB 연동 어려움Java / Spring 서비스✓ 조직이 지원하는 런타임✓ 연동 기술 적용 가능 Caffeine 캐시는 팀 작업런타임 제약은 장애의 직접 원인이 아니라, 대응 폭을 좁히는 조건이었습니다.재기동으로 증상은 사라졌고, 남은 런타임 제약을 전환으로 풀었습니다DB 연결 단계 문제로 전체 로그인이 불가능한 장애가 났고 재기동으로 복구했습니다. 이후 원인과 제약을 분석하고 Java/Spring 전환을 설계했으며 저는 이 두 단계에 참여했습니다. 기존 .NET은 사내 보안 라이브러리 때문에 런타임 버전이 고정되어 Redis Cluster·MongoDB 연동이 어려웠습니다. 이 제약이 장애의 직접 원인은 아니지만 대응 폭을 좁혔습니다. 전환과 운영, Caffeine 캐시 적용은 팀 작업입니다.진행 흐름장애전체 로그인 불가재기동증상만 복구원인 · 제약 분석DB 연결 단계전환 설계Java/Spring전환 · 운영팀 작업제가참여바꾼 것은 언어보다 제약기존 .NET 서비스× 런타임 버전 고정× Redis Cluster · MongoDB 연동 어려움Java / Spring 서비스✓ 조직이 지원하는 런타임✓ 연동 기술 적용 · 캐시는 팀 작업제약은 장애의 직접 원인이 아니라대응 폭을 좁히는 조건이었습니다.
위는 장애부터 전환까지의 흐름과 제가 참여한 범위, 아래는 전환으로 풀린 제약입니다. 전환·운영과 캐시 적용은 팀 작업입니다.
구현 범위 · 사용 기술
  • Java
  • Spring
  • Oracle
  • Redis Cluster
  • MongoDB
  • Caffeine
  • 장애 분석DB 연결 실패가 어느 단계에서 났는지 확인
  • 제약 검토런타임 버전 고정이 유지보수와 연동에 주는 영향
  • 전환 설계로그인 · 회원 기능의 Java/Spring 전환
  • 조회 캐시회원정보 조회에 Caffeine 로컬 캐시

돌아보면

재기동에 의한 복구와 런타임 전환은 별도 과제로 다뤘습니다. 전환 설계에서는 언어 교체보다 보안 라이브러리 지원과 외부 연동 제약을 먼저 확인했습니다.

회사 프로젝트의 소스 코드는 공개하지 않습니다. 구조도는 업무 흐름을 설명하기 위한 개념도입니다.