출금 플로우 기획서 v0.8

원화 기준 출금 · 빗썸 시세 환산 · BSC 단일 체인 락업 · 출금팀 처리 체계

크립토먼츠  |  파트너 API 연동  |  기술 설계 전 최종 기획안

파트너가 원화 금액으로 유저 출금을 신청하면 크립토먼츠가 신청 순간 빗썸 시세로 환산해 오더를 생성한다. 오더는 출금팀 페이지 + 텔레그램으로 전달되고, 출금팀이 [승인]을 누르는 순간 파트너 USDT를 단일 체인에 락업한다. 잔액이 부족하면 오더는 유지되고 파트너에게 충전을 알린다. 출금팀이 유저에게 원화를 지급하고 확인되면, 락업 USDT를 출금팀·크립토먼츠에 정산한 뒤 결과를 파트너 API로 반환한다.

01 확정 사항

구분항목확정 내용
금액 · 환율 금액 기준원화(KRW) — 유저는 신청액 전액 수령 (차감 없음)
환율신청 순간 빗썸 USDT 가격 각인 · 직전 대비 ±5% 초과 시 접수 거절
소수점6자리 · 락업액은 올림(ceil) · dust는 파트너 원복
출금 한도단건 20만 ~ 500만원
락업 락업 시점출금팀이 [승인] 누를 때 (신청 시 아님)
체인BSC(BEP-20) 메인 · 자동 잔액 검증 후 단일 체인, 분할 없음
동시성파트너 × 체인 비관적 락으로 동시 승인 직렬화
잔액 부족오더 유지 + ⚠표시 + 파트너 충전 알림 → 충전 후 재승인
오더 유효시간1시간 — 초과 시 자동 만료 (락업 전이라 원복 불필요)
정렬접수순(FIFO) 기본
상태6종 — 요청중 · 승인 · 확인완료 · 출금중 · 완료 · 반송
출금팀 구성1팀 · 주야간 교대 · 정산은 팀 단일 계정
처리 방식전 구간 단독 처리 (2인 확인 없음)
지급 타이머20만~100만 : 30분 / 60분 · 100만~500만 : 60분 / 120분
보고증빙(이체확인증/거래번호) 필수 + 계좌 뒷4자리 대조
정산 수수료파트너별 요율 필드 (기본 1% = 크립토먼츠 0.5% + 출금팀 0.5%) · 파트너 부담
처리원자적 3분할 (전부 or 전무) · 건별 즉시 내부 적립
인출 홀드정산 후 24시간 인출 불가 — 반송 대비 회수 재원
가스비인출 시 크립토먼츠 부담 (기존 Relayer 대납 재사용)
채널 정보 분리API = 사유 코드만 / 잔액·내역은 관리페이지 + 텔레그램
텔레그램출금팀 단톡방 + 파트너별 개별 채널
제외범위 밖LP 출금담당 ❌ · eKYC ❌ (별도 트랙) · 오더 선점락 ❌ (팀 내부 운영)

02 주체와 역할

주체내주는 것받는 것접점
파트너사 2개 → 확장 USDT (승인 시 락업)유저 출금 대행 완료신청·조회 API / webhook / 관리페이지 / 텔레그램
유저(수취인) 원화 신청액 전액은행 계좌
출금팀 1팀 · 주야간 유저에게 원화 지급USDT + 0.5% (팀 계정)출금팀 오더 페이지 + 텔레그램 단톡방
크립토먼츠 중개 · 환산 · 정산 · 회수 협조수수료 0.5%시스템 · 운영자 콘솔

03 금액 산정 — 원화 기준

① 신청 (원화)
1,000,000 원
÷
② 빗썸 시세 (신청 순간)
1,430 원
=
③ 환산 USDT (6자리 올림)
699.300700
+
④ 수수료 1%
6.993007
=
락업 총액
706.293707

원화 신청액 ÷ 빗썸 시세 = 락업 USDT · 유저는 1,000,000원 전액 수령, 수수료는 파트너 부담
올림(ceil)을 쓰는 이유 — 내림하면 정산 시 극소량이 모자라 분배가 실패할 수 있다. 올림하면 파트너가 아주 조금 더 내지만 절대 부족하지 않다.
dust(잔여분) — 정산 시 실제 분배액만 소멸시키고, 남은 극소량은 파트너 available로 원복한다.

