프로그래밍의 세계를 여행하는 프.알.못을 위한 안내서 — #2.파이썬, 왜 쉽다고 하나요?

Fastcampus Online
fastcampus.online
Published in
7 min readJul 15, 2019

프로그래밍의 세계를 여행하는 프.알.못을 위한 안내서 2

패스트캠퍼스 ONLINE

파이썬 프로그래밍을 찾아 떠나는 여행 GO GO

저 멀리 컴퓨터와는 동 떨어진 은하계 서쪽 소용돌이의 끝, 지도에는 나와 있지 않은 그 변두리 지역에 아무도 주목하지 않는 작은 프알못 행성이 있다. (…) 이 프알못 행성에는 문제가 하나 있었는데, 이 행성에 사는 사람들 대다수가 대부분의 시간동안 불행했다는 것이다. 이 문제에 대해 수많은 해결책이 제시되었는데, 이 해결책들 대부분은 주로 ‘지금은 파이썬이 핫하다느니’ ‘그래도 아직까지는 Java라느니’와 같은 의미 없는 논쟁과 관련된 것들이었다. 하지만 그건 좀 이상한 일이다. 왜냐하면 대체로 볼 때, 이 행성에 사는 사람들이 불행한 이유는 그런 논쟁에 동의하고 말고와는 크게 상관이 없었기 때문이다.

- <프로그래밍의 세계를 여행하는 프알못을 위한 안내서>

파이썬은 왜 쉽다고 하는 걸까?

프로그래밍 공부 커뮤니티에는 일주일에 몇 번씩 이런 질문이 올라오는 것 같습니다. “프로그래밍 입문자인데 파이썬으로 공부해도 될까요?” “파이썬을 독학해보고 싶은데 시중에 나와 있는 책 중에 괜찮은 거 하나 추천해주세요!” 아마 프로그래밍이 생소한 프알못이라도 ‘파이썬 = 쉽다’ 라는 말은 한 번쯤은 들어봤을 겁니다. 실제로 파이썬은 다른 프로그래밍 언어에 비해 문법이 간결하여 입문자들에게 인기가 많은 언어인 동시에, 2019년 개발자들이 꼽은 ‘가장 배우고 싶은 언어’ 1위에 등극할 만큼 실무자들에게도 사랑받는 언어라고 해요. 그런데 600개가 넘는 현존하는 프로그래밍 언어 중에 하필 왜 파이썬이 가장 ‘쉽다’라고 회자되는 걸까요? 초보자도 쉽게 입문하는 프로그래밍 언어를 개발자들까지 좋아하는 이유는 또 무엇이고요? 오늘은 정말 핫한 프로그래밍 언어, 파이썬을 쉽다고 말하는 이유에 관해 조금 더 자세히 알아보려 합니다.

(이미지 출처 ©Hitesh Choudhary)

사람의 언어에 가까운 프로그래밍 언어, 파이썬

프로그래밍을 한다는 건 어찌보면 외국어를 번역하는 것과 비슷합니다. 컴퓨터는 인간이 아니기 때문에, 컴퓨터에게 일을 시키려면 인간의 언어가 아닌 컴퓨터의 언어를 사용할 줄 알아야 하거든요. 그래서 우리는 프로그래밍 언어라는 걸 배워서 우리가 컴퓨터에게 동작하도록 만들고 싶은 일을 코드의 형태로 적어 컴퓨터에게 알려줍니다. 문제는 여기서 활용되는 프로그래밍 언어에도 ‘레벨(Level)’이 있다는 점입니다. 컴퓨터는 기본적으로 0과 1로 구성된다는 말을 들어보신 적 있을 겁니다. 하지만 우리가 프로그래밍 언어를 배워 코드를 작성할 때 0과 1만을 쓰지는 않죠. 프로그래밍 언어에서의 ‘레벨’이란 컴퓨터가 사용하는 언어에 더 가깝느냐, 아니면 인간이 사용하는 언어에 더 가깝느냐에 따라 나뉩니다. 그래서 0과 1로 구성된 기계어에 더 가까울수록 우리는 ‘저급언어(어셈블리어)’라고 하고, 인간이 이해할 수 있는 수준의 언어에 더 가까울수록 우리는 해당 프로그래밍 언어를 ‘고급언어’로 분류하고 있어요. 그중 파이썬은 인간이 이해할 수 있는 언어에 더 가까운 문법과 체계로 구성되어 있기 때문에 ‘고급언어’, 즉, 배우기 쉬운 언어라고 불리는 것입니다. 실제로 파이썬은 교육용으로 만들어진 프로그래밍 언어로, 간소한 문법은 물론이고 활용되는 플랫폼도 다양한 편이라 사용자층이 굉장히 넓다고 해요.

기계어에 더 가까울수록 우리는 ‘저급언어(어셈블리어)’라고 합니다.

