알고 보면 더 재밌는, 기술 스택 이름 비하인드

알고 보면 더 재밌는, 기술 스택 이름 비하인드

C언어는 왜 C언어지? 
기술 스택 이름에 숨은 TMI 📚

#Python #C/C++ #Java #JavaScript #PHP

여러분, 혹시 TMI(Too Much Information) 좋아하세요? 
인프런 팀 안에도 TMI를 좋아하시는 분들이 무척 많은데요. ㅎㅎ

어느 날, 인프런 검색어 관련 데이터를 살펴보다 문득 궁금해졌습니다.
‘파이썬은 왜 파이썬일까?’ ‘C언어는 왜 A도, B도 아닌 C언어지?’
당연하게 부르고 있지만 막상 어디서 왔는지 모를 여러 이름들의 정체가요. 

서른 여섯번째 <주간 인프런>에서는 인프런에서 인기를 끌고 있는 여러 가지 프로그래밍 언어 및 기술 스택의 이름이 어떻게 지어졌는지를 살펴봅니다.

프로그래밍 언어부터 개발을 도와주는 유용한 프레임워크와 라이브러리까지, 
알고 보면 더 재미있는 이름의 비밀을 파헤쳐 보려고 해요. 함께 살펴보실까요?

목차: 어떤 기술을 살펴볼까요?
  • Python(파이썬)
  • C(C언어)
  • JAVA(자바)
  • JavaScript(자바스크립트)
  • PHP
  • Kotlin(코틀린)
  • Swift(스위프트)
  • Angular(앵귤러) vs. React(리액트) vs. 뷰제이에스(Vue.js)
  • Spring(스프링)
  • Django(장고)
  • Node.js(노드제이에스)
  • Pandas(판다스)
  • Docker(도커) & Kubernetes(쿠버네티스)

주간 인프런 #36 🌿

파이썬부터 쿠버네티스까지, 
알고 보면 훨씬 재미있고 흥미로운 
인프런 인기 개발 스택 이름 비하인드!

인생은 짧으니까, 파이썬을 쓰세요 
Python(파이썬)

파이썬은 웹 개발부터 데이터 사이언스, 게임 개발, 시스템 프로그래밍 등 다방면에 쓰이는 프로그래밍 언어인데요. 쉽고 간결한 문법 덕에 초보자가 익히기 좋은 언어로 꼽히면서 인기를 끌고 있어요. ("Life is short, You need Python"!) 

파이썬은 영어로 비단뱀이라는 뜻입니다. 그래서 로고도 그리스 신화에 나오는 비단뱀 괴물, 피톤 모양을 하고 있죠. 하지만 파이썬이라는 이름 자체는 비단뱀이 아니라 파이썬을 만든 프로그래머 귀도 반 로섬(Guido van Rossum)이 좋아하던 영국의 전설적인 코미디 그룹 몬티 파이튼(Monty Python) 에서 따왔다고 합니다. 몬티 파이튼의 코미디 스크립트를 접목한 파이썬 머신러닝 언어 모델 프로젝트도 찾아볼 수 있어요. (관련 링크)

몬티 파이튼의 데뷔작, 〈몬티 파이튼의 비행 서커스〉(1969, BBC)


1972년부터 현역! 전통의 강자  
C

1972년 탄생한 C 언어는 오늘날 활발하게 쓰이는 프로그래밍 언어 중에서도 특히 오랜 역사를 지닌 언어로 손꼽히고 있습니다. 그만큼 프로그래밍이 낯선 분들이더라도 한번쯤 이름을 들어봤을 만큼 유명하고요.

그런데 왜 A도 B도 아닌 C 언어일까요? 바로 C 언어의 전신이 B 언어라는 데서 출발합니다. 1960년대 중반까지만 해도 유닉스(Unix) 개발 환경은 고급 언어를 지원하지 않아 어셈블리 언어로만 개발해야 하는 어려움이 있었다고 해요. 이에 프로그래머 켄 톰슨(Kenneth Lane Thompson)은 BCPL(Basic Combined Programming Language)라는 언어를 바탕으로 'B'라는 언어를 개발합니다. B라는 이름은 그가 소속되어 있던 벨(Bell) 연구소에서 따왔죠.

