Juhyeong Kang | Backend Developer

Backend Developer

신뢰할 수 있고
유지보수 가능한
시스템 구축에 집중하는
백엔드 개발자

금융 플랫폼 실무에서는 인증/인가와 정산 기능을 개발했습니다. 개인 프로젝트에서는 차트 공개와 피드 조회처럼 읽기 경로와 상태 일관성이 맞물린 문제를 설계하고 검증했습니다. 병목이 드러난 구간은 쿼리나 캐시를 덧붙이기보다 경로와 책임을 다시 나누는 방식으로 풀었습니다.

Career

실무 경험

EQBR Holdings 서버팀

인턴 · 백엔드/서버개발

2025.02 ~ 2025.08 · 6개월

B2B·B2C 금융 플랫폼 웹 서비스의 백엔드 개발과 운영을 맡았습니다. 인증/인가 흐름과 블록체인 기반 PG 정산 기능을 구현하면서, 주체별 접근 흐름과 결제-정산 상태를 서비스에서 추적 가능한 구조로 정리했습니다.

Tech Stack NestJS, Express, Solidity, MySQL, RabbitMQ, Redis, DynamoDB

  • JWT 기반 다중 주체 인증 체계와 IAM 권한 구조를 서비스 API 접근 흐름에 맞게 연결했습니다.
  • 결제-정산 매핑 구조와 실행 단위/지급 단위 분리로 여러 자산·여러 수취자 지급을 수용하도록 모델을 보완했습니다.
  • 정산 요청·완료·실패와 외부 실행 결과를 연결해 후처리, 지급 결과 반영, 상태 추적이 이어지는 프로세스를 구성했습니다.

Projects

프로젝트

Personal Project SNS 서비스 백엔드

SNS

피드 읽기 경로와 운영 계층을 분리해 조회 병목과 장애 복구를 검증한 SNS 서비스 백엔드입니다. 중간 피드 테이블 없이 조회 경로를 줄이고, 읽기/쓰기 전환과 장애 대응 책임을 애플리케이션 밖으로 분리했습니다.

  • Java
  • Spring Boot
  • MySQL
  • Redis
  • Docker
  • AWS
29,000ms → 45ms피드 기본 조회 응답 시간
319ms → 140ms피드 API 평균 응답 시간
34.3건/s → 79.1건/s피드 조회 처리량

Cases

기술 사례

Hipster

차트 공개 기준이 저장소마다 달라지던 문제 해결

배치가 끝나도 저장소마다 다른 버전이 노출될 수 있었습니다. chart_publish_state.current_version을 단일 공개 기준으로 세우고, 모든 응답 경로가 같은 버전을 따르도록 맞췄습니다.

차트 공개 기준
공개 버전 한 기준으로 관리
차트 공개 기준 적용 범위
캐시, 검색 인덱스, 갱신 시각이 같은 결과를 따르도록 정리
사례 요약 보기
Hipster

역할 분리를 통한 차트 조회 성능 개선

단일 저장소 의존으로 인한 응답 지연을 방지하기 위해 조회 캐시, 검색, 메타데이터 조회를 분리하여 Read Path를 재설계했습니다.

차트 장르 필터 응답 시간
65,421ms → 178.37ms
차트 갱신 시각 응답 시간
4,732ms → 1.00ms
사례 요약 보기
SNS

EXPLAIN 분석을 통한 대용량 피드 조회 최적화

1억 4천만 건 조인 환경에서 임시 테이블과 정렬 병목을 해소하고 @BatchSize 조회 방식을 선제 적용했습니다.

피드 기본 조회 응답 시간
29,000ms → 45ms
피드 정렬 대상 row 수
7,236 → 1,091
사례 요약 보기
Hipster

비동기 파이프라인 및 자가 치유 구조를 통한 결과적 일관성 확보

메시지 큐 분리와 Anti-Entropy 배치 구현을 통해 동시 경합으로 발생하는 DB 커넥션 고갈 위협을 해소했습니다.

차트 재생성 배치 시간
약 87.9분 → 약 23.9분
ES 재색인 총 시간
7,455.67ms → 953.67ms
사례 요약 보기
Hipster

원본 평점 테이블에 몰린 조회·갱신 부담 분리

원본 평점 테이블에 몰린 조회 책임과 쓰기 책임을 분리하고, 릴리즈 단위 집계 계층을 세워 조회와 차트의 기준 데이터를 분리했습니다.

평점 집계 조회 응답 시간
806ms → 20ms
평점 동시 등록 평균 응답 시간
126ms → 12.95ms
사례 요약 보기
Hipster

테이블 책임 분리를 통한 연쇄 쓰기 쿼리 최적화

유저 가중치 반영 시의 원본 평점 재기록 오류를 해결하고 점수 연산을 위임하여 무의미한 연쇄 쓰기를 차단했습니다.

유저 가중치 배치 시간
921,000ms → 359,200ms
유저 통계 계산 시간
10,420ms → 1,138ms
사례 요약 보기
SNS

DB 관통 방어를 위한 계층형 캐시 전략

정적, 가변 데이터를 계층 분리하여 캐싱하고 삭제된 데이터에 대해 Null Object 패턴을 반환하여 원본 조회 차단에 성공했습니다.

좋아요 평균 응답 시간
500ms → 169ms
좋아요 처리량
101.1건/s → 315.5건/s
사례 요약 보기
SNS

스레드 덤프 분석을 통한 커넥션 풀 사이즈 하향 튜닝

제한된 코어 내에서의 풀 증설이 스레드 경합 상태 악화를 유발함을 입증하고 서버 자원에 맞게 커넥션 상한치를 오히려 하향 최적화했습니다.

평균 응답시간 최적화
310ms → 234ms (24.5% 단축)
95% 응답시간 안정화
1,193ms → 880ms (26.2% 단축)
사례 요약 보기
Hipster

Outbox 패턴을 통한 비동기 적립 이벤트 재처리 아키텍처

2PC 분산 트랜잭션 수립이 어려운 환경에서, 로컬 DB 커밋과 보관 테이블을 구축하고 메시지 큐 이벤트의 멱등성을 검증했습니다.

멱등 기준
승인 식별자 기준 1건당 최대 1회 적립
정책 상태
한도 초과와 상쇄 기록으로 구분
사례 요약 보기
SNS

Redis 장애 시 읽기와 쓰기 복구 전략 분리

단일 캐시 인프라 장애 발생 시 데이터 성격별로 폴백 우회와 보관 재처리를 나누어 시스템 전체의 복원력을 높였습니다.

읽기 복구
재시도와 서킷 브레이커 뒤 DB 우회
쓰기 복구
보류 큐 적재 후 Redis 복구 시 재실행
사례 요약 보기

Certificates

자격증

정보처리기사

한국산업인력공단

2024.09 취득