본문으로 건너뛰기

DSMConsole.ini 설정 레퍼런스

이 문서는 DSMConsole.ini에서 설정할 수 있는 항목과 동작을 정리한 자료다.

파일 위치와 적용 방식

  • 기본 위치: GetModulePath() + "DSMConsole.ini", 즉 DSMConsole.exe와 같은 디렉터리
  • 쓰기 항목: [INIT]USERID, ADDRESS, PORT만 콘솔 종료/프로필 저장 시 갱신된다.
  • 나머지 항목은 읽기 전용이다.
  • 문자열 비교는 별도 언급이 없으면 대소문자를 구분한다.

빠른 예시

[INIT]
LANG=KOR
TIMEOUT=60
RECVTIMEOUT=120
ADDRESS=127.0.0.1
USERID=document
PORT=62004
CONNECTION=SSL
TEXTBUTTON=NO
BUTTONSIZE=16
CORPLOGO=YES
PASSWDHASH=HASH

; 세미콜론으로 구분한 허용 접두어
CUSTOMID_FILTER_PREFIX=CUSTOM_;IPDS_
ADDINID_FILTER_PREFIX=ADDIN_;SWORK_

; 값의 첫 글자가 1일 때 활성화
SWORK_SEMI_FREE_ENABLE=1
SWORK_NORMAL_ENABLE=1
SWORK_MAXEON_ENABLE=1
SWORK_HIDE_HOOK_MODULE=0
SWORK_HIDE_COND_MODULE=0
SWORK_HIDE_DETECT_POLICY=0
SWORK_HIDE_EXCEPT_POLICY=0
SWORK_HIDE_HOOK_EXT_MSG=0
SWORK_HIDE_HOOK_FORMAT_VIEW=0

MAX_DEC_COUNT_DAY=9999
MAX_DEC_COUNT_PER=9999
MARKING_EX_SPAN=30
LOGINIPCOUNT=1
NTSIP=127.0.0.1
NTSPORT=62000

[PWD]
ENABLE=NO

[RES]
RES_STRING=0
WRITE_FILE_NAME=ConsoleResource.ini

[ORG_EXECUTE0]
TITLE=도구 실행
EXE=C:\Tools\Tool.exe
PARAM=

예시는 형식 설명용이다. 서버 주소, 포트, 정책 접두어, 실행 파일은 운영 환경에 맞게 지정해야 한다.

[INIT] 기본 동작

값/형식키가 없을 때동작접근
LANGENG, JPN, 그 외한국어ENG는 영문, JPN은 일본어 리소스를 로드한다. 그 외 값과 빈 값은 한국어(KOR)로 처리한다.읽기
TIMEOUT정수(초)60통신 제한 시간을 설정한다. 별도 범위 제한은 없다.읽기
RECVTIMEOUT정수(초)120값이 양수면 최대 300초로 제한하여 수신 제한 시간을 설정한다. 0 이하는 기존 값을 변경하지 않는다.읽기
ADDRESS서버 IP/호스트 문자열빈 문자열기존 로그인 주소와 다르고 값이 127.0.0.1이 아닐 때 INI의 서버 주소로 덮어쓴다. 이 조건이 성립하면 USERID, PORT도 함께 읽는다.읽기/쓰기
USERID관리자 ID 문자열빈 문자열ADDRESS가 위 덮어쓰기 조건을 만족할 때 관리자 ID로 사용한다. 저장 시 현재 관리자 ID를 기록한다.읽기/쓰기
PORT정수기존 설정값 유지ADDRESS가 덮어쓰기 조건을 만족하고 키 읽기에 성공했을 때 서버 포트를 변경한다. 저장 시 현재 포트를 기록한다. 일반 기본 포트는 62004다.읽기/쓰기
CONNECTIONSSL 또는 그 외TCP정확히 SSL일 때 SSL, 그 외 값과 빈 값은 TCP를 사용한다.읽기
TEXTBUTTONYES 또는 그 외NO와 동일정확히 YES일 때 툴바를 텍스트 버튼 모드로 설정한다.읽기
BUTTONSIZE정수16시작 시 버튼 크기로 사용한다. 별도 범위 제한은 없다.읽기
CORPLOGOYES 또는 그 외아래 주의 참조정확히 YES일 때 회사 로고를 표시한다.읽기
VERSION문자열빈 문자열표시용 콘솔 버전 문자열로 사용한다.읽기
VERSION_SERVER문자열빈 문자열표시용 서버 버전 문자열로 사용한다.읽기
CONSOLEVERSION문자열빈 문자열내부 콘솔 버전 문자열로 사용한다.읽기
PASSWDHASHPLAIN 또는 그 외해시 사용비밀번호 해시 기능이 활성화된 환경에서 정확히 PLAIN이면 평문 모드, 그 외 값이나 키 없음은 해시 모드다.읽기

