루마닉 참모
요구사항정의서
간부와 대화하며 상황을 파악하고, 필요한 도구를 꺼내 건의하는 지휘관 결심지원 서비스
일러두기
기능별 수행 내용과 달성 여부의 판단 기준을 기술함. 요구사항은 모두 현재 서비스의 코드와 시험에서 도출함. 미해결 사항은 5부 미결 사항에 별도로 정리함.
- 독자발주·검수를 맡은 기관, 운영 담당자, 기능을 고치거나 더하는 개발자
- 다루는 범위지휘관 결심지원 서비스(참모)에 한정함. 같은 도메인의 용사 소통 PoC는 제외함.
- 근거서비스 코드와 시험, 화면 설계 기준(DESIGN.md), 제작설명서(2026-09-29), 발주사 검토 의견(2026-09-30). 2.5절 F/S/T 소개는 루마닉 홈페이지(lumanic.ai)에서 발췌하고, 2.7~2.8절 칸 기준은 루만 원전 영역본·미 육군 교범·부대관리훈령·갈등관리 매뉴얼 원문과 대조함.
- 그림화면 그림은 시험 데이터를 입력한 개발 서버에서 캡처함. 인물·부대 이름은 모두 가상임.
목차
1부 개요4~9
2부 서비스 구조10~22
3부 기능 요구사항23~43
- 3.0 기능 요구사항 목록24
- FR-01 가입 신청25
- FR-02 가입 승인26
- FR-03 로그인·추가 인증·재확인27
- FR-04 업무 공간 만들기28
- FR-05 구성원·초대·나가기29
- FR-06 기준정보와 AI 초안30
- FR-07 자료실과 파일 올리기31
- FR-08 참모 대화32
- FR-09 브리프와 제안33
- FR-10 도구 추천34
- FR-11 방책 비교35
- FR-12 조치 계획36
- FR-13 판단 보고서37
- FR-14 파생 문서와 내보내기38
- FR-15 결심 기록·결과·선례39
- FR-16 업무현황과 현황 브리핑40
- FR-17 대화 목록41
- FR-18 현장 보고와 조치 카드42
- FR-19 루만 의미 차원 판정43
4부 비기능 요구사항44~54
5부 화면·데이터·검증55~62
1부개요
지휘관과 참모 간 소통을 지원하는 시스템의 목적과 원칙, 역할과 범위
지휘관의 결심을 돕는 참모형 AI 서비스
루마닉 참모는 지휘관의 현명한 결심을 지원하는 참모형 AI 서비스임. 결정할 사안이 있는 간부는 지휘 계통과 관계없이 누구나 자기 업무 공간을 개설하여 사용함.
부대에 사안이 생기면 간부는 짧은 시간 안에 사실을 수집하고 관련자를 가려야 함. 방책(지휘관이 고를 수 있는 행동 방안)을 몇 가지 비교한 뒤에는 보고 문서까지 작성함. 참모는 이 과정에서 생기기 쉬운 빈틈 세 가지를 방지함.
- 확인하지 않은 말이 사실로 굳어지는 문제
브리프 칸에는 간부의 말이나 자료 원문을 글자 그대로 옮긴 인용이 있어야 값을 반영함.
- 무엇을 모른 채 결심했는지 남지 않는 문제
원문을 인용하지 못한 칸은 ‘미확인’으로 남김. 이 칸은 판단 보고서의 한 줄 요약 바로 뒤에 기재하고, 결심 기록의 ‘그때 확인하지 못한 것’에 미리 입력함.
- 결심의 결과가 기록되지 않는 문제
결심에 다시 볼 날을 정해 두고 결과를 기록하면, 같은 유형의 결심 시 선례로 먼저 제시됨.
서버 검사와 시험으로 지키는 여섯 원칙
3부의 모든 기능은 이 원칙을 따름. 화면에서 숨기거나 안내 문구를 표시한 것만으로는 원칙을 지킨 것으로 보지 않음.
- AI는 결심하지 않음
AI의 산출물은 건의까지임. 결심을 대신하는 말투는 서버에서 받지 않고, 결심 기록과 문서 승인은 책임 간부만 가능함.
- 칸마다 원문 인용을 붙임
AI가 값에 붙인 인용을 간부의 말·자료 원문과 글자 그대로 대조해 일치하는 값만 반영함. 인용하지 못한 칸은 ‘미확인’으로 남김.
- 고정 문구로 채우지 않음
AI 호출 실패 시 실패로 표시함. 미리 작성한 응답은 개발과 시험에서만 사용하며, 실사용 환경에서는 켤 수 없음.
- 간부의 말은 AI 호출 전에 저장함
AI가 실패해도 간부의 말은 보존됨. 같은 말을 다시 보내면 한 번만 저장하고, 끊긴 지점에서 대화를 재개함.
- 용사 원문은 넘어오지 않음
참모 코드에서는 용사 상담·인터뷰·리포트 원문을 다루는 코드를 불러올 수 없음. 간접 참조까지 시험으로 검출함.
- 권한은 서버에서 검사함
단추 감추기는 편의 기능이며, 실제 차단은 서버에서 수행함. 권한이 없는 요청은 API에서 403으로 거부함.
- 저장간부의 말을 먼저 남김
- 조립물을 칸과 기준정보·자료 구절을 묶음
- 호출AI를 최대 두 번 호출함
- 검사형식·말투·질문한 칸을 서버에서 점검함
- 반영인용이 원문과 맞는 값만 칸에 넣음
권한별 수행 가능 기능을 서버에서 구분
참모 권한은 PoC 계정의 역할과 별도로 관리함. 구성원이 아닌 계정과 권한이 부족한 계정을 똑같이 403으로 차단하여 구성원 여부를 드러내지 않음.
- 책임 간부
commander결심 기록, 문서 승인, 구성원 관리를 담당함. 업무 공간마다 한 명 이상 필요함.
- 함께 쓰는 간부
staff_officer대화·자료·방책·조치 계획·문서 초안을 다룸. 결심과 승인은 하지 않음.
- 현장 간부
field현장 보고를 올림. 본인이 올린 보고와 승인된 조치 카드만 조회함.
- 운영자
PoC 관리자 계정으로 가입 신청을 승인 또는 반려함. 승인한 업무 공간의 구성원이 되지는 않음.
마지막 남은 책임 간부는 스스로 나갈 수 없고, 권한을 낮추거나 내보낼 수도 없음.
| 기능 | 책임 간부 | 함께 쓰는 간부 | 현장 간부 | 운영자 |
|---|---|---|---|---|
| 참모 대화, 자료 넣기 | 가능 | 가능 | 안 됨 | 안 됨 |
| 방책·조치 계획·문서 초안 | 가능 | 가능 | 안 됨 | 안 됨 |
| 문서 승인 | 가능 | 안 됨 | 안 됨 | 안 됨 |
| 결심 기록 | 가능 | 안 됨 | 안 됨 | 안 됨 |
| 결과 적기, 지난 결심, 현황 브리핑 | 가능 | 가능 | 안 됨 | 안 됨 |
| 부대 기준정보·자료실 관리 | 가능 | 가능 | 안 됨 | 안 됨 |
| 자기 기준정보, 자료실 읽기 | 가능 | 가능 | 가능 | 안 됨 |
| 업무현황, 대화 목록 | 가능 | 가능 | 올린 보고만 | 안 됨 |
| 현장 보고 올리기 | 가능 | 가능 | 가능 | 안 됨 |
| 조치 마침 표시 | 가능 | 가능 | 올린 보고만 | 안 됨 |
| 구성원 초대·권한·내보내기 | 가능 | 안 됨 | 안 됨 | 안 됨 |
| 가입 신청 승인·반려 | 안 됨 | 안 됨 | 안 됨 | 가능 |
지휘관 결심지원에 한정된 범위
포함 범위
- 공개 홈과 가입
도메인 첫 화면, 가입 신청과 운영자 승인, 로그인
- 업무 공간
업무 공간 만들기, 구성원 초대와 받아들이기, 나가기
- 기준정보와 자료실
간부 5칸·부대 7칸, 자료실 문서, 기준정보 AI 초안
- 참모 대화와 브리프
먼저 답하고 빈칸을 묻는 대화, 브리프 10칸과 제안
- 루만 의미 차원 판정
다중 항목 확률 판정 기술 기반의 F·S·T 판정, 외부 판정 API 사용(개발 중, FR-19)
- 도구와 내보내기
방책 비교·조치 계획·문서·결심 기록, PDF와 한글 파일
- 현황과 현장
업무현황·현황 브리핑, 현장 보고와 조치 카드
제외 범위
- 용사 소통 PoC
용사 앱과 PoC 관리자 화면은 제외함. 계정·로그인·감사 기록은 공유하나, 용사 상담·인터뷰·리포트 원문은 참모로 넘어오지 않음.
- 외부 연동
메일·문자·알림을 보내거나 다른 체계와 자료를 주고받지 않음. 참모의 외부 통신은 AI 호출로 한정함.
- 결심을 대신하는 기능
참모가 대신 결심하는 기능, 징계·처벌을 조치로 올리는 기능, 방책 총점과 결과 점수는 두지 않음.
- 읽지 못하는 자료
구형 .hwp·.doc·.ppt·.xls, 그림 파일, 글자 정보가 없는 스캔 PDF는 받지 않음. 다른 형식으로 변환하거나 본문을 붙여 넣어 다시 올리도록 안내함.
방책 비교 기준, 개입 방식, 파생 문서 규칙은 기능시험용으로 작성한 임시본(버전 0)임. 발주사와 부대가 확정하면 버전 1로 교체함.
화면 표기를 따른 용어 정의
중대장은 지휘관이면서 간부이고, 행정보급관은 간부이지만 지휘관은 아님.
| 용어 | 뜻 | 코드 |
|---|---|---|
| 지휘관 | 부대를 지휘할 권한과 책임이 있는 직책(중대장·대대장 등). 결심은 지휘관이 함 | 없음 |
| 간부 | 장교·준사관·부사관을 통틀어 이르는 말. 이 서비스의 사용자를 두루 가리킴 | 없음 |
| 대화 | 한 사안을 두고 간부가 참모와 나누는 이야기. 코드에서는 사안(case)과 세션으로 나뉨 | command_cases |
| 브리프 | 대화로 파악한 상황을 담는 10칸(사실 4·사회 2·시간 4). 9칸이 필수이며, 칸마다 상태와 인용이 붙음 | command_fields |
| 제안 | 확인되지 않은 추론이나 이미 채운 칸과 어긋나는 내용. 간부가 채택해야 칸이 바뀜 | command_proposals |
| 기준정보 | 간부 5칸과 부대 7칸. 새 대화를 열면 그 대화의 자료로 먼저 들어감 | command_baseline_facts |
| 자료실 | 업무 공간에서 함께 쓰는 규정·지침·현황·일정 문서. 대화마다 선택해 넣음 | command_library |
| 방책 | 지휘관이 고를 수 있는 행동 방안. 두세 개를 기준 7개로 비교하되 총점은 매기지 않음 | command_coas |
| 개입 방식 | 지휘관이 사안에 나서는 방식. 네 물음에 답하면 규칙에 따라 12가지 가운데 후보를 추림 | command_plan_choices |
| 조치 계획 | 누가·언제까지·무엇을 할지 기록한 목록. 누가와 언제까지는 정해 둔 선택지에서만 선택함 | action_plan |
| 판단 보고서 | 지휘 계통으로 올리는 문서. 한 줄 요약 바로 뒤에 확인하지 못한 것을 기재함 | judgment |
| 파생 문서 | 상급 보고문·지휘서신·부대 공지문. 읽는 사람에 따라 구분함 | report_up · letter · notice |
| 결심 | 지휘관이 선택한 것과 그 까닭, 그때 확인하지 못한 것. 결과는 다시 볼 날에 네 갈래로 기록함 | command_decisions |
| 업무 공간 | 구성원·기준정보·자료실·대화를 묶는 부대 단위 공간. 다른 공간의 내용은 보이지 않음 | command_units |
2부서비스 구조
대화를 가운데 두고 도구를 곁에 둔 구조, 그 구조를 받치는 업무 공간·기준정보·F/S/T 관점, 브리프 칸과 칸을 고른 기준, 루만 의미 차원 판정 방식
대화 곁에 두고 필요할 때 꺼내 쓰는 도구
상황 파악·방책 비교·조치 계획·문서·결심 사이에는 번호도 차례도 없음. 브리프에 확인된 칸이 하나라도 있으면 도구를 사용할 수 있고, 결심은 대화 중 언제든 기록함. 도구를 사용한 뒤에도 대화는 그대로 이어짐.
참모가 먼저 답하고 빈칸을 질의함
최초 1회 가입 후 대화 중심의 업무 수행
최초에 가입을 신청해 운영자 승인을 받고, 기준정보를 한 번 입력함. 이후에는 사안이 생길 때마다 참모와 새 대화를 열고, 필요한 도구를 그때그때 꺼내 사용함.
처음 한 번
- 가입 신청계급·직책·부대 이름 입력, 12자리 가입 코드 발급
- 운영자 승인승인 시 계정과 업무 공간, 책임 간부 권한 동시 생성
- 비밀번호 정하기가입 코드로 비밀번호 설정 후 로그인
- 기준정보·자료실부대 임무와 편성 입력, 지침·규정 문서 등록
사안이 생길 때마다
- 대화첫 말씀 전송 시 개설, 참모가 먼저 답변한 뒤 빈칸 질의
- 도구방책 비교·조치 계획·문서를 필요할 때 순서 없이 사용
- 결심책임 간부가 언제든 기록, 다시 볼 때를 함께 선택
- 결과다시 볼 날 경과 후 업무현황에서 결과를 물어 네 갈래로 기록
계정이 이미 있는 간부
가입 신청 없이 로그인한 상태에서 업무 공간을 만들고, 그 공간의 책임 간부가 됨.
초대받은 간부
초대를 수락하면 구성원이 됨. 현장 간부는 대화 대신 현장 보고를 올리고 조치 카드를 받음.
다른 간부의 업무 공간 참여는 초대로만 가능
업무 공간은 간부가 자기 부대 업무를 다루는 공간임. 어느 간부든 만들 수 있으며, 업무 공간끼리는 서로 보이지 않음.
- 초대와 수락
책임 간부가 서비스ID로 초대하고, 초대받은 간부가 수락해야 구성원이 됨. 용사 계정은 초대할 수 없음.
- 계정당 업무 공간 하나
다른 업무 공간에 속한 간부는 그곳에서 먼저 나와야 초대를 수락할 수 있음.
- 나가기와 내보내기
스스로 나가거나 책임 간부가 내보냄. 이때 권한만 회수하고, 그동안 남긴 대화와 결심 기록은 업무 공간에 그대로 유지됨.
- 마지막 책임 간부
책임 간부가 한 명뿐이면 그 간부는 나갈 수 없고, 내보내거나 권한을 낮출 수도 없음.
한 번 입력하고 새 대화마다 자료로 넣는 기준정보
- 적기직접 입력하거나 자료실 문서에서 인용함. AI 초안은 간부가 칸마다 수락해야 반영됨
- 새 대화에 넣기첫 턴보다 먼저, 채운 칸을 글 한 편으로 묶어 대화 자료로 넣음
- 다시 묻지 않기입력해 둔 것은 다시 묻지 않고, 기준정보로 채운 칸은 이번 사안에도 맞는지 확인만 받음
- 바뀌면 다시 넣기넣은 뒤 기준정보를 고치면 대화 화면에 안내가 표시되고, 고친 내용을 다시 넣을 수 있음
간부 5칸 · 간부 본인 입력
- 계급필수 · 문서 머리에 표시
- 직책필수 · 보고문과 지휘서신을 이 직책 명의로 작성
- 보직 기간조치 계획의 기한 검토에 사용
- 지휘 방침필수 · 방책 비교 시 함께 검토
- 보고 계통상급 보고문 수신자로 사용
부대 7칸 · 책임 간부와 함께 쓰는 간부가 수정
- 부대 임무필수 · 모든 판단의 첫 기준
- 편성과 인원필수 · 간부와 병의 수, 소대·분대 구성
- 주요 일정필수 · 훈련·검열·휴가가 몰리는 시기
- 지금 현안필수 · 요즘 가장 신경 쓰는 일
- 상급 부대 지침상급 부대가 이번 분기에 강조한 것
- 쓸 수 있는 지원조치 계획의 ‘누가’ 칸에 사용
- 주둔지와 근무 여건조치를 제약하는 여건
루마닉의 F/S/T 세 물음에 따른 브리프 10칸 구분
루마닉(LUMANIC AI, INC.)은 사회학자 니클라스 루만(Niklas Luhmann)의 체계이론을 바탕으로 자연어 처리 엔진을 개발하는 회사임. 루마닉 기술 소개는 이 엔진이 발화에서 무엇을 주장하는지(F), 누구의 입장인지(S), 언제의 맥락인지(T)를 동시에 판별한다고 설명함.
F 사실 무엇을 주장하는가
- 브리프 사실 4칸일어난 일 · 쟁점 · 걸리는 규정 · 결심할 물음
S 사회 누구의 입장인가
- 브리프 사회 2칸입장과 기대 · 합의와 이견
T 시간 언제의 맥락인가
- 브리프 시간 4칸시작과 되풀이 · 지금까지 한 조치(선택) · 그대로 둔 결과 · 바라는 상태
루마닉 기술과 참모의 관계
- F/S/T 3차원 의미 판정다중 항목 확률 판정 기술을 제공하는 외부 판정 API로 이번 PoC에서 구현함(2.11절·FR-19, 개발 중). 현재 참모는 세 물음으로 브리프 칸을 구분함.
- 근거 추적
(XAI Explain Trail)칸마다 붙는 원문 인용(2.9절)은 근거 추적의 ‘사용된 근거’에 해당함. 판정 확률은 판단 유보와 검토에만 쓰고 화면에 표시하지 않음. - sLLM 문맥 API연결하지 않음. 대화와 도구는 범용 언어 모델(Claude)로 처리함.
이번 범위
루만 의미 차원 판정을 이번 PoC 범위에 포함함. 다중 항목 확률 판정 기술을 제공하는 외부 판정 API를 기반으로 구현하고, 평가셋으로 성능을 검증한 뒤 브리프에 반영함(FR-19).
출처: 루마닉 회사 소개(lumanic.ai)와 기술 소개(lumanic.ai/tech.html)
브리프 10칸에 아는 것과 아직 모르는 것을 구분하여 기록
사실·사회·시간으로 나누어 필수 9칸과 선택 1칸을 둠. 점수는 매기지 않고 확인된 칸 수만 집계함. 다음에 물을 칸은 모델에 맡기지 않고 서버에서 비어 있는 필수 칸부터 선택함.
무엇을 주장하는지. 이 일이 무엇이고 무엇이 아닌지
누구의 입장인지. 누가 무엇을 바라고 어디서 뜻이 갈리는지
언제의 맥락인지. 언제부터였고, 언제부터 되돌리기 어려워지는지
| 칸 상태 | 뜻 |
|---|---|
| 근거 있음 | 간부의 말이나 자료에서 원문 인용을 붙인 값 |
| 브리프에 넣음 | 참모가 제안하고 간부가 브리프에 넣은 값 |
| 해당 없음 | 해당 없다는 말이나 자료를 인용해 닫은 칸 |
| 칸 상태와 제안 | 뜻 |
|---|---|
| 어긋남 | 자료끼리, 또는 자료와 간부의 말이 서로 어긋난 칸 |
| 미확인 | 아직 모르는 칸. 억지로 채우지 않고 남겨 둠 |
| 모른다고 답함 | 간부가 모른다고 답한 칸. 다시 묻지 않고, 판단 보고서에 모르는 채 정하는 것으로 기록함 |
| 제안 | 칸 밖에 따로 두는 값. 반영 여부는 간부가 선택함 |
근거 있음과 브리프에 넣음만 확인된 칸으로 집계함. 확인된 칸이 하나라도 있으면 방책 비교·조치 계획·문서를 꺼내 쓸 수 있음.
대화 화면 옆 브리프에는 빈칸마다 참모가 물을 내용이 적혀 있고, 다음에 물을 칸에는 ‘다음 질문’ 표시가 붙음.
네 가지 시험을 모두 통과한 칸만 채택
칸 수는 미리 정하지 않음. 루만의 체계이론, 루마닉의 세 물음, 결정 이론과 군 교리에서 기준을 세우고 네 시험을 모두 통과한 칸만 남긴 결과 사실 4·사회 2·시간 4가 됨.
기준을 세운 근거
- 루만의 세 차원차원은 칸을 담는 상자가 아닌 구분으로 봄. 사실은 이것과 다른 것, 사회는 나와 남의 관점, 시간은 이전과 이후를 구분함. 차원마다 판단이 필요한 문제가 하나씩 있음: 무엇이 쟁점인지, 어디서 뜻이 갈리는지, 언제 되돌릴 수 없게 되는지(SS 76·78·81·83쪽).
- 루마닉의 세 물음무엇을 주장하는지, 누구의 입장인지, 언제의 맥락인지(lumanic.ai). 루마닉은 이 물음이 루만의 세 차원에서 왔다고 밝힘(lumanic.ai/tech.html).
- 결정 이론과 교리결심은 대안 가운데 하나를 선택하는 일이므로 무엇을 정하는지부터 밝힘(O&D 104쪽). 권한·편성·상급 지침처럼 이미 정해진 전제는 사안마다 다시 모으지 않고 기준정보에 둠(O&D 187쪽, FM 5-0 1-126).
칸을 두는 네 시험
- 차원세 차원 가운데 하나의 구분이나 문제를 기록하는지
- 대안비어 있으면 결심의 대안이나 그 평가가 달라지는지
- 겹침기준정보에 없고, 이 사안에서 새로 생기는 정보인지
- 도구방책 비교·조치 계획·문서·결심 기록 가운데 그 값을 바로 쓰는 도구가 있는지
비어 있으면 세 문제나 결심할 물음 가운데 하나가 정해지지 않는 칸과 규정상 반드시 따져야 하는 칸은 필수임. 지금까지 한 조치는 비어 있어도 대안을 가를 수 있어 선택임.
일어난 일, 쟁점, 그대로 둔 결과, 입장과 기대, 합의와 이견, 시작과 되풀이, 걸리는 규정, 결심할 물음, 바라는 상태 순으로 질문함. 사실을 먼저 모으고(FM 5-0 3-18~3-19), 되돌릴 수 없게 되는 때를 일찍 드러내려고 그대로 둔 결과를 셋째로 질문함.
약칭 SS는 루만의 『Social Systems』(1995), O&D는 『Organization and Decision』(2018), FM 5-0은 미 육군 계획·명령 교범(2024)임. 쪽수는 영역본 기준이며, 인용은 모두 원문과 대조함.
칸별 이론·규정 근거
| 차원 | 칸 | 적는 것 | 이론 근거 | 교리·규정·갈등관리 근거 |
|---|---|---|---|---|
| 사실 | 일어난 일 | 누구에게 무슨 일이 있었고, 얽힌 사람은 어디까지인지 | 사람도 사실 차원의 주제(SS 76쪽) | 사실·가정·의견을 가름(FM 5-0 3-20~3-24), 상황평가서의 상황개요(부대관리훈령 별표 8의2) |
| 쟁점 | 정작 문제가 되는 것과 이번 일과 별개인 것 | 이것과 다른 것을 가르는 1차 분리(SS 76·83쪽) | 증상보다 원인을 문제로 봄(FM 5-0 3-26~3-29), 쟁점 파악(국무조정실 갈등관리매뉴얼 42쪽) | |
| 걸리는 규정 | 이 일에 걸리는 규정 조항과 상급 지시 | 이런 조건이면 이렇게 한다는 조건 프로그램(O&D 213쪽) | 제한사항(FM 5-0 5-40~5-41), 법규 준수(부대관리훈령 제6조) | |
| 결심할 물음 | 이번에 정할 것, 직접 정할지 상급에 건의할지 | 대안 상황을 먼저 밝힘(O&D 104쪽) | 문제 진술은 참모가 쓰고 결심권자가 승인(FM 5-0 3-28·3-29), 규정대로 처리하는 것도 결심(6-7~6-9) | |
| 사회 | 입장과 기대 | 당사자마다 요구하는 것과 걱정하는 것 | 나와 남은 사람이 아닌 관점(SS 80~81쪽), 사회 구조는 기대(SS 292~293쪽) | 입장과 이해관심사(국무조정실 44·75쪽), 피해자의 의사(부대관리훈령 제18조 제5항) |
| 합의와 이견 | 이미 뜻을 같이하는 것과 갈리는 것 | 사회 차원을 드러내는 합의와 이견의 차이(SS 81·89쪽) | 쟁점별 일치·불일치 파악(국무조정실 78·82~83쪽) | |
| 시간 | 시작과 되풀이 | 언제 무엇으로 시작됐고, 전에도 있었는지 | 시간은 ‘언제’로만 정렬(SS 78쪽) | 되풀이는 지휘·감독 책임을 물을 수 있는 사유(부대관리훈령 제12조 제2항·제13조 제2항) |
| 지금까지 한 조치 | 누가 무엇을 했고, 그 뒤 어떻게 됐는지 | 앞선 결정이 다음 결정의 전제(O&D 147~152쪽) | 조치 경과(별표 8의2), 제때 한 사후조치는 책임 감경 사유(제12조의2 제2항 제2호) | |
| 그대로 둔 결과 | 그대로 두면 무엇이 언제부터 되돌리기 어려워지는지 | 비가역성(SS 78쪽), 그대로 두는 것도 결정(O&D 134~135쪽) | 위험 식별과 평가(FM 5-0 5-45~5-46), 긴급구제 요건(군 인권업무 훈령 제51조) | |
| 바라는 상태 | 무엇이 어떻게 달라지면 정리됐다고 보는지 | 결정으로 이룰 것과 결정하지 않으면 될 것의 차이(O&D 129쪽) | 문제는 바라는 상태와 지금 상태의 차이(FM 5-0 3-27), 최종상태(1-72) |
원문과 글자 단위로 대조한 값만 칸에 반영
- 원문간부가 방금 한 말과 이 대화에 넣은 자료 전문
- 모델이 낸 항목칸별 값과 인용 한 구절, 출처
- 서버 대조인용이 원문에 그대로 있는지 글자 단위로 확인
- 칸에 넣음통과한 항목만 인용을 붙여 칸에 반영
- 버림까닭을 그 턴 아래 기록하고 칸은 그대로 유지
버리는 까닭
- 인용 없음인용이 없음. 인용 없이는 ‘미확인’으로만 둘 수 있음.
- 너무 짧음인용이 6자 미만임. 방금 물은 칸을 짧게 부정한 답은 예외로 함.
- 원문에 없음원문에서 인용을 찾지 못함. 공백과 줄바꿈 차이만 허용함.
- 인용에 없는 수값에 적힌 수가 인용에는 없음. ‘사흘’, ‘두 명’ 같은 말도 수로 봄.
- 출처 모름출처가 간부의 말도 자료도 아니거나 없는 자료 번호임.
예: 간부의 말 한 줄로 대조하기
3소대 용사 둘이 열흘째 서로 말을 하지 않습니다.
간부가 방금 한 말
| 결과 | 모델이 낸 값 | 인용 |
|---|---|---|
| 넣음 | 3소대 용사 둘이 열흘째 말을 하지 않는다 | 3소대 용사 둘이 열흘째 서로 말을 하지 않습니다 |
| 인용에 없는 수 | 3소대 용사 둘이 보름째 말을 하지 않는다 | 위와 같은 인용 |
| 원문에 없음 | 용사 둘이 열흘째 말이 없다 | 용사 둘이 열흘째 말이 없다 |
서버 한 대에 웹 서버, Node 서버, DB 파일 두 개 배치
- 브라우저공개 홈과 참모 화면. 프레임워크 없이 HTML·CSS·JS로 만든 정적 페이지로, PC와 좁은 화면에서 모두 쓸 수 있음.
- 웹 서버HTTPS 연결을 받아 Node 서버로 전달함. 도메인 첫 화면은 참모 공개 홈으로 연결함.
- Node 서버화면 파일과 API를 함께 제공함. 로그인·권한 확인을 거치면 참모 모듈이 대화·인용 대조·도구를 맡고, 문서를 PDF와 한글(HWPX) 파일로 생성함.
- 저장공용 DB
db.sqlite· 계정·로그인·감사 기록. 용사 PoC와 공용.참모 DBcommand.sqlite· 대화·브리프·도구·결심·기준정보. 표 26개. - AI 실행호출할 때마다 Claude CLI를 빈 임시 폴더에서 도구 없이 실행하고, 정해 둔 형식의 JSON 하나만 받음. 모델은 Claude Sonnet 5를 사용함.
- 판정 API개발 중(2.11절·FR-19). 다중 항목 확률 판정 기술을 제공하는 외부 API를 HTTPS로 호출함. 보내는 글은 판정할 말과 앞뒤 말로 한정함.
경계
- 설정으로 켜고 끄기
참모 모듈은 설정으로 활성화함. 꺼 두면 참모 API는 404를 반환하고, 참모 DB 파일도 생성하지 않음.
- 용사 원문과 분리
참모 코드에서는 용사 상담·인터뷰·리포트 코드를 불러올 수 없음. 불러오기 자체를 시험으로 차단함.
- AI 프로세스 격리
프롬프트는 명령줄 대신 표준 입력으로 전달하고, 앱 비밀이 든 환경 변수는 물려주지 않음.
- 실패를 그대로 알리기
AI가 두 번 모두 형식을 맞추지 못하거나 제한 시간을 넘기면 오류로 알림. 시험용 고정 응답은 실사용 환경에서 켤 수 없음.
소통 한 건을 한 번 읽고 여러 항목을 확률로 판정하는 구조
다중 항목 확률 판정은 소통 한 건을 한 번 읽어 여러 항목을 동시에 판정하고, 항목마다 정해진 보기의 확률 분포를 산출하는 기술임. 문장을 생성하지 않고 정해진 보기 가운데에서만 고르므로 출력 형식이 고정됨. 이번 PoC에서는 이 기술을 제공하는 외부 판정 API를 기반으로 루만 체계이론의 세 의미 차원을 확률적으로 판정함(FR-19, 개발 중).
- 입력판정할 발화와 앞뒤 발화, 화자 정보
- 한 번 읽기판정 API가 입력을 한 번 읽어 모든 항목에 씀
- 항목별 판정F·S·T 판정 항목마다 보기별 확률을 동시에 산출
- 보정과 유보보정한 확률이 임계값에 미달하면 판단 유보
- 근거 구간판정을 받치는 원문 구간을 글자 단위로 대조
- 반영브리프 칸의 근거·제안과 미확인 처리에 사용
판정 항목의 세 형식
| 형식 | 산출값 | 예 |
|---|---|---|
| 선택형 | 보기 가운데 하나와 보기별 확률(합 1) | 진술 유형: 직접 겪은 사실·전해 들은 말·해석·요청·판단할 수 없음 |
| 척도형 | 순서 있는 단계와 단계별 확률 | 상황 변화 방향: 개선·변화 없음·악화 |
| 이진형 | 참일 확률 하나 | 앞 발화와 어긋나는 주장 |
모든 항목에 판단 유보 조건을 둠. 선택형·척도형은 ‘판단할 수 없음’ 보기와 항목별 임계값, 이진형은 참일 확률의 유보 구간을 둠. 날짜 계산과 수 비교는 코드로 처리함.
판정 한 건에 남기는 값
- 항목과 버전판정 항목 ID와 항목 정의 버전
- 고른 보기확률이 가장 높은 보기, 또는 판단 유보
- 보기별 확률보정을 거친 확률 분포 전체
- 근거 구간원문 안의 시작·끝 위치와 발화 번호
- 모델 버전판정 API의 모델 버전과 보정값의 버전
루만 체계이론의 의미 구조를 판정 형식에 담은 설계
FR-19(개발 중)에서 구현할 판정 설계의 이론 근거. 판정 정확도는 평가셋으로 측정해 확인할 예정임.
| 루만 체계이론 | 원문(영역본) | 판정 설계 |
|---|---|---|
| 세 차원의 동시성사실·사회·시간 차원은 서로 대신할 수 없고, 실제 의미에는 늘 함께 나타남 | One cannot, for example, replace the future by consensus(SS 75~76쪽) in every real intended meaning they appear together(SS 86쪽) | 소통 한 건에서 F·S·T 항목을 동시에 판정함 |
| 의미의 지평고른 의미에는 고르지 않은 다른 가능성이 늘 함께 따라옴 | a surplus of references to other possibilities of experience and action(SS 60쪽) the unity of actualization and virtualization(SS 65쪽) | 고른 보기와 함께 나머지 보기의 확률을 보존함 |
| 차원별 문제와 선택지의미 작동은 1차 분리·비가역성·이견이라는 문제에서 시작되고, 차원마다 두 지평이 있어 선택지가 생김 | triggered by problems (primary disjunction, irreversibility, dissent), put one under pressure to create options(SS 83쪽) | 판정 항목은 차원별 문제를 묻는 객관식 물음으로 구성함 |
| 우연성과 이중 우연성필연도 불가능도 아닌 것은 달리 될 수도 있으며, 서로 불투명한 체계에게 상대는 늘 일부만 보임 | neither necessary nor impossible … though it could also be otherwise(SS 106쪽) What can be seen of each is therefore necessarily a reduction(SS 109쪽) | 관찰할 수 있는 것이 일부이므로 판정을 확정값 대신 확률로 산출하고, 근거가 부족하면 판단을 유보함 |
| 소통과 갈등소통은 이해가 일어나야 성립하고, 갈등은 앞 소통에 말로 답한 거절로서 짐작한 대립과 다름 | communication is realized if and to the extent that understanding comes about(SS 147쪽) a communicated ‘no’ that answers the previous communication(SS 389쪽) | 앞뒤 발화를 함께 읽어, 실제로 오간 말에서 사회 차원의 수용·거부를 판정함 |
| 불확실성 흡수조직은 근거 대신 결론을 넘기며 불확실성을 흡수함 | uncertainty absorption (O&D 148~152쪽) | 결론과 함께 근거 구간과 판단 유보를 넘겨 모름이 가려지지 않게 함. 확률은 유보 판단에만 씀 |
쪽수는 SS 『Social Systems』(1995)·O&D 『Organization and Decision』(2018) 영역본 기준이며, 인용은 모두 원문과 대조함.
3부기능 요구사항
간부와 운영자가 화면에서 하는 일과 루만 의미 차원 판정을 기능별로 나눈 요구사항과 완료를 판단할 수용 기준
기능 요구사항 목록
| 번호 | 기능 | 화면 |
|---|---|---|
| FR-01 | 가입 신청 | signup.html |
| FR-02 | 가입 승인 | signups.html |
| FR-03 | 로그인·추가 인증·재확인 | login.html |
| FR-04 | 업무 공간 만들기 | start.html |
| FR-05 | 구성원·초대·나가기 | members.html |
| FR-06 | 기준정보와 AI 초안 | baseline.html |
| FR-07 | 자료실과 파일 올리기 | library.html |
| FR-08 | 참모 대화 | desk.html |
| FR-09 | 브리프와 제안 | desk.html |
| 번호 | 기능 | 화면 |
|---|---|---|
| FR-10 | 도구 추천 | desk.html |
| FR-11 | 방책 비교 | coa.html |
| FR-12 | 조치 계획 | plan.html |
| FR-13 | 판단 보고서 | documents.html |
| FR-14 | 파생 문서와 내보내기 | documents.html |
| FR-15 | 결심 기록·결과·선례 | decisions.html |
| FR-16 | 업무현황과 현황 브리핑 | home.html |
| FR-17 | 대화 목록 | cases.html |
| FR-18 | 현장 보고와 조치 카드 | field.html |
| FR-19 | 루만 의미 차원 판정 | desk.html |
표의 화면은 / 아래에 있음. 요구사항 쪽마다 설명·수용 기준·화면·시험 파일을 기술함. 개발 중인 FR-19는 시험 파일 대신 상태를 기술함.
실명과 군번 없는 간부 가입 신청
정할 일이 있는 간부는 누구나 로그인 없이 신청함. 입력 항목은 계급·직책·부대 이름·제대 네 가지이며, 운영자에게 남길 말은 선택임. 승인되면 받아 둔 가입 코드로 비밀번호를 설정함.
수용 기준
- FR-01-1신청 시 12자리 가입 코드를 한 번만 표시하고, 서버에는 그 해시만 남겨야 함.
- FR-01-2가입 코드로 상태를 조회하면 승인 건은 서비스ID를, 반려 건은 사유를 표시해야 함.
- FR-01-3승인 전에는 가입 코드로 비밀번호를 정할 수 없고, 없는 코드로 조회하면 401로 응답해야 함.
- FR-01-4틀린 코드로 조회하는 횟수와 신청 건수는 접속 주소별로 제한해야 함.
운영자 승인 시 계정과 업무 공간 동시 생성
운영자는 용사 PoC 관리자 계정으로 가입 신청 화면을 열어 신청을 상태별로 검토하고 승인 또는 반려함. 계정은 PoC 관리자 화면과 같은 절차로 생성하고, 신청 때 받은 가입 코드를 그대로 초대코드로 사용함.
수용 기준
- FR-02-1신청 목록 조회와 승인·반려는 운영자만 수행하고, 다른 계정은 403으로 차단해야 함.
- FR-02-2승인 시 계정·업무 공간·책임 간부 권한과 계급·직책 칸이 한꺼번에 생성되어야 함.
- FR-02-3승인 대기가 아닌 신청은 다시 승인하거나 반려할 수 없어야 함.
- FR-02-4추가 인증을 꺼도 운영자는 추가 인증을 마친 세션에서만 신청 조회·승인이 가능해야 함.
- 신청로그인 없이 작성, 가입 코드 발급
- 승인계정·업무 공간·권한 동시 생성
- 비밀번호가입 코드로 설정
- 인증 앱 등록추가 인증을 켰을 때만 수행
신청 상태
| 상태 | 의미와 신청자 안내 |
|---|---|
| 승인 대기 | 운영자가 아직 처리하지 않음. 신청자에게는 기다려 달라고 안내함. |
| 승인함 | 계정과 업무 공간이 생성됨. 신청자는 서비스ID를 확인하고 비밀번호를 설정함. |
| 시작함 | 인증 앱 등록에 쓸 첫 인증 코드를 받음. 추가 인증을 끄면 이 상태로 넘어가지 않음. |
| 반려함 | 신청자는 운영자가 남긴 사유(선택)를 가입 코드로 확인함. |
추가 인증 완료 후 참모 화면 진입
서비스ID와 비밀번호를 확인한 뒤 인증 앱에 뜬 6자리 번호로 추가 인증을 함. 인증 앱은 최초 1회만 등록함. 이용 안내까지 확인하면 업무현황 화면으로 이동함.
수용 기준
- FR-03-1추가 인증이 켜져 있으면 인증 앱을 등록하지 않은 구성원의 참모 API 호출을 403으로 차단해야 함.
- FR-03-2추가 인증이 켜져 있으면 인증한 지 15분이 지난 세션에서는 결심 기록·문서 승인·구성원 변경 전에 인증 코드를 재확인해야 함.
- FR-03-3추가 인증을 끄면 참모 계정은 로그인만으로 진입하고, 면제한 로그인은 감사 기록에 남겨야 함.
- FR-03-4추가 인증을 꺼도 운영자와 참모 외 계정은 추가 인증을 거쳐야 함. 설정 하나로 다시 켤 수 있어야 함.
지휘 계통과 관계없는 간부별 업무 공간 개설
용사 PoC의 상담자·관리자처럼 계정은 있으나 참모 권한이 없는 간부는 로그인 상태에서 업무 공간을 개설함. 계급·직책·부대 이름·제대를 입력하면 바로 쓸 수 있음. 받은 초대가 있으면 양식보다 먼저 표시함.
수용 기준
- FR-04-1개설 시 업무 공간, 책임 간부 권한, 계급·직책 칸을 한 번에 생성해야 함.
- FR-04-2이미 업무 공간에 속한 계정의 새 공간 개설은 차단해야 함(409).
- FR-04-3업무 공간끼리는 서로 보이지 않고, 공간 이름·제대 수정은 그 공간의 책임 간부만 가능해야 함.
- FR-04-4참모 권한이 없는 계정이 참모 화면을 열면 업무 공간 만들기 화면으로 이동해야 함.
업무 공간에 들어가는 세 가지 경로
계정이 없는 간부의 신청을 운영자가 승인하면 공간이 생성됨.
계정은 있으나 참모 권한이 없는 간부가 직접 개설함.
책임 간부가 부른 간부가 받아들이면 그 공간의 구성원이 됨.
만들 때 함께 생기는 것
- 업무 공간부대 이름·제대를 입력해 생성함. 부대 이름이 같은 공간이 여럿일 수 있어 공간 코드는 서버에서 무작위로 부여함.
- 책임 간부 권한만든 간부가 그 공간의 첫 책임 간부가 됨.
- 계급·직책 칸입력한 계급·직책으로 기준정보의 해당 칸을 채움.
본인이 받아들인 초대만 효력 발생
책임 간부는 서비스ID로 간부를 초대하면서 권한(책임 간부·함께 쓰는 간부·현장 간부)과 직책을 지정함. 추가 인증이 켜져 있으면 인증한 지 15분이 지난 세션에서는 부르기·권한 바꾸기·내보내기·나가기 전에 인증 코드를 재확인함.
수용 기준
- FR-05-1이 업무 공간에 없는 간부를 부르면 초대만 남기고, 본인이 받아들인 뒤에만 구성원이 되어야 함.
- FR-05-2한 계정은 한 업무 공간에만 속하고, 용사 계정 초대는 차단해야 함.
- FR-05-3마지막 남은 책임 간부는 내보내거나 강등할 수 없고, 본인도 스스로 나갈 수 없어야 함.
- FR-05-4내보낸 간부는 다음 요청부터 그 공간을 쓸 수 없고, 계정과 남긴 기록은 유지해야 함.
간부가 칸마다 받아들인 AI 초안만 기준정보로 반영
기준정보는 간부 5칸과 부대 7칸, 모두 12칸임. 간부 칸은 본인만 수정함. 값은 간부가 직접 적거나 자료실 문서의 문장을 인용해 넣음. AI는 간부가 고른 문서로 칸별 초안만 작성하고 칸을 직접 채우지 않음.
수용 기준
- FR-06-1부대 칸은 책임 간부·함께 쓰는 간부만 수정하고, 현장 간부의 수정은 403으로 차단해야 함.
- FR-06-2새 대화를 열면 채운 칸을 그 대화의 자료로 먼저 넣고, 그 뒤 기준정보가 바뀌면 변경 사실을 알려야 함.
- FR-06-3간부가 칸마다 ‘기준정보에 넣기’를 누르기 전에는 AI 초안을 반영하지 않아야 함.
- FR-06-4원문에 없는 인용이나 인용에 없는 숫자가 든 초안은 서버에서 버리고 그 개수를 알려야 함.
자료실에 넣은 문서를 모든 대화의 근거로 활용
업무 공간의 문서를 규정·지침·현황·일정·기타 다섯 종류로 나눠 보관함. 파일에서 글자만 뽑아 저장하고 원본 파일은 남기지 않음. 자료를 넣기 전에 비밀로 분류된 내용이 없음을 확인받음.
수용 기준
- FR-07-1구형 HWP·오피스 파일, 그림, 압축 파일, 글자 없는 PDF는 받지 않고 사유를 알려야 함.
- FR-07-2자료 넣기·내리기는 책임 간부·함께 쓰는 간부만 가능하고, 현장 간부는 403으로 차단해야 함.
- FR-07-3한 문서는 한 대화에 한 번만 들어가고, 목록에서 내려도 이미 넣은 대화의 사본은 남아야 함.
- FR-07-4파일은 로그인한 뒤 나눠 올리고, 다 올라가기 전에는 자료로 쓰지 않아야 함.
참모가 먼저 답한 뒤 빈칸 하나를 이어서 질문
간부가 평소 말투로 입력하면 참모는 질문이나 답이 필요한 말에 먼저 답함. 이어서 서버에서 정한 빈칸 하나를 질문함. 첫 말을 보내면 대화가 열리고, 대화 제목은 그 말의 첫 문장에서 추출함.
수용 기준
- FR-08-1간부의 말은 AI 호출 전에 저장하고, 답을 받지 못한 말을 다시 보내도 한 번만 남겨야 함.
- FR-08-2필수 칸이 남아 있으면 질문 없는 턴을 받지 않고, 서버에서 허용한 칸만 물어야 함.
- FR-08-3지휘관의 결심을 대신하거나 할 일을 시키는 답, 금지어가 든 답은 받지 않아야 함.
- FR-08-4두 번 호출해도 검사를 통과한 답이 없으면 고정 문장으로 채우지 않고 오류를 알려야 함.
브리프와 어긋나는 내용은 칸을 덮지 않고 제안으로 등록
브리프 10칸 중 9칸은 필수임. 확인된 칸과 어긋나는 내용은 칸을 덮지 않고 제안으로 등록함.
수용 기준
- FR-09-1인용이 없거나 인용에 없는 숫자를 쓴 값은 칸에 넣지 않고 까닭을 알려야 함.
- FR-09-2간부가 ‘브리프에 넣기’를 누르기 전에는 제안을 칸에 넣지 않아야 함.
- FR-09-3넣은 제안은 ‘브리프에 넣음’ 상태의 확인된 칸이 되고, 출처는 ‘참모 제안에서 넣음’으로 기록해야 함.
- FR-09-4차원별로 칸 수만 세고, 비율이나 점수로 바꾸지 않아야 함.
- FR-09-5방금 물은 칸에 모른다고 답하면 다시 묻지 않고, 보고서에 확인하지 못한 칸으로 남겨야 함.
| 칸 상태 | 뜻 |
|---|---|
| 근거 있음 | 간부의 말이나 자료에서 연속 원문을 인용해 채운 칸 |
| 브리프에 넣음 | 참모의 제안을 간부가 넣은 칸 |
| 해당 없음 | 해당 없다는 원문을 인용해 닫은 칸 |
| 어긋남 | 자료끼리, 또는 자료와 간부의 말이 어긋나는 칸 |
| 미확인 | 아직 모르는 칸(짐작으로 채우지 않음) |
| 모른다고 답함 | 간부가 모른다고 답한 칸(다시 묻지 않음) |
- 제안인용을 댈 수 없거나 확인된 칸과 어긋나는 내용에 까닭을 붙여 등록함
- 견주기이미 채운 칸이면 현재 값과 제안을 나란히 표시함
- 넣기·넣지 않기간부가 넣으면 칸을 바꾸고, 넣지 않으면 그대로 둠
확인된 칸을 덮지 않는 규칙은 참모 지시문에만 둠. 서버에서 막으면 간부의 정정까지 막히기 때문임. 칸에는 이력이 남지 않아 한 번 덮이면 앞 값과 인용이 사라짐.
참모 추천 도구의 사용 여부는 간부가 결정
참모는 답과 질문 아래에 지금 쓸 만한 도구를 두 개까지 추천함. 추천은 건의이므로 잘못된 항목이 섞여도 AI를 다시 부르지 않고 그 항목만 제외함.
수용 기준
- FR-10-1추천 도구는 방책 비교·조치 계획·문서·결심 기록 넷이며, 한 턴에 두 개 이하여야 함.
- FR-10-2까닭이 1~80자를 벗어나거나, 결심을 대신하는 말투·지시 말투·금지어가 든 항목은 제외해야 함.
- FR-10-3같은 도구를 두 번 권하면 뒤의 것을, 맥락 전환 확인 턴에서는 추천을 모두 제외해야 함.
- FR-10-4화면에는 가장 최근 참모 턴의 추천만 보이고, 잠긴 도구 자리에는 링크 대신 까닭을 적어야 함.
- 참모의 추천도구 이름과 까닭 한 줄을 두 개까지 제시함.
- 서버 검사모르는 도구, 길이를 벗어난 까닭, 결심 말투·금지어, 겹친 도구, 세 개째는 그 항목만 제외함.
- 턴에 함께 저장답·질문과 함께 참모 턴 한 줄에 저장함.
- 말풍선 아래 한 줄누르면 그 도구로 이동함. 잠긴 도구는 링크 대신 까닭을 표시함.
| 추천 도구 | 여는 조건 |
|---|---|
| 방책 비교 | 브리프에 확인된 칸이 하나 이상 |
| 조치 계획 | 확인된 칸이 하나 이상, 계획서는 개입 방식 선택 후 |
| 문서 | 확인된 칸이 하나 이상 |
| 결심 기록 | 확인된 칸이 없어도 언제든 |
총점 없이 기준별로 견주는 방책 비교
브리프에 확인된 칸이 하나라도 있으면 참모가 서로 다른 방책을 두세 개 작성함. 방책마다 기준 일곱 가지를 유리·엇갈림·불리·미확인으로 판정해 나란히 배치함. 재작성 시 이전 방책은 새 방책으로 대체됨.
수용 기준
- FR-11-1방책은 2~3개이고, 방책마다 기준 7개를 빠짐없이 채운 출력만 받아야 함.
- FR-11-2판정은 네 가지뿐이며, 총점·가중치를 매기거나 방책을 줄 세우지 않아야 함.
- FR-11-3미확인이 아닌 판정은 원문 인용과 대조하고, 인용을 대지 못하면 미확인으로 되돌려야 함.
- FR-11-4‘가장 나은 방책’처럼 지휘관 대신 고르는 문장이 든 출력은 받지 않아야 함.
규칙으로 추린 후보 중 지휘관의 개입 방식 선택
네 가지 물음에 답하면 개입 방식 12가지 중 후보를 규칙으로 추리고, 그중 하나를 지휘관이 선택함. 답과 고른 방식은 책임 간부나 함께 쓰는 간부가 화면에 입력함. 참모는 고른 방식에 맞춰 누가·언제까지·무엇을 할지 초안을 쓰고, 승인은 책임 간부만 함.
수용 기준
- FR-12-1방식을 고르는 동안에는 AI를 부르지 않고, 후보 밖의 방식은 받지 않아야 함.
- FR-12-2‘누가’는 역할 8가지, ‘언제까지’는 기한 7가지에서만 고르고, 날짜를 적은 조치는 제외해야 함.
- FR-12-3조치마다 확인된 브리프 칸을 근거로 달고, 징계·인사 조치를 적은 계획은 받지 않아야 함.
- FR-12-4승인은 책임 간부만 하고, 마침 표시는 승인된 최신 판에만 붙이며 개정판으로 옮기지 않아야 함.
판단 보고서 중 참모가 작성하는 두 부분
판단 보고서는 브리프와 방책 비교를 한 편으로 묶어 지휘 계통에 올리는 문서임. 대조를 마친 사실을 참모가 다시 쓰면 원문과 어긋날 수 있으므로, 참모는 한 줄 요약과 ‘따져야 할 것’만 작성함.
수용 기준
- FR-13-1확인하지 못한 칸 목록은 요약 바로 뒤, 사실 절보다 앞에 실어야 함.
- FR-13-2따져야 할 것은 2~5개이며, 원문 인용과 대조하지 못한 항목은 싣지 않아야 함.
- FR-13-3방책 작성 후 브리프가 바뀌면 방책 비교 절에 그 사실을 기재해야 함.
- FR-13-4생성 시점의 브리프 기준 시각과 지문을 싣고, 재생성 시 개정판으로 남겨야 함.
- 한 줄 요약참모가 작성함. 120자 이내, 결심을 대신하는 말투는 받지 않음.
- 확인하지 못한 것서버에서 미확인 칸을 모아 기재함.
- 사실·사회·시간 차원확인된 칸의 값과 인용·출처를 서버에서 그대로 옮김.
- 방책 비교저장된 판정을 서버에서 옮김. 이후 브리프가 바뀌었으면 그 사실을 기재함.
- 따져야 할 것참모가 2~5개를 작성함. 인용 대조를 통과한 항목만 남김.
이 보고서는 참모 도구가 정리한 초안입니다. 결심은 지휘관이 합니다.
PDF 끝에 붙는 문구
부대원 대상 문서의 개인 식별 표현 제외
같은 브리프로 상급 보고문·지휘서신·부대 공지문을 쓰고, PDF와 한글(HWPX) 파일로 내려받음. 지휘서신과 공지문은 부대원이 읽으므로 가릴 사람을 확인함.
수용 기준
- FR-14-1부대원 대상 문서에서는 성 뒤에 계급·직책이 붙은 표현이 든 칸을 제외하고 그 사실을 기재해야 함.
- FR-14-2지휘서신에는 지휘관이 맡은 조치만, 공지문에는 당사자·분대장·소대장 조치만 실어야 함.
- FR-14-3참모가 쓴 칸이 모두 걸러지면 문서를 생성하지 않아야 함.
- FR-14-4화면 미리보기·PDF·한글 파일은 같은 데이터로 만들고, 내보낼 때마다 기록해야 함.
- FR-14-5지휘서신·공지문을 만들 때마다 가릴 사람을 확인하고, ‘당사자는 싣지 않음’을 기본값으로 선택해 두어야 함.
당시 몰랐던 것까지 남기는 결심 기록
결심은 지휘관이 하고, 기록은 책임 간부 권한으로 남김. 무엇을 왜 정했는지, 그때 확인하지 못한 것, 언제 다시 볼지를 기록함. 다시 볼 날이 지나면 업무현황에서 결과 입력을 요청함. 이 기능에서는 AI를 호출하지 않음.
수용 기준
- FR-15-1결심은 책임 간부만 남기고, 확인된 칸이 없어도 받아야 함.
- FR-15-2‘그때 확인하지 못한 것’을 비워 두면 기록 시 브리프의 미확인 칸으로 채워야 함.
- FR-15-3다시 볼 날은 정해 둔 기간 다섯 가지에서 고르고, 결과는 네 갈래로만 기록해야 함.
- FR-15-4선례는 다른 대화의 같은 유형 결심을 결과가 적힌 것부터 다섯 건까지 표시해야 함.
업무현황 맨 위에 먼저 할 일 하나 배치
로그인 후 가장 먼저 보는 화면임. 서버에서 고른 할 일 하나, 대화를 상태별로 센 네 칸 띠, 진행 중인 대화, 기준정보·자료실 요약을 한 화면에 표시함.
수용 기준
- FR-16-1맨 위 할 일은 서버에서 하나만 고르며, 다시 볼 날이 지난 결심, 비어 있는 기준정보, 진행 중인 대화 순서로 정해야 함.
- FR-16-2진행 중인 대화는 급한 것부터, 같은 급이면 최근에 손댄 것부터 정렬해야 함.
- FR-16-3대화마다 한 것(칸·방책·계획·문서·결심)을 적고, 그 수는 서버에서 센 값을 써야 함.
- FR-16-4현황 브리핑에는 적어 둔 기록만 모으고, 빈 칸에는 ‘적어 두지 않았습니다’로 표기해야 함.
줄마다 그 대화에서 한 것을 표시하는 대화 목록
업무 공간에서 나눈 대화를 한곳에 모음. 줄마다 유형·긴급·한 것·연 날을 적고, 줄을 누르면 그 대화로 이동함. 상태별 거르기도 가능함.
수용 기준
- FR-17-1목록에는 같은 업무 공간의 대화만 싣고, 현장 간부에게는 자기가 올린 대화만 실어야 함.
- FR-17-2급한 것부터, 같은 급이면 최근에 연 것부터 정렬해야 함.
- FR-17-3업무현황 띠에서 들어오면 그 칸과 같은 판정으로 거르고, 띠의 수와 줄 수가 같아야 함.
- FR-17-4목록은 업무현황 띠와 같은 범위인 200건까지 표시해야 함.
현장 간부에게 승인된 조치만 전달
현장 간부는 자기가 본 일을 휴대전화로 보고함. 참모와 나누는 대화는 책임 간부나 함께 쓰는 간부가 이어받음. 올린 사람은 이어받았는지, 결심했는지, 어떤 조치가 승인됐는지만 확인함.
수용 기준
- FR-18-1제목만 있어도 보고를 받고, 본문이 짧아 자료로 쓰지 못하면 그 사실만 알려야 함.
- FR-18-2현장 간부는 참모 대화를 열지 못하고, 브리프를 열어도 대화와 칸이 없어야 함.
- FR-18-3조치 카드에는 승인된 최신 판의 누가·언제까지·무엇을만 싣고, 근거와 인용은 제외해야 함.
- FR-18-4마침 표시는 올린 사람과 책임 간부·함께 쓰는 간부가 붙이고, 개정판으로 옮기지 않아야 함.
- 보고 올림제목(120자까지), ‘자세히’(선택, 4,000자까지), 유형·긴급을 입력함.
- 대화 목록에 오름본문은 ‘현장 보고’ 자료로 붙고, 이때 기준정보는 넣지 않음.
- 간부가 이어받음대화를 연 간부의 기준정보가 그때 들어감.
- 조치 계획 승인책임 간부가 승인한 판만 올린 사람에게 전달됨.
- 조치 카드누가·언제까지·무엇을과 마침 표시가 보임.
다중 항목 확률 판정 기술 기반의 루만 의미 차원 판정
다중 항목 확률 판정 기술을 기반으로 루만 체계이론의 세 의미 차원(사실·사회·시간)을 확률적으로 판정함. 이번 PoC에서는 이 기술을 제공하는 외부 판정 API를 사용함(구조는 2.11절, 루만 이론 대응은 2.12절). 결과는 브리프 칸의 근거·제안과 미확인 처리에 사용함.
수용 기준
- FR-19-1소통 한 건의 F·S·T 판정 항목 전체를 한 번에 판정하고, 항목마다 보기 전체의 확률 분포와 근거 구간을 산출해야 함.
- FR-19-2선택형·척도형은 ‘판단할 수 없음’ 보기가 가장 높거나 최고 확률이 임계값에 미달할 때, 이진형은 참일 확률이 유보 구간에 들 때 판단 유보로 표시해야 함.
- FR-19-3근거 구간은 원문과 글자 단위로 대조해 통과한 구간만 인정해야 함.
- FR-19-4전문가 이중 라벨 데이터를 보정용·평가용으로 나누고, 평가용에서 항목별 F1·보정 오차·유보율을 측정해야 함.
- FR-19-5판정 API에는 판정할 말과 앞뒤 말만 보내고, 받은 판정은 자체 모델 학습에 쓰지 않으며, 판정 확률은 어떤 모양으로도 화면에 표시하지 않아야 함.
처리 예: 소통 한 건의 판정(설명용 예시값)
분대장이 둘을 불러 이야기했는데, 둘 다 상대가 먼저 사과해야 한다고만 합니다.
간부의 말. 앞 말은 ‘3소대 용사 둘이 열흘째 서로 말을 하지 않습니다.’
| 차원 | 판정 항목 | 판정 | 확률 |
|---|---|---|---|
| F | 진술 유형 | 전해 들은 말 | 0.74 |
| F | 쟁점 분류 | 용사 간 관계 | 0.81 |
| S | 당사자 간 합의·이견 | 이견 | 0.83 |
| S | 상대에게 하는 요구 유형 | 사과 요구 | 0.77 |
| T | 상황 변화 방향 | 변화 없음 | 0.62 |
| T | 되풀이 여부 | 판단 유보 | 0.46 |
판정마다 근거 구간을 붙임(예: 합의·이견은 ‘상대가 먼저 사과해야 한다고만’). ‘되풀이 여부’는 이진형 항목으로, 참일 확률 0.46이 유보 구간에 들어 판단을 유보함. 확률은 설명을 위한 예시값임.
4부비기능 요구사항
보안·성능·신뢰성 등 모든 기능에 공통으로 적용하는 조건, 시험성적서 성능·기능·보안 항목과 요구사항의 대응
시험성적서 항목과 요구사항 대응
건양대 기능시험의 시험성적서는 성능·기능·보안 세 항목으로 나뉘며, 항목별로 확인할 요구사항은 아래와 같음.
시험성적서의 세 항목
| 항목 | 요구사항 | 확인 내용 |
|---|---|---|
| 성능 | NFR-06 FR-07 · FR-17 | 대화 한 턴의 응답 시간, 동시 AI 호출과 호출 시간 한도, 자료 크기 한도, 목록 건수 |
| 기능 | FR-01~FR-18 FR-19 | 가입부터 현장 보고까지 18가지 기능이 수용 기준대로 동작하는지. FR-19는 개발 중이며 평가셋 시험으로 확인 |
| 보안 | NFR-01 · NFR-02 NFR-03 · NFR-07 FR-03 | 서버에서 권한을 강제하는지, 감사 기록이 남고 고칠 수 없는지, 원문이 경계를 넘지 않는지, 기록을 보존·백업하는지, 로그인·추가 인증·재확인으로 제대로 막는지 |
그 밖의 비기능 요구사항
| 분류 | 요구사항 | 확인 내용 |
|---|---|---|
| 신뢰성 | NFR-04 · NFR-05 | 값마다 원문 인용이 붙는지, 참모의 말이 결심을 대신하지 않는지 |
| 사용성 | NFR-08 | 좁은 화면·터치·키보드로도 쓸 수 있는지 |
| 운영 | NFR-09 | 설정으로 켜고 끌 수 있는지, 설정이 잘못되면 서버가 기동하지 않는지 |
역할에 맞게 조정한 정보 제공
권한에 따라 보이는 정보가 다름. 현장 간부는 자기가 올린 일만 보고, 대화 내용은 받지 않음. 화면에서 단추를 감추는 것과 별개로, 요청마다 서버에서 업무 공간과 참모 권한을 다시 확인함.
수용 기준
- NFR-01-1업무 공간 구성원이 아닌 계정과 권한이 모자란 계정은 똑같이 403을 받아야 함.
- NFR-01-2다른 업무 공간의 대화·문서·결심·자료는 실제로 있어도 404로 응답해야 함.
- NFR-01-3결심 기록·문서 승인·구성원 관리는 책임 간부만 가능해야 함.
- NFR-01-4현장 간부는 참모 대화를 열지 못하고, 목록에서도 자기가 올린 것만 보아야 함.
- 출처 확인상태를 바꾸는 요청은 이 서비스 화면에서 온 것만 받음
- 로그인세션이 없거나 끝났으면 401로 돌려보냄
- 추가 인증추가 인증을 마친 세션만 통과시킴
- 계정 역할용사 계정은 참모 API에 접근할 수 없음
- 참모 권한업무 공간 구성원인지, 그 권한으로 할 수 있는 일인지 확인함
- 업무 공간다른 업무 공간의 대화·문서는 없는 것으로 응답함
- 응답 칸라우트마다 허용한 칸만 내보냄
참모 동작 35가지의 수정 불가 감사 기록
참모에서 무엇을 만들거나 바꾸거나 내려받으면 용사 PoC와 같은 감사 표에 한 줄이 남음. 이 표의 행은 데이터베이스에서 수정·삭제를 차단함. 운영자는 관리자 화면의 감사 조회에서 기록을 확인함.
수용 기준
- NFR-02-1감사 행을 꼭 남겨야 하는 변경은 행을 남기지 못하면 500으로 실패해야 함.
- NFR-02-2감사 대상 요청은 막히거나 실패해도 까닭 코드를 붙인 행을 한 줄 남겨야 함.
- NFR-02-3감사 행에는 본문·비밀번호·코드 평문을 넣지 않고, 정해 둔 짧은 값만 남겨야 함.
- NFR-02-4문서 PDF·한글 파일과 현황 브리핑 내려받기도 기록해야 함.
묶음별 감사 대상 동작
| 묶음 | 수 | 동작 |
|---|---|---|
| 업무 공간·구성원 | 8 | 업무 공간 만들기·고치기, 초대(권한 바꾸기 포함), 받아들이기·거절·거두기, 내보내기·나가기 |
| 가입 | 4 | 가입 신청·승인·반려, 첫 인증 코드 받기 |
| 대화 | 6 | 대화 열기·상태 바꾸기, 현장 보고, 자료 붙이기, 브리프 열기·봉인 |
| 도구 | 6 | 방책 만들기, 개입 방식 확정, 문서 만들기·승인·내려받기, 조치 마침 표시 |
| 결심 | 2 | 결심 기록, 결과 기록 |
| 기준정보·자료실 | 8 | 칸 적기·비우기, AI 초안 받기·넣기·넣지 않기, 자료 올리기·내리기, 대화에 넣기 |
| 현황 브리핑 | 1 | 한글 파일 내려받기 |
남기지 않는 것 화면 열람(파일 내려받기 세 가지 제외), 대화 턴, 제안 넣기·넣지 않기에는 감사 행을 남기지 않음. 턴과 제안은 참모 DB에 그대로 남음. 참모 데이터와 감사 행은 파일이 달라 한 트랜잭션으로 묶을 수 없음.
원문 경계 밖 반출 금지
용사 PoC의 상담·인터뷰·리포트 원문을 참모로 가져오는 코드는 없음. 참모 안에서도 대화 내용은 현장 간부에게 보내지 않음. 부대원 대상 문서에서는 개인을 가려낼 수 있는 칸을 제외함.
수용 기준
- NFR-03-1참모 코드는 용사 상담·인터뷰·리포트 원문 모듈을 어느 경로로도 불러오지 않아야 함.
- NFR-03-2현장 간부가 받는 브리프에는 대화·칸 문장·인용·제안이 없어야 함.
- NFR-03-3조치 카드에는 승인된 계획의 누가·언제까지·무엇을만 옮기고, 인용은 제외해야 함.
- NFR-03-4지휘서신·공지문에서는 성 뒤에 계급·직책이 붙은 표현이나 간부가 가려 달라고 적은 말이 든 칸을 제외하고, 그 사실을 문서에 기재해야 함.
| 경계 | 넘어가지 않는 것 | 대신 넘어가는 것 |
|---|---|---|
| 용사 PoC → 참모 | 상담·인터뷰·리포트 원문 | 없음. 불러오는 코드가 생기면 시험 실패 |
| 대화 → 현장 간부 | 대화 턴, 브리프 칸의 문장·인용, 제안 | 결심·결과가 있는지, 승인된 조치 계획의 판 |
| 조치 계획 → 조치 카드 | 근거 칸과 인용, 승인 전 초안·개정판 | 누가·언제까지·무엇을, 개입 방식 |
| 참모 → 부대원 문서 | 성 뒤에 계급·직책이 붙은 표현이 든 칸, 미확인 목록 | 제외한 칸이 있다는 사실. 걸린 이름은 다시 적지 않음 |
| 모델 → 조치 계획 | 사람 이름, 달력 날짜 | 정해 둔 역할·기한 목록 |
| 서버 → 로그·AI 기록 | 말·자료·프롬프트·응답 본문 | 글자 수, 해시, 걸린 시간 |
인용하지 못한 값의 ‘미확인’ 처리
참모가 칸이나 판단에 기록하는 값에는 원문 인용이 필요함. 원문은 간부의 말, 넣은 자료, 확인된 브리프 칸 중 하나임. 인용한 글자가 원문에 그대로 있어야 통과하며, 비슷한 문장은 인정하지 않음.
수용 기준
- NFR-04-1인용이 없거나 원문에서 찾지 못한 값은 칸에 넣지 않아야 함.
- NFR-04-2값에 쓴 숫자가 인용에 없으면 그 값을 받지 않아야 함.
- NFR-04-3근거를 대지 못한 방책 판단은 버리지 않고 미확인으로 처리해야 함.
- NFR-04-4판단 보고서에는 근거 없는 항목을 싣지 않고, 확인하지 못한 칸을 첫머리에 밝혀야 함.
지휘관의 결심을 대신하는 표현과 금지어 차단
모델이 작성한 글은 저장 전에 서버에서 검사함. 걸리는 표현이 있으면 까닭을 붙여 모델을 한 번 더 호출하고, 그래도 걸리면 오류를 반환함. 서버에서 문장을 지어 빈자리를 채우지 않음.
수용 기준
- NFR-05-1답이나 질문이 결심을 대신하거나 답이 할 일을 지시하면 그 턴을 받지 않아야 함.
- NFR-05-2답 안의 물음, 더 말해 달라는 청, 칸에 기록했다는 단언은 받지 않아야 함.
- NFR-05-3금지어는 간부가 이번 말에 쓴 낱말을 되받을 때만 허용하고, 판정하는 뜻으로 쓰면 차단해야 함.
- NFR-05-4두 번 모두 걸리면 오류를 반환하고, 간부의 말은 저장된 채 남아야 함.
| 차단 표현 | 예 | 검사 대상 |
|---|---|---|
| 결심 대행 | “○○안이 맞습니다”, “~시면 됩니다” | 대화의 답·질문, 추천 까닭 |
| 선택 대행 | “건의합니다”, “최선의 방책” | 방책 비교, 판단 보고서, 조치 계획 |
| 결과 단언 | “반드시 해결”, “문제없습니다” | 대화, 방책, 보고서, 계획, 파생 문서 |
| 할 일 지시 | “~하십시오”. 청하는 “~해 주십시오”는 허용 | 대화의 답, 추천 까닭 |
| 답 속의 물음·청 | 물음표, “말씀해 주시면” | 대화의 답 |
| 칸 기록 단언 | “브리프에 기록했습니다” | 대화의 답 |
| 금지어 | 절대 규칙이 정한 세 낱말 | 대화의 답·질문, 추천 까닭 |
| 징계·처벌 | “징계 조치”, “처벌합니다” | 조치 계획, 파생 문서 |
답이 늦거나 끊겨 다시 보낸 말의 중복 저장 방지
참모 AI 모델은 Claude Sonnet 5, 생각 분량은 low임. 답이 서버 검사에 걸려 다시 호출할 때만 medium으로 올림. 같은 말을 다시 보내면 새 턴을 만들지 않고 앞 턴을 사용함.
수용 기준
- NFR-06-1한 요청에서 모델은 두 번까지만 호출하고, 설정이 low면 두 번째에만 medium으로 올려야 함.
- NFR-06-2시간 한도를 넘긴 AI 호출은 프로세스와 그 자식 프로세스까지 종료하고 시간 초과 오류를 반환해야 함.
- NFR-06-3같은
turn_key로 다시 보낸 말은 새로 저장하지 않고, 저장된 답이 있으면 그 답을 반환해야 함. - NFR-06-4답을 받지 못한 첫 말을 다시 보내도 대화가 하나 더 열리지 않아야 함.
- 말 저장AI 호출 전 저장. 키가 같으면 앞의 말 사용
- 줄 서기서버 전체 동시 호출 한도 초과 시 차례 대기
- 모델 호출대화 120초, 그 밖의 도구 180초 경과 시 종료
- 서버 검사걸리면 까닭을 붙여 재호출. low였으면 medium으로 상향
- 두 번 실패오류 코드 반환, 대체 답변 없음
- 화면저장됨·안 됨·확인 못 함 구분 표시, 재전송 가능
2026-09-28 서버에서 참모 대화 프롬프트로 측정한 결과, Sonnet 5는 기본 생각 분량에서 39초, low에서 5.6~12.9초 소요됨. 이 값은 low 선택의 근거이며 보장값은 아님.
방책과 문서에는 이 중복 방지가 없음. 다시 누르면 모델을 새로 호출하여 방책은 전체가 바뀌고 문서는 새 판이 생성됨.
용사 PoC와 분리한 참모 DB 파일과 일일 백업
참모 전용 SQLite 파일 command.sqlite는 참모 모듈을 켜야 데이터 폴더에 생성됨. 표 26개가 모두 이 파일에 있으며, 마이그레이션은 서버 기동 시 적용함.
수용 기준
- NFR-07-1모듈이 꺼져 있으면 참모 DB 파일을 생성하지 않아야 함.
- NFR-07-2모듈을 켜도 용사 PoC DB는 표 45개, user_version 3을 유지해야 함.
- NFR-07-3올린 파일의 원본은 DB에 두지 않고, 추출한 글자만 자료로 남겨야 함.
- NFR-07-4대화 턴·자료·결심·문서는 삭제하지 않고, 구성원·초대는 상태로 닫아야 함.
- NFR-07-5참모 DB는 용사 PoC DB와 같은 일일 암호화 백업에 담고, 같은 절차로 복원해야 함.
삭제와 보존
| 기록 | 규칙 |
|---|---|
| 대화 턴·자료·결심 | 삭제하지 않음. 결심은 고쳐 적기와 결과 덧쓰기만 가능함 |
| 문서 | 삭제하지 않음. 승인 외에는 수정하지 않고, 다시 만들면 새 판이 됨 |
| 구성원·초대·가입 | 삭제하지 않고 상태로 닫음 |
| 자료실 문서 | 내린 시각을 기록하고 내림 |
| 브리프 칸 | 덮어씀. 앞 값과 인용은 남지 않음 |
| 방책 | 다시 만들면 앞 방책을 삭제하고, 결심에는 고른 방책의 이름을 남김 |
| 마침 표시·기준정보 칸 | 되돌리거나 비우면 삭제함. 마침 표시 이력은 감사 기록에 남음 |
| AI 호출 기록 | 본문은 남기지 않고 글자 수·해시·걸린 시간·비용만 기록함 |
휴대전화와 키보드 사용을 고려한 화면 구성
너비 640px 이하이거나 터치 화면이면 누르는 영역을 44px 이상으로 키움. 640px 이하에서는 목록 표를 줄 목록으로 전환함. 잠긴 도구는 흐리게 두지 않고 점선·자물쇠와 까닭을 적은 글로 표시함.
수용 기준
- NFR-08-1너비 640px 이하이거나 터치 화면이면 단추와 도구는 44px 이상이어야 함.
- NFR-08-2대화 목록·구성원·자료실 표는 640px 이하에서 줄 목록으로 바뀌어야 함.
- NFR-08-3Enter로 보내고 Shift+Enter로 줄을 바꾸며, 한글 조합 중에는 보내지 않아야 함.
- NFR-08-4움직임 줄이기 설정에서는 전환과 스켈레톤 반짝임을 멈춰야 함.
코드 수정 없이 설정으로 바꾸는 모듈·추가 인증·모델
참모 설정은 용사 PoC 설정과 별도로 읽음. 설정 변경 후 서비스를 다시 시작하면 적용됨. 값이 잘못되면 잘못된 곳을 모두 모아 알리고 서버를 기동하지 않음.
수용 기준
- NFR-09-1모듈을 켜지 않으면 참모 API와 화면은 모두 404이고, 참모 DB 파일도 생기지 않아야 함.
- NFR-09-2추가 인증을 끄면 참모 계정만 면제되고, 용사 PoC의 상담자·관리자는 그대로 추가 인증을 받아야 함.
- NFR-09-3추가 인증을 끄면 재확인은 로그인 확인으로 낮아지고, 다시 켜면 원래대로 돌아와야 함.
- NFR-09-4실사용 환경에서 파일 응답 실행기를 선택하면 서버가 기동하지 않아야 함.
| 설정 항목 | 내용 |
|---|---|
| 참모 모듈 | 모듈 전체 켜기·끄기. 기본값 꺼짐 |
| 추가 인증 | 참모 계정의 추가 인증과 재확인 켜기·끄기. 기본값 켜짐 |
| AI 실행기 | 실사용 환경은 실제 모델만 사용. 파일 응답은 개발·시험 전용 |
| 참모 AI 모델 | 기본값 Claude Sonnet 5 |
| 생각 분량 | 기본값 낮음(low) |
| 호출 시간 한도 | 프롬프트별 한도가 없는 호출에 적용 |
| 동시 호출 수 | 서버 전체에서 동시에 실행되는 AI 호출 수 |
| 자료 크기 한도 | 자료 한 건의 크기 상한 |
5부화면·데이터·검증
화면과 데이터 구성, 외부 연계, 인수 시험, 요구사항 추적
참모 화면 16개와 사용 권한
| 주소 | 사용자 | 하는 일 |
|---|---|---|
| index.html | 누구나 | 참모 소개, 가입 신청과 로그인 입구 |
| signup.html | 계정이 없는 간부 | 가입 신청, 승인 확인, 비밀번호 설정 |
| login.html | 모든 계정 | 로그인, 추가 인증(켜져 있을 때) |
| signups.html | 운영자 | 가입 신청 승인과 반려 |
| start.html | 업무 공간이 없는 계정 | 업무 공간 생성, 받은 초대 수락 |
| home.html | 구성원 모두 | 진행 중인 대화, 다시 볼 결심, 현황 브리핑 |
| baseline.html | 구성원 모두 | 간부 5칸·부대 7칸과 AI 초안. 부대 칸은 현장 간부 수정 불가 |
| library.html | 구성원 모두 | 규정·지침·현황 문서 보관. 현장 간부는 올리기·내리기 불가 |
| 주소 | 사용자 | 하는 일 |
|---|---|---|
| cases.html | 구성원 모두 | 대화 목록. 현장 간부는 본인이 올린 대화만 조회 |
| desk.html | 책임·함께 쓰는 간부 | 참모와 대화, 브리프와 제안, 도구 추천 |
| coa.html | 책임·함께 쓰는 간부 | 방책 두세 개를 기준 7개로 나란히 비교 |
| plan.html | 책임·함께 쓰는 간부 | 개입 방식 선택과 조치 계획 작성 |
| documents.html | 책임·함께 쓰는 간부 | 판단 보고서와 파생 문서, PDF·한글 파일. 승인은 책임 간부 |
| decisions.html | 책임·함께 쓰는 간부 | 결심 기록과 결과, 지난 결심. 결심은 책임 간부가 기록 |
| field.html | 현장 간부 | 현장 보고 등록, 승인된 조치 카드와 마침 표시 |
| members.html | 구성원 모두 | 구성원 조회와 나가기. 초대와 권한 변경은 책임 간부 |
주소는 모두 / 아래에 있음. 권한 밖의 화면은 주소로 바로 열어도 서버 API에서 403으로 차단되고, 화면에는 권한 없음 상태를 표시함. 이 문서는 로그인 없이 공개 홈 바닥글의 단추로 열 수 있음.
여섯 묶음으로 나눈 참모 DB 표 26개
참모 DB는 용사 PoC DB와 분리한 파일(command.sqlite)임. 마이그레이션 11개를 적용해 스키마 버전은 11이며, PoC DB의 표 45개는 변경하지 않음.
| 수 | 묶음과 내용 | 표 |
|---|---|---|
| 4 | 업무 공간과 구성원 업무 공간, 구성원과 권한, 초대와 그 결과, 가입 신청 | |
| 4 | 기준정보와 자료실 간부·부대 칸과 AI 초안, 자료실, 대화에 넣은 기준정보·자료와 그때의 지문 | |
| 7 | 대화와 브리프 대화와 브리프, 턴, 브리프 칸, 제안, 대화에 넣은 자료와 근거 구절 | |
| 7 | 도구 산출물 방책과 기준별 판정, 고른 개입 방식, 문서와 절, 내보낸 파일, 조치 마침 표시 | |
| 1 | 결심 기록 무엇을 왜 결심했는지, 무엇을 모른 채 결심했는지, 다시 볼 시점과 결과 | |
| 3 | AI 실행 기록 호출마다 본문은 제외하고 글자 수·해시·걸린 시간·비용만 기록. 잡 표 두 개는 미사용 |
표 이름 앞의 command_는 생략함. 계정은 PoC DB에 있어 참모 표의 계정 열에는 외래 키를 걸 수 없음. 원문이 담긴 열은 참모 모듈 안에서만 읽고, 로그와 감사 기록에는 남기지 않음.
모델 호출, 판정 API, 파일 입출력에 한정한 외부 연계
모델은 서버에 설치한 CLI 프로세스로 호출하고, 문서 파일은 서버에서 직접 읽고 생성함. 개발 중인 판정 API(FR-19)는 외부 판정 서비스를 HTTPS로 호출하며, 그 밖에 다른 서버로 직접 보내는 요청은 없음.
모델 호출 · Claude CLI
- 모델
Claude Sonnet 5를 생각 분량 low로 호출함. 답이 검사에 걸려 다시 호출할 때만 한 단계 올림.
- 격리
빈 임시 폴더에서 도구 없이 호출하고, 허용한 환경 변수만 전달함.
- 결과
JSON 하나를 받아 서버에서 스키마로 다시 검사함. 제한 시간을 넘기면 프로세스를 종료함.
받는 파일
- 읽는 방법
외부 파서 없이 서버에서 직접 텍스트를 추출함. 파일은 로그인 후 조각으로 나눠 올림.
- 읽지 않는 것
구형 한글·오피스 파일, 그림, 압축 파일, 글자가 없는 스캔 PDF는 받지 않고 그 까닭을 안내함.
내보내는 파일
- PDF
화면 미리보기와 같은 내용을 서버의 헤드리스 크로미움으로 인쇄해 PDF를 생성함. 문서에서 외부로 나가는 요청은 차단함.
- 한글(HWPX)
한컴오피스 한글 2022로 저장한 빈 문서에서 떼어 낸 틀을 사용함. 서버에 한글 프로그램이 필요 없음.
- 대상
문서 5종은 PDF와 한글 파일로, 업무현황의 현황 브리핑은 한글 파일로만 내보냄.
군 업무 시스템·전자결재, 메일·문자·푸시 알림, 외부 저장소와는 연계하지 않음. 참모 코드가 용사 PoC의 상담·인터뷰·리포트 원문 모듈을 불러오면 시험에서 검출됨.
서버 판정 중심의 인수 시험
참모 시험은 tests/에만 둠. 서버의 검사 규칙은 함수 단위로, 권한·저장·여정은 실제 서버를 띄워 HTTP로 시험함. AI 호출은 미리 작성한 응답 파일로 대체함. 따라서 시험은 서버가 받거나 버리는 항목을 확인하며, 모델의 문장 품질은 확인 대상이 아님.
00~33번 파일 34개 중 30번은 이 문서 검사용이고, 나머지 33개 파일에 시험 328건이 있음. 용사 PoC의 수락 시험 22개는 이 문서의 인수 기준에서 제외함.
- 격리·설정·백업
00·01·02·26·31끄면 흔적 없음, 켜도 PoC 그대로, 참모 DB 백업 - AI 실행과 근거
03·04·05·06·19실행기 격리, 자료 읽기, 인용 대조 - 대화
07·13·27·28·29·32·33인용 없는 값 거절, 중복 저장 없음, 목록 200건, 브리프 10칸 - 도구
08·09·10·11·12·14방책·보고서·조치 계획·문서·결심 - 간부와 업무 공간
15·16·18·20·23가입, 기준정보, 초대, 파일 올리기 - 현장
17·22·25현장 보고, 조치 카드, 마침 표시 - 화면과 이 문서
21·24·30여정, 셸이 찾는 창, 이 문서
여정 시험 21-journey · 수락 시험(C-14)
- 가입신청, 운영자 승인, 비밀번호, 첫 인증
- 기준정보·자료실칸 입력, 지휘 중점 문서 등록
- 대화말로 열기, 자료 파일 넣기, 두 턴
- 도구방책·판단 보고서·조치 계획·지휘서신
- 결심과 결과이어 말하기, 결심, 결과 입력
- 현황 브리핑업무현황의 ‘결과 적음’, 현황 브리핑
건양대 기능시험의 시험성적서 항목(성능·기능·보안)별 요구사항 번호는 4.0절 표 참조.
요구사항별 화면과 시험
| 번호 | 화면 | 시험(tests/command/, .test.mjs 생략) |
|---|---|---|
| FR-01 | signup.html | 15-officer-baseline · 21-journey |
| FR-02 | signups.html | 15-officer-baseline · 26-mfa-off |
| FR-03 | login.html | 26-mfa-off · 24-shell-dialogs |
| FR-04 | start.html | 15-officer-baseline |
| FR-05 | members.html | 18-members |
| FR-06 | baseline.html | 15-officer-baseline · 16-baseline-draft |
| FR-07 | library.html | 05-extract · 15-officer-baseline |
| FR-08 | desk.html | 27-answer-suggest · 29-turn-key-retry |
| FR-09 | desk.html | 06-evidence · 07-interview · 33-brief-v2 |
| FR-10 | desk.html | 27-answer-suggest |
| FR-11 | coa.html | 08-coa |
| FR-12 | plan.html | 11-plan · 25-action-marks |
| FR-13 | documents.html | 09-judgment |
| FR-14 | documents.html | 12-derived · 33-brief-v2 |
| 번호 | 화면 | 시험(tests/command/, .test.mjs 생략) |
|---|---|---|
| FR-15 | decisions.html | 14-decisions |
| FR-16 | home.html | 15-officer-baseline · 21-journey |
| FR-17 | cases.html | 17-field-report · 32-case-list-limit |
| FR-18 | field.html | 17-field-report · 22-field-actions |
| FR-19 | desk.html | 개발 중(평가셋 기반 시험) |
| NFR-01 | 모든 화면 | 18-members · 14-decisions |
| NFR-02 | 공통 | 07-interview · 18-members |
| NFR-03 | documents.html | 02-boundaries · 12-derived |
| NFR-04 | desk.html | 06-evidence · 08-coa |
| NFR-05 | desk.html | 27-answer-suggest · 08-coa |
| NFR-06 | desk.html | 03-cli-runner · 29-turn-key-retry |
| NFR-07 | 공통 | 01-wiring · 31-command-backup |
| NFR-08 | 모든 화면 | 자동 시험 없음 |
| NFR-09 | 공통 | 00-config · 26-mfa-off |
미결 사항
미결 사항 여섯 가지를 영향이 큰 순서로 정리함.
| 사항 | 현황과 영향 | 해결 방안 |
|---|---|---|
| 루만 의미 차원 판정 | 판정 항목·라벨 지침·평가셋이 확정되지 않아 FR-19는 개발 중임. 항목별 합격선(F1·보정 오차)도 정하지 않음. | 루마닉이 판정 항목과 라벨 지침을 확정하고, 전문가 이중 라벨 평가셋으로 검증한 뒤 반영. 합격선은 발주사·건양대와 합의해 FR-19-4에 반영 |
| 외부 판정 API | 한국어 성능 공개 수치가 없음. 이용 약관은 출력물로 유사 모델을 학습하는 일을 금지함. 데이터 보관·학습 이용 조건은 확인 전임. | 한국어 평가셋으로 성능을 확인하고 데이터 처리 조건을 검토한 뒤 사용. 받은 판정은 자체 모델 학습에 쓰지 않음 |
| 프롬프트·콘텐츠 초안 | 프롬프트 여섯 개는 초안(draft-v1)이며 승인 절차가 아직 없음. 방책 기준·개입 방식·파생 문서 규칙도 기능시험용 임시본(버전 0)임. | 발주사와 부대가 내용과 승인 절차를 정하면 버전을 올려 반영 |
| 브리프 기준 확인 | 브리프 10칸과 루마닉 세 물음의 대응은 개발 과정의 해석이며, 루마닉 이론 검토를 거치지 않음. 교리 근거는 미 육군 교범(FM 5-0)이며, 한국 육군 교범과는 대조하지 못함. | 루마닉이 칸 목록과 대응을 확인하고, 건양대·발주사가 한국 육군 교범의 임무분석 항목과 대조 |
| 성능 시험 기준 | 응답 시간은 2026-09-28에 대화 프롬프트로 측정한 값(5.6~12.9초)만 있고 합격선은 없음. 동시 사용 기준도 정하지 않아 시험성적서 성능 항목의 합격 기준이 아직 없음. | 응답 시간과 동시 사용 기준을 건양대와 합의해 NFR-06과 4.0절에 반영 |
| 미사용 표 | 작업 표 두 개(command_jobs·command_job_events)는 스키마에만 있고 읽고 쓰는 코드가 없음. | 용도를 정하거나 새 마이그레이션으로 삭제 |
변경 이력
문서 버전
| 버전 | 날짜 | 내용 |
|---|---|---|
| 1.0 | 2026-09-29 | 최초 작성. 작성일 당시의 코드와 시험 기준 |
| 1.1 | 2026-09-30 | 발주사 검토 반영(용어, F/S/T 쪽, 시험성적서 대응, 문장 다듬기) |
| 1.2 | 2026-09-30 | 브리프 기준을 11칸에서 10칸으로 변경(2.5~2.8절). 모른다고 답한 칸과 부대원 문서에서 가릴 사람 반영 |
| 1.3 | 2026-10-01 | 문체를 요구사항정의서 격식으로 수정(본문 한다체, 목록·표 쪽 제목은 명사구). 5.2절 스키마 버전 정정 |
| 1.4 | 2026-10-01 | 문체를 개조식 격식으로 수정(쪽 제목 명사구, 본문 ‘~함·~임’, 수용 기준 ‘~해야 함’) |
| 1.5 | 2026-10-01 | FR-19(루만 의미 차원 판정)를 이번 PoC 범위로 명시 |
| 1.6 | 2026-10-01 | 2.11·2.12절과 FR-19 처리 예시 추가 |
| 1.7 | 2026-10-01 | 판정을 외부 판정 API로 수행하도록 명시(1.4·2.5·2.10·2.11·5.3·5.6절, FR-19) |
내용 변경 시 버전을 올리고 이 표에 한 줄을 추가함.
서비스 주요 결정
| 날짜 | 변경 내용 |
|---|---|
| 2026-09-16 | 참모 모듈 착수. 용사 PoC와 분리한 뼈대, CLI 실행기와 프롬프트 잠금, 자료 읽기와 인용 대조, 대화 엔진, 방책 비교, 판단 보고서 |
| 2026-09-17 | 조치 계획(개입 방식은 규칙으로 추린 뒤 지휘관이 선택)과 파생 문서 세 가지. 참모를 같은 도메인의 / 아래에 배치 |
| 2026-09-18 | 첫 말로 대화를 여는 방식, 결심 기록과 선례 |
| 2026-09-27 | 간부마다 업무 공간을 두는 구조로 재편. 기준정보·자료실, 자가 가입과 운영자 승인, 초대·나가기, 현장 보고와 조치 카드, 한글 파일 내보내기, 현황 브리핑, 여정 시험. 도메인 첫 화면을 참모로 변경 |
| 2026-09-28 | 모델을 Claude Sonnet 5(생각 분량 low)로, 제안 단추를 ‘넣기·넣지 않기’로, 화면의 ‘일’을 ‘대화’로 변경. 대화를 중심에 두고 도구를 꺼내 쓰는 구조로 재편. 참모가 먼저 답한 뒤 질문하는 방식과 도구 추천 |
| 2026-09-29 | 화면 점검에서 남은 항목 마무리, 제작설명서, 이 문서 버전 1.0. 참모 DB를 일일 백업에 포함, 대화 목록 최대 200건, 재확인 안내 정정 |
| 2026-09-30 | 브리프를 이론 근거가 있는 10칸(사실 4·사회 2·시간 4)으로 변경. 모른다고 답한 칸은 다시 묻지 않고, 부대원 문서 생성 때마다 가릴 사람 확인 |
| 2026-10-01 | 다중 항목 확률 판정 기술을 기반으로 루만 의미 차원 판정을 이번 PoC에서 구현하기로 함. 판정은 이 기술을 제공하는 외부 API로 수행 |
표의 날짜는 저장소 커밋 기록과 개발 지침을 근거로 함.