외국인과 대화하려면 그 나라 말을 배워야 하듯, 컴퓨터에게 일을 시키려면 컴퓨터와의 대화를 가능하게 하는 언어를 배워야 한다. 그것이 바로 프로그래밍 언어다. 그중에서도 가장 배우기 쉽고 강력한 언어인 파이썬을 알아보자.
컴퓨터는 PC, 노트북, 스마트폰 등 우리 주변의 다양한 전자기기를 말한다. 이 기계들은 혼자서는 아무것도 할 수 없는 빈 깡통과 같다. 이 기계에 생명을 불어넣어 주는 것이 바로 OS라 불리는 운영체제와 소프트웨어다.
- 운영체제: 윈도우, 맥OS, 안드로이드, iOS처럼 컴퓨터의 하드웨어를 관리하고 기본적으로 작동하게 만드는 시스템이다. 영어로 Operating System이며 흔히 OS라 줄여서 불린다.
- 애플리케이션 또는 앱: 카카오톡, 유튜브, 엑셀처럼 특정한 목적을 위해 만들어진 프로그램이다.
개발자들이 흔히 혼용하는 용어들을 정리하면 다음과 같다.
| 용어 | 설명 |
|---|---|
| 소프트웨어Software | 컴퓨터를 움직이는 모든 프로그램의 총칭 |
| 프로그램Program | 특정 작업을 수행하는 명령어들의 집합 |
| 소스 코드Source Code | 프로그래밍 언어로 작성된 실제 텍스트 파일 |
| 코딩Coding | 코드를 작성하는 행위 |
세상에는 파이썬 이외에 C, C++, C#, 자바Java, 자바스크립트JavaScript, 러스트Rust 등 수많은 프로그래밍 언어가 있다. 그중 전 세계적으로 파이썬이 인기를 끄는 이유를 살펴보자.
첫째, 사람의 언어와 닮았다.
파이썬은 문법이 매우 직관적이고 간결하다. 마치 영어 문장을 읽는 것처럼 코드를 읽을 수 있어 초보자가 배우기에 가장 적합하다. 예를 들어 컴퓨터 화면에 "Hello Python" 이라는 문장을 출력하는 코드를 세 언어에 대해 비교해보자.
-
C 언어: 준비 과정이 필요하고 코드가 길다.
#include <stdio.h> int main() { printf("Hello Python\n"); return 0; }
-
자바: 역시 복잡하고 길다.
public class Main { public static void main(String[] args) { System.out.println("Hello Python"); } }
-
파이썬: 한 줄이면 충분하다.
print("Hello Python")
둘째, 활용 범위가 넓다.
파이썬은 범용 프로그래밍 언어General-purpose programming language라고 불린다. 즉, 컴퓨터로 다룰 수 있는 모든 영역에서 활용된다.
- 데이터 분석 & 인공지능AI: 챗GPT, 알파고 같은 AI는 대부분 파이썬으로 만들어진다.
- 웹 사이트와 서버 개발: 인스타그램, 유튜브 같은 서비스도 파이썬을 많이 사용한다.
- 업무 자동화: 엑셀 파일 정리, 이메일 자동 발송 등 반복 업무를 파이썬으로 자동화할 수 있다.
- 과학 및 공학 연산: NASA의 우주 연구나 기상청의 날씨 예측 등 복잡한 과학 계산에 사용된다.
- 게임 및 GUI 개발: 나만의 게임을 만들거나, 계산기 같은 PC용 프로그램을 개발할 수 있다.
셋째, 강력한 도구(라이브러리)를 많이 제공한다.
전 세계의 수많은 개발자가 만들어 놓은 유용한 도구(라이브러리)들이 풍부하다. 이 도구들을 활용하여 훌륭한 프로그램을 손쉽게 만들 수 있다.
파이썬은 인터프리터Interpreter 언어다. 인터프리터는 우리가 작성한 코드를 한 줄씩 번역하여 컴퓨터가 실행할 수 있도록 전달한다. 직역하여 해석기라고 할 수도 있지만 파이썬 코드 실행을 담당한다는 의미에서 실행기라고 부르는 게 보다 적절하다.
반면에 C 언어, 자바 등은 컴파일러Compiler 언어다. 작성된 소스 코드 전체가 먼저 컴파일러에 의해 기계어로 번역된 후에야 코드가 실행될 수 있다.
두 종류의 언어를 구분하는 특성을 정리하면 다음과 같다.
| 인터프리터 언어 | 컴파일러 언어 |
|---|---|
| 파이썬, 자바스크립트 등 | C, C++, C#, 자바 등 |
| 코드를 한 줄씩 읽어가며 즉시 실행 | 소스 코드 전체를 기계어로 미리 번역한 후 실행 |
| 코드 수정 후 바로 결과 확인 가능 | 코드를 수정할 때마다 다시 번역 과정 필요 |
| 학습과 개발 속도 빠름 | 실행 속도 빠름 |
아래 코드는 비밀번호를 맞추는 간단한 프로그램이다.
파이썬 코드가 얼마나 직관적인지 확인해볼 수 있다.
코드 각각의 줄에서 샵 기호 # 뒤에 오는 문장은 왼쪽에 위치한 코드를 설명하는 주석이다.
주석은 코드 실행과 무관함에 주의한다.
secret = 13 # 비밀 숫자
guess = 17 # 내가 추측한 숫자
if guess == secret: # 만약 추측한 숫자가 비밀 숫자와 같다면
print("맞았습니다!") # "맞았습니다!" 출력
else: # 그렇지 않다면
print("틀렸습니다!") # "틀렸습니다!" 출력
위 코드는 guess 변수가 가리키는 값이 secret 변수가 가리키는 값과 다르면 "틀렸습니다!"를 출력하고, 같으면 "맞았습니다!"를 출력한다.
여기서는 guess가 17이고 secret이 13이므로 "틀렸습니다!"가 출력된다.
이처럼 프로그래밍을 전혀 모르는 사람도 대략적으로 의미를 파악할 수 있다.
개발자 커뮤니티에서 파이썬의 인기는 압도적이다. 프로그래밍 언어 순위를 매기는 TIOBE 인덱스에서 파이썬은 수년째 1위를 지키고 있다.
프로그래밍에 입문하는 사람들을 위해 권장하는 학습법 세 가지를 덧붙인다.
- 많이 따라하기: 설명, 예제 또는 문제에 언급된 코드를 최대한 많이 활용한다. 코딩을 자주 많이 하는 것이 절대적으로 중요하다.
- 직접 입력하기: 눈으로만 보는 코드는 내 것이 되지 않는다. 직접 키보드를 두드리고, 오타를 내고, 에러를 고치는 과정에서 실력이 향상된다. 좋은 키보드를 하나 마련하는 것도 추천한다.
- 나만의 AI튜터 활용: 모르는 내용이 나오면 검색이나 AI에게 물어보는 것을 두려워하지 말아야 한다. 특히 챗GPT, Gemini와 같은 AI를 적극적으로 활용하면 학습 속도를 비약적으로 높일 수 있다.
- 개념 질문: "파이썬의 변수가 뭐야? 초등학생도 이해할 수 있게 설명해줘."
- 에러 해결: 에러 메시지를 그대로 복사해서 "이 에러가 왜 났고, 어떻게 고쳐야 해?"라고 물어본다.
- 코드 분석: 이해가 안 가는 코드는 "이 코드가 무슨 일을 하는지 한 줄씩 설명해줘"라고 요청한다.
- 주의 사항: AI가 작성해준 코드를 이해하지 못한 채 복사해서 붙여넣기만 하면 실력이 늘지 않는다. 반드시 코드를 읽고 이해할 수 있어야 한다.
