본문으로 건너뛰기 섹션으로 건너뛰기

💻기원과 변천사

소프트웨어 엔지니어 · 현대 사회를 움직이는 코드를 작성하고 테스트하고 유지보수하는 직업이며, AI가 자기 일상 업무를 자동화하는 모습을 가장 먼저 지켜보는 직업 중 하나다.

한눈에
연표

시간 순 이정표입니다. 주간 활동 격자가 아닙니다.

1843 에이다 러브레이스가 최초의 알고리즘을 발표하다1890 홀러리스의 천공카드가 인구조사를 집계하다1943–1945 여섯 명의 여성이 에니악을 프로그래밍하다1952 그레이스 호퍼가 최초의 컴파일러를 완성하다1957 포트란이 IBM 704용으로 출시되다1968 NATO 회의가 '소프트웨어 엔지니어링'이라는 이름을 붙이다1969–1973 벨 연구소에서 유닉스와 C가 형태를 갖추다1981 IBM PC가 모든 책상에 소프트웨어를 가져오다1991 리눅스와 월드와이드웹이 몇 달 간격으로 등장하다2021–2023 AI가 코드 에디터 안으로 들어오다
  1. 에이다 러브레이스가 최초의 알고리즘을 발표하다
  2. 홀러리스의 천공카드가 인구조사를 집계하다
  3. 여섯 명의 여성이 에니악을 프로그래밍하다
  4. 그레이스 호퍼가 최초의 컴파일러를 완성하다
  5. 포트란이 IBM 704용으로 출시되다
  6. NATO 회의가 '소프트웨어 엔지니어링'이라는 이름을 붙이다
  7. 벨 연구소에서 유닉스와 C가 형태를 갖추다
  8. IBM PC가 모든 책상에 소프트웨어를 가져오다
  9. 리눅스와 월드와이드웹이 몇 달 간격으로 등장하다
  10. AI가 코드 에디터 안으로 들어오다
지표 밀도

진한 칸일수록 이 직업에서 해당 지표가 높습니다.

최근 검토 출처·크레딧미디어 크레딧방법론

짧은 답

소프트웨어 엔지니어는 하루 종일 실제로 무엇을 하는가?

대부분의 하루는 새 코드 작성, 리뷰 중 다른 사람의 코드 읽기, 버그 수정, 다음에 무엇을 만들지 동료와 논의하는 일로 나뉜다. 회의, 계획, 멘토링에 신입이 예상하는 것보다 훨씬 많은 시간이 든다. 시니어 엔지니어는 대체로 주니어보다 직접 코드를 덜 쓰는 대신 설계 결정, 리뷰, 다른 사람의 막힌 부분을 풀어주는 데 더 많은 시간을 쓴다.

소프트웨어 엔지니어가 되려면 컴퓨터공학 학위가 필요한가?

필수는 아니지만 여전히 가장 흔하고 마찰이 적은 경로다. 4년제 학위는 알고리즘, 자료구조, 시스템 개념을 가르치는데 이는 실무에서 독학하기에는 비용이 크다. 부트캠프 수료생과 독학한 엔지니어도 채용되지만, 특히 작은 회사에서는 대개 강력한 포트폴리오나 오픈소스 활동으로 학위를 대신해야 한다.

소프트웨어 엔지니어링은 AI로 인한 위험에 처해 있는가?

일부는 이미 그렇다. 최신 코드 에디터에 내장된 도구들은 상용구 코드, 초안 테스트, 언어 간 번역 등 정기적으로 사용하는 엔지니어를 위해 상당한 양의 반복 코드를 이미 작성한다. 훨씬 자동화하기 어려운 부분은 무엇을 왜 만들지 결정하고, 실제 사용자와 실패를 견뎌내도록 시스템을 설계하는 일이다.

소프트웨어 엔지니어는 얼마나 버는가?

국가와 회사에 따라 크게 다르다. 미국은 중위값이 연 약 13만 3천 달러이고, 독일은 약 6만 9천 유로, 이 산업의 고용 인원이 가장 많은 인도는 국가 평균이 약 90만 루피에 가깝다. 대형 기술 기업의 시니어·스태프 엔지니어는 주식 보상을 포함하면 국가 중위값의 몇 배를 벌 수 있다.

