Jackson Structured Programming (JSP) — 데이터 구조가 곧 프로그램 구조
Jackson Structured Programming (JSP) — 데이터 구조가 곧 프로그램 구조
1. 요약
JSP (Jackson Structured Programming) 는 1975년 영국 IT 컨설턴트 Michael A. Jackson 이 Principles of Program Design 책에서 발표한 데이터 구조 기반 설계 방법론 이다. "입력 데이터 구조 + 출력 데이터 구조 → 프로그램 구조" 라는 극단적으로 단순한 원리 로 1970~80년대 COBOL 트랜잭션 처리 시대의 표준이 됐다. Yourdon DFD가 데이터 흐름이라면, JSP는 데이터 구조.
2. 배경 (이전 도구의 한계)
1975년 표준 난제 는 트랜잭션 처리 프로그램 설계 였다 — 순차 갱신 레코드 파일을 마스터 파일에 적용하는 배치 작업. 당시 대부분 COBOL 배치 프로그램은 모두 같은 구조 (단일 메인 루프) 였고, 데이터 구조의 다양성을 표현 못 했다. Jackson 의 통찰: 입출력 데이터 구조 자체가 프로그램 구조여야 한다.
3. 핵심 개념·표기법
JSP는 3가지 기본 구조 만 사용한다:
| 구조 | 표기 | 의미 |
|---|---|---|
| Sequence | 박스가 좌→우 | A 다음 B (순차) |
| Selection | 박스 + 동그라미 (○) | A 또는 B (선택) |
| Iteration | 박스 + 별표 (*) | A 반복 (반복) |
핵심 절차:
- 입력 데이터 구조 그리기
- 출력 데이터 구조 그리기
- 두 구조를 대응 시켜 프로그램 구조 도출
- 프로그램에 operations 부여
- 의사코드 변환
4. 언어·OS 매핑 (★ 강의 핵심)
| 시대 | 언어 | JSP 활용 |
|---|---|---|
| 1975~85 | COBOL + 배치 (테이프, 디스크) | ★ 트랜잭션 처리 표준 |
| 1980s | PL/I, Ada | 영국 정부 SW 표준 (SSADM과 함께) |
| 1990s | C, Pascal | 교육 도구로 잔존 |
| 2010s~ | 함수형 프로그래밍 | 재귀 데이터 구조 = JSP (Haskell, Scala) |
특히 영국 시민 청구서·뱅킹 시스템 의 1980년대 표준이었고, 영국 정부 SSADM (Structured Systems Analysis and Design Methodology) 에 통합됐다.
5. 현대까지의 영향
- JSD (Jackson System Development, 1983) — JSP의 시스템 차원 확장
- 함수형 프로그래밍 — 재귀 데이터 구조 패턴 매칭은 JSP 사상
- 컴파일러 설계 — BNF + parser = JSP 의 일반화
- Pydantic, Zod — 데이터 구조 검증 = JSP 의 입출력 구조
- AST 변환 — 입력 AST → 출력 AST 매핑
★ Jackson 의 통찰 "요구사항 변경은 보통 데이터 구조의 작은 변화 → 프로그램 구조의 작은 변화" 는 사양 기반 개발 (Spec-driven) 의 본질이다.
6. 주요 인물·사건
| 연도 | 사건 |
|---|---|
| 1975 | Michael A. Jackson, Principles of Program Design — JSP 탄생 |
| 1983 | Jackson, System Development — JSD 확장 |
| 1980s | 영국 SSADM 표준 통합 |
| 1990s | Yourdon, Booch, Rumbaugh 등 객체지향에 흡수 |
| 2010s~ | 함수형 프로그래밍 + 데이터 검증 라이브러리에서 원리 부활 |
7. 강의 활용
"입력·출력 데이터 구조가 곧 프로그램 구조" — 이 Jackson 의 핵심 통찰 은 Spec-driven Development 의 50년 전 조상. AI 에이전트 시대에 Pydantic 으로 입출력 스키마 정의 → LLM 이 변환 함수 생성 패턴이 정확히 JSP 의 부활. 데이터가 설계를 결정한다 는 원리 영원성.
출처
- Jackson Structured Programming — Wikipedia
- Jackson Structured Programming Workbench
- Jackson Structured Programming — Official site
- Introduction to Jackson Design Method — Ourusoff (PDF)
그룹 시리즈
→ synthesis/group-se_g2 (시대 그룹 종합 카드)