Skip to content
View sjh9714's full-sized avatar

Block or report sjh9714

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
sjh9714/README.md

성진혁

Product Engineer · Backend Developer

사용자 반응으로 문제를 좁히고, 화면·API·외부 데이터가 만나는 경계를 구현한 뒤 테스트와 외부 리뷰로 검증합니다.


📊 Stats

GitHub 통계 - 별, 커밋, PR, 이슈와 등급 백준 solved.ac 티어와 푼 문제 수

🌱 Experience

  • 가톨릭대학교 컴퓨터공학 | 재학 (2021.03 ~ )
  • 하나금융그룹 x 금융감독원 청년 금융인재 양성 프로젝트 | FinMate · 화면 설계 · 웹앱 · API (2026.04 ~ 2026.08)
  • Tech4Good 해커톤 | My ETA · 백엔드 · 외부 API · 파트 간 요청·응답 조율 (2026.07)
  • Open Source | 외부 프로젝트 버그 수정 · 기능 보완 · 문서 개선 · 메인테이너 리뷰 대응 (2026.07 ~ )
  • 멋쟁이사자처럼 대학 12기 | Backend · 중앙해커톤(2024.08) · 데모데이(2024.12) (2024.03 ~ 2024.12)
  • GGUM 해커톤 | 가톨릭대 컴퓨터정보공학부 연합 해커톤 · Backend (2024.10)

📂 Team Projects

1. FinMate | 20대의 첫 금융 온보딩 서비스

Role: 화면 설계 · 웹앱 · API · 기간: 2026.04 ~ 2026.08 · 팀: 4인 결과: 하나금융그룹 x 금융감독원 청년 금융인재 결선 진출작

  • 사용자 흐름: 팀의 97명 문제 탐색 설문과 108명 화면 조사를 바탕으로, 또래 비교 → 금융 패턴 확인 → 오늘의 작은 미션으로 이어지는 홈 흐름을 설계
  • 웹앱 구현: 예산 · 소비 · 저축을 시각화하고 또래 스토리, AI 그림일기, 미션과 인사이트를 하나의 모바일 웹앱으로 구현
  • API 구현: Java · Spring · PostgreSQL로 인증, 금융 원장, 또래 비교, 피드, 미션·포인트, 인사이트와 그림일기 API를 구성
  • 데이터와 테스트: 합성 금융 데이터 2,000명 · 887,002행을 적재하고 PostgreSQL Testcontainers 통합 테스트 50개로 주요 흐름을 검증

🔗 https://github.com/gaga-studio/finmate-app


2. My ETA | 교통약자를 위한 배리어프리 길찾기

Role: 백엔드 · 외부 API · 요청·응답 조율 · 기간: 2026.07 ~ 2026.08 · 팀: 7인 (하나금융그룹 x SK텔레콤 Tech4Good)

  • 개인화 ETA: 이동 유형 · 보조기구 · 보행속도와 경로 구간 거리를 반영해 일반 ETA와 개인화 ETA를 함께 계산
  • 지도와 교통 데이터: React 지도 화면과 FastAPI를 연결하고 Kakao 장소 검색, TMAP 경로, 서울 버스·지하철·엘리베이터 데이터를 어댑터로 구성
  • 이동 중 안내: 유효 GPS 표본으로 보행속도를 갱신하고 경로 이탈이나 대중교통 놓침이 발생하면 현재 위치에서 경로와 ETA를 다시 계산
  • 상태와 테스트: 확인된 정보와 미확인 정보를 구분하는 응답 모델을 설계하고 백엔드 69개·프론트엔드 23개 자동 테스트로 API·화면 흐름을 검증

🔗 https://github.com/tech4good-2026/eta


3. Student Start Mode | 유학생 금융 온보딩

Role: 아이디어 제안 · 프로토타입 공동 구현 · 발표 영상 편집 · 기간: 2026.04 ~ 2026.05 · 팀: 4인 🏆 청년 금융인재 예선 통과 · 본선 합격작

  • 상태 기반 체크리스트: 유학생의 첫 90일을 지금 가능 / 다음 단계 / 잠김으로 나눠 현재 상태에서 할 수 있는 금융 업무를 먼저 안내
  • 규칙과 AI의 역할: 비자와 외국인등록증 상태는 규칙으로 판단하고, AI 채팅은 각 단계의 세부 질문을 돕도록 분리
  • 일정과 출처: 비자 만료일 · 외국인등록증 수령일 · 계좌 개설 권장일을 캘린더로 묶고 안내 근거를 화면에 함께 표시

🔗 https://github.com/sjh9714/Student_Start_Mode_demo


4. Memory of Year | 추억 앨범 서비스

Role: Backend · Infrastructure · 기간: 2024.10 ~ 2024.12 · 팀: 7인 (디자인 1 · 프론트 2 · 백엔드 4) · 멋쟁이사자처럼 데모데이

  • 백엔드 기반: 인증 · 앨범 · 편지 · 사진 API의 기반을 설계하고 구현
  • 배포와 연동: AWS EC2 · DB · S3 · HTTPS 환경을 구성하고 배포 API를 프론트엔드 화면과 연결해 팀 시연을 지원
  • 후속 검증 (2026): 앨범 소유권 판정과 MySQL · S3 사이의 저장 경계를 다시 검토