금액 구간별 처리

구간승인 후 경고에스컬레이션비고
20만 ~ 100만 미만30분60분단독 처리
100만 ~ 500만60분120분은행 지연인출제도(100만↑ 30분 출금제한) 반영
20만 미만 / 500만 초과접수 거절 — 사유 코드 AMOUNT_OUT_OF_RANGE

04 채널 구조 — 무엇을 어디로

API 파트너 API — 기계 연동 · 출금 신청 / 오더 조회 · 결과 webhook (완료 / 실패) · 실패 시 사유 코드만 ❌ 잔액 · 체인 내역 · 부족액   전달하지 않음 파트너 자산정보 노출면 최소화 📄 파트너 관리 페이지 — 사람 · 체인별 USDT 잔액 (가용 / 락업중) · 대기 오더 목록 + 필요액 합계 · ⚠ 부족 시 필요 충전액 표시 · 출금 내역 · 일별 리포트 크립토먼츠가 제공하는 콘솔 TG 텔레그램 — 즉시 알림 출금팀 단톡방 · 신규 오더 · 미처리 리마인드 · 지급 지연 경고 파트너 채널 (파트너별 개별) · ⚠ 잔액 부족 · 충전 요청 · 오더 지연 알림

05 메인 플로우 — 전체 도면

파트너사
크립토먼츠
출금팀
유저
API API 호출
TG 텔레그램
──▶ 실물 이동
┈▶ 실패 · 거절
파트너사Partner API 크립토먼츠System 출금팀오더 페이지 · 주야간 유저수취인 API [1] 출금 신청 — 원화 금액 partner_id · user_id · order_id · krw_amount · 수취계좌(예금주 포함) [2] 검증 + 환율 확정 · 멱등 (order_id) · 파트너 상태 확인 · 금액 범위 20만 ~ 500만원 · 빗썸 시세 조회 → 각인 (±5% 필터) · 필요 USDT = 원화 ÷ 시세 (6자리 올림) ※ 이 시점엔 락업 없음 거절 반환 — 검증 실패 (사유 코드) [3] 출금 오더 생성 상태 · 요청중 유효시간 1시간 타이머 시작 TG [4] 텔레그램 단톡방 알림 ↳ 오더 페이지 리스트 (접수순 · 파트너 구분) API 오더 리스트 조회 ⏳ 1시간 내 미승인 시 · 자동 만료 → 실패 반환 · 락업 전이라 원복 불필요 ALT · [승인] 클릭 = 잔액 검증 + 락업 API [5] 승인 클릭 🔒 파트너 × 체인 비관적 락 획득 USDT 잔액 검증 (BSC 우선 · 단일 체인) ✅ 충족 → ★ LOCK available −= / locked += (올림) chain 각인 · 취소 차단 상태 · 승인 ❌ 부족 → 락업 실패 (오더는 유지) · 오더에 ⚠「N USDT 부족」 표시 · 상태 【요청중】 유지 · 같은 파트너 다른 오더에도 ⚠ 표시 · 파트너 관리페이지 + 텔레그램 충전 요청 → 재승인 [6] 원화 지급 💵 화면 표시 금액 그대로 이체 · 예금주 대조 ⏱ 승인 후 미지급 · 20만~100만 : 30분 경고 / 60분 에스컬 · 100만~500만 : 60분 / 120분 API [7] 지급완료 보고 이체확인증/거래번호 + 계좌 뒷4자리 대조 (불일치 시 차단) [8] 원화 지급 확인 담당자 수동 + 증빙 (CODEF 후속) 상태 · 확인완료 [9] ★ USDT 정산 · 분배 상태 · 출금중 출금팀 (내부 적립)USDT + 0.5% 크립토먼츠0.5% 파트너locked 소멸 + dust 원복 원자적 — 전부 or 전무 · 이후 인출 홀드 24h [10] 완료 반환 webhook webhook 보조 · 조회 API가 정본 상태 · 완료 실패 / 취소 공통 경로 트리거 : 1시간 만료 / 파트너·운영자 취소 /      지급확인 실패 / 정산 실패 락업 후였다면 ★LOCK 원복 (동일 체인) 상태 · 실패 → 실패 webhook + 사유코드 반송 경로 — 완료 이후 발생 계좌 지급정지·해지 등으로 며칠 뒤 반송 → 운영자 [반송 처리] = 역정산 (Reversal) 출금팀·크립토먼츠 회수 → 파트너 전액 복구 상태 · 반송

