INTRODUCE

백엔드 개발자로서, 문제 해결과 성능 개선을 통해 유용한 가치를 제공하는 데 큰 보람을 느낍니다. 특히, 다중 쿼리와 대용량 데이터를 효율적으로 처리하는 시스템을 구축한 경험이 있습니다. 인턴 기간 동안 2500만 데이터를 처리하며, 서버 기능의 속도를 97% 향상시키는 성과를 이뤘습니다.

3년간 두 개의 서비스를 운영하며, 고객의 불편을 파악하고 피드백을 반영한 경험이 있습니다. 이 과정에서 서버를 중심으로, 프론트엔드와 인프라의 전체 사이클을 이해하며 시야를 넓혔습니다. 이를 통해 문제의 본질을 파악하여 안정적인 서비스 운영에 기여하고자 합니다.

WORK EXPERIENCE

2024. 07 ~ 2024. 09

Fiveworks / 풀스택 개발자 (Intern)  

- 빅데이터 팀
Omnimix 서비스 : 네트워크 약리학의 약재 성분 및 유전자 분석 서비스. 2,500만 대용량 데이터를 처리하며, 빅데이터 분석을 위한 Backend 및 Frontend 개발.
  • 신규 RESTful 서버 개발 & 레거시 서버리스 시스템의 마이그레이션
    • 문제 : AWS Lambda 서버리스로 API가 운영되어, 유지보수 및 추가 기능에 대한 유연성 부족
    • 해결 : Java Spring 기반의 RESTful 서버를 개발, Python Lambda 서버리스 코드의 마이그레이션
    • 성과 : 확장성 높은 모듈화된 백엔드 아키텍처를 구축하여, 코드의 재사용성 및 유지보수성 향상
  • 메인페이지 로딩 속도 개선
    • 문제 : 통합 API 1개로 페이지 내 모든 데이터를 처리하며, 메인페이지 로딩에 과도한 딜레이 발생
    • 해결 : 단일 API 로직을 기능별 4개의 REST API로 분리 후, 분할 로딩화면에 동시 호출해 병렬로 처리
    • 성과 : 모든 분석 결과가 로딩될 때까지 30초 이상 접근할 수 없었던 메인페이지를 즉시 이용 가능
  • 질병 기능의 DB 조회 성능 개선 (2500만 데이터)
    • 문제 : 질병 데이터가 테이블에 2500만개 이상 적재되며, DB의 Read 부하 증대 및 속도 저하
    • 해결 : 질병은 WHERE Read 전용이므로, 대용량의 질병 테이블에 질병명 기준 DB indexing을 진행
    • 성과 : ’질병 연관 유전자 조회’ 기능을 평균 33.86초에서 1.32초로 약 96% 개선.
      ’약재의 타겟 질병 분석’ 기능을 평균 36.53초에서 8.15초로 약 78% 개선. (1차 개선)
  • 비효율적인 순차 로직의 병렬 최적화
    • 문제 : 서로 의존성이 없는 약재 추출과 질병 추출의 두 작업을 순차적으로 처리하는 비효율 발견
    • 해결 : 비동기 CompletableFuture로 두 작업을 논블로킹 병렬 처리 후, join으로 블로킹해 데이터 통합
    • 성과 : ’약재의 타겟 질병 분석’ 기능을 평균 8.15초에서 3.31초로 약 60% 개선. (2차 개선)
      최종적으로 위 기능의 개선 수치가 평균 36.53초에서 3.31초로 약 97%를 달성.
  • 세부 필터링 기능의 응답 속도 개선
    • 문제 : 필터링 기능 사용 시, 매번 대량의 데이터를 응답하며 대기시간 증가
    • 해결 : 기존의 DB 일괄 조회 방식을 60개 단위로 Slice 처리하도록 변경, 무한 스크롤 페이징 적용
    • 성과 : 필터링 API의 응답 속도를 평균 10.52초에서 1.31초로 약 88% 개선
  • JWT 기반 로그인 시스템 개발
    • 문제 : 레거시 비로그인 시스템을 로그인 체제로 전환하며, 새로운 인증 프로세스의 도입 필요
    • 해결 : 계정별 다중 세션 관리는 불필요, JWT(Access & Refresh) 기반 Spring Security 인증 도입
    • 성과 : JWT 권한 기반의 서버 URI 접근 제한과, Refresh 다중 토큰 운용을 통해 보안성 향상
  • 빅데이터 분석 결과의 통계 시각화
    • 해결 : React 기반의 표와 다양한 그래프(Cytoscape, Dot Plot, Venn Diagram)로 효과적인 시각화
  • Backend Skills : 
    Spring BootJavaSpring SecurityJWTMongoDB
  • Frontend Skills : 
    React.jsTypeScriptReact QueryRecoil
  • MAIN PROJECT

    2024. 04 ~ 2024. 06

    Dev Race / 백엔드 개발

    실시간 코딩 경쟁 및 채팅 서비스 (Github)
    • 서비스 기획 및 원활한 협업 환경 구성
    • N+1 쿼리 문제 해결
    • 다수 인원 동시 입장 기능의, Bulk Insert 성능 개선
      • 문제 : IDENTITY로 saveAll이 Bulk되지않아 인원수만큼 다중쿼리 발생, 속도 저하 및 입장시각 상이
      • 해결 : JDBC Batch Insert 도입 및 동일한 생성시각 할당, BatchSize 1000씩 나눠 오버헤드 방지
      • 성과 : 1만명 동시 입장) 쿼리 10000회 → 10회로 감소. 속도 14.52초 → 0.86초로 95% 개선.
    • 회원 탈퇴 기능의, Bulk Delete 성능 개선
    • 실시간성 단체 채팅 기능 개발
      • 단체 메시지의 효율적 전송을 위해, 채팅방 pub/sub 기반의 STOMP 실시간 통신을 구성
      • 외부 메시지 브로커 RabbitMQ를 broker relay 연동, 인메모리 한계를 극복해 과부하 및 소실 방지
      • DB 용도 분리 : 채팅방 정보는 MySQL, 채팅 내역은 스키마리스 확장성을 고려해 MongoDB로 관리
    • CI/CD 파이프라인 구축
      • 프로덕션 환경변수를 Git 서브모듈로 관리, CI 과정에서 자동 로드하여 관리 용이성 확보
      • CI/CD 자동화 : 브랜치 merge → GitHub Actions의 Docker image 생성 → AWS EB 환경 구축/배포
      • Docker Network 자동화 : postdeploy로 인스턴스 내 Spring, RabbitMQ 컨테이너 자동 연결
  • Skills : 
    Spring BootJavaSTOMPRabbitMQMySQLMongoDB

  • 2023. 09 ~

    온라인 메모장 / 풀스택 개발 · 운영

    공동 작성 가능한 메모장 서비스 (Github) / 운영 중 · Web , App ◦ 2025.03 기준) 가입자 수 500여명, 장기 이용자 수 월평균 약 140명
    • 메모페이지 로딩 속도 개선
      • 문제 : 메모 목록을 조회하며, 각 메모가 개별적으로 API를 호출해 페이지 로딩이 지연됨
      • 해결 : 페이지 상위 컴포넌트에서 API 단일 호출 후, 데이터를 하위 컴포넌트로 일괄 전달하도록 재구성
      • 성과 : 30개 보유 페이지 로딩) API 요청 91회 → 2회로 감소. 속도 11.27초 → 0.19초로 98% 개선.
    • DTO 모듈화 및 예외처리 단순화
      • 문제 : DTO 및 Exception 클래스의 무분별한 생성으로, 코드 및 패키지 구조의 복잡도 증가
      • 해결 : 분산된 DTO의 Inner Class 응집화, Exception의 추상화로 상태별 상속 클래스 생성
      • 성과 : handler의 400,404,500 클래스 타겟팅으로 예외를 간단히 처리, 모듈화로 유지보수성 향상
    • 수정시각 갱신 이슈 해결
      • 문제 : 메모의 수정시각이 제목이나 내용이 아닌, 즐겨찾기 변경 시에도 갱신되는 문제 발생
      • 해결 : JPA 영속성 컨텍스트에서 관리되지 않도록, JPQL을 사용해 즐겨찾기 필드를 직접 update
      • 성과 : 즐겨찾기가 Auditing 추적없이 개별 update 되어, 수정시각이 이전과 동일하게 유지
    • 로그인 유지 안정화
      • 문제 : Filter의 JWT 만료 예외가 ExceptionHandler로 전달되지 않아, 토큰의 재발급 알림이 중단
      • 해결 : 예외가 상위 Filter로 전파되는 특성을 이용해, 앞단에 ExceptionFilter를 추가하고 만료를 캐치
      • 성과 : 만료 시 Access 토큰을 자동 재발급, Refresh 토큰의 유효기간 동안 로그인 유지 지속
    • 서비스 운영 인프라 구축
      • 에러 로깅/모니터링 : Logback과 ExceptionHandler가 로깅한 정보를 CloudWatch에서 모니터링
      • 로드 밸런싱 & 오토 스케일링 : CPU 70%에서 Scale Out, 30% Scale In으로 트래픽 과부하 방지
  • Backend Skills : 
    Spring BootJavaSpring SecurityJWTMySQL
  • Frontend Skills : 
    React.jsJavaScript
  • ACTIVITY

    2024. 12

    SW 코딩프로젝트 공모전, 수상 🏆

    SW 중심대학사업단

    2024. 02 ~ 2024. 08

    Kakao x 9oormthon Univ. 2기

    수료) 백엔드 개발자

    2023. 09

    SW 융합 클러스터 2.0 해커톤, 최우수상 🏆

    과학기술정보통신부 · 정보통신산업진흥원

    2022. 08 ~ 2023. 09

    Google Developer Student Clubs. 2기

    수료) 백엔드 개발자
    • Spring 백엔드 스터디그룹 운영

    SKILL

    Back-End

    • Spring Boot
    • Security, JWT
    • Java

    Front-End

    • React.js
    • TypeScript
    • JavaScript

    DB & DevOps

    • MySQL
    • MongoDB
    • AWS

    EDUCATION

    2019. 03 ~ 2025. 02

    상명대학교 소프트웨어학과

    졸업) 학점 : 4.07 / 4.5

    2016. 03 ~ 2019. 01

    서울 구암고등학교

    졸업) 자연계

    ETC

    2020. 06 ~ 2021. 12

    육군 9사단 복무

    전역) 병장 만기전역