그러다 1970년대에 접어들어 같은 벨 연구소 소속의 데니스 리치(Dennis MacAlistair Ritchie)는 당시 새로 출시된 유닉스 기반 컴퓨터 PDP-11을 제어하기 위해 B언어를 개선한 새로운 언어, C를 만들어내게 됩니다.

C라는 이름을 둘러싼 몇 가지 이야기가 더 있는데요. 케임브리지(Cambridge) 대학의 C라는 이야기도 있고, 케임브리지 대학과 런던 대학이 협력해서 공동(Combined)으로 만들어서 C라는 말도 있어요. 한편, BCPL의 전신인 CPL을 개발한 크리스토퍼 스트래치(Chrisopher S. Strachey)의 이름에서 따왔다는 이야기도 있습니다.

개발 단계에서 C#의 원래 이름은 Cool이었다고 합니다. 😅

C에서 파생된 언어인 C++C#의 이름은 좀 더 유래가 단순하죠. C언어에서 변수에 1을 더하는 증가 연산자인 ++에서 따온 이름이 바로 C++라고 해요. 즉 C의 확장판이라는 뜻에서 C++이 된 거죠. C# 역시 반음을 올린다는 음악의 샤프(Sharp, #) 혹은 ++를 두 번 쌓은 ++++에서 따왔다고 합니다.


커피만큼 핫한 인기쟁이 언어 
JAVA(자바) 

한국 백엔드 웹 개발 생태계에서 빼놓을 수 없는 자바! 그만큼 자바는 채용 시장에서 수요도 많고, 인기도 높은 언어입니다.

오늘날 자바는 웹 개발 분야에서 가장 활발하게 쓰이지만, 원래는 가전제품에 쓰일 임베디드 시스템 개발 언어로 고안되었는데요. 자바의 개발사 썬 마이크로시스템즈(Sun Microsystems.)는 C++로 프로젝트를 진행하려다 여러 가지 사정으로 새로운 언어를 만들게 되었다고 합니다. 자바를 설계한 제임스 고슬링(James Gosling)은 맨 처음 사무실 바깥에 서 있는 떡갈나무를 보고 Oak(오크)라고 이름붙이려고 했지만, 이미 해당 상표를 쓰고 있던 회사가 있어서 회의 끝에 Silk, Lylics, DNA 등의 후보를 제치고 자바로 이름을 바꾸게 되었어요. (관련 링크)

이 자바라는 이름에는 여러 가지 설이 있는데요. 썬 마이크로시스템즈 개발자들이 즐겨 마시던 인도네시아 자바 산(産) 커피에서 유래했다고도 하고, 개발자들의 이름 머리글자에서 따왔다는 설도 있습니다. 어찌됐건 오늘날 우리가 사용하고 있는 자바는 김이 모락모락 피어오르는 커피잔 모양을 한 로고로 널리 알려져 있죠.

개발자라면 한 번쯤 자바 커피를 마셔보는 것도 좋겠네요!


한 끝 차이라구? 자바랑은 달라요
JavaScript(자바스크립트)

웹 프론트엔드 개발을 막 배우기 시작할 땐 HTML, CSS 그리고 자바스크립트를 배운다고들 하죠? 동적인 요소가 들어가는 웹 페이지라면 필수적으로 쓰이는 언어이기 때문입니다. 2000년대 후반에 접어들어서는 Node.js의 등장으로 서버 개발에도 활발하게 쓰이는 언어로 자리잡았죠. 

햄과 햄스터, 인도와 인도네시아, 자바와 자바스크립트...

자바와 자바스크립트는 햄과 햄스터 같은 관계라는 농담이 있는데요. 이름은 비슷하지만 그다지 유사한 점이 없다는 뜻에서 많이들 빗대는 표현이에요. 둘 다 객체 지향 언어라는 점은 같지만 자바는 정적 언어, 자바스크립트는 동적 언어인 만큼 하나하나 뜯어보면 많은 차이점이 있습니다.

본래 개발 단계에서 자바스크립트의 이름은 모카(Mocha)였는데요. 그러다 라이브스크립트(LiveScript)로 이름이 바뀌더니 3번째 베타 출시 때 비로소 자바스크립트가 되었다고 해요. 자바를 보완하는 스크립팅 언어로 개발되어서, 혹은 자바의 인기에 마케팅 차원에서 편승하거나 활발한 자바 생태계에 기대기 위해 자바스크립트가 되었다는 설이 가장 많은 지지를 받고 있습니다.