06 동시 승인 시 잔액 경합 제어

A사 가용 700 USDT · 대기 오더 #101(706) · #103(565) ❌ 제어가 없으면 #101 잔액조회 700 ✅ ┐ #103 잔액조회 700 ✅ ┴─▶ 합 1,271 락업 시도 → 571 초과 락업 = 없는 돈을 묶음 · 실손실 ✅ 파트너 × 체인 비관적 락 #103 승인 ─▶ 🔒 700 ≥ 565 ✅ ─▶ 락업 ─▶ 가용 135 #101 승인 ─▶ ⏸ 대기 ─▶ 🔒 135 < 706 ❌ → ⚠ 잔액부족 표시 · 오더는 유지 · 충전 후 재승인 제어 규칙 3가지 ① 잔액 조회 + 락업을 하나의 락 안에서 처리 — 사이에 끼어들 수 없게 ② 락 단위 = 파트너 × 체인 — 다른 파트너끼리는 서로 기다리지 않음 먼저 승인한 오더가 잔액을 가져감 — 리스트 FIFO 정렬 + “승인 시 남는 잔액” 미리보기로 완화

07 오더 상태 6종 · 전이

요청중락업 전 · 대기 승인★락업 완료 확인완료지급 확인 + 증빙 출금중정산 · 분배 승인+락업 지급 확인 정산 시작 완료 파트너 반환 반송역정산 이체 반송 잔액 부족 → 재승인 대기 실패 락업 후였다면 ★LOCK 원복 1시간 만료 · 취소 확인 실패 · 취소 정산 실패
상태진입 시점다음
요청중오더 생성 (락업 전) · 잔액 부족 시 유지🔓 없음승인 / 1시간 만료 / 취소
승인잔액 검증 통과 + 락업🔒 설정확인완료 / 실패 (파트너 취소 차단)
확인완료지급 확인 + 증빙 + 뒷4자리 일치🔒 유지출금중
출금중정산·분배 진행 (원자적)🔓 해제 중완료 / 실패
완료파트너 webhook 반환반송 (사후 발생 가능)
반송이체 반송 확인 → 운영자 역정산↩️ 파트너 복구(종결)
실패만료 · 취소 · 확인실패 · 정산실패↩️ 원복 (락업 후만)(종결)

08 락업 생명주기 · 타이머

🔒 락업 생명주기

시점전환파트너 USDT
[5] 승인🔒 설정available → locked (단일 체인)
[9] 정산✅ 소멸locked → 출금팀 + 시스템 · dust 원복
실패 · 취소↩️ 원복locked → available (동일 체인)
반송(사후)↩️ 역정산출금팀·시스템 회수 → 파트너 복구

요청중 단계엔 락이 없다 — 만료돼도 원복할 자금이 없어 부담 0. 이것이 락업을 승인 시점으로 옮긴 가장 큰 이점.

⏱ 타이머

지점시간동작
요청중 방치1시간자동 만료 → 실패 반환 (락 없음)
승인 후 미지급 (20만~100만)30분 / 60분경고 → 관리자 에스컬레이션
승인 후 미지급 (100만~500만)60분 / 120분지연인출제도 반영
정산 후 인출홀드 24시간반송 대비 회수 재원 확보

락이 걸린 구간엔 자동 실패가 없다 — 돈이 이미 나갔을 수 있어 모든 종결은 사람이 확인 후 처리.

09 안전장치

① 멱등 3중 방어 — 중복 처리 차단

계층방어내용
프론트버튼 즉시 비활성연타 차단
API멱등키(report_id)재시도 시 기존 결과 반환 — 에러로 던지지 않는다 (또 누르게 됨)
상태 가드현재 상태 확인 후 전이승인=요청중일 때만 / 보고=승인일 때만 / 정산=확인완료일 때만

같은 원리로 승인 중복(락업 2회) · 정산 중복(USDT 2회 분배) 까지 동시에 차단된다.

② 오송금 차단 — 계좌 뒷4자리 대조