로그인 주소 덮어쓰기 주의

ADDRESS의 기본 문자열은 명시적으로 127.0.0.1이 아니라 빈 문자열이다. 키가 없고 레지스트리 주소가 빈 문자열과 다르면 조건상 빈 주소로 덮어쓸 수 있으므로, 로그인 서버를 INI로 관리할 때는 ADDRESS, USERID, PORT를 함께 지정하는 것이 안전하다.

CORPLOGO 누락 시 실효값 주의

CORPLOGO 키가 없으면 TEXTBUTTON 값의 영향을 받아 다음처럼 동작한다.

  • TEXTBUTTON=YES이고 CORPLOGO 없음: 로고 표시
  • 그 외 또는 TEXTBUTTON 없음: 로고 숨김

의도한 상태를 보장하려면 CORPLOGO=YES 또는 CORPLOGO=NO를 명시해야 한다.

[INIT] 정책 및 UI 설정

값/형식키가 없을 때동작
CUSTOMID_FILTER_PREFIX세미콜론(;) 구분 접두어 목록필터 미적용정책 ID가 목록의 접두어 중 하나로 시작하는 사용자 정의 정책만 남긴다. 빈 토큰에서 파싱이 끝난다.
ADDINID_FILTER_PREFIX세미콜론(;) 구분 접두어 목록전체 표시파일명이 목록의 접두어 중 하나로 시작하는 이벤트 핸들러/애드인만 남긴다.
SWORK_SEMI_FREE_ENABLE첫 글자 1비활성프로세스 추가 화면에서 Semi-Free 프로세스 유형을 표시한다.
SWORK_NORMAL_ENABLE첫 글자 1비활성프로세스 추가 화면에서 일반 프로세스 유형을 표시한다.
SWORK_MAXEON_ENABLE첫 글자 1비활성프로세스 추가 화면에서 MAXEON 프로세스 유형을 표시한다.
SWORK_HIDE_HOOK_MODULE첫 글자 1이면 숨김편집 UI는 표시프로세스 추가 화면의 Hook 모듈 영역을 숨기고 창을 축소한다. 프로그램 상세 트리에서는 키가 존재하면서 값이 1이 아닐 때만 Hook 노드를 표시한다.
SWORK_HIDE_COND_MODULE첫 글자 1이면 편집 UI 숨김편집 UI는 표시제어 조건의 포함 모듈 입력 컨트롤과 안내 문구를 숨긴다. 다만 상세 트리 코드는 값이 1일 때 포함 모듈 정보를 추가하므로 이름과 반대되는 표시 동작이 함께 존재한다.
SWORK_HIDE_DETECT_POLICY첫 글자 1이면 숨김상세 트리 노드 미생성키가 존재하면서 값이 1이 아닐 때만 변경 탐지 정책 노드를 표시한다.
SWORK_HIDE_EXCEPT_POLICY첫 글자 1이면 숨김상세 트리 노드 미생성키가 존재하면서 값이 1이 아닐 때만 예외 정책 노드를 표시한다.
SWORK_HIDE_HOOK_EXT_MSG첫 글자 1이면 숨김표시확장자 설정 화면의 메시지 표시 체크박스를 숨긴다.
SWORK_HIDE_HOOK_FORMAT_VIEW첫 글자 1이면 숨김표시확장자 설정 화면의 포맷 보기 버튼을 숨긴다.
MAX_DEC_COUNT_DAY정수9999일별 복호화 제한 입력 컨트롤의 최댓값으로 사용한다. 최솟값은 0이다.
MAX_DEC_COUNT_PER정수99991회/개별 복호화 제한 입력 컨트롤의 최댓값으로 사용한다. 최솟값은 0이다.
MARKING_EX_SPAN정수(일)30마킹 예외 기간을 켤 때 종료일을 현재 날짜에서 지정 일수 뒤로 초기화한다.
LOGINIPCOUNT정수1관리자 허용 IP 목록에 추가할 수 있는 최대 개수다. 현재 목록 크기가 값 이상이면 추가 동작을 중단한다.
NTSIPIP/호스트 문자열빈 문자열실시간 정책 적용 시 NTS 소켓 연결 대상 주소다.
NTSPORT정수-1실시간 정책 적용 시 NTS 소켓 연결 대상 포트다.

SWORK 상세 트리 키의 누락과 0 차이

