Jackson Structured Programming (JSP) — 데이터 구조가 곧 프로그램 구조
Entity (인물·조직)lectureverified2026-05-09

Jackson Structured Programming (JSP) — 데이터 구조가 곧 프로그램 구조

#vch#lecture-intro#C-se-tool#se-g2

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 반복 (반복)

핵심 절차:

  1. 입력 데이터 구조 그리기
  2. 출력 데이터 구조 그리기
  3. 두 구조를 대응 시켜 프로그램 구조 도출
  4. 프로그램에 operations 부여
  5. 의사코드 변환

4. 언어·OS 매핑 (★ 강의 핵심)

시대언어JSP 활용
1975~85COBOL + 배치 (테이프, 디스크)★ 트랜잭션 처리 표준
1980sPL/I, Ada영국 정부 SW 표준 (SSADM과 함께)
1990sC, 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. 주요 인물·사건

연도사건
1975Michael A. Jackson, Principles of Program Design — JSP 탄생
1983Jackson, System Development — JSD 확장
1980s영국 SSADM 표준 통합
1990sYourdon, Booch, Rumbaugh 등 객체지향에 흡수
2010s~함수형 프로그래밍 + 데이터 검증 라이브러리에서 원리 부활

7. 강의 활용

"입력·출력 데이터 구조가 곧 프로그램 구조" — 이 Jackson 의 핵심 통찰Spec-driven Development 의 50년 전 조상. AI 에이전트 시대에 Pydantic 으로 입출력 스키마 정의 → LLM 이 변환 함수 생성 패턴이 정확히 JSP 의 부활. 데이터가 설계를 결정한다 는 원리 영원성.

출처

그룹 시리즈

synthesis/group-se_g2 (시대 그룹 종합 카드)