업무 시스템읽기 약 6분

예산 집행 관리 시스템 개발 검색 필터 설계, 먼저 정해야 하는 이유

예산 집행 관리 시스템 개발 시 검색·필터 조건을 요구사항 단계에서 확정해야 하는 이유와 기본 필터 항목 도출, 데이터베이스 설계 연결 방법을 실무 사례와 함께 정리했습니다.

핵심 요약

예산 집행 관리 시스템 개발 시 검색·필터 조건을 요구사항 단계에서 확정해야 하는 이유와 기본 필터 항목 도출, 데이터베이스 설계 연결 방법을 실무 사례와 함께 정리했습니다.

  • 결론 먼저: 검색·필터를 나중에 정하면 재개발·일정 지연·데이터 구조 변경이 시작됩니다
  • 1단계: 예산 집행 내역 조회에 필요한 기본 필터 항목 도출하기
판단 포인트운영 목적과 신청/문의 흐름을 먼저 대조하세요.

결론 먼저: 검색·필터를 나중에 정하면 재개발·일정 지연·데이터 구조 변경이 시작됩니다

홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 48
홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 48

결산 자료 요청 메일 한 통이 일정을 무너뜨리는 장면이 반복됩니다. "본부별로, 사업비와 인건비를 나눠서, 집행 확정 건만 뽑아 달라"는 요청이 들어왔는데 예산 과목이 메모 성격의 자유 텍스트로 저장돼 있다면, 그때부터는 필터 추가가 아니라 컬럼 추가와 기존 데이터 이관 작업이 시작됩니다. 결국 화면 하나 추가하려다 구조를 다시 여는 상황이 되는 거죠.

검색·필터는 화면 기능이 아니라 구조 요구사항이다

  • 조건값이 컬럼으로 코드화돼 있어야만 필터가 작동합니다
  • 기간·부서·집행 상태처럼 자주 쓰는 조건은 인덱스 설계에 미리 반영해야 조회가 느려지지 않습니다
  • 합계·부서별 비교 같은 집계 로직도 필터 조건에 맞춰 함께 설계됩니다

후반 확정과 초기 확정의 차이는 표 한 장으로 정리됩니다.

항목후반에 필터 확정요구사항 단계에서 확정
데이터 구조과목·부서 컬럼 추가 후 기존 데이터 이관처음부터 코드화된 컬럼으로 설계
조회 성능운영 중 인덱스 재설계, 화면 지연초기 인덱스 계획에 반영
집계 로직리포트 쿼리 전면 수정화면 설계와 동시에 확정
일정·비용재개발·재테스트로 지연범위 변경 없이 진행

1단계: 예산 집행 내역 조회에 필요한 기본 필터 항목 도출하기

홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 11
홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 11

행사가 끝나고 정산 자료를 만들다 보면 "그때 인쇄비가 얼마였더라" 한 번 찾으려고 엑셀을 반나절 뒤지게 됩니다. 조회 화면 설계는 바로 이 순간을 기준으로 잡으면 됩니다. 개발자 언어가 아니라, 실제로 검색하는 사람의 손움직임부터 따라가는 거죠.

'조회하지 않을 것'부터 지우기

필터를 도출할 때 흔히 "뭘 넣을까"부터 묻는데, 순서를 바꾸는 편이 낫습니다. 먼저 절대 그렇게는 검색하지 않는 조건을 지우고, 남는 것만 기본 필터로 삼는 방식입니다.

판단 기준은 실제 예산 집행 승인 흐름입니다. 집행 요구 → 지출결의 → 승인 → 완료 또는 불용으로 이어지는 과정에서 결의서에 기록되는 항목만 필터가 될 수 있습니다. 승인 단계에서 입력되지 않는 값은 필터로 만들어도 데이터가 비어 있을 뿐이니까요.

이 기준으로 좁히면 기본 필터는 대체로 다섯 가지로 정리됩니다.

필터 항목실제로 쓰는 순간승인 흐름상 근거 필드
부서타 부서 집행 내역만 대조할 때집행 요구 주체
사업(예산과목)과목별 잔액·사용률 확인결의서 과목
집행일자(기간)분기 마감·감사 대응결의·지출 일자
상태미집행 잔액과 불용 확정 구분집행 전 / 집행 중 / 집행 완료 / 불용
금액 범위일정 금액 이상 지출만 점검결의 금액