단계내용
수기 입력 제거오더 화면의 계좌·금액에 [복사] 버튼 — 손으로 옮겨적지 않게
보고 시 대조송금한 계좌 뒷 4자리 입력 → 오더 계좌와 자동 대조 → 불일치 시 보고 차단
발생 시 처리오더는 【승인】(미지급) 유지 → 올바른 계좌로 재송금 → 정상 보고 → 정산
책임출금팀 과실 (계약·약관 명시) — 파트너·유저는 피해 없음
회수크립토먼츠는 오프라인 회수 협조 (착오송금 반환지원제도 안내 · 증빙 정리 · 수취인 접촉 협조).
회수 진행은 시스템 밖 트랙 — 오더에 incident_note 메모만 남긴다 (회수 성패가 오더 처리를 막지 않게)

③ 반송 대응 — 역정산 + 인출 홀드

유형처리
즉시 거부
(계좌번호 오류 등)
송금 자체가 안 됨 → 보고 없음 → 지급 실패로 오더 종결 + 락 원복. 문제 없음
지연 반송
(지급정지·해지 계좌)
정산까지 끝난 뒤 며칠 후 반송 → 운영자 [반송 처리]
· 출금팀 잔액에서 USDT + 0.5% 회수
· 크립토먼츠 수수료 0.5% 회수
· 파트너 available 전액 복구 → 상태 【반송】
전제 조건정산 후 인출 홀드 24시간 — 홀드가 없으면 출금팀이 바로 인출해버려 회수할 재원이 없다
권한역정산은 운영자만 실행 가능

④ 정합성 · 접근 통제

항목내용
원자성락업+상태전이 / 정산 3분할을 각각 하나의 트랜잭션으로. 실패 시 전부 롤백 후 재시도
일일 대사일 1회 배치 — 파트너 잔액 변동 = 정산 합계 대조, 불일치 시 알림. 조용한 오차를 잡는 유일한 수단
연타 차단60초 내 동일 (유저 + 계좌 + 금액) 중복 신청 차단
한도파트너별 일일 총액 · 유저별 일일 건수/금액 (설정값) — 사고 시 피해 상한
접근 통제오더 페이지 IP 화이트리스트 + 계정 로그인 + 승인 시 2FA(OTP)
권한 분리조회 / 승인 / 보고 / 운영자(취소·역정산) — 역정산은 운영자 전용
개인정보계좌·예금주 목록 마스킹(상세만 전체) · 접근 로그 · 보관기간 설정 · 증빙 저장소 접근 통제

10 오더에 기록되는 값

필드내용비고
partner_id파트너 구분2개 → 확장
order_id파트너 고유 주문번호멱등키
user_id파트너 회원 식별자유저 한도 산정
krw_amount신청 원화액 = 유저 수령액20만 ~ 500만
rate_krw / rate_at신청 순간 빗썸 시세 + 조회 시각각인 — 변동 무관 · 분쟁 근거
usdt_amount환산 USDT (6자리 올림)출금팀 정산 원금
fee_rate / fee_amount파트너별 요율 + 수수료액기본 1%
chain락업된 단일 체인원복도 동일 체인
locked_amount / locked_at락업 총액 · 승인 시각dust 계산 기준
expire_at접수 + 1시간자동 만료
bank / account / holder수취 은행 · 계좌 · 예금주개인정보 — 마스킹
approver_id승인·처리한 근무자감사 추적
paid_account_last4실제 송금 계좌 뒷 4자리대조 근거
proof이체확인증 · 거래번호보고 시 필수
report_id보고 멱등키중복 보고 차단
settled_at / hold_until정산 시각 · 인출 가능 시각홀드 24h
reversed_at / reverse_reason역정산 시각 · 사유반송 처리
fail_reason실패 사유 코드파트너 자동 분기용
incident_note사고 경위 메모오송금 등 — 운영자 입력

11 수수료

0.5%
크립토먼츠
0.5%
출금팀
1.0%
기본 요율 · 파트너 부담

파트너별 요율 필드로 설계 (기본 1%) — 파트너가 늘면 협상 요율이 생기므로 처음부터 필드로 두어야 나중에 정산 로직을 뜯지 않는다.
유저는 신청 원화액 전액 수령 · 출금팀 수익은 건별 즉시 내부 적립 · 인출 가스비는 크립토먼츠 부담.

12 화면 초안

출금팀 오더 페이지

