나의 노트

코더에서 소프트웨어 엔지니어까지

프로그래밍 직종이 1940년대부터 지금까지 어떻게 바뀌었는지 정리한다.

연대별 요약

연대직함하는 일도구안 해도 되는 것
1940코더순서도를 기계어로 옮기고, 하드웨어 직접 제어, 디버깅기계어, 배선, 회로도없음. 전부 직접
1950프로그래머분석가 명세를 어셈블리·FORTRAN·COBOL로 구현어셈블러, 초기 컴파일러, 카드기계어 직접 쓰기, 주소 계산
1960응용/시스템 프로그래머응용: 업무 로직을 COBOL로. 시스템: OS와 컴파일러를 어셈블리로OS/360, 터미널입출력, 장치 제어
1970프로그래머C로 이식 가능한 코드, 구조적 프로그래밍, DB 질의유닉스, C, 라이브러리, 초기 RDB하드웨어 의존, 데이터 저장 구조 설계
1980프로그래머/개발자객체지향 언어 도입, GUI, 상품용 소프트웨어, 프레임워크에 끼워 맞추기C++, Smalltalk, PC, 프레임워크화면 그리기, 이벤트 처리 기반 코드
1990웹 개발자웹 화면·서버·DB를 한 사람이. 객체지향 언어는 주류, 객체 설계는 소수Java, Linux, 오픈소스메모리 관리, 플랫폼별 컴파일
2000개발자업무 로직 구현, 테스트, 리팩터링Spring, Rails, Ajax·jQuery, Git, AWS웹 애플리케이션 뼈대, 서버 구매
2010소프트웨어 엔지니어코드+테스트+배포+운영+모니터링, 서비스 소유 (미국 서비스 회사 기준. 한국은 배포·운영이 별도 팀)Docker, Kubernetes, React, 클라우드실행 환경 설치, 서버 관리 (한국은 2020년 전후부터)
2020소프트웨어 엔지니어원격 협업, 직접 코딩. AI 자동완성을 보조로Copilot, ChatGPT, 원격 협업 도구보일러플레이트 타이핑 (후반으로 갈수록 줄어듦)
2026~소프트웨어 엔지니어무엇을 만들지 정하고, AI 에이전트가 만든 코드 검증코딩 에이전트코드 타이핑 (진행 중)

매 10년마다 밑단이 도구로 내려가고 프로그래머는 한 층 위로 올라갔다. 기계어 → 어셈블리 → 고급 언어 → 라이브러리 → 프레임워크 → 클라우드 → AI. 대신 위에서 일이 내려왔다. 1970년대부터 분석가의 설계가, 1980년대부터 사용성이, 2000년대부터 테스트가, 2010년대부터 운영이 프로그래머 몫이 됐다.

코더가 하는 일은 줄어든 게 아니라 자리가 옮겨졌다. 기계 쪽 일은 도구에 넘기고, 사람 쪽 일을 받았다.

지금 소프트웨어 엔지니어는 1950년대 기준으로 분석가+프로그래머+오퍼레이터+테스터를 한 사람이 하는 직종이다. 패러다임 전환은 대략 10년 주기다.

용어

1940년대: 코더

ENIAC·EDSAC 시절, 코더는 남이 짠 순서도를 기계어로 옮기는 사람이었다.

역할 위계:

  1. 분석가 / 수학자: 문제를 풀 방법을 순서도로 그림. 지적인 일로 여겨졌고 대부분 남성.
  2. 코더: 순서도를 기계 명령어와 숫자로 번역. 사무직으로 여겨졌고 대부분 여성. ENIAC 첫 프로그래머 6명이 전원 여성이었다.
  3. 키펀치 오퍼레이터: 코딩 용지를 보고 카드에 구멍을 뚫음. 검공(verifier) 절차가 있어 오류가 걸러졌다.
  4. 컴퓨터 오퍼레이터: 카드를 기계에 넣고 실행.

실제 난이도

