Sinhu Jung Software Engineer
Section

강원도민 복지 플랫폼

2021.11 — 2023.12·Frontend Engineer↗ Visit부산·해운대구·센텀시티 (우동)
JavaSpringReactElasticsearchJest

프로젝트 핵심 요약

문제에서 결과까지
모바일·관리자 백엔드
Java·Spring
신청자 지원 요건 검증
정부 API
기존 최대 90분의 빌드
30분 이내
문제
공고별 지원 요건에 맞는 신청자 검증과 업무 데이터·관리자 화면이 필요했습니다. 시연용 코드와 중복 번들 처리도 운영·배포에 부담을 주었습니다.
판단
Java·Spring으로 정부 API를 연계하고 신규 공고의 DB·API를 설계했습니다. Jest로 기존 동작을 확인하며 리팩토링하고, Webpack의 공통 라이브러리 중복 처리를 제거했습니다.
내 기여
농지 면적·강원도 거주 기간 등 자격 검증, 신규 공고 DB·API, 관리자 그래프·차트를 개발했습니다. Elasticsearch 로그 조회와 그룹웨어 오류 알림, 라우트 코드 분할과 사전 로딩도 개선했습니다.
결과
모바일·관리자 서비스의 지원 자격 검증과 업무 기능을 구현했습니다. Webpack 최적화로 빌드 시간을 최대 90분에서 30분 이내로 단축했고 Jenkins에서 소요 시간을 확인했습니다.

범위와 측정 기준 · 입사지원서 v9의 담당 업무와 Jenkins 관찰 기록 기준입니다. 빌드 시간은 당시 작업의 관찰 범위이며 동일 조건의 반복 표본 평균이나 사용자 응답 시간 지표는 아닙니다.

구현과 검증 과정

정부 제공 정보로 공고별 지원 요건 검증

업무 맥락
재난지원금 공고 이후 농어업·임업 지원금 업무에 참여하며 신청자의 지원 자격을 확인하는 기능을 개발했습니다.
직접 구현
Java·Spring으로 정부 사용자 정보 API를 연계해 농지 면적과 강원도 거주 기간을 확인하는 로직을 구현했습니다. 신규 공고에 필요한 DB·API와 React 관리자 그래프·차트도 개발했습니다.
검증과 범위
직접 담당한 범위는 모바일·관리자 백엔드와 관리자 화면입니다. API 실패 재시도·타임아웃·DB 엔진 등 상세 정책은 자료에 없어 추가하지 않았습니다.

기존 동작을 확인한 뒤 리팩토링과 빌드 개선

업무 맥락
시연용 하드코딩 코드와 이미 빌드된 공통 라이브러리의 중복 처리를 운영 환경에 맞게 개선했습니다.
직접 구현
Jest로 핵심 함수의 기존 동작을 확인하고 리팩토링했습니다. Webpack이 이미 빌드된 공통 라이브러리를 다시 처리하는 부분을 번들 대상에서 분리했습니다.
검증과 범위
Jenkins에서 빌드 소요 시간이 최대 90분에서 30분 이내로 줄어든 것을 확인했습니다. 외부로 분리한 라이브러리는 실행 환경에서 제공되어야 하며, 이 기록은 사용자 응답 시간 지표와 구분합니다.

Architecture

모바일·관리자 백엔드의 자격 검증·데이터 연계와 관리자 웹의 빌드·배포를 구분했습니다.

검증 근거 · 입사지원서 v9의 Java·Spring·정부 API·신규 공고 DB·오류 알림 및 Jest·Webpack·Jenkins 설명 기준의 개념도입니다. 서비스 소스와 CI 설정은 대조하지 못했습니다.

→ 요청 · 전달⇢ 코드 의존성 (점선)→ 빌드 · 배포

지원 자격 검증과 운영 데이터 연계

모바일·관리자 백엔드에서 정부 제공 정보와 공고별 지원 요건을 연결합니다.

노드 선택 · Ctrl/⌘ + 휠로 확대 · 드래그로 이동
100%
지원 자격 검증과 운영 데이터 연계. 모바일·관리자 백엔드에서 정부 제공 정보와 공고별 지원 요건을 연결합니다. 아래에 동일한 연결 관계를 텍스트로 제공합니다.신청 · 조회관리 업무요건 정보 조회공고 데이터오류 로그오류 확인 · 알림모바일 이용자 — 지원금 신청모바일 이용자지원금 신청Java · Spring API — 공고 · 지원 자격 검증Java · Spring API공고 · 지원 자격 검증정부 제공 API — 농지 · 거주 기간 정보정부 제공 API농지 · 거주 기간 정보React 관리자 — 업무 화면 · 그래프React 관리자업무 화면 · 그래프업무 DB — 신규 공고 DB 설계업무 DB신규 공고 DB 설계Elasticsearch — 오류 로그 수집 · 조회Elasticsearch오류 로그 수집 · 조회그룹웨어 알림 — 담당자 오류 메시지그룹웨어 알림담당자 오류 메시지
  • • 담당한 모바일·관리자 백엔드와 관리자 프론트엔드를 표시했습니다. 모바일 클라이언트 자체의 개발이나 도서관 회원 동기화를 이 서비스의 구현 범위로 합치지 않았습니다.
  • • DB 엔진·세부 인증 방식·로그 수집기·알림 실행 주체는 확인 범위 밖입니다. 로그에서 알림으로 향하는 선은 오류 대응 흐름이며 Elasticsearch 자체의 메시지 발송 기능을 뜻하지 않습니다.
