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

💻전설의 인물들

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

한눈에
지표 밀도

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

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

짧은 답

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

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

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

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

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

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

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

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

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

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

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

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

이 섹션부터 시작 - 전설의 인물들

비교 랩 열기

이 페이지 공유

소프트웨어 엔지니어링의 정전은 의학이나 법률보다 짧고 젊으며, 그 상당 부분은 프로그래밍이 중요하다고 아직 생각하지 않던 남성들로 가득한 방에서 일하던 여성들이 써 내려갔다. 여기 소개하는 여덟 명은 결코 만들어지지 않을 기계를 위해 글을 쓴 백작 부인부터 60대에도 여전히 자신의 창조물을 직접 관리하는 일본인 언어 설계자까지 걸쳐 있다.

이들을 잇는 것은 공통된 배경이 아니다—네 개 나라와 180년이 넘는 시간에 걸쳐 있다—공통점은 소프트웨어가 작동하는지 못지않게 어떻게 만들어지는지가 중요하다는 고집이다.

역대 최고의 시상대

그레이스 호퍼
그레이스 호퍼
미국
2
데니스 리치
데니스 리치
미국
1
마거릿 해밀턴
마거릿 해밀턴
미국
3

“만들어진 기계보다 오래가도록 만들어라—이식성이 유닉스의 아이디어를 50년간의 하드웨어 변화 속에서도 살아남게 했다.”

데니스 리치

정점에 오른 8인

1
데니스 리치의 사진 Denise Panyik-Dale · CC BY 2.0

데니스 리치

미국 · 1941–2011

벨 연구소에서 유닉스를 공동 개발하고 C 프로그래밍 언어를 설계해, 업계에 이식 가능한 운영체제와 이후 대다수 언어가 문법을 빌려온 언어를 안겼다. 1983년 켄 톰프슨과 함께 튜링상을 받았으며, 오늘날 실행 중인 대부분의 운영체제는 그의 작업 또는 그 작업에서 파생된 도구로 만들어졌다.

일화

1973년 리치는 톰프슨과 함께 유닉스를 C로 다시 작성해, 하나의 기계에 묶이지 않고 새 하드웨어로 옮겨갈 수 있게 만들었다—유닉스와 그로부터 파생된 모든 것이 어떤 단일 컴퓨터보다도 오래 살아남게 한 결정이었다. 그는 2011년 10월 12일 뉴저지주 버클리 하이츠 자택에서 세상을 떠났는데, 그가 만든 소프트웨어가 스티브 잡스 자신의 제품 안에서도 돌아가고 있었음에도, 그 죽음은 일주일 전 세상을 떠난 잡스의 죽음에 언론 보도에서 크게 가려졌다.

“만들어진 기계보다 오래가도록 만들어라—이식성이 유닉스의 아이디어를 50년간의 하드웨어 변화 속에서도 살아남게 했다.”

튜링상
1983년 (톰프슨과 공동)
C에서 파생된 언어
C++, 자바, C#, 자바스크립트…
벨 연구소 경력
약 40년
2
해군 제복을 입은 그레이스 호퍼의 사진 James S. Davis · Public domain

그레이스 호퍼

미국 · 1906–1992

1952년 최초의 실제 작동하는 컴파일러를 만든 수학자이자 해군 장교로, 사람이 원시 기계 명령이 아니라 영어에 가까운 언어로 프로그래밍해야 한다고 주장했다. 그 주장은 곧바로 코볼로 이어졌고, 코볼은 70년이 지난 지금도 은행, 항공사, 정부 기관 안에서 돌아가고 있다.

일화

체중 미달로 현역 복무를 거절당한 호퍼는 1943년 해군 예비대에 합류해 하버드 마크 I 프로그래밍을 맡았다. 1947년 9월, 그녀의 마크 II 팀은 계전기에 끼어 있던 나방을 로그북에 테이프로 붙이고 '버그가 실제로 발견된 최초 사례'라고 적었다—호퍼가 '버그'라는 단어를 만든 것은 아니지만, 그녀는 수십 년간 이 이야기를 들려주며 이 분야의 창건 전설로 만들었다.

“기계가 프로그래머의 언어를 말하게 하라, 그 반대만이 아니라.”

해군 경력
43년, 준장
퇴역 당시 나이
79세, 최고령 현역 장교
대통령 자유 훈장
2016년 (사후 추서)
3
아폴로 소프트웨어 출력물 더미 옆에 선 마거릿 해밀턴의 사진 Daphne Weld Nichols · CC BY-SA 3.0

마거릿 해밀턴

미국 · 1936년생

MIT 계측연구소에서 아폴로 프로그램의 탑재 비행 소프트웨어를 작성한 팀을 이끌었으며, 코드도 하드웨어 엔지니어링과 같은 엄격함과 존중을 받을 자격이 있다고 주장하며 '소프트웨어 엔지니어링'이라는 용어를 대중화한 인물로 널리 인정받는다.

