1968 년 NATO 컨퍼런스 에서 *처음 *“소프트웨어 위기” 라는 단어 가 등장했다. 컴퓨터는 빨라지는데, *소프트웨어는 *제 시간 / 제 예산 / 제 품질로 안 만들어진다. 그 후 60 년 이 지났지만 — 위기는 *형태를 바꾸어 *반복 된다. 이 글은 4 가지 *하드웨어 (CPU / Memory / HDD / SSD)발전사어떻게 *위기를 *만들었는지연대 기.


TL;DR

시기 하드웨어 도약 그로 인한 소프트웨어 위기
1950 ~ 1960 진공관 → 트랜지스터, kB 메모리 기계 어 직접 작성, 조작 의 *복잡도어셈블러 / FORTRAN 등장
1968 IBM/360 — 대용량 OS NATO 컨퍼런스Software Crisis 용어 공식화
1970 ~ 80 마이크로프로세서, MB 메모리 프로젝트 비대화 — 구조적 프로그래밍 / 모듈화
1990 ~ 2000 GHz CPU, GB 메모리, HDD GB → TB 분산 시스템 / 인터넷 — 객체지향 / 패턴
2005 ~ 15 멀티 코어, RAM GB, SSD 등장 병렬화의 어려움 — 함수형 / 액터 / 동시성 모델
2015 ~ 25 NVMe / DDR5 / 큰 캐시 SSD 클라우드 / MSA / 컨테이너분산 시스템 의 *새 위기
2025 ~ NPU / AI 가속기 / Edge SSD AI 시대 의 *새 위기AI 가 *어떻게 *공존 가능한가

요약 한 줄 :

소프트웨어 위기는 *끝난 적 없다. 하드웨어 의 *각 도약새 위기 를 *낳고, 소프트웨어 는 *적응 의 *경주계속 한다*.


1. 1968 — *NATO 컨퍼런스 와 *소프트웨어 위기시작

Software Crisis 용어 의 기원

1968 년, NATO 가 독일 가르미슈 에서 컴퓨터 과학 컨퍼런스 를 열었다. 50 명 의 최고 전문가 가 모여 문제 의 본질 을 논의 :

“하드웨어 는 매년 *2배 가 빨라지는데 — 우리가 *그 빠른 컴퓨터 로 *해결 가능한 문제왜 *느리게 *늘어 나는가.”*

간극Software Crisis. Edsger Dijkstra 의 *1972 튜링상 강연겸손한 프로그래머” 에서 결정 적 언급 되며 고전화.

증상

당시 대형 프로젝트 의 *80% 가 :

  • 예산 초과
  • 일정 지연
  • 요구사항 미충족
  • 유지보수 *불가능
  • 버그 가 *무한

대표 사례 — IBM OS/360 (1964 ~). 수천 명 의 인력, 수년의 지연, 수십만 줄 의 코드 가 *디버깅 불가능. Frederick Brooks 의 유명한 책 The Mythical Man-Month (1975) 의 현장.


2. CPU 발전사Moore’s Law 와 *위기의 *연쇄

1947 ~ 1980 — 진공관 → 트랜지스터 → IC → 마이크로프로세서

1947  : 트랜지스터 발명 (Bell Labs)
1958  : 집적회로 (IC) — Jack Kilby
1965  : Moore's Law — *2년마다 트랜지스터 2배*
1971  : Intel 4004 — *최초 *4-bit *마이크로프로세서*
1978  : Intel 8086 — *PC 의 *시조*

이 시기 위기 : 기계 어를 *직접 *작성 해야 하는 부담. 인간이 *수만 개 명령어 를 *손으로 짜는 것비효율. → 고급 언어 의 *탄생 (FORTRAN 1957, COBOL 1959, C 1972, Pascal 1970).

1980 ~ 2005 — Clock Speed 의 *황금기

1989 : Intel 486 — 25 MHz
1995 : Pentium Pro — 200 MHz
2000 : Pentium 4 — 1.5 GHz
2005 : Pentium 4 — *3.8 GHz 한계*

15 년 간 *CPU clock 가 *100 배 빨라짐. 개발자 의 멘탈 모델 :

“느린 코드 는 *내년 *하드웨어 에 *맡기면 됨.”*

이게 흔한 *합리화. 그러나 2005 년Clock Speed 한계 *물리적 도달. 발열 + 누설 전류Pentium 4 *를 *벽에 *처박았다.

2005 ~ 현재 — 멀티 코어 시대

2006 : Intel Core 2 Duo (2 cores)
2010 : Core i7 (4 cores)
2017 : Threadripper (16 cores)
2024 : EPYC 9754 — *128 cores*
2025 : Intel Granite Rapids — *144 cores*

이게 진짜 의 *새 위기. 단일 thread 가 더 안 빨라진다기존 소프트웨어 가 *자동 으로 빨라지지 않음. 코드 *재 작성 필요. 병렬화어려움소프트웨어 의 *지배 적 *과제 가 됨.