대기 오더 · 접수순(FIFO) · 대기 원화 총액 2,300,000원
오더파트너원화액필요 USDT체인상태
#101A사1,000,000706.29BSC요청중
#102B사500,000353.15BSC요청중
#103A사800,000565.03⚠ 잔액부족 141 USDT

오더 상세 : 계좌·금액 [복사] 버튼 · 예금주명 강조 · 승인 시 남는 잔액 미리보기 · 경과시간 표시

파트너 관리 페이지 — 잔액

A사 USDT 잔액 현황
체인가용락업중합계
BSC494.00706.291,200.29
대기 오더 2건 · 필요액 합계 1,271.32 USDT
⚠ 777.32 USDT 부족 — 충전이 필요합니다

동일 내용이 파트너 텔레그램 채널로도 즉시 발송된다. API로는 내려주지 않는다.

13 설정 기능 — 운영이 직접 조정

[출금 운영 설정] ├ 은행 점검시간 23:30 ~ 00:30 (해당 시간 접수 차단) ├ 영업시간 24시간 / 지정 ├ 접수 중지 스위치 ON / OFF (비상용 즉시 차단) ├ 오더 유효시간 1시간 ├ 단건 금액 한도 200,000 ~ 5,000,000 원 ├ 파트너별 일일 한도 N 원 ├ 유저별 일일 한도 N 건 / N 원 ├ 출금팀 일일 처리 한도 N 원 (은행 1일 이체한도 기준) ├ 지급 타이머 (소액) 30분 / 60분 (20만~100만) ├ 지급 타이머 (고액) 60분 / 120분 (100만~500만) ├ 미처리 리마인드 30분 (유효시간 절반 경과 시) ├ 시세 캐시 허용 5분 ├ 시세 이상치 임계 ±5% ├ 정산 후 인출 홀드 24시간 ├ 계좌 뒷4자리 대조 ON / OFF ├ 연타 차단 시간창 60초 ├ 파트너별 수수료율 기본 1% (0.5 + 0.5) └ 텔레그램 채널 출금팀 단톡방 / 파트너별 개별 채널

모든 수치를 설정으로 뺀다 — 운영이 코드 수정 없이 조정할 수 있어야 실제 운영에서 살아남는다.

14 경우의 수 — 전체

구간케이스처리상태
A
신청
중복 order_id멱등 — 기존 오더 반환
필수정보 누락 / 정책 위반거절 (사유 코드)
금액 20만 미만 / 500만 초과거절 AMOUNT_OUT_OF_RANGE
빗썸 시세 조회 실패5분 캐시 허용, 초과 시 거절 · 임의 추정 금지
시세 이상치(스파이크)직전 대비 ±5% 초과 시 거절 + 알림
점검시간 / 접수중지SERVICE_CLOSED 거절
동일 유저·계좌·금액 연타60초 창 내 중복 차단
B
대기
1시간 미승인자동 만료 (락 없어 부담 0) · 30분 시점 리마인드
파트너 취소즉시 실패 (요청중일 때만 가능)
파트너 계약 정지신규 접수만 차단, 진행 중 오더는 정상 완주
C
승인·락업
잔액 충족락업 → 승인 · chain 각인
잔액 부족오더 유지 + ⚠부족액 표시 + 파트너 충전 알림
동시 승인 경합파트너×체인 비관적 락으로 직렬화
단일 체인 부족 / 타 체인 충분그 체인으로 락업 · 화면에 체인 표시
승인 중복 클릭상태 가드 — 요청중일 때만 접수
D
지급
승인 후 방치금액대별 경고 → 에스컬 → 수동 종결
다른 계좌로 이체뒷4자리 대조로 보고 차단 → 미지급 유지 → 재송금 · 출금팀 책임 + 회수 협조
이체 금액 불일치정산 보류 → 차액 이체 or 수동 실패. 자동 정산 금지
출금팀 원화 소진팀 자체 판단(승인 안 함) + 화면에 대기 원화 총액 표시
중복 보고멱등 3중 방어 — 기존 결과 반환
E
확인·정산
정상 확인정산 진행
유저 미수령 신고보류(HOLD) + 운영자 중재 · 자동 판정 금지
이체 반송즉시거부=지급실패 종결 / 지연반송=역정산 (홀드 24h가 재원)
정산 중 장애원자적 트랜잭션 롤백 → 확인완료로 복귀 · 정체 감지 알림 + 재개
F
연동·운영
webhook 유실조회 API가 정본 — 연동문서에 명시
텔레그램 발송 실패재시도 + 페이지 폴링으로 보완
파트너 USDT 충전기존 입금 플로우 재사용 · confirm 지연은 관리페이지에 “확인 중” 표시

