메인으로 돌아가기

2025.11 — 2026.05

내부 CMS / ERP 관리자 화면 개발

영화 계약·매출·비용·정산 데이터를 관리하는 사내 업무 시스템의 조회·편집·저장 기능을 개발했습니다.

Spring · Oracle · JavaScript · AUIGrid

PROJECT CONTEXT

영화 계약·매출·비용·정산 데이터를 관리하는 사내 CMS / ERP 관리자 시스템입니다.

MY PART

  • 관리자 화면 조회·검색·편집·저장
  • 대량 편집 저장·마스킹 처리
  • 정산 데이터 입력·재계산 처리 기준 구분
  • Oracle 기반 업무 데이터 조회·저장

공개 범위실제 회사명, 내부 시스템명, 연동 전문, 계정/코드값은 모두 제외하고 업무 성격만 기술했습니다.

CASE OVERVIEW

대량 편집 화면의 저장 기준 분리

AS-IS
화면에 보이는 값과 실제 저장해야 하는 값이 같은 흐름에 섞여 있었습니다.
DECISION
변경된 행만 저장 대상으로 분리했습니다.

AFTER

  1. 변경 여부
  2. 마스킹 확인
  3. 필수값 검증
  4. 변경 행 추출
  5. 저장

정산 데이터의 입력값과 재계산 값 분리

AS-IS
수기 입력값과 서버에서 다시 계산해야 하는 값의 처리 기준이 달랐습니다.
DECISION
입력 유지와 서버 재집계 대상을 구분했습니다.

AFTER

  • 수기 입력값 → 유지
  • 계산 대상값 → 서버 재집계

CMS / SAVE

대량 편집 화면의 저장 기준 분리

PROBLEM

조회·선택·변경·마스킹 상태가 하나의 저장 흐름에 섞여 있어 수정하지 않은 데이터나 표시용 값이 저장 요청에 포함될 위험이 있었습니다.

WHY

조회용 표시값과 실제 저장 대상은 동일하게 취급할 수 없습니다.

DECISION

화면에 보이는 값과실제 저장해야 하는 값을 분리했습니다.

변경 여부, 마스킹 상태, 필수값 검증을 분리하고 검증을 통과한 변경 행만 저장 요청에 포함하도록 구성했습니다.

IMPLEMENTATION

  1. 조회
  2. 사용자 수정
  3. 변경 여부 확인
  4. 마스킹 확인
  5. 필수값 검증
  6. 변경 행 추출
  7. API 요청
  8. Oracle 저장
  9. 재조회
  • 변경 여부와 마스킹 해제 상태를 확인해 저장 가능한 데이터를 판별했습니다.
  • 필수값 검증을 통과한 변경 행만 요청 데이터로 구성했습니다.
  • Controller와 Service를 거쳐 Oracle 저장 로직을 호출했습니다.
  • 저장 후 데이터를 재조회하고 사용자가 편집하던 행 위치를 복원했습니다.

JavaScript → Controller → Service → Oracle

VERIFICATION

  • 마스킹이 해제되지 않으면 저장을 막는 화면 JS 로직을 확인했습니다.
  • 변경 여부를 검사하고 변경된 행만 저장 API로 전달하는 흐름을 확인했습니다.
  • 저장 성공 후 재조회와 현재 행 위치 복원 로직을 확인했습니다.

RESULT

변경된 행만 저장 대상으로 구성해 불필요한 데이터 갱신 위험을 줄였습니다.

저장 후 재조회와 현재 행 위치 복원을 통해 연속적인 편집 작업을 지원했습니다.

SETTLEMENT

정산 데이터의 입력값과 재계산 값 분리

PROBLEM

정산 데이터를 저장하는 과정에서 사용자가 직접 입력한 항목과 서버에서 다시 계산해야 하는 항목을 함께 처리해야 했습니다.

WHY

사용자 입력값과 서버 계산 결과는 갱신 기준이 다릅니다.

DECISION

입력값을 유지할 영역과다시 집계할 영역을 나눴습니다.

입력값을 유지할 항목과 서버에서 재집계할 항목을 구분해 각각 다른 처리 기준을 적용했습니다.

IMPLEMENTATION

수기 입력 영역
입력값 유지
재계산 영역
서버 재집계

RESULT

정산 저장 시 입력 유지 항목과 서버 재집계 대상의 처리 기준을 구분했습니다.

실제 필드·계산식과 저장 방식은 현재 자료만으로 확인되지 않습니다.

WHAT CHANGED

  • 변경된 행만 저장
  • 표시용·마스킹 값과 저장 데이터 분리
  • 수기 입력값 유지
  • 계산 대상 서버 재집계

사용 기술

Java · Spring · Thymeleaf · Oracle · JavaScript · AUIGrid · EAI