전세계 웹페이지를 이끄는 큰손 
PHP

PHP는 대표적인 서버사이드 스크립트 언어로 꼽히는 언어입니다. 진입 장벽이 비교적 낮고 생산성이 높은 만큼 전세계 웹페이지에 활발하게 쓰이는 언어죠. 워드프레스(Wordpress), XpressEngine, 제로보드 등이 PHP로 이루어져 있어요. 한편 모던 PHP 이전의 레거시 PHP에 대해 꾸준히 성능 및 보안 문제가 지적되면서 개발계 논쟁의 중심처럼 여겨지기도 하지만, PHP가 끼치는 영향력은 절대 무시할 수가 없죠. 

19년 초까지만 해도 워드프레스 기반의 서비스로 운영되고 있었던 만큼, 인프런 역사에서도 PHP는 빼놓을 수 없어요. (기억하고 계신 분은 손!)

본래 PHP는 Personal Home Page Tools(개인 홈페이지 도구)의 약어였는데요, 지금은 공식적으로 PHP: Hypertext Preprocessor(PHP: 하이퍼텍스트 전처리기)라는 표기를 따르고 있다고 합니다.


구글이 선택한 바로 그 언어 
Kotlin(코틀린)

IntelliJ IDEA를 개발한 것으로 유명한 JetBrain 사에서 공개한 언어, 코틀린은 최근 제일 가파르게 부상하는 개발 언어 중 하나입니다. 

지난 2017년, 구글이 코틀린을 안드로이드 네이티브 앱을 개발하는 공식 언어로 지정하면서 점차 자바를 대체해 나갈 거란 기대가 높아지고 있죠. 자바와 비슷한 객체지향 언어이지만, 보다 간결한 문법으로 이루어져 있고 자바에서 잦은 널 포인터(NullPointer) 오류를 피할 수 있다는 장점이 있기 때문인데요.

Google I/O 2019에서는 코틀린을 안드로이드 개발의 메인 언어로 사용하겠다는 발표가 이루어지기도 했고요.

그래서일까요? 코틀린이라는 이름은 JetBrain 사의 R&D 센터가 위치한 상트페테르부르크 근처의 코틀린(Ко́тлин) 섬에서 따왔다고 합니다. 자바가 인도네시아에 위치한 섬, 자바(Java/Jawa)에서 나는 커피에서 따왔다는 걸 생각하면 의미심장하게 느껴지는 이름이죠.


애플의 미래를 좌우할 거예요 
Swift(스위프트)

애플이 개발한 프로그래밍 언어 스위프트! 2014년 WWDC(애플 세계 개발자 회의)에서 처음 공개된 스위프트는 기존의 iOS/macOS용 개발 언어인 Objective-C를 계승하고 보완할 용도로 고안되었습니다. 

스위프트는 Swift(재빠른, 칼새)라는 이름답게 로고도 칼새 모양으로 되어 있고, 애플에서도 빠르고 효율적인 언어라는 점을 강조하고 있죠. 앞으로 애플의 미래를 이끌 Swift의 행보가 어떨지를 지켜보는 것도 재미있겠네요!

애플은 스위프트에 대해 손쉽고, 빠르게 실행되고, 직관적인 언어라는 점을 강조하고 있어요. (클릭)


프론트엔드 개발 3대장
Angular(앵귤러) vs. React(리액트) vs. Vue.js(뷰)

자바스크립트를 이용한 프론트엔드 개발에는 (순수 자바스크립트로 개발하는 경우도 있지만) 라이브러리/프레임워크가 쓰이는 경우가 많은데요. 리액트, 뷰, 앵귤러, 스벨트 등 다양한 프레임워크/라이브러리 중에서 어떤 게 제일 뛰어난지가 FE계의 뜨거운 감자이기도 해요. 

먼저 구글에서 운용 중인 앵귤러는 네 가지 프레임워크/라이브러리 중 가장 오래된 프레임워크입니다. 공식 페이지에 따르면 앵귤러라는 이름은 HTML의 꺾쇠 기호(Angle Brackets, <>)에서 따왔다고 하는데요, 애플리케이션에 대한 HTML의 범위를 확장하기 위한 대안으로 등장한 만큼 잘 어울리는 이름이 아닐까 합니다. (관련 링크)

