Skip to content

Latest commit

 

History

History
188 lines (132 loc) · 12.2 KB

File metadata and controls

188 lines (132 loc) · 12.2 KB
numbering
title headings
enabled
false

42H: 파이썬

이 강의노트는 파이썬Python을 활용하여 프로그래밍의 기초를 다룬다. 프로그래밍을 처음 접하는 입문자부터, 파이썬의 핵심 개념을 다시 정리하고 싶은 분들까지 누구나 쉽게 따라 할 수 있도록 구성했다.

파이썬이란?

외국인과 대화하려면 그 나라 말을 배워야 하듯, 컴퓨터에게 일을 시키려면 컴퓨터와의 대화를 가능하게 하는 언어를 배워야 한다. 그것이 바로 프로그래밍 언어다. 그중에서도 가장 배우기 쉬우면서 AI 시대에 가장 많이 활용되는 언어인 파이썬을 활용한 프로그래밍을 소개한다.

파이썬은 웹 애플리케이션 개발, 데이터 과학, 머신러닝 등 다양한 분야에서 널리 사용되는 대표적인 프로그래밍 언어다. 문법이 간결하고 배우기 쉬워 '생애 첫 프로그래밍 언어'로 가장 추천받는다. 다른 언어에 비해 적은 양의 코드로도 효율적인 프로그램을 작성할 수 있다는 점이 큰 매력이다.

42H의 의미

강의노트의 제목에 포함된 42H에서 42는 프랑스에서 시작된 혁신적인 소프트웨어 교육 기관 42에서 영감을 받았으며, H는 저자의 소속을 가리킨다.

소프트웨어 교육기관 42는 교사도, 교재도, 수업도 없는(No teachers, no books, no classes) 파격적인 교육 방식을 지향한다. 대신 동료 학습Peer-to-peer learning과 프로젝트 기반 학습Project-based learning을 통해 학생들 스스로 문제를 해결하고 성장하도록 돕는다.

참고로 숫자 42는 더글러스 애덤스의 SF 소설 《은하수를 여행하는 히치하이커를 위한 안내서》에서 유래했다. 이 소설에서 슈퍼컴퓨터가 750만 년 동안 계산하여 내놓은 '삶, 우주, 그리고 모든 것에 대한 궁극적인 해답'이 바로 숫자 42였다. 이 숫자의 의미는 명확하지 않지만 '프로그래밍이 디지털 시대의 모든 문제를 해결할 수 있는 열쇠'라는 의미로 해석되기도 한다.

이 강의노트 또한 이러한 철학을 공유한다. 단순히 지식을 전달하는 것이 아니라, 독자 스스로 코드를 작성하고 실행하며 부딪히는 문제들을 해결해 나가는 과정에서 진정한 프로그래밍 실력을 키울 수 있기를 바란다.

컴퓨터와 소프트웨어

컴퓨터는 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#, 자바 등
코드를 한 줄씩 읽어가며 즉시 실행 소스 코드 전체를 기계어로 미리 번역한 후 실행
코드 수정 후 바로 결과 확인 가능 코드를 수정할 때마다 다시 번역 과정 필요
학습과 개발 속도 빠름 실행 속도 빠름

파이썬 맛보기

아래 코드는 비밀번호를 맞추는 간단한 프로그램이다. 파이썬 코드가 얼마나 직관적인지 확인해볼 수 있다. 코드 각각의 줄에서 해시hash 기호 # 뒤에 오는 문장은 왼쪽에 위치한 코드를 설명하는 주석이다. 주석은 코드 설명을 위해 사용되며, 코드를 실행할 때는 실행기에 의해 무시된다.

secret = 13      # 비밀 숫자
guess = 17       # 내가 추측한 숫자

if guess == secret:         # 만약 추측한 숫자가 비밀 숫자와 같다면
    print("맞았습니다!")     # "맞았습니다!" 출력
else:                       # 그렇지 않다면
    print("틀렸습니다!")     # "틀렸습니다!" 출력