연결 관계를 텍스트로 보기
  • 모바일 이용자 → Java · Spring API · 신청 · 조회
  • React 관리자 → Java · Spring API · 관리 업무
  • Java · Spring API → 정부 제공 API · 요건 정보 조회
  • Java · Spring API → 업무 DB · 공고 데이터
  • Java · Spring API → Elasticsearch · 오류 로그
  • Elasticsearch → 그룹웨어 알림 · 오류 확인 · 알림

소스 · 검증 · 빌드 · 배포

동적 import는 소스에 선언하고, Webpack이 이를 분석해 별도 청크를 만듭니다.

노드 선택 · Ctrl/⌘ + 휠로 확대 · 드래그로 이동
100%
소스 · 검증 · 빌드 · 배포. 동적 import는 소스에 선언하고, Webpack이 이를 분석해 별도 청크를 만듭니다. 아래에 동일한 연결 관계를 텍스트로 제공합니다.빌드 입력산출실행테스트 대상배포React 소스 — lazy · import 선언React 소스lazy · import 선언Webpack — 청크 분할 · externalsWebpack청크 분할 · externals웹 빌드 결과 — HTML · CSS · JS 청크웹 빌드 결과HTML · CSS · JS 청크Jenkins — 빌드 · 배포 자동화Jenkins빌드 · 배포 자동화Jest — 핵심 로직 회귀 테스트Jest핵심 로직 회귀 테스트관리자 웹 배포 — 웹 리소스 제공관리자 웹 배포웹 리소스 제공
  • • externals는 외부 디자인 시스템을 중복 번들링하지 않게 하는 설정입니다. 제외한 라이브러리는 실행 환경에서 별도로 제공되어야 합니다.
  • • Jest와 Jenkins의 역할을 표시했으며, 확인하지 못한 Jenkins stage 순서나 자동 배포 승인 정책을 추가하지 않았습니다.
  • • 빌드 시간 최대 90분 → 30분 이내는 Jenkins 관찰 기록입니다. 라우트 코드 분할과 화면 전환 전 리소스 로딩도 적용했으며 사용자 응답 시간과 빌드 시간을 구분합니다.
연결 관계를 텍스트로 보기
  • React 소스 → Webpack · 빌드 입력 (빌드·배포)
  • Webpack → 웹 빌드 결과 · 산출 (빌드·배포)
  • Jenkins → Webpack · 실행 (빌드·배포)
  • Jest → React 소스 · 테스트 대상 (코드 의존성)
  • 웹 빌드 결과 → 관리자 웹 배포 · 배포 (빌드·배포)

Key Decisions

결정이유결과
Java·Spring에서 정부 API 연계농지 면적·강원도 거주 기간 등 공고별 자격 확인지원금 신청자의 요건 검증 로직 구현
Jest 테스트를 기준으로 리팩토링시연용 코드를 수정하며 기존 핵심 함수 동작을 확인테스트와 함께 하드코딩 코드 정리
Webpack 중복 번들 처리 제거이미 빌드된 공통 라이브러리를 다시 처리하는 문제Jenkins에서 최대 90분 → 30분 이내 확인

Before / After

항목BeforeAfter
빌드 시간 (Jenkins)최대 90분30분 이내
공통 라이브러리빌드된 파일을 중복 처리Webpack 번들 대상에서 분리
리팩토링 검증시연용 하드코딩 코드Jest로 핵심 함수 확인

Impact

  • ▸정부 정보를 연계한 공고별 신청 자격 검증 기능을 구현했습니다.
  • ▸신규 공고의 데이터 구조·API와 운영자 차트를 함께 개발했습니다.
  • ▸로그 조회와 오류 알림으로 담당자가 문제를 확인하는 흐름을 개선했습니다.
  • ▸빌드 시간을 최대 90분 → 30분 이내로 단축했습니다.

Tech Stack

Backend / Data
JavaSpring정부 API 연계DB 설계
Frontend
ReactJavaScriptReduxWebpackBabel
Operations / Quality
ElasticsearchKibanaJestJenkins