SWORK_HIDE_HOOK_MODULE, SWORK_HIDE_DETECT_POLICY, SWORK_HIDE_EXCEPT_POLICY의 상세 트리 코드는 GetPrivateProfileString()이 성공한 블록 안에서만 노드를 만든다. 따라서 다음 차이가 있다.

  • 키 없음: 해당 상세 트리 노드를 만들지 않음
  • 1: 해당 상세 트리 노드를 만들지 않음
  • 0 또는 첫 글자가 1이 아닌 값: 해당 상세 트리 노드를 표시

노드를 표시하려면 키를 생략하지 말고 0으로 명시해야 한다.

[PWD]

값/형식키가 없을 때동작
ENABLEYES 또는 그 외비활성CSO에서 비밀번호 초기화 버튼 표시가 허용된 경우, 정확히 YES일 때 사용자 비밀번호 입력 컨트롤의 비활성 상태를 해제한다.

[KEY]

값/형식키가 없을 때동작
DSHEAD정확히 16자의 문자열서버 프로필의 DDT_DSHEADERKEY 사용감사 추적 파일 처리용 서버 DS 헤더 키를 덮어쓴다. INI 값도 최종 길이가 정확히 16자일 때만 적용한다.

DSHEAD는 암호화 파일 처리에 영향을 주는 민감한 키다. 잘못된 값은 복호화 실패를 일으킬 수 있으며, 문서나 형상 관리에 운영 키를 기록하지 않아야 한다.

[RES] 리소스 추출/적용

RES_STRINGCCsPropertyPage, CSiteDialog, SCInfoView 초기화 시 공통으로 평가된다.

값/형식기본값동작
RES_STRING0, 1, 200: 아무 작업도 하지 않음. 1: 현재 창의 컨트롤 문자열을 파일로 추출. 2: 파일의 문자열을 현재 창 컨트롤에 적용.
WRITE_FILE_NAME파일명 또는 경로 문자열빈 문자열RES_STRING=1에서 추출 파일 경로를 모듈 경로 기준으로 설정한다. 빈 값이면 언어 관리자에 초기화된 기본 경로가 유지된다. 파일이 없으면 UTF-16 BOM 파일을 만든다.

[ORG_EXECUTE0] ~ [ORG_EXECUTE5]

조직/그룹 트리의 컨텍스트 메뉴에 외부 프로그램을 최대 6개 등록한다. 인덱스 범위는 0부터 5까지다.

필수동작
TITLE메뉴에 표시할 제목이다. 빈 값이면 해당 항목을 건너뛴다.
EXE실행 파일 경로다. 빈 값이거나 파일이 실제로 존재하지 않으면 해당 항목을 건너뛴다.
PARAM아니요실행 프로그램에 전달할 매개변수 문자열이다. 빈 값도 허용된다.

유효한 첫 항목을 찾으면 상위 실행 메뉴를 만들고, 각 항목을 ID_POPUP_MEMBER_EXECUTE_PROGRAM + 인덱스 명령으로 추가한다 (DSOrgGroupView_GroupTreePartial.cpp:1100-1111).

소스에서 제외한 항목

다음은 이름 때문에 DSMConsole.ini 설정으로 오해하기 쉽지만 실제 저장 위치가 다르다.

항목실제 저장소
[LOGIN]USERID, ADDRESS, PORT, TIME, 동적 관리자 키SetRegistryKey("DSConsole3xU")가 지정한 Windows 레지스트리. 단, USERID/ADDRESS/PORT는 별도로 [INIT]에도 저장된다.
[SIZE] 창 위치/상태Windows 레지스트리
[CONNECTION] DB ID, PW, DSWindows 레지스트리
[AKSSERVER]IP, PORTWindows 레지스트리
DSMailAuth.ini[MAIL_AUTH]별도 파일 DSMailAuth.ini
console.cso, console.csm 옵션별도 CSO/CSM 파일

DSSerial/SerialFunc.cppDSMConsole.ini 복사 참조 두 곳은 모두 주석 처리되어 현재 실행 코드에는 포함되지 않는다.

변경 시 점검 사항

  1. YES, PLAIN, SSL, ENG, JPN은 소스의 정확한 문자열과 대소문자를 맞춘다.
  2. SWORK_* 플래그는 문자열의 첫 글자만 1인지 검사한다.
  3. 필터 접두어 목록은 ;로 구분하고 목록 중간에 빈 토큰을 넣지 않는다.
  4. ADDRESS, USERID, PORT는 로그인 시 서로 연동되므로 함께 설정한다.
  5. CORPLOGO와 상세 트리 표시 플래그는 키 누락의 동작이 직관적이지 않으므로 값을 명시한다.
  6. DSHEAD 같은 비밀값과 실제 DB/관리자 자격 증명은 형상 관리에 커밋하지 않는다.