"번역"이라 불렀지만 사실상 설계였다.

책임

결과가 틀리면 코더가 책임졌다. 키펀치는 검공, 오퍼레이터는 로그로 검증 가능했고, 분석가는 결과가 나올 때쯤 다른 프로젝트에 가 있었다. 순서도 오류로 밝혀져도 고치는 건 코더였다. 책임 있는 사람이 권한도 갖게 되면서 코더가 설계까지 떠안는 계기가 됐다.

교육

필요했지만 "필요 없다"고 여겨졌다. ENIAC 프로그래머 6명은 전원 수학 전공자였고, 매뉴얼이 없어 회로도와 배선도로 기계를 이해했다. 정규 교육 과정도 없이 현장에서 스스로 익혔다.

왜 격하됐나

"코딩은 AI가 하니까 사람은 기획만 하면 된다"는 말이 1947년 "코딩은 사무 절차"와 같은 구조다.

1950년대: 프로그래머

상용화

컴퓨터 자체가 상품이 됐다. 1951년 UNIVAC I이 돈 주고 살 수 있는 첫 컴퓨터였고, 미국 인구조사국이 첫 고객이었다. 은행, 보험사, 항공사가 급여 계산, 계좌 관리, 예약에 컴퓨터를 썼다. 컴퓨터 쓰는 사람이 수학자에서 회사원으로 바뀌었다.

코더에서 프로그래머로

수학자 아닌 사람들이 프로그래밍을 배우려다 실패하면서 "아무나 못 하는 일"이 드러났다. 1950년대 중반이면 프로그래머가 표준 직함이 됐고, 급여가 올랐다. 어셈블러와 FORTRAN이 나오면서 "기계어로 옮기는 일" 자체가 없어졌으니 코더라는 이름도 뜻을 잃었다. 이후 코더는 "생각 없이 코드만 치는 사람"이라는 낮춤말로 남았다.

업무를 아는 시스템 분석가와 기계를 아는 프로그래머로 나뉘었다. 분석가는 기계어를 몰라도 됐다. 둘의 격차는 "문제를 정의하느냐, 남이 정의한 걸 옮기느냐"였다.

여성의 퇴장

일부는 프로그래머가 됐다. Betty Holberton은 UNIVAC 개발에 참여해 최초의 정렬 프로그램과 COBOL 표준을 만들었다. 1960년대까지 프로그래머의 30~50%가 여성이었다는 추정도 있다.

집단으로는 밀려났다. 코딩이 전문직으로 격상되자 그 자리를 남성이 채웠고, 1960년대 프로그래머 적성검사는 "사람과 어울리기 싫어하는 성향"을 자질로 넣었다. 1980년대 가정용 컴퓨터가 남자아이 장난감으로 팔리며 격차가 굳어졌다. 미국 컴퓨터 과학 전공 여성 비율은 1984년 37%에서 2010년대 18%까지 떨어졌다.

언어

초기 프로그래머들은 컴파일러가 만든 코드를 불신했다. FORTRAN 팀이 최적화에 공을 들인 이유다.

운영체제

없었다. 프로그래머가 카드 읽기, 프린터 출력, 테이프 제어를 매 프로그램마다 짰다. 1956년 GM과 노스아메리칸 항공 프로그래머들이 IBM 704용 배치 모니터(GM-NAA I/O)를 만든 것이 최초의 운영체제로 꼽힌다. IBM은 하드웨어만 팔았고 소프트웨어는 사용자 모임 SHARE(1955)에서 나눴다.

1960년대: 응용과 시스템의 분화

OS/360 개발의 어려움이 『맨먼스 미신』을 낳았고, 1968년 NATO 소프트웨어 공학 회의의 배경이 됐다. 같은 해 Dijkstra의 "goto 유해론"으로 구조적 프로그래밍이 자리잡기 시작했다.

고급 언어를 쓰되 필요하면 어셈블리로 내려갈 줄 알아야 했다. OS/360은 어셈블리로 짜였다.