3. Memory 발전사kB → TB 로 *6 배 정도

1960 ~ 80 — kB 단위 의 *치열함

1965 : 4 KB    (PDP-8)
1981 : 64 KB   (IBM PC)
1990 : 8 MB    (일반 PC)

이 시대 의 기술 :

  • 수동 *메모리 관리
  • 오버레이 — 큰 프로그램 을 작은 메모리 에 *조각 으로 *실행
  • swap 의 *진심디스크 *왕복 비용 허용
  • 압축 코드 / *bit packing

1990 ~ 2010 — MB → GB 로 *폭증

2000 : 256 MB  (일반 PC)
2010 : 8 GB    (일반 PC)

메모리 가 *풍부 해지자 :

  • GC 언어 의 *대중화 (Java 1995, C# 2002)
  • 객체지향 의 *확산추상 비용 허용 가능
  • 프레임 워크 의 *비대화 — Spring, .NET, Ruby on Rails

위기 : 메모리가 *충분 하니 *낭비 적 코드 가 *기본후일 의 *시스템 운영 의 *비용. unbounded cache, 느린 ORM, N+1 query2010 년 대 *Java 의 *흔한 문제.

2010 ~ 현재 — DDR5 + ECC + HBM

2020 : DDR4 — *클라이언트 32GB, 서버 1 TB*
2023 : DDR5 — *클라이언트 64GB, 서버 8 TB*
2025 : HBM3e (GPU 측) — *대역폭 1 TB/s*

위기 의 새 형태 :

  • GC pause 가 *큰 heap 에서 *치명적 (어제 글 의 ZGC 등장 배경)
  • NUMA멀티 소켓 환경의 *메모리 접근 *불균등 비용
  • In-memory DB (Redis, Memcached, SAP HANA) — 분산 캐시 의 표준화

메모리는 커진 *그만큼 *새 *문제 를 *낳았다.


4. HDD 발전사느림과 *함께 *50 년

1956 ~ 90 — 큰 자석 디스크 시대

1956 : IBM 350 — *5 MB, *세탁기 크기*
1980 : Seagate ST-506 — *5 MB, *PC 시장*
1995 : 1 GB HDD — *일반 PC*
2005 : 500 GB
2025 : 30 TB+

HDD 의 *물리적 한계

  • Sequential : 수십 MB/s최근 200 MB/s비교 적 *향상
  • Random : 5 ~ 10 ms latency, 100 IOPS50 년 거의 *변화 없음

부동의 한계소프트웨어 의 *수많은 *우회 를 만듦 :

  • DB 의 *B-Tree 인덱스random 을 *어떻게 *최소 화
  • LSM Treerandom write → sequential write 변환
  • Page cache 의 *역할
  • Write-Ahead Log순차 쓰기 후 *체크포인트
  • Buffer Pool메모리 의 *디스크 대리

HDD 의 *느림DB 와 OS 설계의 *수십 년 *지배자.


5. SSD 등장2008 ~ *디스크 *혁명

발전사

2008 : MLC SSD — *80 GB / $500
2011 : SATA SSD 일반화 — *수십 만 IOPS
2014 : NVMe 등장 — *100 µs latency
2020 : PCIe 4.0 NVMe — *7 GB/s
2024 : PCIe 5.0 NVMe — *14 GB/s, *2M IOPS
2025 : Optane / 3D XPoint 의 *대안 발전*

SSD 가 *불러온 *새 *기회 와 *새 위기

기회 :

  • Random IOPS 의 *제약 *사라짐
  • 작은 random read 가 *수십 µs
  • DB 의 *재 설계 가능 — 디스크 *경계 *완화

새 위기 :

  • Write 가 *마모 를 가짐 — Wear Leveling, GC, TRIM 의 *추가 복잡도
  • Power Loss Protection — 캐시 데이터 보존
  • Filesystem 이 *SSD 친화 로 재설계 필요 (ext4, btrfs, ZFS, F2FS)
  • DB 의 *옛 가정 (random 비용 최소화)과한 우회 가 됨오히려 성능 *저하 가능

SSD 는 옛 위기를 *해소 하면서 새 위기를 *불러온다. 기술 변화 의 *공통 패턴.


6. 위기 의 *형태각 시대 마다 *다르다

1960 년대 — 기계 어 직접 작성 의 위기

→ 해결 : 고급 언어

1970 ~ 80 — 프로젝트 비대화 의 *위기

→ 해결 : 구조적 프로그래밍, *모듈화, *RDB 모델

1990 ~ 2000 — 분산 시스템 / 인터넷 의 *위기

→ 해결 : 객체지향, *디자인 패턴, *3-tier 아키텍처

2005 ~ 15 — 멀티 코어 의 *위기

→ 해결 : 함수형 (Scala / Clojure / Haskell 인기), *Actor 모델 (Erlang / Akka), *Goroutine, *async / await

2015 ~ 25 — 클라우드 / MSA 의 *위기

→ 해결 : 컨테이너, *Kubernetes, *서비스 메시, *eventual consistency

2025 ~ — AI 시대 의 *위기 (진행 중)

→ 해결 시도 : vibe coding, *LLM 기반 자동 코드 생성, *Agentic 시스템, Edge AI


7. Brook 의 *No Silver Bullet

1986 년, Frederick Brooks 가 유명한 논문 “No Silver Bullet — Essence and Accidents of Software Engineering” 발표 :

“앞으로 *10 년 안소프트웨어 생산성10 배 올릴 단일 기술없다. 어려움 의 *본질복잡도, *변경 가능성, *비가시 성, *적합성 에서 나오기 때문 이다.”*

Brook 의 *옳음 / 그름

지난 40 년 을 보면 :

  • 틀린 부분AI / LLM 이 *2024 년 *부터 *생산성을 *체감 *2~3 배 올리는 중. *Brook 의 *예언드디어 *깨질 가능성.
  • 맞은 부분본질 적 *복잡도 (변하는 요구사항, 도메인 의 어려움) 는 *여전히 *그대로. 어떤 도구 도 *완전 해결 못 함.

소프트웨어 의 *본질아직도 *위기 안 에 있다.


8. 지금 의 *위기AI 시대 의 *복잡성

2025 ~ 현재 의 *새 위기 의 *형태

  • AI 가 *코드 를 만든다 — 사람 이 *읽고 *판단하는 시간이 *증가
  • Cloud / Edge / Mobile / IoT 의 *동시 운영멀티 환경 *복잡도
  • 보안 + 프라이버시 + 규제코드 외 부 의 *요구 들이 *비대화
  • 공급망 (npm / Maven / pip)위협간접 *의존성 *공격
  • 모델 운영 (MLOps) — *모델 + 데이터 + 코드 + 인프라 의 *4 차원

이 모든 것 이 옛 위기 와 *다른 *형태. 각 시대 의 위기 와 *마찬가지 로적응 의 *경주계속.


9. 60 년 의 *주기적 *교훈

위기 의 반복 에서 읽히는 *공통 패턴 :

  1. 하드웨어 의 *도약* 이 *새 위기 의 *원인 — *변화 의 *속도 가 *소프트웨어 의 *적응 속도 *를 *초과.
  2. 위기 의 *해결 이 *새 위기 의 *원인 — 객체지향 이 *멀티코어 위기불렀고, 클라우드 가 분산 시스템 위기를 *불렀다.
  3. **Silver Bullet 은 *없다Brook 의 *고전적 *진단여전히 *유효.
  4. 인간 의 *복잡도 처리 능력* 이 *진짜 *상한선 — *추상 + 도구 + 협업총합경쟁 력.

10. 백엔드 엔지니어 의 *시야

본인 7 년차 *시점 에서 본 위기의 *현실:

내가 직접 본 *위기 의 *형태

  • 메모리 부족작은 *서비스 의 OOM, *GC pause. 어제 글 의 메모리 / GC 와 직결.
  • 디스크 IOPSHDD 에 *ES 깐 *비상. NVMe 로 *옮기자 *해결.
  • CPU boundJSON 직렬화, *암호화, *대용량 *처리.
  • 분산 시스템 의 복잡도eventual consistency, *분산 락, *retry storm.
  • AI 시대 의 적응Copilot, *Cursor, *Claude, *벡터 DB 등 *매주 새 도구.

직접 경험한 *대응

  • 옛 기술 + 새 기술 의 *동시 활용
  • 하드웨어 *제약 *직 접 측정
  • 추상 의 *과 다경계
  • 팀 의 *공통 언어 *유지
  • 지속 적 *학습 + 시도 + *폐기

11. 마치며

소프트웨어 위기는 *60 년 *전 *시작 되었고 현재 진행 중. 각 시대 의 *위기 의 *모습은 *다르지만 *본질같다 — *변화의 *속도 와 *적응의 *속도 *간 *격차.

3 줄 요약 :

  1. CPU / Memory / HDD / SSD 의 발전 *각 단계새 위기 를 *낳았다 — 위기 의 원인 은 *진보 자체.
  2. 위기 의 *해결 은 *다음 위기 의 *원인 — *객체지향 → 분산 → 클라우드 → AI 의 *연쇄.
  3. Silver Bullet 은 없지만 *적응 의 *경주계속깊은 *기본 + *빠른 *학습조합생존 력.

7 년차 백엔드 엔지니어 의 회고 :

“위기를 *없애려 *애쓰지 *마라. 위기 와 *공존 하는 능력직업 의 *깊이.”*

다음 글 — AI 시대의 *소프트웨어 *재정의vibe coding, *Agent, *Auto-debug 의 *변화 의 *깊이. 같은 시리즈 로 이어 집니다.


본 글은 7년차 백엔드 엔지니어 의 *역사 / 시야 회고. 역사 사실 은 *문헌 기반. 해석 은 *내 *시각. 다른 *전문가의 *해석 도 *존중 *받을 수 있다. 위기 의 *본질각자 *경험 하는 *현실 의 *총합.