일화

1969년 7월 아폴로 11호의 달 착륙 도중, 잘못 설정된 레이더 스위치가 컴퓨터에 여분의 작업을 쏟아부으면서 유도 컴퓨터가 1202, 1201 경보를 울리기 시작했다. 해밀턴의 팀은 소프트웨어가 과부하 상황에서 충돌하는 대신 우선순위 낮은 작업을 버리도록 만들어 두었기에 착륙 유도는 계속 작동했다. NASA 엔지니어가 손으로 작성한 경보 참고표에 힘입은 관제센터는 착륙 중단 대신 '진행(go)'을 외쳤다.

“모든 게 계획대로만 돌아갈 때뿐 아니라 과부하 상황에서도 우아하게 실패하도록 소프트웨어를 설계하라.”

대통령 자유 훈장
2016년
역사적 임무
1969년 아폴로 11호 착륙
MIT에서의 역할
소프트웨어공학부 부장
4
리누스 토르발스의 사진 Krd (photo) Von Sprat (crop/extraction) · CC BY-SA 4.0

리누스 토르발스

핀란드/미국 · 1969년생

1991년 헬싱키의 한 학생이 취미로 시작한 프로젝트로 리눅스 커널을 만들었고, 14년 뒤에는 약 열흘 만에 Git의 핵심을 작성했다. 두 프로젝트 모두 지금 공개 인터넷 대부분, 세계 휴대폰 대부분, 전문 소프트웨어 팀 대다수의 일상 워크플로 아래 자리 잡고 있다.

일화

1991년 8월 25일, 토르발스는 유즈넷 그룹 comp.os.minix에 '(공짜) 운영체제를 만들고 있는데, 그냥 취미이고 gnu처럼 크고 전문적이지는 않을 것'이라고 올렸다. 전 세계 자원봉사자들이 몇 달 안에 기여하기 시작했다. 2005년, 라이선스 분쟁으로 커널 팀이 기존에 쓰던 소스 관리 도구에서 끊기자, 그는 다른 누군가가 만들어 주기를 기다리는 대신 약 열흘 만에 직접 Git의 핵심을 작성했다.

“공개적으로 자유롭게 공유되고 논쟁 속에서 다듬어진 작동하는 코드가, 폐쇄된 위원회의 완벽한 설계를 이긴다.”

리눅스 커널 시작
1991년, 21세
Git 작성 기간
약 10일, 2005년
리눅스 기반 OS를 쓰는 기기
수십억 대, 모든 안드로이드 포함
5
바버라 리스코프의 사진 Kenneth C. Zirkel · CC BY-SA 3.0

바버라 리스코프

미국 · 1939년생

1970년대 중반 MIT에서 실제 데이터 추상화를 갖춘 최초의 언어 중 하나인 CLU를 만들었고, 이후 엔지니어들이 클래스 계층을 설계하는 방식을 지금도 지배하는 치환 원칙을 정식화했다. 2008년에는 여성으로서 두 번째로 튜링상을 받았다.

일화

리스코프는 1968년 스탠퍼드에서 컴퓨터공학 박사 학위를 받았는데, 미국에서 이 학위를 받은 최초의 여성 중 한 명이었다. MIT에서 그녀는 1974~1975년 CLU를 만든 팀을 이끌며 '객체지향 프로그래밍'이라는 말이 흔해지기 몇 년 전에 이미 추상 데이터 타입을 도입했다. 1987년 한 학회 기조연설에서 그녀는 훗날 리스코프 치환 원칙으로 알려지게 될 내용을 밝혔고, 이는 지금 거의 모든 엔지니어가 배우는 SOLID 설계 원칙의 'L'이 되었다.

“하위 타입은 상위 타입이 한 모든 약속을 지켜야 한다. 그러지 않으면 추상화는 더 이상 당신을 보호하지 못한다.”

튜링상
2008년 (여성 2번째)
컴퓨터공학 박사
1968년, 스탠퍼드
CLU 언어 설계
1974–75년, MIT
6
에이다 러브레이스의 초상화 Antoine Claudet · Public domain

에이다 러브레이스

영국 · 1815–1852

1843년 러브레이스는 찰스 배비지가 만들지 못한 해석기관에 관한 이탈리아 논문을 번역하고 주석을 달았으며, 가장 긴 주석에서 그 기계가 일련의 수를 어떻게 계산할지 단계별로 서술했다—아직 존재하지 않는 컴퓨터를 위해 쓰인 작동하는 프로그램이었다.

일화