위 코드는 guess 변수가 가리키는 값이 secret 변수가 가리키는 값과 다르면 "틀렸습니다!"를 출력하고, 같으면 "맞았습니다!"를 출력한다. 여기서는 guess가 17이고 secret이 13이므로 "틀렸습니다!"가 출력된다.

이처럼 프로그래밍을 전혀 모르는 사람도 대략적으로 의미를 파악할 수 있다.

파이썬 인기도

개발자 커뮤니티에서 파이썬의 인기는 압도적이다. 프로그래밍 언어 순위를 매기는 TIOBE 인덱스에서 파이썬은 수년째 1위를 지키고 있다.

TIOBE Index

프로그래밍 학습법

프로그래밍에 입문하는 사람들을 위해 권장하는 학습법 세 가지를 덧붙인다.

  1. 많이 따라하기: 설명, 예제 또는 문제에 언급된 코드를 최대한 많이 활용한다. 코딩을 자주 많이 하는 것이 절대적으로 중요하다.
  2. 직접 입력하기: 눈으로만 보는 코드는 내 것이 되지 않는다. 직접 키보드를 두드리고, 오타를 내고, 에러를 고치는 과정에서 실력이 향상된다. 좋은 키보드를 하나 마련하는 것도 추천한다.
  3. 나만의 AI튜터 활용: 모르는 내용이 나오면 검색이나 AI에게 물어보는 것을 두려워하지 말아야 한다. 특히 챗GPT, Gemini와 같은 AI를 적극적으로 활용하면 학습 속도를 비약적으로 높일 수 있다.
    • 개념 질문: "파이썬의 변수가 뭐야? 초등학생도 이해할 수 있게 설명해줘."
    • 에러 해결: 에러 메시지를 그대로 복사해서 "이 에러가 왜 났고, 어떻게 고쳐야 해?"라고 물어본다.
    • 코드 분석: 이해가 안 가는 코드는 "이 코드가 무슨 일을 하는지 한 줄씩 설명해줘"라고 요청한다.
    • 주의 사항: AI가 작성해준 코드를 이해하지 못한 채 복사해서 붙여넣기만 하면 실력이 늘지 않는다. 반드시 코드를 읽고 이해할 수 있어야 한다.

실습 환경

파이썬 프로그래밍을 위해 코드를 작성하고 실행할 수 있는 환경이 필요하다. 입문자에게는 별도의 설치 없이 인터넷 브라우저만으로 바로 시작하거나 자신의 컴퓨터에 실습환경을 설정할 수 있다.

구글 코랩

구글 코랩Google Colab에서 구글 계정만 있으면 브라우저에서 바로 파이썬 코드를 작성하고 실행할 수 있으며, 데이터 분석과 머신러닝에 최적화되어 있다.

비주얼 스튜디오 코드와 아나콘다 라이브러리

비주얼 스튜디오 코드Visual Studio Code는 마이크로소프트에서 개발한 가볍고 강력한 소스 코드 편집기로, 파이썬 개발을 위한 풍부한 확장 기능을 제공한다. 보통 VS Code 약칭으로 불린다.

VS Code는 코드 작성 편집기로 파이썬을 실행하려면 파이썬 실행기 또한 자신의 컴퓨터에 설치해야 한다. 파이썬 실행기는 다양한 방식으로 설치될 수 있으며, 여기서는 데이터 과학과 머신러닝 분야에서 가장 많이 활용되는 라이브러리 중에 하나인 아나콘다Anaconda를 설치할 것을 추천한다.

비주얼 스튜디오 코드와 구글 코랩

VS Code 편집기에 대한 파이썬 실행기로 구글 코랩을 선택할 수 있도 있다. 설치요령과 사용법은 동영상를 참고한다.

피드백

이 강의노트의 내용에서 오류를 발견하거나, 관련 질문이 있다면 언제든지 GitHub 저장소의 Issues 탭을 이용해 주세요. 여러분의 피드백은 더 좋은 내용을 만드는 데 큰 도움이 됩니다.