프로젝트 배경
기업 신청 접수, 평가위원 지역 매칭, 위원별 일일 한도 관리 등 공고에 명시된 배정 업무를 분석하고, 동일 지역 우선부터 후보 소진 시 수동 대기까지 Java API로 구현했습니다. 정상 배정·중복 충돌·한도 소진을 포함한 운영 조건을 PostgreSQL 트랜잭션과 행 잠금으로 확인해둔 덕분에, 고객 DB와 기존 Java 호출부를 전달받는 즉시 같은 불변식으로 연동 작업을 시작할 수 있습니다.
프로젝트 성과
수동 판단 3단계를 API 요청 1건으로 통합
동일 시·도 선택, 인접 지역 우회, 수동 대기 전환을 한 번의 인증 요청에서 판정해 배정 담당자의 반복 확인을 줄였습니다.
조작 가능한 업무 조건 0개에서 3개로 확대
문서 열람만 가능하던 화면에 정상 배정·중복 충돌·후보 소진 조건을 추가해 고객이 결과와 복구 절차를 직접 확인할 수 있습니다.
동시 신청 40건에서도 한도 초과 0건
여러 요청이 같은 위원 후보를 동시에 선택하는 상황에서도 DB 잠금 후 최신 카운트를 비교해 일일 한도를 지켰습니다.
중복 신청의 추가 배정과 덮어쓰기 0건
같은 신청은 최초 결과를 재사용하고 다른 기업·지역의 중복 입력은 409로 거절해 배정과 카운터를 그대로 보존했습니다.
배정 직후 잔여 한도를 API로 확인
위원별 당일 count·dailyLimit·remaining을 같은 영업일 기준으로 반환해 후속 접수 가능 수량을 바로 판단할 수 있습니다.
핵심 기능
진행 단계
공고 규칙과 고객 환경 경계 확정
2026.08.
일 60~80건, 평가위원 약 40명, 동일·인접 지역 규칙을 정리하고 고객 DB·기존 호출부 미제공 영역을 별도 경계로 고정했습니다.
프로젝트 상세
기업 신청 건을 평가위원에게 자동 배정하는 Java API입니다. 동일 시·도 우선, 당일 배정 수 최소, 인접 시·도 우회, 후보 소진 시 수동 대기 규칙을 한 요청에서 처리합니다. 피크 시간대에 여러 신청이 동시에 들어와도 위원별 일일 한도를 넘지 않도록 PostgreSQL 카운터 행을 정해진 순서로 잠그고, 최신 카운트 비교·증가·배정 기록을 한 트랜잭션에서 완료합니다. 동일 신청의 재전송은 최초