소프트웨어 엔지니어, 프로그래머, 개발자는 어떻게 다른가?

실무에서는 차이가 거의 없다. 명칭이 서로 겹치고 회사마다 일관되지 않게 사용한다. '프로그래머'는 가장 오래된 용어로 코드 작성을 강조하고, '개발자'는 웹·제품 회사에서 흔하며, '소프트웨어 엔지니어'는 오래된 엔지니어링 분야에서 빌려온 규율 있는 프로세스, 테스트, 설계라는 개념에 기댄다. 채용공고는 이들을 일관되게 구분하지 않는다.

채용에 코딩 인터뷰가 정말 필요한가?

대다수 기존 기술 기업에서는 그렇다. 공유 문서나 화이트보드에서 알고리즘 문제를 푸는 실시간 또는 사전 과제 형태의 기술 인터뷰가 여전히 표준 필터이며, 시니어급에는 시스템 설계 라운드도 추가된다. 작은 회사와 스타트업은 유급 시범 프로젝트, 포트폴리오 검토, 과거 작업에 대한 대화로 대체하는 경우가 많다.

이 섹션부터 시작 - 기원과 변천사

비교 랩 열기

이 페이지 공유

소프트웨어 엔지니어링은 오래된 아이디어를 입은 유난히 젊은 직업이다. 1840년대부터 사람들은 기계가 따를 단계별 절차를 설계해 왔지만, 20세기가 한참 지나서야 누군가 '소프트웨어 엔지니어'라는 이름으로 급여를 받았고, 그 직함 자체도 1968년에야 반쯤 도발적으로 제안되었다.

그 역사는 자신의 알고리즘이 실행되는 것을 결코 보지 못한 백작 부인, 방 하나를 채운 컴퓨터를 손으로 배선한 여성들, 기계가 영어를 읽기를 바랐던 해군 장교, 그리고 위기라고 선언하며 이 분야에 이름을 붙여준 바이에른 알프스의 한 회의를 거쳐 흘러온다.

시작된 곳

1843년영국 런던

에이다 러브레이스는 찰스 배비지가 만들지 못한 해석기관에 관한 이탈리아 엔지니어의 논문을 번역하면서 원문보다 긴 주석을 덧붙인다. 마지막 주석인 노트 G는 이 기계가 어떻게 일련의 수를 계산할지 단계별로 서술한다—한 세기 뒤에나 존재할 컴퓨터를 위해 쓰인 알고리즘이며, 대다수 역사가가 프로그래밍의 개념적 탄생점으로 꼽는 순간이다. 즉 기계의 명령이 기계 자체와 분리된 별개의 대상으로 설계되고 기록되고 검증될 수 있다는 발상이다.

연표

1843에이다 러브레이스가 최초의 알고리즘을 발표하다

찰스 배비지가 만들지 못한 해석기관에 관한 이탈리아 논문을 번역하면서 러브레이스는 기계가 베르누이 수를 어떻게 계산할지 단계별로 설명하는 주석을 덧붙인다—흔히 최초로 발표된 컴퓨터 프로그램으로 인용된다.

1890홀러리스의 천공카드가 인구조사를 집계하다

허먼 홀러리스의 천공카드 집계 기계가 약 1년 만에 미국 인구조사를 처리한다. 이전 조사는 수작업으로 거의 8년이 걸렸다. 그의 회사는 훗날 IBM의 일부가 된다.

1943–1945여섯 명의 여성이 에니악을 프로그래밍하다

케이 맥널티, 진 제닝스, 베티 스나이더, 마를린 웨스코프, 프랜 빌라스, 루스 리히터먼은 매뉴얼도 프로그래밍 언어도 없이 스위치를 직접 조작하고 케이블을 연결해 펜실베이니아 대학의 방 하나짜리 에니악을 프로그래밍한다.

1952그레이스 호퍼가 최초의 컴파일러를 완성하다

