이 포스트는 초심 개발자에게 적합합니다.
Python 설치
Python 의 설치는 생각보다 매우 쉽습니다.
최신 버전의 Linux 나 Unix 환경에서는 OS 가 설치될 때 기본 프로그램으로 함께 설치가 됩니다. 따라서 별다른 설치 과정 없이 Python 을 이용하여 개발을 시작할 수 있습니다. 최신 버전의 지원을 사용하기 위해서는 각 OS 의 패키지 배포 프로세스(apt 또는 yum 등)를 사용하여 최신 버전으로 업데이트 함으로써 이용할 수 있습니다. 특정 버전의 Python 소스 코드를 다운로드 하여 직접 컴파일 하는 방법도 있으나, 컴파일을 하기 위한 환경의 구성이 초보자에게는 쉽지 않기 때문에, 이 포스트에서는 다루지 않습니다.
반면에 Linux 나 Unix 와는 다르게 Windows 환경에서는 기본 프로그램이 아니기 때문에 별도의 설치 과정을 거쳐야 Python 을 이용할 수 있습니다. Windows 환경에서 Python 을 설치하기 위해서는 Python 공식 홈페이지의 다운로드 페이지에서 가장 최신 설치 프로그램을 다운로드하여 실행함으로써 Python 개발 환경을 구성할 수 있습니다.
이 포스트를 작성하는 현재 시점의 가장 최신 버전은 Python 3.11.3 입니다.
코드 작성 도구
Python 코드는 다른 언어와 마찬가지로 그 어떤 문서 편집 도구를 사용해도 문제가 되지 않습니다. 다만 코드 탐색, 자동 완성, 라이브러리 탐색, 오타 교정, 디버깅, 컴파일 자동화 등을 고려한다면 통합 개발 환경 (이하 IDE) 프로그램이나 코드 전용 편집 도구를 설치하는 것이 좋습니다.
통합 개발 환경 (IDE)
Python 개발을 지원하는 대표적인 IDE 프로그램으로는 JetBrains 사에서 개발한 PyCharm 과 Microsoft 사에서 개발한 Visual Studio, 그리고 Open Source 로 개발된 Spyder 가 있습니다. IDE 프로그램은 다양한 코드 개발과 관련된 지원 도구가 포함되어 있습니다. 그렇기 때문에 IDE 프로그램은 꽤나 큰 디스크와 메모리 공간을 요구합니다. 만약 IDE 프로그램을 실행하는 시스템이 사양이 좋지 않다면 다소 실행 속도가 느려질 수 있으며, 일부 PC에서는 메모리 부족으로 인해 IDE 프로그램이 강제 종료되는 현상이 발생할 수 있습니다. 실제로 Windows 운영체제 기반의 16 GB 의 메모리를 탑재한 개발환경에서 가상 메모리를 활성화 하지 않은 경우, Visual Studio 를 실행하여 코드를 작성하고 디버깅을 몇 번 수행하다보면 메모리 부족으로 Visual Studio 의 강제종료가 매우 빈번하게 발생합니다. 따라서 IDE 프로그램보다는 공간도 적게 차지하고 필요한 기능만 확장해서 사용할 수 있는 코드 편집 도구를 이용할 것을 추천드립니다.
코드 편집 도구 (Editor)
Python 개발에 이용하는 대표적은 코드 편집 도구로는 Microsoft 사에서 개발한 Visual Studio Code (이하 VSCode) 가 있습니다. VSCode 는 Windows와 MacOS, 그리고 Linux 를 지원하며, 확장성이 매우 뛰어나고, 프로그램이 가벼워서 요구하는 시스템 사양이 낮으며, 결정적으로 모든 기능을 무료로 이용이 가능합니다. VSCode 외에도 Idle 이나 Jupyter Notebook 등이 있으나, 개발이라는 행위에는 적합하지 않다고 판단하여 추천하지 않습니다.
비주얼 스튜디오 코드 (Visual Studio Code, VSCode) 설치
Visual Studio Code 는 홈페이지의 다운로드 페이지에서 다운로드 할 수 있습니다. 프로그램은 설치형과 무설치형(Portable) 이 있으며, 운영체제의 재설치 등에서 자유롭기 위해서는 무설치형이 좋으나, 환경 설정이 필요할 수 있으므로 초보자에게는 설치형을 권장합니다.
Python Extension Pack 설치
VSCode 는 마켓 플레이스를 통해 사용자가 개발한 다양한 확장 프로그램을 사용할 수 있습니다. 마켓 플레이스는 프로그램을 실행했을 때 화면 왼쪽에 표시되는 아이콘을 클릭하여 이동하거나, 단축키 (Ctrl + Shift + X) 를 입력하여 이동할 수 있습니다.
검색창에 Python 을 입력하면 다양한 확장 프로그램이 표시되며, 그 중 가장 기본이 되는 확장 프로그램들의 묶음인 Python Extension Pack 을 선택하여 설치합니다. 이 확장패키지는 Python 문법 검사에서부터 자동완성, 들여쓰기, 코드 탐색등 개발이 도움이 되는 다양한 확장 프로그램을 포함하고 있습니다. 설치는 간단하게 설치 버튼을 클릭하여 진행할 수 있습니다.
Hello World
개발 환경이 설정이 완료되면 가장 간단한 출력문을 사용하여 잘 설치되었는지 환경을 점검합니다.
프로젝트 디렉터리 생성
디렉터리의 엄격한 관리는 매우 중요합니다. 디스크는 생활에서의 집과 같습니다. 집 안에서 생활 속에서 필요한 것이 모두 제자리에 위치하듯이, 디렉터리도 디스크라는 공간 안에서 자신의 위치에 있어야 필요할 때에 빠르게 찾아서 이용할 수 있습니다. 적절한 디스크의 위치를 선택하여 개발 공간을 선택하여 디렉터리를 생성합니다. 필자의 경우에는 dev/sources/python/study 와 같은 형태로 카테고리를 분류하여 디렉터리를 관리합니다.
VSCode 로 프로젝트 디렉터리 열기
적절한 프로젝트 디렉터리를 생성하였다면, 파일 탐색기를 이용하여 생성한 디렉터리로 이동합니다. 마우스 오른쪽 버튼을 누르면 컨텍스트 메뉴가 나타나는데, 그 중에서 Open Folder as VS Code Project 를 선택하면 VSCode 가 해당 디렉터리 공간을 프로젝트 디렉터리로 인식하여 새로운 창을 실행합니다. 탐색기 (Ctrl + Shift + E) 화면을 보면 방금 선택한 디렉터리 이름이 표시되는 것을 확인할 수 있습니다.
파일 생성 및 코드 작성
디렉터리 이름의 오른쪽을 보면 4개의 아이콘이 표시되는데 순서대로 새파일, 새폴더, 새로고침, 폴더 축소 의 기능을 수행합니다. 새파일을 누르면 파일명 입력 필드가 활성화되는데, 적절한 이름으로 파일을 생성해줍니다. 파일명은 해당 파일에 작성된 기능을 이해하기 쉽게 hello_world.py 와 같은 형태로 작성하는 것이 좋습니다. 파일의 확장자인 py 는 Python 코드가 작성된 파일임을 의미합니다. 확장자가 py가 아닌 경우에는 VSCode 가 Python 코드가 아닌 다른 코드로 인식할 수 있으므로, Python 코드를 작성한 파일은 반드시 py 확장자로 생성하는것이 좋습니다.
방금 생성한 파일을 선택하면 편집 창이 열리는데, 아래의 내용을 입력하여 화면에 hello world 를 출력하는 아주 간단한 Python 코드를 완성합니다.
print('hello world')
실행
메뉴의 실행 > 디버깅 없이 실행 (Ctrl + F5) 를 클릭하거나, 편집창의 우측 상단에 위치한 실행 아이콘 (재생 버튼 모양)을 선택하여 코드를 실행할 수 있습니다. 코드를 실행하면 터미널 창이 새로 생기면서 아래와 같은 코드의 실행 결과를 확인할 수 있습니다.
PS ......dev\sources\python\study> & ....../Python/Python310/python.exe ......dev/sources/python/study/hello_world.py
hello world
실행 결과에서 보면 실행 코드가 표시되는데, 이를 보고 유추해볼 수 있듯이 Python 코드는 일반 콘솔창에서도 위의 실행 코드를 통해 실행이 가능합니다.
향후 포스트 방향
최근 인공 지능과 관련된 개발과 연구가 눈에 띄게 향상되고 있습니다. 그 연구들을 살펴보고 공부하면서 라이브러리의 사용법을 보다 보면, 유독 Python 으로 작성된 예시 코드가 많은 것을 알 수 있습니다. 그 이유는 아래와 같습니다.
Python 은 비교적 문법이 쉽고 메모리 관리의 제약이 (상대적으로) 적기 때문에 빠른 개발이 가능합니다. 그 덕분에 프로그래밍을 전공하지 않았더라도 쉽게 이용이 가능합니다. 이런 쉬운 접근성 덕분에 인공지능의 연구와 개발에 많이 이용되어 왔습니다. 그 결과 인공 지능과 관련된 많은 수의 라이브러리는 Python 코드로 작성되고 배포되었습니다.
개발자의 삶은 공부의 연속입니다. 새로운 기술을 이해하고 습득하여 자유롭게 활용할 수 있어야 합니다. 최근에 가장 화제가 되고 있는 기술은 단연 인공지능이고, ChatGPT 입니다. 인공지능과 관련하여 많은 윤리적인 문제가 제기되고 있긴 하지만, 결국은 시장을 주도하는 기술이 될 것임에는 변함이 없을 것입니다.
그렇기 때문에 이 포스트의 연재는 ChatGPT의 활용을 최종 목표로 정하고 있습니다.
최종 목표에 다다르기 위해서는 Python 의 자유로운 활용이 필요합니다. 이를 위해 Python 의 기본 문법과 라이브러리의 탐색 및 활용 방법에 관한 포스트가 연재된 이후, OpenAI 사에서 제공하는 API 의 분석 및 활용에 관한 포스트가 연재될 예정입니다.
이후에 연재되는 포스트들은 스터디를 진행한 후에 이해한 내용으로 포스트가 작성되기 때문에, 포스트의 공개 간격이 다소 불규칙할 수 있습니다.