테마
코드 설계와 N-S 차트
여기서 말하는 코드(code)는 프로그램 소스가 아니라 자료에 붙이는 번호·기호 체계다. 상품 번호, 부서 번호, 도서 분류 번호가 모두 코드다. 규칙 없이 번호를 붙이면 나중에 분류·검색·확장이 어려우므로 설계 단계에서 체계를 정한다. 시험은 코드 예시를 주고 어떤 종류인지 쓰게 한다. 뒤에서는 절차를 도형으로 그리는 N-S 차트(Nassi-Shneiderman chart)의 특징도 함께 본다.
코드 설계가 필요한 이유
잘 만든 코드는 자료를 구별(식별)하고, 같은 성격끼리 묶고(분류), 정렬하기 쉽게(배열) 해 준다. 또 긴 이름 대신 짧은 기호로 쓰게 해서 입력 실수를 줄인다. 그래서 코드를 고를 때는 "앞으로 항목이 늘어도 번호가 모자라지 않는가", "사람이 보고 뜻을 짐작할 수 있는가"를 따진다.
코드의 종류
이 일곱 가지는 국내 시험에서 쓰는 분류다. 아래 예시는 모두 설명을 위해 새로 만든 것이다.
| 코드 | 방법 | 예 |
|---|---|---|
| 순차 코드(sequence code) | 발생 순서·크기 순서대로 일련번호 | 1, 2, 3, … |
| 블록 코드(block code) | 공통성 있는 것끼리 블록으로 나누고 블록 안에서 일련번호 | 100~199: 과일, 200~299: 채소 |
| 10진 코드(decimal code) | 0~9로 10진 분할을 반복 | 500 과학, 510 수학, 512 대수 |
| 그룹 분류 코드(group classification code) | 대·중·소분류로 나누고 각 그룹 안에서 일련번호 | 2-03-015: 서울-강남-15번 매장 |
| 연상 코드(mnemonic code) | 명칭·약호와 관련된 문자·숫자로 뜻을 떠올리게 함 | BK-XL: 검정 XL 셔츠 |
| 표의 숫자 코드(significant digit code) | 길이·무게 같은 물리 수치를 그대로 코드에 사용 | 050-3000: 지름 50mm·길이 3000mm 배관 |
| 합성 코드(combined code) | 두 종류 이상의 코드를 조합 | SEL-0042: 서울 지점의 42번째 계약 |
순차 코드는 순서 코드·일련번호 코드, 블록 코드는 구분 코드, 10진 코드는 도서 분류식 코드, 표의 숫자 코드는 유효 숫자 코드라고도 한다. 10진 코드의 대표 예가 듀이 십진분류법(Dewey Decimal Classification)이다. 합성 코드 예의 SEL은 지역을 떠올리게 하는 연상 코드이고, 0042는 차례로 붙인 순차 코드다.
가장 헷갈리는 것은 연상 코드와 표의 숫자 코드다. MON-27(27인치 모니터)처럼 숫자가 섞여 있어도 약호와 함께 대상을 떠올리게 하는 것이 목적이면 연상 코드다. 반면 코드 전체가 지름·길이 같은 측정값을 그대로 적은 것이라면 표의 숫자 코드다. 블록 코드와 그룹 분류 코드는 둘 다 묶어서 번호를 매기지만, 블록 코드는 한 단계의 번호 구간으로, 그룹 분류 코드는 대·중·소처럼 여러 단계로 나눈다는 점이 다르다.
N-S 차트
N-S 차트는 나시(Isaac Nassi)와 슈나이더만(Ben Shneiderman)이 1972년에 발표한 구조적 순서도다. 화살표로 흐름을 잇는 일반 순서도와 달리, 사각형 상자 안에 상자를 넣는 방식으로 처리 논리를 그린다. 화살표가 없으니 제멋대로 건너뛰는 흐름을 그릴 수 없다.
- 구조적 프로그래밍(structured programming)의 순차·선택(다중 선택 포함)·반복 구조만으로 표현한다.
- GOTO나 화살표를 쓰지 않는다.
- 처리 논리를 그리는 데 집중한다. 조건이 여러 겹 겹쳐도 상자가 칸으로 나뉘어 어느 조건에서 무엇을 하는지 바로 보인다.
- 상자를 위에서 아래로 쪼개 들어가므로 하향식 설계와 잘 맞는다. 대신 그리기 번거롭고 수정할 때 상자 전체를 다시 그려야 한다.
시험 포인트
- "공통성 있는 것끼리 블록으로 구분, 블록 안에서 일련번호" → 블록 코드.
- "0~9로 10진 분할 반복, 도서 분류식" → 10진 코드. "대·중·소분류" → 그룹 분류 코드.
- "명칭·약호와 관련된 문자·숫자" → 연상 코드. "물리적 수치를 그대로" → 표의 숫자 코드.
- "일련번호" → 순차 코드. "2개 이상 조합" → 합성 코드.
- N-S 차트: 순차·선택·반복, GOTO·화살표 없음, 박스 도형으로 논리 표현.