레밍턴 랜드의 A-0 시스템에서 호퍼는 기호 수학 표기를 자동으로 기계어로 번역해, 서브루틴 주소를 손으로 베껴 쓰던 오류투성이 관행을 대체한다—이후 모든 컴파일러의 직계 조상이다.

1957포트란이 IBM 704용으로 출시되다

존 배커스가 이끈 IBM 팀이 약 2년의 작업 끝에 포트란을 내놓는다. 2년 안에 미국에서 실행되는 기계 코드의 절반 이상이 포트란으로 작성되었다고 전해진다.

1968NATO 회의가 '소프트웨어 엔지니어링'이라는 이름을 붙이다

서독 가르미슈에서 열린 회의에서 참석자들은 대형 프로그램을 만드는 데 다리나 건물을 짓는 것과 같은 규율이 필요하다고 주장하려고 의도적으로 '소프트웨어 엔지니어링'이라는 용어를 빌려 쓰며, 이 분야의 만성적인 초과 비용을 '소프트웨어 위기'로 규정한다.

1969–1973벨 연구소에서 유닉스와 C가 형태를 갖추다

켄 톰프슨과 데니스 리치는 남는 PDP-7에서 유닉스 운영체제를 만든 뒤, 1973년 리치의 새 언어 C로 다시 작성해 여러 종류의 컴퓨터에서 돌아가게 한다.

1981IBM PC가 모든 책상에 소프트웨어를 가져오다

IBM의 PC가 마이크로소프트의 PC-DOS와 함께 출시되며 소프트웨어를 거의 하룻밤 사이에 대중 소비재로 바꾸고, 6년 전 빌 게이츠와 폴 앨런이 알테어 베이직으로 세운 젊은 회사를 굳건히 자리 잡게 한다.

1991리눅스와 월드와이드웹이 몇 달 간격으로 등장하다

리누스 토르발스는 8월에 취미 삼아 만든 커널을 유즈넷에 올리며 '그냥 취미일 뿐, 리눅스처럼 크고 전문적이지 않을 것'이라고 말한다. 같은 달 팀 버너스리의 월드와이드웹도 공개되며, 열려 있고 자유롭게 공유되는 소프트웨어가 인터넷의 기본값이 된다.

2021–2023AI가 코드 에디터 안으로 들어오다

깃허브 코파일럿(2021)과 챗GPT(2022)가 대규모 언어 모델 기반 코드 생성을 일상 업무로 가져온다. 몇 년 안에 깃허브는 자사 도구 사용자가 유지하는 코드 줄 중 AI 제안을 수락하는 비중이 크고 계속 늘고 있다고 밝힌다.

시대별 흐름

IBM System/360 메인프레임의 운영자 콘솔
ArnoldReinhold · CC BY-SA 3.0 · Wikimedia Commons
1950년대–1960년대

메인프레임과 배치 프로그래밍

초창기 프로그램은 천공카드 뭉치로 제출되어 밤새 배치로 실행되는 경우가 많아, 오타 하나가 프로그래머에게 다음 실행까지 하루를 통째로 날리게 만들 수 있었다. 수학자들, 그리고 많은 수의 여성들이 손 계산에서 곧바로 이 새로운 '프로그래밍' 작업으로 옮겨왔는데, 당시 이 일이 명예로운 일이 아니라 사무적이고 세밀한 작업으로 여겨졌기 때문이다. 포트란(1957)과 코볼(1959)이 이 시기에 자리를 잡았고, 이 하드웨어 위에서 신뢰할 수 있는 대형 시스템을 만드는 순전한 어려움이 다음 시대가 이름 붙이고 해결하려 할 '소프트웨어 위기'를 예고했다.

초기 유닉스와 가장 밀접하게 연관된 미니컴퓨터 PDP-11
Stefan_Kögl · CC BY-SA 3.0 · Wikimedia Commons
1969–1983

유닉스, 구조적 프로그래밍, 그리고 이름을 얻은 규율