15 점검 결과 — 보완 18건

🔴 자금 손실 직결 — 5건

1. 소수점·반올림 — 무한소수 절사 정책 부재 → 정산 부족 위험

확정 — 6자리 · 락업은 올림(ceil) · 정산은 락업액 범위 내 · dust는 파트너 원복

2. 파트너 USDT 충전 경로 — "충전하세요" 만 있고 방법이 없었음

확정 — 기존 입금 플로우 재사용 · 온체인 confirm 지연은 관리페이지에 "확인 중" 표시

3. 정산 원자성 — 3분할 중 일부만 반영되면 장부 붕괴

확정하나의 트랜잭션, 실패 시 전부 롤백 후 【확인완료】 복귀·재시도

4. 락업–상태 원자성 — 락업 성공 + 상태 실패 = 유령 락업

확정 — 락업 + 상태전이를 동일 트랜잭션 · 정합성 점검 배치 병행

5. 출금팀 허위 보고 — 안 보내고 보고만 할 위험

확정인출 홀드 24시간(핵심) + 증빙 필수 + 뒷4자리 대조 + 처리자 ID 기록 + 유저 신고 경로. 2인 확인은 도입하지 않음 → 홀드가 유일한 회수 창구이므로 반드시 유지

🟡 운영이 막히는 것 — 7건

6. 단건 한도 → 20만~500만원 · 7. 파트너/유저 일일 한도 → 설정값 (피해 상한) · 8. 파트너 계약 정지 → 신규만 차단, 진행 건 완주
9. 출금팀 원화 소진 → 화면에 대기 원화 총액 표시 (잔액은 팀 관리) · 10. 일일 대사 배치 — 잔액변동 vs 정산합계
11. 시세 이상치 → ±5% 필터 · 12. 동일 유저·계좌·금액 60초 연타 차단

🟢 오픈 전 갖출 것 — 6건

13. IP 화이트리스트 + 2FA · 14. 권한 분리 (조회/승인/보고/운영자) — 역정산은 운영자 전용
15. 개인정보 마스킹·보관기간·접근로그 · 16. 파트너별 수수료율 필드 (처음부터 설계)
17. 인출 가스비 크립토먼츠 부담 · 18. 리포트 — 파트너 일별 / 출금팀 실적 / 운영자 대시보드

16 관통 원칙

원칙적용
① 애매하면 사람이 판단분쟁·미수령·금액 불일치·이상거래는 자동 판정 금지 — 오판 비용이 훨씬 크다
② 숫자는 시스템이, 실행은 사람이환율·원화액·필요 USDT를 시스템이 확정 → 출금팀은 표시된 금액을 그대로 이체
③ 값은 전부 설정으로시간·한도·요율·임계 — 코드 수정 없이 운영이 조정
④ 기존 것 재사용시세 동기화 · 텔레그램 봇 · 입금/출금 플로우 · 상태이력 · Relayer 대납
⑤ 락은 필요한 순간에만승인 시점 락업 — 요청중엔 자금을 묶지 않아 만료돼도 손해가 없다
⑥ 자동 실패는 락 없는 구간에만1시간 만료(락 없음)는 자동, 승인 이후는 전부 사람이 종결

17 다음 단계

단계내용
1. 기술 설계DDL(오더/정산/설정 테이블) · API 스펙(신청·조회·webhook·사유코드) · 상태머신 구현 명세
2. 화면 설계출금팀 오더 페이지 · 파트너 관리 페이지 · 운영자 콘솔(취소·역정산·대사)
3. 연동 문서파트너 API 가이드 — 조회가 정본 명시 · 사유 코드 표 · 텔레그램 채널 등록 절차
4. 운영 준비약관·계약 (실명확인 파트너 책임 / 오송금 출금팀 책임) · 설정 초기값 · 대사 절차
출금 플로우 기획서 v0.8 · 원화 기준 · BSC 단일 체인 락업 · 출금팀 처리 체계 · 기술 설계 전 최종안