한편 메타(Meta, 구 Facebook)에서 개발해 2010년대 중반부터 대세로 떠오른 라이브러리 리액트가 있죠. 초기 개발 단계에서 리액트의 본래 이름은 FBolt였다고 합니다. 이 API가 모든 상태 및 속성에 반응(React)하고 여러 형식의 데이터와 함께 작동한다는 의미에서 리액트라는 이름을 새롭게 붙였다고 해요. (관련 링크)

2010년대 중반 등장해 리액트의 자리를 추격하고 있는 뷰(Vue.js)의 이름은 좀 더 직관적인데요. 뷰를 만든 개발자 에반 유(Evan You)에 따르면 사용자 인터페이스를 만들기 위한 프로그레시브 뷰 레이어에 초점을 맞췄다는 점에서 View라는 이름을 붙이려고 했다가, 좀 더 특별하게 느껴지도록 Vue라는 프랑스어 단어를 따왔다고 합니다. (관련 링크)


자바 서버 개발, 차디찬 겨울은 그만 
Spring(스프링)

자바/코틀린 기반의 웹 프레임워크 스프링은 전세계에서 가장 인기있는 백엔드 프레임워크 중 하나예요. 한국에서는 전자정부프레임워크(eGovFrame)의 기반 기술인 만큼 국내 개발 진영에서는 특히나 중요하게 다뤄지고 있어요. 

오늘날 스프링의 핵심 개념이 이 책, <Expert One-on-One J2EE Design and Development>(2002)에서 출발합니다.

스프링의 기원은 2002년 로드 존슨(Rod Johnson)이 쓴 〈Expert One-on-One J2EE Design and Development〉라는 책에 실린 3만여 줄의 예제 코드에서 출발합니다. BeanFactory, ApplicationContext, POJO, IoC(제어의 역전), DI(의존성 주입) 등 오늘날 스프링의 핵심이라고 불리는 개념들이 여기서 처음 등장했죠. 이후 로드 존슨에게 유겐 휠러(Juergen Hoeller)와 함께 오픈소스 프로젝트를 제안한 얀 카로프(Yann Caroff)가 스프링이라는 이름을 붙였습니다. 기존의 Java EE, 엔터프라이즈 프레임워크의 시대를 지나 새로운 봄(Spring)이 왔다는 의미라고 해요. (관련 링크)


여기서 D는 묵음이에요 
Django(장고)

파이썬 풀스택 웹 프레임워크, 장고는 파이썬 기반 웹 프레임워크 중에 가장 인기있는 프레임워크입니다. 인스타그램(Instagram), 스포티파이(Spotify), 핀터레스트(Pinterest) 등에 장고가 사용되었다고 하죠.

장고가 만들어진 계기는 조금 독특한데요. 로렌스 저널-월드(Lawrence Journal-World)라는 신문사의 인턴 개발자였던 에이드리안 홀로바티(Adrian Holovaty)와 사이먼 윌리슨(Simon Willision)이 신문사 웹사이트를 파이썬으로 개발하는 과정에서 만들게 되었다고 해요. 처음부터 웹 프레임워크를 구축할 계획은 없었고, 초기 단계에서는 그냥 CMS를 개발한다고 생각했다고 하죠. 장고라는 이름은 에이드리안 홀로바티가 좋아하는 재즈 기타리스트 장고 라인하르트(Django Reinhardt)에게서 따왔다고 합니다. (관련 링크)

2015년, 로렌스 저널 월드에서는 장고 10주년 기념 기사를 내기도 했어요. (클릭)


자바엔 스프링, 파이썬엔 장고... 그럼 JS엔?
Node.js(노드제이에스)

프론트엔드 개발의 필수 요소처럼 느껴지는 자바스크립트로도 백엔드 개발을 할 수 있어요. 바로 서버사이드 개발을 위한 자바스크립트 런타임, 노드js를 통해서죠. (인프런 백엔드도 Node.js로 구축되어 있어요!)