1968년 NATO 회의가 이 분야의 만성적인 예산·신뢰성 문제에 이름을 붙인 뒤, 1970년대는 진단과 도구 모두를 내놓았다. 구조적 프로그래밍, 체계적인 테스트, 그리고 벨 연구소에서 만들어져 여러 기계에서 돌아가도록 새 언어 C로 다시 작성된 운영체제 유닉스가 그것이다. PDP-11 같은 미니컴퓨터는 실질적인 컴퓨팅 파워를 몇몇 메인프레임 룸 너머로 확산시켰고, '소프트웨어 엔지니어링'은 수학이나 전기공학의 하위 분야가 아니라 그 자체로 대학 학위로 등장하기 시작했다.

1981년 출시된 오리지널 IBM 개인용 컴퓨터
Own work (based on graphics by International Business Machines Corporation) · Public domain · Wikimedia Commons
1975–1990

개인용 컴퓨터와 상자 속의 소프트웨어

알테어 8800 키트(1975)에 이어 애플 II와 IBM PC(1981)는 소프트웨어를 기관이 운영하는 무언가에서 가정이 사서 쓰는 무언가로 바꾸었다. 워드프로세서, 스프레드시트, 게임을 중심으로 대중 소비자·소기업 소프트웨어 산업이 생겨나, 지원 계약 대신 반품 정책이 딸린 비닐 포장 상자로 팔렸다. 대형 프로젝트에서는 폭포수식의 방대한 문서화 개발이 지배적이었지만, 침실 코더나 대학 해커 같은 산업의 주변부는 오늘날의 더 빠르고 비공식적인 방식에 가깝게 일했다.

오픈소스 리눅스 운영체제의 마스코트인 펭귄 턱스
Larry Ewing , Simon Budig , Garrett LeSage · CC0 · Wikimedia Commons
1991–2005

웹, 오픈소스, 그리고 닷컴 사이클

월드와이드웹과 리눅스 커널은 1991년 몇 달 간격으로 함께 공개되었고, 서로 만난 적 없는 자원봉사자들이 공개적으로 만든 소프트웨어가 기업이 출시하는 어떤 것과도 경쟁할 수 있음을 함께 증명했다. 웹 브라우저는 거의 하룻밤 사이에 완전히 새로운 일자리 시장을 만들어냈다. 그 시장은 이후 호황을 누리다가 2000~2001년 극적으로 붕괴해 한 세대의 스타트업을 쓸어버렸지만 아마존, 구글, 그리고 다음 시대가 그 위에 쌓아올릴 인프라를 남겼다. 애자일 선언문(2001)은 무거운 문서 중심 계획에 반발해 더 짧고 반복적인 주기를 선호하는 흐름을 공식화했다.

클라우드 컴퓨팅 인프라의 개념도
Sam Johnston · CC BY-SA 3.0 · Wikimedia Commons
2006–현재

클라우드, 데브옵스, AI 보조 엔지니어링

아마존 웹 서비스(2006)에서 시간 단위로 서버를 빌리는 방식은 소프트웨어 운영의 가장 큰 고정비용 중 하나를 없앴고, 앱 스토어는 거의 동시에 엔지니어들에게 모바일 중심의 두 번째 배포 채널을 안겨주었다. 깃과 깃허브(2005~2008)는 낯선 사람들 사이에서도 같은 코드베이스에 대한 분산 협업을 흔한 일로 만들었고, 자동화된 배포 파이프라인은 변경을 완료하고 사용자 앞에서 실행되기까지의 간격을 몇 달에서 몇 분으로 줄였다. 2020년대 초에 이르러 공개 코드로 훈련된 AI 코딩 어시스턴트는 신기한 물건에서 대다수 전문 엔지니어의 일상 도구로 넘어갔다—역사상 새로운 도구가 이 직업에 가장 빠르게 퍼진 사례다.

이 직업이 대체한 직업들

더 이상 존재하지 않는 인접 직업들 — 흡수되거나, 자동화되거나, 규제로 사라졌다.

인간 컴퓨터

1750년대–1960년대