(이미지 출처 : https://www.pinterest.co.kr/pin/438115869997197708/)

코딩이 비교적 간소한 객체지향 언어, 파이썬

이러한 파이썬은 절차지향 프로그래밍 언어의 대표격인 C언어와 많이 비교되곤 합니다. 자칫 어려워보이는 ‘절차지향’‘객체지향’ 개념은 수많은 프로그래밍 언어들을 분류하는 가장 큰 기준인데요. 쉽게 이해하기 위헤 ‘자전거를 만드는 과정’에 비유해보겠습니다. 자전거를 만드는 방법은 사람마다 각기 다를 수 있습니다. 절차지향적인 프로그래밍 언어란 자전거를 완성하기 위해 필요한 각각의 부품에 순서와 중요도를 매겨 제작하는 걸 말합니다. 자전거의 부품 중 ‘체인’을 먼저 만들고, 그 다음에는 몸체를 구성하는 ‘프레임’을 만들고, 이 과정이 모두 끝난 뒤에 ‘핸들’이나 ‘바퀴’를 조립하는 식이죠. 절차지향적인 프로그래밍에서 각 부품을 제작하고 조립하는 순서는 절대적으로 지켜야 하는 것입니다.

반면, 객체지향적으로 프로그래밍을 한다는 건, 자전거를 이루는 다양한 부품을 순서에 상관없이 독립적으로 제작하고 조립하는 것이 가능하다는 걸 의미합니다. 꼭 체인부터 만들지 않아도 되는 것이죠. 자전거를 완성하기 위한 절대적인 순서란 존재하지 않고, 독립적인 부품들이 각자의 기능만 제대로 발휘하는 데에 집중합니다. 결국, 파이썬을 활용하면 하나의 자전거를 완성하기 위해 체인부터 시작할 필요가 없습니다. 이러한 이유로 객체지향 프로그래밍 언어인 파이썬은 절차지향 프로그래밍 언어에 비해 한층 간결한 코딩을 가능하게끔 한다는 점에서 실무자들에게도 인기가 높습니다. 각 부품을 독립적으로 개발할 수 있으니, 프로그램에 문제가 생겼을 때 유지/보수도 훨씬 쉽습니다. 문제가 생긴 부품만 따로 꺼내서 손 보면 되니까요.

객체지향적 프로그래밍에서는 절대적인 순서가 아닌, 독립된 부품들이 각각의 기능을 다 하는데 집중합니다.

(이미지 출처 ©Robert Bye)

+ 사실 덧붙이자면, 절대적인 순서에 맞춰 자전거를 만드는 절차지향적인 프로그래밍이 컴퓨터적인 사고방식에는 더 가깝습니다. 때문에 파이썬은 절차지향 프로그래밍 언어인 C언어에 비해서는 프로그램의 동작 속도가 느리다는 약간의(?) 단점이 있죠. 그럼에도 파이썬은 C언어에서 파생되었기 때문에, 절차지향 언어인 C와의 호환성 또한 높은 편입니다. 결국, 파이썬은 객체지향 언어로서 가진 한계까지 효과적으로 보완할 수 있는 언어이기에 실무에서 다양하게 활용되고 있는 것이지요.

이렇게 좋은 파이썬이 어렵다면, 내가 이상한 걸까요?

그래서인지 초보자에게 프로그래밍 입문 언어로 파이썬을 권장하는 수업들이 시중에 우후죽순 생겨나고 있는 것도 사실입니다. 하지만 대세감을 따라 파이썬을 공부했다가 금방 중도에 포기하는 초보자들도 적지는 않습니다. 그렇다면 남들에게는 쉬운 파이썬이 내게만 어려운 걸까요? 일단 결론부터 말씀드리자면, 프로그래밍 입문자에게 ‘쉬운 프로그래밍 언어’란 없습니다. 복잡도의 차이만 있을 뿐, 입문자에게는 프로그래밍을 위한 컴퓨터적인 사고방식을 정립하는 것부터 어려운 일이니까요. 게다가 파이썬 문법만 익히다가 끝나버리는 수업도 많은 편입니다. 하지만 우리가 영어 문법을 잘 안다고 해서 영어를 잘 한다고 말하지 않듯, 프로그래밍 언어인 파이썬을 공부하는 것 또한 문법만 학습해서는 안다고 말할 수 없겠죠.

(이미지 출처 ©Mimi Thian)

때문에 저희는 프로그래밍 언어 학습의 방향성과 목적을 명확히 가진 채, 파이썬으로 입문해야 초보자도 중도에 지치지 않고 공부를 계속할 수 있다고 언제나 말씀드립니다.

파이썬을 공부하고 싶은 프로그래밍 초보자라면, 또는 이미 파이썬 수업을 들어보았지만 중도에 포기했던 분들이라면 [파이썬 웹 개발 올인원 패키지 ONLINE]을 추천합니다. 파이썬 프로그램 설치부터 시작해 입문자도 0부터 시작할 수 있으며, 문법 학습에 그치지 않고 실제 서비스가 가능한 웹을 직접 따라 만들어보는 다양한 프로젝트 실습을 함께 하며 실전 응용력까지 길러드리는 수업입니다. 간결한 문법와 생산성까지 높아 개발 실무에서 폭넓게 활용되는 파이썬에 입문하고 싶다면, 지금 바로 아래에서 자세한 내용을 확인해보세요!

패스트캠퍼스 파이썬 웹 개발 올인원 패키지

--

--

Fastcampus Online
fastcampus.online

대한민국 직장인 실무교육 1위 패스트캠퍼스 온라인