글로벌 칼럼 | 소프트웨어 개발자로서 고마운 사람과 기술

3 hours ago 3

내일이면 미국은 추수감사절을 맞이한다. 그래서 오늘은 소프트웨어 개발 업계에서 가장 고마워하는 사람과 기술을 기억하기에 좋은 시간인 것 같다.
 

ⓒ Getty Images Bank

앨런 튜링과 컴퓨터 프로그래밍

앨런 튜링이 세상에 끼친 영향을 아는 사람은 많지 않은 것 같다. 튜링은 다양한 알고리즘과 입력을 기반으로 모든 종류의 계산을 수행할 수 있는 범용 컴퓨터를 구상했다. 그는 컴퓨터 프로그래밍을 꿈꿨다. 나치 암호를 해독해 제2차 세계대전에서 승리하는 데 기여한 그를 세상이 그렇게 홀대했다는 것은 우리의 영원한 부끄러움이다. “고마워요, 튜링 박사님.”
 

앤더스 헤일스버그와 터보 파스칼, 델파이, C#, 타입스크립트

필자는 BASIC으로 시작했지만, 소프트웨어 개발자로서의 경력을 쌓게 해준 것은 터보 파스칼 5.5였다. 앤더스 헤일스버그는 누구나 부담 없이 사용할 수 있는 제품(파스칼 컴파일러 및 IDE)을 판매하기 위해 필립 칸과 힘을 합쳐 소프트웨어 개발 도구의 새로운 길을 개척하면서 터보 파스칼을 직접 만들었다. 헤일스버그는 이후 델파이(Delphi), C#, 타입스크립트를 만들었다. 나쁘지 않은 이력서다. “고마워요, 앤더스.”
 

빌 게이츠, 스티브 잡스, 스티브 워즈니악과 개인용 컴퓨터

개인용 컴퓨터 시대를 여는 데 누가 가장 큰 역할을 했다고 말하기는 어렵지만, 빌 게이츠, 스티브 잡스, 스티브 워즈니악 모두 중요한 역할을 했다. 세 사람 모두 오늘날 세상을 지배하는 수많은 비즈니스와 제품을 탄생시킨 제품과 회사를 만들었다. 필자는 잡스의 열렬한 팬은 아니지만, 잡스가 개인용 컴퓨터와 스마트폰이라는 두 가지 혁명을 이끌었다는 점은 인정하지 않을 수 없다. 
 

팀 버너스 리와 HTTP/S

월드와이드웹이 얼마나 단순한지 아는 사람은 많지 않은 것 같다. 한 컴퓨터가 “이봐, 문자 요청이 있어”라고 말하면 다른 컴퓨터가 “알았어, 여기 문자가 왔어”라고 응답하는 식이죠. 물론 이는 지나치게 단순화시킨 것이지만, 크게 틀린 말은 아니다. HTTP는 인터넷에서 일어나는 일의 95%의 기초가 되는 기술이며, 그 보잘것없는 시작부터 지금까지 가능하게 해준 모든 것에 대해 감사하게 생각한다. 
 

객체 지향 프로그래밍

머릿속에서 무언가가 찰칵하면서 마침내 객체 지향 프로그래밍(OOP)의 개념을 이해한 순간을 결코 잊지 못할 것이다. 정말 환상적이었다. OOP는 최근 몇 년 동안 약간의 공격을 받았지만, 오늘날 우리가 코드로 하는 거의 모든 일의 기반이 되고 있다. 소프트웨어를 생각하고 설계하는 데 있어 아름다운 모델이다. 올레 요한 달, 크리스텐 니가드, 앨런 케이 등 많은 사람에게 감사한다.
 

비주얼 스튜디오 코드

거의 모든 언어와 개발에 누구나 사용하는 IDE? 무료로 사용할 수 있고 활발하게 업데이트되는가? 수천 개의 멋진 확장 기능이 있는가? 크로스 플랫폼? 비주얼 스튜디오 코드에서 마음에 들지 않는 점이 있을까? 게다가 필자가 가장 좋아하는 언어인 타입스크립트로 작성되어 있다. 
 

GPS

요즘 아이들은 모르는 목적지로 가기 전에 전화를 걸어 길을 물어본다는 것을 상상하기 어려울 것이다. 혹시 '주유소'에 차를 세우고 길을 물어본 기억이 있는가? GPS는 모든 종류의 매핑 및 내비게이션 애플리케이션(배달, 차량 공유 등)을 가능하게 해 준다. GPS가 없었다면 상상도 하지 못했을 것이다. “고마워요, 미국 납세자 여러분.”
 

의존성 주입

25년 전으로 돌아가 개발자들에게 알려주고 싶은 개발 원칙을 하나만 꼽으라면 의존성 주입(Dependency Injection)일 것이다. 이 얼마나 훌륭하고 아름다운 원리인가! 필자는 이 원리를 너무 좋아해서 책 한 권을 썼을 정도다. 의존성 주입을 사용해 코드를 분리하지 않고 있다면, 지금 당장 시작해야 한다. “고마워요, 마틴 파울러와 엉클 밥 마틴.”
 

REST

한 컴퓨터가 다른 컴퓨터의 작업을 수행하도록 하는 것은 오랫동안 프로그래머들의 성배였다. GRPC, CORBA, DCOM 등 모든 종류의 기술을 시도해 봤다. 네 가지 기본 HTTP 작업이 데이터베이스의 CRUD(Create, Read, Update, Delete) 시스템과 일치한다는 사실을 알아내는 데는 특별한 천재성이 필요했다. “고마워요, 로이 필딩.”
 

아버지와 아버지의 IBM 5100

마지막으로 지극히 개인적인 이야기를 하자면, 필자의 아버지는 심장 전문의이자 국제전산심장학회의 초기 회원이었다. 아버지의 병원에는 최초의 '휴대용 컴퓨터' 중 하나인 IBM 5100이 있었다. (“휴대 가능”이라는 표현이 더 어울릴 것 같다.) 아버지는 주말에 필자가 사용할 수 있도록 집으로 가져다주었다. 필자는 돈을 모아 나만의 데이터 저장 테이프를 구입했고, 아주 초기 비디오 게임인 스타트렉의 텍스트 기반 버전을 이 컴퓨터에서 실행할 수 있도록 변환했다. 그 작은 화면에서 게임을 작동시키는 것은 인생에서 가장 짜릿한 경험이었다. 광자 어뢰가 화면을 가로질러 움직이도록 수정한 것은 획기적인 순간이었고, 필자가 소프트웨어 개발자의 길을 걷게 해준 계기가 됐다. “고마워요, 아버지.”
editor@itworld.co.kr

Read Entire Article