|
| 1 | +# 파이썬 프로그래밍 |
| 2 | + |
| 3 | +**컴퓨터와의 대화** |
| 4 | + |
| 5 | +외국인과 대화하려면 그 나라 말을 배워야 하듯, 컴퓨터에게 일을 시키려면 컴퓨터가 알아듣는 말을 배워야 한다. 그것이 바로 **프로그래밍 언어**다. 그중에서도 가장 배우기 쉽고 강력한 언어인 **파이썬(Python)**을 **알아보자.** |
| 6 | + |
| 7 | +## 컴퓨터와 프로그램 |
| 8 | + |
| 9 | +컴퓨터는 PC, 노트북, 스마트폰 등 우리 주변의 다양한 전자기기를 말한다. 이 기계들은 혼자서는 아무것도 할 수 없는 '깡통'과 같다. 이 기계에 생명을 불어넣어 주는 것이 바로 **운영체제**<strong>(OS)</strong>와 **소프트웨어**다. |
| 10 | + |
| 11 | +- **운영체제(OS)**: 윈도우(Windows), 맥(macOS), 안드로이드, iOS처럼 컴퓨터의 하드웨어를 관리하고 기본적으로 작동하게 만드는 시스템이다. |
| 12 | +- **애플리케이션(App)**: 흔히 '앱'이라고 부르는 것으로, 카카오톡, 유튜브, 엑셀처럼 특정한 목적을 위해 만들어진 프로그램이다. |
| 13 | + |
| 14 | +### 용어 정리 |
| 15 | + |
| 16 | +개발자들이 흔히 혼용하는 용어들을 **정리해 보자.** |
| 17 | + |
| 18 | +| 용어 | 설명 | |
| 19 | +| :--- | :--- | |
| 20 | +| **소프트웨어** (Software) | 컴퓨터를 움직이는 모든 프로그램의 총칭 | |
| 21 | +| **프로그램** (Program) | 특정 작업을 수행하는 명령어들의 집합 | |
| 22 | +| **소스 코드** (Source Code) | 프로그래밍 언어로 작성된 실제 텍스트 파일 | |
| 23 | +| **코딩** (Coding) | 코드를 작성하는 행위 | |
| 24 | + |
| 25 | +## 왜 파이썬인가? |
| 26 | + |
| 27 | +세상에는 C, 자바(Java), 자바스크립트(JavaScript) 등 수많은 프로그래밍 언어가 있다. 그중 전 세계적으로 파이썬이 인기를 끄는 이유를 **살펴보자.** |
| 28 | + |
| 29 | +### 첫째, 사람의 언어와 닮았다. |
| 30 | +파이썬은 문법이 매우 직관적이고 간결하다. 마치 영어 문장을 읽는 것처럼 코드를 읽을 수 있어 초보자가 배우기에 가장 적합하다. |
| 31 | + |
| 32 | +**코드 비교 (화면에 "Hello"를 출력하는 코드)** |
| 33 | + |
| 34 | +* **C 언어**: 준비 과정이 필요하고 코드가 길다. |
| 35 | + ```c |
| 36 | + #include <stdio.h> |
| 37 | + |
| 38 | + int main() { |
| 39 | + printf("Hello\n"); |
| 40 | + return 0; |
| 41 | + } |
| 42 | + ``` |
| 43 | + |
| 44 | +* **자바(Java)**: 다소 복잡하고 길다. |
| 45 | + ```java |
| 46 | + public class Main { |
| 47 | + public static void main(String[] args) { |
| 48 | + System.out.println("Hello"); |
| 49 | + } |
| 50 | + } |
| 51 | + ``` |
| 52 | + |
| 53 | +* **파이썬(Python)**: 한 줄이면 충분하다. |
| 54 | + ```python |
| 55 | + print("Hello") |
| 56 | + ``` |
| 57 | + |
| 58 | +### 둘째, 활용 범위가 넓다. |
| 59 | +파이썬은 '만능 언어'라고 불린다. |
| 60 | +- **데이터 분석 & 인공지능(AI)**: 챗GPT, 알파고 같은 AI는 대부분 파이썬으로 만들어진다. |
| 61 | +- **웹 사이트 개발**: 인스타그램, 유튜브 같은 서비스도 파이썬을 많이 사용한다. |
| 62 | +- **업무 자동화**: 엑셀 파일 정리, 이메일 자동 발송 등 반복 업무를 파이썬으로 자동화할 수 있다. |
| 63 | + |
| 64 | +### 셋째, 강력한 도구(라이브러리)가 많다. |
| 65 | +전 세계의 수많은 개발자가 만들어 놓은 유용한 도구(라이브러리)들이 풍부하다. 이 도구들을 활용하면 훌륭한 프로그램을 손쉽게 만들 수 있다. |
| 66 | + |
| 67 | +## 파이썬의 실행 방식 |
| 68 | + |
| 69 | +파이썬은 **인터프리터(Interpreter)** 언어다. 우리가 작성한 코드를 한 줄씩 번역하여 컴퓨터에게 전달하는 방식이다. |
| 70 | + |
| 71 | +* **컴파일러(Compiler) 언어**: C나 자바처럼 소스 코드 전체를 기계어로 미리 번역한 후 실행한다. 책 한 권을 모두 번역한 뒤에 읽는 것과 비슷하다. 실행 속도는 빠르지만 수정 후 다시 번역하는 과정이 필요하다. |
| 72 | +* **인터프리터(Interpreter) 언어**: 파이썬처럼 코드를 한 줄씩 읽어가며 즉시 실행한다. 통역사가 옆에서 한 문장씩 통역해 주는 것과 비슷하다. 코드를 수정하고 바로 결과를 확인할 수 있어 학습과 개발 속도가 빠르다. |
| 73 | + |
| 74 | +## 파이썬 맛보기 |
| 75 | + |
| 76 | +파이썬 코드가 얼마나 직관적인지 **확인해 보자.** 아래 코드는 비밀번호를 맞추는 간단한 프로그램이다. |
| 77 | + |
| 78 | +```python |
| 79 | +secret = 13 # 비밀 숫자 |
| 80 | +guess = 17 # 내가 추측한 숫자 |
| 81 | + |
| 82 | +if guess == secret: # 만약 추측한 숫자가 비밀 숫자와 같다면 |
| 83 | + print("맞았습니다!") # "맞았습니다!" 출력 |
| 84 | +else: # 그렇지 않다면 |
| 85 | + print("틀렸습니다!") # "틀렸습니다!" 출력 |
| 86 | +``` |
| 87 | + |
| 88 | +프로그래밍을 전혀 모르는 사람도 대략적인 의미를 짐작할 수 있다. 이것이 바로 파이썬의 장점이다. |
| 89 | + |
| 90 | +## 파이썬의 인기 |
| 91 | + |
| 92 | +개발자 커뮤니티에서 파이썬의 인기는 압도적이다. 프로그래밍 언어 순위를 매기는 [TIOBE 인덱스](https://www.tiobe.com/tiobe-index)에서 파이썬은 수년째 1위를 지키고 있다. |
| 93 | + |
| 94 | +<div align="center"> |
| 95 | + <img src="https://raw.githubusercontent.com/codingalzi/42H/master/jupyter-book/images/tiobe-index.jpg" style="width:750px" alt="TIOBE Index"> |
| 96 | + <p><em>파이썬은 전 세계에서 가장 사랑받는 언어다.</em></p> |
| 97 | +</div> |
| 98 | + |
| 99 | +## 프로그래밍 학습 조언 |
| 100 | + |
| 101 | +프로그래밍을 처음 배우는 분들을 위해 몇 가지 조언을 덧붙인다. |
| 102 | + |
| 103 | +1. **암기하지 말자**: 문법을 영어 단어 외우듯 암기할 필요는 없다. 자주 사용하다 보면 자연스럽게 익숙해진다. 중요한 것은 '어떻게 해결할까'를 고민하는 논리적 사고력이다. |
| 104 | +2. **직접 입력하자**: 눈으로만 보는 코드는 내 것이 되지 않는다. 직접 키보드를 두드리고, 오타를 내고, 에러를 고치는 과정에서 실력이 성장한다. |
| 105 | +3. **검색을 두려워하지 말자**: 모든 개발자는 검색을 한다. 모르는 내용이 나오면 구글이나 AI에게 물어보는 것을 주저하지 말자. |
| 106 | + |
| 107 | +이제 파이썬의 세계로 떠날 준비가 되었다. 다음 장부터 본격적으로 **시작해 보자.** |
0 commit comments