러브레이스의 노트 G는 루이지 메나브레아의 논문 번역에 딸린 일곱 개 주석 중 가장 길었으며, 베르누이 수를 계산하기 위한 해석기관의 작동 카드를 정리했다. 그녀는 발표 전 계산에서 오류를 찾아내 직접 고쳤다. 그녀는 1852년 서른여섯 살에 암으로 세상을 떠났는데, 자신이 써 놓은 것을 실행할 기계가 만들어지기 수십 년 전이었다. 1980년 미국 국방부가 채택한 프로그래밍 언어 에이다는 그녀의 이름을 딴 것이다.

“프로그램은 그것을 돌릴 기계가 존재하기도 전에 설계되고 디버깅될 수 있다.”

주석 발표
1843년
사망 당시 나이
36세
이름을 딴 언어
에이다, 1980년, 미 국방부
7

프랜시스 앨런

미국 · 1932–2020

거의 평생을 IBM 연구소에서 보내며 컴파일러가 처음 만들어내는 문자 그대로의 비효율적인 코드를 엔지니어들이 실제로 출시하는 빠른 프로그램으로 바꾸는 일을 했고, 현대의 최적화·병렬화 컴파일러의 수학적 토대를 놓았다. 2006년 여성으로서는 처음으로 튜링상을 받았다.

일화

앨런은 뉴욕주 페루의 전기도 수도도 없는 낙농장에서 자랐고, 주로 교사 시절 진 대학 학자금 대출을 갚기 위해 1957년 IBM에 입사했다. 1966년 논문 '프로그램 최적화'는 지금도 컴파일러 강의에서 가르치는 그래프 기반 코드 분석 기법을 소개했다. 이후 그녀는 오래된 포트란 프로그램에서 숨겨진 병렬성을 자동으로 찾아내도록 컴파일러를 가르친 PTRAN 프로젝트를 이끌었고, 1989년 IBM 최초의 여성 펠로우가 되었다.

“사람이 쓰는 프로그램과 기계가 실행해야 할 프로그램은 서로 다른 문제다. 둘 다 풀어라.”

튜링상
2006년 (여성 최초)
IBM 펠로우
1989년 (여성 최초)
IBM 연구소 경력
약 45년
8

마츠모토 유키히로

일본 · 1965년생

1993년부터 기계 효율이 아니라 프로그래머의 행복이라는 하나의 뚜렷한 목표를 세우고 루비 프로그래밍 언어를 설계했으며, 초기 트위터, 깃허브, 쇼피파이와 그것이 촉발한 레일즈 시대의 넓은 스타트업 물결을 뒷받침하는 엔진이 되는 것을 지켜보았다.

일화

마츠모토는 1993년 2월 종이에 루비를 스케치하기 시작해 펄, 스몰토크, 아이펠, 리스프, 에이다의 요소들을 섞었고 1995년 공개적으로 배포했다. 그는 컴퓨터를 위한 최적화가 아니라 프로그래머를 행복하게 만드는 것이 목표였다고 말해 왔고, 루비 커뮤니티는 그 철학을 자신들의 모토인 'Matz는 친절하다, 그러니 우리도 친절하다'로 만들었다—언어의 동작 방식이 아니라 기여자들이 서로를 대하는 방식에 관한 규칙이다.

“기계가 계산할 수 있는 것만이 아니라, 사람이 사용하며 느끼는 방식을 위해 도구를 설계하라.”

루비 최초 공개
1995년
루비 설계 기간
1993년부터
역할
루비 수석 설계자

그래프는 이 목록 1위 기준 상대값입니다.

비교 실험실

이름을 켜고 끄면 — 모든 막대가 선택된 그룹의 1위를 기준으로 다시 계산된다.

5 / 8

논쟁

1968년 NATO 회의가 '소프트웨어 엔지니어링'이라는 용어를 '만들어냈는지'는 논쟁거리다. 마거릿 해밀턴을 비롯한 이들은 가르미슈 회의 이전부터 엔지니어링 업계에서 이미 그와 비슷한 표현이 비공식적으로 쓰이고 있었으며, 회의는 이를 발명한 것이 아니라 대중화했을 뿐이라고 말한다.

리눅스를 둘러싼 명명과 공로 배분에도 오래된 논쟁이 있다. 리처드 스톨먼과 자유소프트웨어재단은 토르발스의 커널보다 앞서 존재한 GNU 프로젝트가 주변 도구 체계의 상당 부분을 제공했으므로 이 운영체제를 'GNU/리눅스'라 불러야 한다고 주장한다.

비슷한 직업

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

계속 탐색하기

계속 탐색하기

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

🤖

AI 연구원

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

AI 내성 50
🛰️

항공우주공학자

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

AI 내성 74
🌉

토목공학자

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

AI 내성 72
🔌

반도체 엔지니어

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

AI 내성 60
🦾

로봇공학 엔지니어

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

AI 내성 65
🔐

사이버보안 전문가

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

AI 내성 63
📦

MLOps 엔지니어

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

AI 내성 54
🌬️

재생에너지 엔지니어

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

AI 내성 72