🔗 https://github.com/sjh9714/memory_of_year


5. BorrowMe | 교내 물품 대여 서비스

Role: Backend · REST API · 데이터 이관 · 기간: 2024.10 (GGUM 해커톤, 11인) → 2026 개인 재작업

  • 알림 API (2024): 댓글·답글이 작성되면 대상 사용자의 알림을 생성하고, 알림 목록 조회·읽음 처리·삭제로 이어지는 REST API를 구현
  • 대여 흐름 재설계 (2026): 요청과 취소만 있던 흐름을 승인 → 인도 → 반납 확인으로 이어지는 대여 상태와 API로 확장
  • 데이터 이관 (2026): 기존 대여 데이터를 새로운 상태·이력 구조로 옮기는 DB 마이그레이션을 작성

🔗 https://github.com/sjh9714/borrow_me


💻 Backend Portfolio

동시 예약과 실시간 전달에서 생기는 충돌·중복·누락 문제를 직접 구현하고 측정한 개인 프로젝트 · 상세 설계와 측정 기록

1. 좌석 예약 시스템 | 대기열 · 동시 예약 · 실패 복구

대기열 통과 → 좌석 임시 선점 → 결제 → 예매 확정으로 이어지는 좌석 예약 시스템

Role: 설계 · 구현 · 측정 전체 · 기간: 2026.02 ~ 2026.05 · Stack: Java 21 · Spring Boot 3.4 · PostgreSQL · Redis · Kafka · React

  • 동시 예약 제어: 같은 좌석에 여러 요청이 들어와도 한 건만 예약되도록 비관적 락·낙관적 락·Redis 분산 락을 각각 구현하고 동일한 조건에서 비교
  • 동시성 검증: 좌석 1개에 100건을 동시에 요청해 세 방식 모두 예약 1건·중복 판매 0건 확인
  • 중복 요청 방지: 대기 순서를 실시간으로 전달하고 같은 예약·결제 요청은 한 번만 처리되도록 요청 식별값 적용
  • 후속 처리 복구: 예매 기록과 후속 이벤트를 함께 저장하고 전송 실패는 재시도, 반복 실패 작업은 격리 후 재처리하도록 구성

🔗 https://github.com/sjh9714/concert-booking


2. 실시간 채팅 서버 | 저장 · 다중 서버 전달 · 재연결

여러 서버에 나뉘어 접속한 사용자 간 실시간 메시지 전달과 재접속 시 누락 구간 보충을 구현한 채팅 시스템

Role: 설계 · 구현 · 측정 전체 · 기간: 2026.02 ~ 2026.05 · Stack: Java 21 · Spring Boot 3.4 · PostgreSQL · Kafka · Redis · STOMP · React

  • 저장 후 전달: 메시지가 데이터베이스에 저장된 뒤에만 화면으로 전달하고, 여러 서버에 접속한 사용자에게도 같은 메시지를 전파하도록 구성
  • 다중 서버 전달 검증: 서버 2대·사용자 50명·메시지 100건 조건을 3회 반복해 예상 수신 4,900건 전부 도착, 누락·중복 0건 확인
  • 목록 조회 최적화: 채팅방마다 필요한 정보를 따로 조회하던 구조를 한 번에 묶어, 채팅방 50개 기준 데이터베이스 쿼리 101회 → 3회로 축소
  • 재연결 보충: 연결이 끊긴 동안의 메시지를 마지막 수신 ID 이후부터만 다시 가져오도록 구현

🔗 https://github.com/sjh9714/realtime-chat


✍️ Recent Posts


Pinned Loading

  1. backend-portfolio backend-portfolio Public

    Java·Spring 백엔드 포트폴리오 - 동시성, 정합성, 실시간 전달, 집계 전략

    TypeScript

  2. krea2-wildcards krea2-wildcards Public

    514 Krea 2 Turbo prompts with generated examples and ComfyUI wildcards

    HTML 19 5

  3. gaga-studio/finmate-app gaga-studio/finmate-app Public

    하나금융그룹 x 금융감독원 2026 청년 금융인재 프로젝트 결선 - FinMate (20대의 첫 금융 온보딩 서비스)

    TypeScript

  4. dsh-win32 dsh-win32 Public

    Fix and diagnose DeepSeek Harness on native Windows. Official PowerShell, Workspace Write, shortcuts, and legacy preset repair. No WSL.

    TypeScript 20 2

  5. tech4good-2026/eta tech4good-2026/eta Public

    하나금융그룹 x SK텔레콤 Tech4Good 2026 - My ETA (교통약자를 위한 개인화 배리어프리 길찾기 서비스)

    Python

  6. mergewarden mergewarden Public

    See which external pull requests need context before code review. Deterministic, no login, no AI.

    TypeScript 14 7