🏷️ [RM-COBOL] 성적 계산 실습으로 배우는 디비전/섹션과 PIC 변수 선언법
과거 90년대 공부했던 RM-COBOL의 뼈대와 규칙을 바탕으로, 실제 국어·영어·수학 점수의 총점과 평균을 구하는 실전 프로그램을 한 줄씩 채워나가며 분석해 본다.
🟦 1. 프로그램 신분증과 환경 설정 (IDENTIFICATION & ENVIRONMENT)
가장 상위 개념인 DIVISION과 SECTION은 굵은 글씨와 대문자로 선언하며, 반드시 A영역(8번째 칸)에서 시작해야 한다.
cobol
12345678901234567890123456789012345678901234567890123456789012345678901234567890
IDENTIFICATION DIVISION.
* =================================================================
* [필수 디비전] 프로그램의 신분증 역할을 하는 최상위 디비전임 (8칸 시작)
* =================================================================
PROGRAM-ID. SCORE-CALC.
ENVIRONMENT DIVISION.
* =================================================================
* [하드웨어 환경 정의] 컴퓨터 시스템 환경을 연결하는 디비전임 (8칸 시작)
* =================================================================
CONFIGURATION SECTION.
🟪 2. 메모리 변수 준비와 자릿수 설계 (DATA DIVISION)
프로그램 내에서 사용할 데이터를 선언하는 구역임. 최상위 묶음 변수 01은 A영역(8칸)에, 하위 변수 05와 데이터 포맷인 PIC 구문은 B영역(12칸)에 배치하여 들여쓰기 계층 구조를 만든다.
여기서 숫자형 변수 선언 방식인 나열식(999)과 괄호 지정식(9(03))을 함께 비교 분석함.
cobol code
12345678901234567890123456789012345678901234567890123456789012345678901234567890
DATA DIVISION.
WORKING-STORAGE SECTION.
* =================================================================
* [독립 저장소] 변수 대장 격인 '01' 레벨은 반드시 8번째 칸(Area A) 시작임
* =================================================================
01 SCORE-RECORDS.
* -------------------------------------------------------------
* [방법 1] 자릿수만큼 직접 나열하는 방식 (PIC 999) - B영역 시작
* -------------------------------------------------------------
05 KOR-SCORE PIC 999 VALUE 090.
* -> 숫자 9를 세 개 직접 나열하여 3자리 정수 공간을 확보함.
* -------------------------------------------------------------
* [방법 2] 괄호 안에 개수를 지정하는 방식 (PIC 9(03)) - B영역 시작
* -------------------------------------------------------------
05 ENG-SCORE PIC 9(03) VALUE 085.
* -> 괄호를 사용해 자릿수를 압축 표현함. PIC 999와 완벽히 같은 의미임.
05 MAT-SCORE PIC 9(03) VALUE 095.
* -------------------------------------------------------------
* [실무 적용] 합계와 평균을 위한 특수 변수 선언
* -------------------------------------------------------------
05 TOTAL-SUM PIC 9(04) VALUE ZERO.
* -> 3자리 숫자 3개를 더하면 자릿수 넘침(Overflow)이 발생하므로 4자리 확보.
05 AVG-RESULT PIC 9(03)V99 VALUE ZERO.
* -> 기호 'V'는 가상 소수점을 의미함. 정수 3자리, 소수점 이하 2자리를 뜻함.
코드를 사용할 때는 주의가 필요합니다.
🟩 3. 비즈니스 로직 및 연산 실행 (PROCEDURE DIVISION)
실제 덧셈과 나눗셈을 수행하고 화면에 출력하는 영역임. 섹션과 문단(Paragraph) 이정표는 A영역(8칸)에 적고, 실질적으로 일하는 명령어(COMPUTE, DISPLAY 등)는 무조건 B영역(12칸)에서 연산 처리를 해야 한다.
cobol code
12345678901234567890123456789012345678901234567890123456789012345678901234567890
PROCEDURE DIVISION.
MAIN-LOGIC SECTION.
* =================================================================
* [문단 정의] 로직의 이정표 역할을 하는 구역 이름은 8번째 칸에서 시작함
* =================================================================
A000-START.
* -------------------------------------------------------------
* [수식 계산 명령] 사칙연산 기호를 쓰는 COMPUTE 구문은 12번째 칸 시작임
* -------------------------------------------------------------
COMPUTE TOTAL-SUM = KOR-SCORE + ENG-SCORE + MAT-SCORE.
COMPUTE AVG-RESULT = TOTAL-SUM / 3.
* -------------------------------------------------------------
* [화면 출력 및 종료] 화면 표출과 제어 명령어 역시 12번째 칸 엄수
* -------------------------------------------------------------
DISPLAY "--- SCORE REPORT ---".
DISPLAY "TOTAL SUM: " TOTAL-SUM.
DISPLAY "AVERAGE : " AVG-RESULT.
STOP RUN.
코드를 사용할 때는 주의가 필요합니다.
📌 3편 핵심 요약 가이드
- DIVISION / SECTION / 문단명 (Area A - 8칸 굵은 뼈대)
- 프로그램의 구역과 이정표를 세우는 대장들이므로 무조건 왼쪽 8번째 칸 정렬임.
- 실행 명령어 / 하위 변수 (Area B - 12칸 세부 항목)
- COMPUTE, DISPLAY, 05 레벨 변수 등은 대장들의 통제를 받는 부하들이므로 12번째 칸 들여쓰기가 기본임.
- PIC 999 vs PIC 9(03)
- 짧은 자릿수는 직관적인 999를 써도 무방함.
- 자릿수가 길어지는 실무 환경에서는 오타 방지와 자릿수 파악을 위해 괄호 지정식(9(03))이 표준으로 권장됨.
'프로그래밍 > RM-COBOL' 카테고리의 다른 글
| [COBOL 기초] 반복문(PERFORM UNTIL)으로 대량 데이터 처리하는 COBOL code 작성법 (0) | 2026.06.22 |
|---|---|
| [COBOL 기초] 조건문(IF ~ END-IF)으로 합격/불합격 판별하는 COBOL code 작성법 (0) | 2026.06.22 |
| [COBOL 기초] 소수점 편집 마스크(PIC Z, .)와 COBOL code 변환 출력법 (0) | 2026.06.22 |
| [COBOL 기초] 코볼 디비전과 섹션 쪼개기: 1~80칸 칼럼 작성 사례 총정리 (0) | 2026.06.22 |
| [COBOL 기초] 프로그램 코드로 쉽게 이해하는 코볼(COBOL)의 구조와 칼럼 규칙 (0) | 2026.06.22 |