1970년대: 유닉스와 C

프레임워크는 아직 없었다. 프레임워크는 "뼈대가 내 코드를 호출하는" 구조라 객체지향의 상속과 다형성이 필요했다. 1970년대 프로그래머는 라이브러리를 부르는 사람이었다.

1980년대: PC와 객체

개인용 컴퓨터

메인프레임은 회사에서만 만질 수 있었는데 PC는 집에서 독학이 가능했다. 1980년대에 10대 때 BASIC으로 시작한 세대가 1990년대 업계 주력이 됐고, 컴퓨터 과학 학위 없는 프로그래머가 흔해졌다.

PC통신

미국은 1978년 CBBS, 1979년 CompuServe부터. 한국은 1986년 천리안, 1988년 케텔(하이텔)부터 시작해 1990년대 하이텔·천리안·나우누리·유니텔이 전성기였다. BBS와 동호회가 프로그래밍 독학의 통로였고, 셰어웨어와 소스 코드가 여기서 오갔다. 오픈소스 문화의 전신이다.

세 가지 전환

객체지향으로 짜다 보니 "잘 짜는 법"이 문제가 됐고, 그 답이 1990년대 디자인 패턴(1994)과 XP(1996)다. Kent Beck, Ward Cunningham, Ron Jeffries가 전부 1980년대 Smalltalk 경험에서 출발했다.

1990년대: 웹과 자바

프로그래머가 웹 개발자로 불리기 시작했다. 화면(HTML), 로직(서버), 데이터(DB)를 한 사람이 다루는 경우가 많아 "풀스택"의 전신이 됐다. 닷컴 버블(1995~2000)로 수요가 폭증해 학위 없는 독학 개발자가 대거 유입됐다.

2000년대: 애자일과 오픈소스

"개발자"가 표준 호칭이 됐다.

2010년대: 클라우드와 모바일

한 사람이 코드, 테스트, 배포, 운영, 모니터링을 다 하는 것이 기본이 됐다. 1950년대 기준으로 네 직종을 한 사람이 하게 됐다.

이것도 미국 서비스 회사 기준이다. 한국은 배포와 서버를 운영팀·인프라팀이 맡았고, 개발자는 빌드 결과물을 넘기면 끝이었다. 서버는 IDC 물리 서버나 VM이었고, 클라우드 전환은 2010년대 후반 네이버·카카오·쿠팡 같은 서비스 회사부터였다. Docker는 2017~18년, Kubernetes는 2019~2020년 이후에야 서비스 회사에서 쓰기 시작했고, SI와 금융은 2020년대에도 온프레미스가 많았다. "DevOps"라는 이름은 있었지만 개발자가 운영을 겸하는 게 아니라 운영팀을 개명한 경우가 흔했다.

2020년대 전반: 원격과 AI 보조

개발자는 여전히 직접 코딩했다. AI는 타이핑을 줄여줬을 뿐 일의 구조는 2010년대와 같았다.

2026~: AI 에이전트

분석가의 행방

코더가 "어떻게"를 전부 가져오는 동안, 분석가는 "어떻게"를 잃고 "무엇을"만 남았다.

없어진 건 "업무를 알고 순서도를 그려 개발자에게 넘기는 단일 직종"이지, 일 자체는 이름을 바꿔 남아 있다. 한국 서비스 회사의 기획자는 미국 PM보다 옛 분석가에 가깝다. 화면 정의서와 기능 명세를 상세히 쓰고 개발자가 구현하는 구조라, SI의 분석가-개발자 관계가 기획자-개발자로 이어진 셈이다.

2026년 이후 AI가 "어떻게"를 가져가면 개발자는 "무엇을"로 올라가야 하는데, 그 자리에 이미 PM과 기획자가 있다. 개발자가 기획자가 되느냐, 기획자가 개발자가 되느냐, 새 직종이 생기느냐가 갈리는 중이다.