2단계: 검색·필터 요구사항을 데이터베이스 설계로 연결하기 (흔한 실수 vs 권장 기준)

홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 47
홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 47

2단계: 검색·필터 요구사항을 데이터베이스 설계로 연결하기 (흔한 실수 vs 권장 기준)

홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 23
홍커뮤니케이션 MICE 포트폴리오 현장 레퍼런스 23

"부서별로 걸고, 집행 상태로 걸고, 이번 분기 금액 범위로 조회하고 싶어요."

이 한 문장을 개발 착수 전에 정리했느냐, 아니면 시스템을 다 만들고 나서 던졌느냐에 따라 개발비와 일정이 갈립니다. 검색·필터 조건은 화면 옵션이 아니라 테이블 구조 그 자체를 바꾸는 요구사항이거든요.

흔한 실수 vs 권장 기준

항목흔한 실수권장 기준
설계 순서필터 조건 미정 상태로 테이블 먼저 설계 → 조회 시 전체 스캔 발생어떤 컬럼으로 조회할지 먼저 확정 → 컬럼 분리·타입 명확화
부서·상태 저장하나의 텍스트 필드에 몰아서 저장 ("총무팀-집행완료") → 개별 필터 불가부서, 상태를 각각 독립 컬럼으로 분리
조회 성능조회할 때마다 원본 테이블 전체를 뒤짐빈번한 필터 조합(부서+기간, 상태+금액)에 인덱스 설계
집계관리자 화면에서 실시간 계산 → 데이터 쌓일수록 느려짐부서별·월별 집계 테이블을 사전 구성
목록 조회전체 데이터 한 번에 출력대량 데이터는 페이징 필수 적용

왜 텍스트 한 줄 저장이 문제인가

3단계: 관리자 권한별 조회 범위와 필터 노출 차등 설계

같은 예산 집행 화면을 열어도 총괄 관리자와 부서 담당자가 봐야 하는 데이터는 다릅니다. 총괄 관리자는 전사 집행 내역을 부서끼리 비교해야 하고, 부서 담당자는 소속 부서 예산만 추적하면 됩니다. 이 차이를 "관리자 권한 있음/없음" 두 급으로 넘기지 말고, 검색·필터 조건 단계에서부터 설계해 두는 게 핵심입니다.

필터는 '숨기는 게 아니라 거는 것'입니다

흔한 실수는 부서 선택 드롭다운을 화면에서 가리는 식으로 권한을 처리하는 경우예요. 버튼만 숨기면 다른 화면이나 직접 요청 경로로 데이터가 새어 나갈 수 있습니다. 판단 기준은 하나로 충분합니다.

필터가 UI 장식이 아니라 조회 조건에 실제로 붙어 있어야, 부서 담당자가 조건을 아무리 바꿔도 소속 부서 밖의 집행 내역은 애초에 조회되지 않습니다.

권한별 필터 노출 차등 설계 예시

필터 항목총괄 관리자부서 담당자
부서전체/부서별 자유 선택소속 부서로 고정(변경 불가)
조회 기간자유 설정자유 설정
예산 과목전체 과목 노출소속 부서에 할당된 과목만
타 부서 집행액노출미노출

4단계·요약 체크리스트: 사전 정의로 개발비 절감하는 실행 순서와 함께

오픈 후 어느 날 "집행 부서별로만 걸러서 보고 싶다"는 요청이 하나 들어옵니다. 화면상으로는 드롭다운 하나 추가하는 일처럼 보이지만, 개발 관점에서는 전혀 다른 이야기가 시작됩니다.

왜 후기 추가가 더 비쌀까

검색·필터를 나중에 붙이면 작업이 세 겹으로 쌓입니다.

항목초기 정의 시후기 추가 시
데이터 구조설계 단계에서 컬럼·인덱스에 반영운영 중 구조 변경 + 기존 데이터 소급 정리
화면목록·조회 화면 설계에 포함화면 재수정 + 조건 조합 재확인

| 테스트 | 전체 시나리오 테스트에 흡수 | 변경 재테스트 + 기존 기능 회귀 점

함께 읽을 글