경력기술서

서민재

Backend Engineer · Java / Kotlin / Spring

약 3년간 Java·Kotlin·Spring으로 검색·이벤트·배치·데이터 정합성을 다뤘습니다. 9개 검색 소스의 변경 경계를 분리하고 Kafka 이벤트 9종을 6개 상태·8개 복구 경로로 설계했습니다. 실제 영속성 컨텍스트에서 JPA 오류를 재현해 오류 데이터 약 200만 건을 보정했습니다.

웍스피어(유) JOBKOREA / Albamon Platform · Backend Engineer

토스랩 JANDI · Backend Engineer

오케스트로 IDP / Vista · Backend Engineer

즐거운 Backend Engineer

웍스피어(유) Backend Engineer JOBKOREA·Albamon Platform

JOBKOREA·Albamon에서 개인화 피드 9개 검색 소스의 변경 경계, Kafka 9종의 6개 상태·8개 복구 경로, Point의 10개 테이블 재시작과 9개 API·13개 동시성 검증을 구현했습니다.

JOBKOREA·Albamon · 채용 개인화 피드 · 검색·랭킹·캐시

9개 검색 소스의 변경을 격리하고 캐시 비가용 시에도 후보 경로를 유지했습니다.

9개 소스별 후보 정책과 실패 처리를 분리하고, Hit·Empty·Unavailable 3개 Snapshot 상태에 따라 저장 결과 반환·새 Snapshot 저장·저장 생략 후 재계산 경로를 구분했습니다.

  • 9개 검색 소스별 필터·정렬·벡터 규칙과 타임아웃·실패 처리를 분리했습니다.
  • 후보 조회 → 중복 제거 → 점수화 → 재정렬 → Redis 캐시 저장의 5단계로 입력·출력을 나누고, 캐시 비가용 시 저장만 건너뛰는 캐시 우회 경로를 분리했습니다.
  • OpenSearch 쿼리 어댑터를 별도 모듈 경계로 분리하고, ArchUnit 테스트로 순환 의존을 검출했습니다.

완료되지 않은 Kafka 업무만 선택 복구하도록 이벤트 9종을 6개 상태와 8개 복구 경로로 분리했습니다.

발행 전에 멈춘 이벤트와 발행 뒤 개별 업무에서 실패한 이벤트는 확인할 데이터와 다시 실행할 범위가 달랐습니다.

  • Kafka 이벤트의 발행·처리 단계를 상태로 기록해 어느 지점에서 멈췄는지 추적할 수 있게 했습니다.
  • 저장한 payload를 사용하는 업무별 복구 경로를 구현해 실패한 업무만 다시 실행하고 전체 처리 과정의 반복 실행을 줄였습니다.
  • 15분 넘게 멈춘 이벤트는 유형별로 묶어 Slack으로 알림을 보내 장기 정체를 확인할 수 있게 했습니다.

웍스피어(유) 배치 재시작 동시성 정합성 CI 중단 해소

  1. 01 · Scope

    Point의 10개 테이블 재시작, 9개 API·13개 시나리오 검증, Kafka 8개 복구 경계를 분리했습니다.

  2. 02 · Batch restart

    10개 아카이브 테이블을 참조 순서대로 이관하고 배치별 진행 위치를 기록해 중단 지점부터 재개했습니다. 소멸 대상은 페이지 단위로, 만료 알림 대상은 별도로 수집했습니다.

  3. 03 · Invariant check

    9개 API·13개 동시성 시나리오에서 3·5·10개 요청을 실행하고, 같은 락 키 또는 예산 조건별로 잔액·원장·예산·후속 이벤트를 비교했습니다.

  4. 04 · Selective recovery

    Kafka 9개 이벤트를 6개 상태와 8개 복구 경로로 구분해 PostgreSQL 상태·JSONB payload를 기준으로 완료되지 않은 차감·회수·만료 알림만 재실행했습니다.

추가 자원 없이 CI 메모리 부족을 해소하고, Base·Mock·WebMvc·JPA 4개 진입점으로 테스트 준비·실행 기준을 표준화했습니다.

  • Fixture·Mock·WebMvc·JPA 설정을 공통화해 필요한 설정만 불러오도록 했습니다.
  • Base·Mock·WebMvc·JPA 진입점으로 나눠 테스트가 필요한 설정만 불러오도록 했습니다.
  • 느린 동시성 테스트는 별도 옵션으로 분리하고, CI의 기본·선택 실행 범위를 문서화했습니다.
  • CI 테스트가 메모리 부족으로 중단되자 느린 테스트 범위와 Spring 컨텍스트 재사용·초기화 방식을 조정해 추가 자원 없이 해소했습니다.

토스랩 Backend Engineer JANDI

이전 경력 · 최신순

오케스트로

Backend Engineer · IDP / Vista

  • Spring Cloud Gateway에 Spring Security·JWT 기반 인증·인가를 적용하고, SonarQube·Jenkins 연동 API를 개발했습니다.
  • VM 메트릭 조회 API와 OpenSearch 조회 API를 개발하고, 조건에 따라 동적 쿼리를 생성하도록 했습니다.

즐거운

Backend Engineer · 자사 서비스 개발·운영