프로젝트 목록 및 명세서는 화면 설계가 끝나면 작성하는 산출물입니다. 프로그램 목록은 프로그램ID, 프로그램 명 등을 작성하며, 프로그램 명세서는 프로그램 목록에 정의된 프로그램 명에 맞게 개요 및 처리 로직을 작성합니다. 가끔 기능명세서와 프로그램명세서를 혼동하는 분들이 있어 차이점과 프로그램 목록과 프로그램명세서의 작성법에 대해 알아보도록 하겠습니다.
화면 설계서의 화면ID와 프로그램 ID를 매핑하여 프로그램 목록을 정리합니다. 프로그램 목록은 프로그램ID, 프로그램 명, 프로그램설명, 관련 테이블을 정리하여 작성합니다. 프로그램 목록은 화면설계서와 인터페이스설계서 등을 보고 추가하거나 삭제할 수 있습니다.
프로그램 명세서는 프로그램 목록에 따라 프로그램 명세서를 작성합니다. 프로그램 명세서는 개발자가 프로그램 ID, 프로그램 명, 개요, 처리로직 등을 작성합니다. 이 부분은 개발이 어느 정도 끝나면 주로 작성을 하니, 설계 단계에서 산출물이 나오지 않는다고 걱정하거나 재촉할 필요가 없습니다. 어느 정도 개발이 마무리 되면, 정리하는 문서입니다.
아래는 위의 프로그램에서 정의된 로그인1, 2, 3경우와 전사포털 처리로직에 대해 설명한 예시입니다.
포털 로그인 시 아이디와 패스워드 기반으로 로그인을 하고, PKI 인증서 기반으로 인증 로그인을 표현하고 있습니다.
프로그램 ID | PG-PT-001 |
프로그램 명 | 로그인 |
개요 | 인증서 기반으로 인증 로그인 |
처리 로직 | 1) 포털 로그인을 위해 전사포털을 통해 인증서 로그인을 클릭하면 인증서 입력(전자서명) 팝업 화면이 뜨고, 인증서와 인증서암호를 입력함으로써 로그인이 된다. |
2) 관련 테이블 및 입출력 데이터 | |
해당사항 없음 | |
3) 프로그램 | |
PKI 인증 프로그램 호출 후 결과값 리턴 |
포털 로그인 시 아이디와 패스워드 기반으로 로그인을 하고, OTP 인증 기반으로 인증 로그인을 표현하고 있습니다.
프로그램 ID | PG-PT-002 |
프로그램 명 | 로그인(ID/OTP) |
개요 | ID/OTP 기반으로 인증 로그인 화면 |
처리 로직 | 1) 포털 로그인을 위해 전사포털을 통해 인증서 로그인을 하고, ID/OTP 인증 로그인을 클릭하면 아이디, 비밀번호, OTP 인증번호 입력함으로써 로그인이 된다. |
2) 관련 테이블 및 입출력 데이터 | |
해당사항 없음 | |
3) 프로그램 | |
OTP 인증 프로그램 호출 후 결과값 리턴 |
포털 로그인 시 아이디와 패스워드 기반으로 로그인을 하고, SMS 인증 기반으로 인증 로그인을 표현하고 있습니다.
프로그램 ID | PG-PT-003 |
프로그램 명 | 로그인(ID/SMS) |
개요 | ID/SMS 기반으로 인증 로그인 화면 |
처리 로직 | 1) 포털 로그인을 위해 전사포털을 통해 인증서 로그인을 클릭하고, ID/SMS 인증 로그인을 클릭하면 아이디, 비밀번호, SMS 인증번호 입력함으로써 로그인이 된다. |
2) 관련 테이블 및 입출력 데이터 | |
해당사항 없음 | |
3) 프로그램 | |
SMS 인증 프로그램 호출 후 결과값 리턴 |
포털 로그인 후 모든 임직원이 접근할 수 있는 전사포털 처리 화면에 대한 처리 로직 설명입니다. 조직도는 인사테이블에서 불러와 처리하는 것을 알 수 있습니다. 또한, 임직원 누구나 볼 수 있는 콘텐츠로 전사포털 화면이 구성 되었음을 알 수 있습니다.
프로그램 ID | PG-PT-004 |
프로그램 명 | 전사포털 |
개요 | 임직원 누구나 접근할 수 있는 화면 |
처리 로직 | 1) 전사포털의 콘텐츠는 임직원 누구나 접근할 수 있는 화면으로 파견, 인턴 등 모든 인력이 볼 수 있는 화면이다. 전사 포털의 조직도는 인사테이블에서 불러와 처리되며, 전사포털 화면은 관리자에 의해 설정되며 사용자는 설정된 화면을 조회할 수 있다. 하단 공통 메뉴는 내가 접근 할 수 있는 콘텐츠에 해당된다. |
2) 관련 테이블 및 입출력 데이터 | |
조직도 : LDAP 조직도 데이터 저장 및 조회용 테이블 | |
3) 프로그램 | |
xxx서버 : xxxxx.sh LDAP조직도 조회 및 csv파일로 저장 | |
그룹웨어서버 : xxxxx.sh LDAP조직도 테이블에 저장 |
다음은 그룹웨어의 재택근무 설정하여 재택 근무 시 재택 기간을 설정할 수 있는 로직을 설명하고 있습니다.
프로그램 ID | PG-GW-001 |
프로그램 명 | 재택근무 설정 |
개요 | 재택 근무 시 재택 기간을 설정 |
처리 로직 | 1) 재택근무 여부, 재택근무 메신저 연동 옵션, 재택근무 기간을 지정한 후 저장 |
2) 메신저 연동을 체크할 경우 메신저에 재택근무로 표시됨 | |
3) 관련 테이블 | |
유저 글로벌: 사용자 정보 테이블 | |
4) 프로그램 | |
위치 : ~/커스텀/재택근무 |
다음은 기록물철 등록 시 행복재단 기록물철을 매핑하는 처리하는 로직입니다.
프로그램 ID | PG-GW-002 |
프로그램 명 | 기록물철 매핑 |
개요 | 기록물철 등록 시 행복재단 기록물철 매핑 |
처리 로직 | 1) 행복재단에서 문서 접수하는 시간이 느려서 만들어진 기능 |
2) 기록물철 등록 시 매핑되는 행복재단 기록물철을 지정 | |
3) 행복재단에서 문서 접수 시 기록물철은 자동 지정된 상태. 행복재단 외 타 부서 문서 접수 시 기록물철 자동 지정되지 않음. | |
4) 기록관 이관 시 행복재단 기록물철 정보도 이관 | |
5) 관련 테이블 | |
결재폴더 : 기록물철 정보 테이블 | |
6) 프로그램 | |
위치 : ~/비지니스/커스텀 |
다음은 메일 작성 시 공문을 첨부 처리하는 로직입니다.
프로그램 ID | PG-GW-003 |
프로그램 명 | 메일 공문 첨부 |
개요 | 메일 작성 시 공문 첨부 기능 |
처리 로직 | 1) 메일 작성 시 공문을 선택하여 첨부하는 기능 |
2) 검색 버튼 클릭 시 기록물 등록대장의 목록을 보여주고 검색하도록 함 | |
3) 결재 문서 선택 시 메일 작성 창 하단에 결재문서 공문 링크 | |
4) 관련 테이블 | |
메시지폴더 : 메일 정보 | |
5) 프로그램 | |
위치 : ~/메일/커스텀 |
다음은 인터페이스에서 문서유통서버에서 유통 조직을 받아 그룹웨어 DB에 저장하는 처리 로직을 설명하고 있습니다.
프로그램 ID | PG-IF-001 |
프로그램 명 | 문서유통 조직 연계 |
개요 | 문서유통서버에서 유통 조직을 받아 그룹웨어 DB에 저장 |
처리 로직 | 1) 문서유통서버의 LDAP 조직도를 내부망 사용자가 직접 호출하지 못하므로 DMZ구간의 서버에서 LDAP조직도를 불러와서 내부 그룹웨어 서버의 TABLE에 저장함. 사용자는 해당 TABLE의 조직도를 조회 할 수 있다. |
2) 관련 테이블 및 입출력 데이터 | |
조직도 : LDAP 조직도 데이터 저장 및 조회용 테이블 | |
3) 프로그램 | |
DMZ서버 : ooo.xx LDAP조직도 조회 및 csv파일로 저장 | |
그룹웨어서버 : ooo.xx LDAP조직도 테이블에 저장 |
다음은 포털에서 인사시스템의 결재 카운트를 받아오는 처리 로직입니다.
프로그램 ID | PG-IF-002 |
프로그램 명 | 인사시스템 결재 카운트 |
개요 | 인사시스템의 결재 카운트 수신 |
처리 로직 | 1) 인사시스템의 API를 호출하여 결재 대기 카운트를 수신 |
2) 호출 URL | |
http://인사시스템/oooCount.xx | |
3) 입력 데이터 | |
사번_코드 : 사번 | |
기타1 : 구분값 | |
4) 출력 데이터 | |
상태값 | |
에러코드 | |
에러설명 | |
결재건수. 없으면 ‘0’ |
다음은 포털에서 포털 로그인 후 타 시스템 연계 시 SSO 처리하는 로직입니다.
프로그램 ID | PG-IF-003 |
프로그램 명 | SSO 연계 |
개요 | 포털 로그인 후 타 시스템 연계 시 SSO처리하여 접근되도록 구현 |
처리 로직 | 1) 포털 로그인 시 SSO서버에 토큰 발급 및 인증 처리 |
2) 관련 테이블 및 입출력 데이터 | |
SSO토근 발급 API 호출하여 “xxxtoken” 쿠키값에 저장 | |
3) 프로그램 | |
프로그램 위치 : ~/xxx/xxdocs/custom/sso | |
프로그램 : 토큰 발급 및 쿠키저장 xxxToken.jsp |
프로그램명세서는 Front-end, Back-end, Interface 관점에서 개발 해야 하는 프로그램을 정의하여, 추후 운영 유지보수나 개선 시 개발자가 보고 파악할 수 있는 중요한 문서입니다. 프로그램 명세서를 보면 소스를 파악할 수 있는 가이드 역할을 하니, 소스 위치나 모듈의 역할 그리고 호출하는 jsp 화면의 위치를 명확히 기술해야 합니다.
기능명세서란 프로그램에서 처리해야 할 기능을 구체적으로 세분하여 그 기능을 정의하고, 입출력 요건과 프로그래밍에 필요한 논리 개념을 정리하는 문서입니다. 대부분의 솔루션의 경우 기능명세서는 가지고 있으며, 커스터마이징된 내용에 대해서만 작성을 합니다.
기능명세서는 개발자가 구현을 할 때 이 기능을 어떻게 구현을 해야 할 때 필요한 문서라고 생각하시면 됩니다. 기능명세서의 형식은 정해진 규칙이 없습니다. 일단 수행사가 작성을 하고, 고객과 협의하면 됩니다.
프로젝트에서 기능명세서는 대분류, 중분류, 세부기능, 상세내용, 관련양식순으로 작성을 하며, 추가적인 항목을 더 넣어서 작성할 수 있습니다. 다음은 인사정보시스템의 기능명세서를 작성한 예시입니다.
다음은 업무관리시스템 기능명세표입니다. 업무관리시스템은 행정기관이 업무처리의 전 과정을 과제관리카드 및 문서관리카드 등을 이용하여 전자적으로 관리하는 시스템으로서, 정부의 행정능률 향상 및 국민 중심의 범정부적 서비스 전달체계를 개선하는 일환으로 정부의 기능을 체계화하기 위해 업무관리카드를 기반으로 하는 업무관리체계가 정착할 수 있도록 행정기관에서 사용할 업무관리시스템으로서 필요한 기능 및 행정정보시스템과 업무관리시스템 간에 원활한 연계가 가능하도록 필요한 기능 등을 정의한 시스템입니다.
다음은 업무관리시스템의 기능명세표로 기능명(대,중,소)과 세부기능하목 그리고 구분(필수, 선택)으로 분류되어 있습니다.
이렇듯 기능명세서는 프로그램 명세서와 달리 분석자가 기능을 구체적으로 세분하여 그 기능을 정의한 문서이고, 프로그램명세서는 화면 설계이후 프로그램 목록을 정의하고 그에 따라 개발자가 프로그램 ID, 프로그램 명, 개요, 처리로직 등을 작성하는 문서입니다.
오늘은 설계 단계 산출물 중 프로그램 목록 및 프로그램 명세서 작성법과 기능명세서와의 차이점에 대해 알아보왔습니다.
프로그램 명세서는 화면설계서의 개발하고자 하는 화면의 비즈니스 로직을 어떻게 처리하는지에 대해 설명한 자료입니다. 프로그램 명세서를 작성하지 않아도 된다고 생각하는 분들도 더러 계시는데, 프로그램명세서를 작성하면서 잘못된 부분도 검토가 되며, 향후 유지보수나 기능개선 을 위한 중요한 문서로 작용을 하기에 구체적이고, 명확하게 작성을 해야한다는 인식을 하시기 바랍니다.
다음편에서는 설계 산출물 중 인터페이스 설계서에 대해 살펴보도록 하겠습니다.
프로젝트에 대해 다른 사항이 궁금하시면 아래 링크를 클릭하세요