노드js를 처음 개발한 라이언 달(Ryan Dahl)에 따르면, 미국의 사진 공유 커뮤니티 플리커(Flickr.com)의 파일 업로드 진행 표시줄을 볼 때 파일이 얼마나 업로드되었는지 알기 위해서는 서버에 쿼리를 전송해야 한다는 점을 보고 조금 더 쉬운 방법을 찾다가 고안하게 되었다고 합니다. 본래 라이언 달은 이 프로젝트를 web.js라고 불렀지만, 이 프로젝트가 초기에 구상했던 웹 서버 라이브러리를 넘어 프레임워크 수준으로 확장되면서 Node.js라는 이름으로 바꾸게 되었어요. (관련 링크)

흥미로운 사실 하나! 라이언 달이 기존 Node.js의 단점을 보완하기 위해 새롭게 출시한 Deno(디노)도 있어요. 디노라는 이름은 노드의 철자를 재배열해 붙인 것이라고 합니다.

Deno는 2020년 5월 처음 버전 1.0이 출시되었어요.


넘쳐나는 데이터 분석을 도와줄 
Pandas(판다스)

데이터 분석에 관심을 가지고 계신 분들이라면 한번쯤 R이나 파이썬 같은 프로그래밍 언어를 이용하는 데도 눈길을 보내셨을 텐데요. 대량의 데이터를 빠르게 처리할 수 있고, 머신러닝/딥러닝 모델링을 하거나 데이터를 시각화하기도 좋다는 장점이 있죠.

특히 인프런에서도 인기가 많은 판다스는 파이썬으로 데이터를 다룰 때 빼놓을 수 없을 만큼 중요한 패키지입니다. 데이터를 엑셀에서 볼 수 있는 표처럼 행/열 형태의 표로 다룰 수 있게 해주고, 계산이나 시각화까지 지원해 주죠. 판다스(Pandas)라는 이름 또한 파이썬 데이터 분석 라이브러리(Python Data Analysis Library) 그리고 패널 데이터(Panal Data)의 약자에서 따왔다고 해요. 판다 한 마리가 생각나는 무척 귀여운 이름이죠! 


서비스 배포/관리의 끝판왕 
Docker(도커) & Kubernetes(쿠버네티스)

데브옵스(DevOps) 개념의 등장으로 개발 주기가 짧아지면서 더 잦은 배포, 더 복잡한 관리가 필요하게 되었는데요. 데브옵스를 위한 핵심 도구로 꼽히는 것 중 하나가 바로 도커와 쿠버네티스입니다. 

도커는 컨테이너 기반의 오픈소스 가상화 플랫폼으로, 애플리케이션 구동을 위한 여러 기능을 컨테이너로 만들어서 실행하는 기술이에요. 도커 로고를 보면 고래 위에 여러 개의 컨테이너가 얹혀 있는 것을 볼 수 있는데요, Docker 즉 항만 노동자라는 단어의 뜻대로 부둣가에서 컨테이너를 나르는 일꾼 역할을 해요. 

도커 공식 페이지에서 귀여운 일러스트도 확인할 수 있어요. (클릭)

한편 쿠버네티스는 여러 개의 컨테이너를 서비스 단위로 관리해 주는 솔루션입니다. 로고가 꼭 배의 방향키처럼 생겼죠? 쿠버네티스의 명칭은 그리스어로 조타수(helmsman)를 뜻하는 쿠베르네테스(κυβερνήτης)에서 왔다고 해요. 서비스가 무사히 항해할 수 있도록 여러 컨테이너의 방향을 이끌고 관리하는 조타수 역할을 한다고 상상하면 조금 더 이해하기 쉬울 것 같네요! (관련 링크)

여러분께서 좋아하는
개발 스택 이름 비화가 있나요?

소개하고 싶은 스택 이름의 비하인드가 있다면
댓글을 통해 많은 이야기 남겨주세요 😊


이번 [주간 인프런] 어떠셨나요?
솔직한 의견을 들려주세요!

유익해요 | 아쉬워요

지난 [주간 인프런] 이 궁금하다면? (클릭)

댓글 1

댓글을 작성해보세요.

  • Caesiumy
    Caesiumy

    Deno의 발음은 '디노' 파랑 '데노' 파로 갈리더라구요ㅋㅋㅋㅋ


    솔 (Sol)

    맞아요 😆 로고가 공룡 모양이라 그런지, 저는 디노의 손을 들어주고 싶네요 ㅋㅋㅋ