전자 기계가 있기 훨씬 전, '컴퓨터'는 손으로 또는 기계식 계산기로 수학 계산을 수행하는 사람—대개 여성—을 가리키는 직함이었다. 천문표, 포병 궤적, NASA 궤도 계산이 그 일이었다. 1950~60년대부터 전자 컴퓨터가 그 계산 업무를 넘겨받았고, 이 직업이 사라질 무렵에는 이미 기계에 자신의 이름을 물려준 뒤였다.

천공 조작원

1930년대–1980년대

대부분 여성이었던 천공 조작원은 IBM 026, 029 같은 기계로 데이터와 심지어 프로그램 소스 코드까지 카드 한 장에 한 줄씩 천공했다. 대화형 터미널과 화면이 등장해 프로그래머가 직접 코드를 입력할 수 있게 되면서 이 직업은 한 세대 만에 사라졌다.

웹마스터

1993–2000년대

웹 초창기 10년 동안 한 명의 '웹마스터'가 웹사이트 전체를 설계, 코딩, 콘텐츠 작성, 운영까지 도맡는 경우가 많았다. 이 단어는 1993년 사전에 등재되었고 1997년 인터넷 표준으로 전용 이메일 주소까지 얻었다. 사이트가 복잡해지면서 이 역할은 프론트엔드 개발자, 백엔드 개발자, 데브옵스 엔지니어, 콘텐츠 편집자로 나뉘었고, '웹마스터'는 채용공고에서 사라졌다.

사라진 직업들 →

이 역사의 모든 시대는 같은 방식으로 끝난다. 손 계산, 카드 천공, 배치 스케줄링, 수동 서버 프로비저닝처럼 한 직업군 전체가 그 위에 세워졌던 수작업을 없애는 도구가 등장하고, 그 노동을 하던 사람들은 상위 단계로 올라가거나 다른 길로 떠난다.

지금 이 글을 읽는 엔지니어들은 그 순환의 첫 경험이 아니라 다음 반복을 살아가고 있다. 이 프로필의 나머지 부분은 구체적으로 지금까지 무엇이 벌어졌는지, 그리고 근거를 합리적으로 읽었을 때 다음에 무엇이 올지를 살펴본다.

비슷한 직업

같은 분야만이 아니라 여섯 점수 프로필이 가까운 직업입니다.

계속 탐색하기

계속 탐색하기

공학·기술 분야의 다른 직업

🤖

AI 연구원

기계 지능을 뒷받침하는 알고리즘을 설계하고 검증하는 직업으로, 이제는 자기 자신의 연구 과정 상당 부분을 자동화하려는 경쟁이 벌어지는 분야이기도 하다.

AI 내성 50
🛰️

항공우주공학자

지상을 벗어나는 항공기, 로켓, 우주선을 설계하고 분석하고 인증하며, 추측의 여지가 없는 안전 여유를 다루는 직업이다.

AI 내성 74
🌉

토목공학자

강과 바위와 중력을 다리, 도로, 맑은 물로 바꾸는 직업 — 임호테프 이래 문명을 떠받쳐온 조용한 하중지지의 업.

AI 내성 72
🔌

반도체 엔지니어

컴퓨터, 휴대폰, 무기 등 거의 모든 전자기기 내부의 트랜지스터를 설계하고 제조하며, 지구상 극소수 공장만이 다룰 수 있는 초정밀 장비를 다룬다.

AI 내성 60
🦾

로봇공학 엔지니어

물리적 세계를 감지하고 판단하고 행동하는 기계를 설계하는 사람으로, 진짜 난제는 지능이 아니라 언제나 세계 그 자체였다.

AI 내성 65
🔐

사이버보안 전문가

디지털 공격을 찾아내고 예방하며 대응함으로써 시스템, 데이터, 사람을 지킨다.

AI 내성 63
📦

MLOps 엔지니어

프로덕션 환경에서 기계 학습 모델을 교육, 배포, 모니터링 및 관리하는 시스템을 구축합니다.

AI 내성 54
🌬️

재생에너지 엔지니어

재생 가능한 자원을 신뢰할 수 있는 전기로 전환하는 풍력, 태양열, 저장 및 그리드 시스템을 설계, 구축 및 개선합니다.

AI 내성 72