파이썬(python)은 무엇인가? C 언어를 기반으로 한 오픈소스의 고급 프로그램밍 언어이다. 특징으로 C언어와 다르게 인터프리터식 동적 타이핑 대화형 언어로 컴파일 하지 않고서도 작성한 프로그램을 바로 실행 할 수 있기에 사용자가 결과를 쉽게 확인 가능하다.
![[파이썬 입문] 01. 왜 파이썬 (Python)으로 코딩을 시작하는게 좋을까? 코딩 입문 2 파이썬 (python)](https://www.shindeacon.co.kr/wp-content/uploads/2023/07/그림1-300x106-optimized.png)
Table of Contents
1. 파이썬이란?
네덜란드 개발자 귀도 반 로섬(Guido van Rossum)이 만든 프로그래밍 언어이다. 영어의 의미는 그리스 신화에 나오는 뱀의 이름이지만, 귀도 반 로섬이 좋아하는 코미디 프로그램 “Monty Python’s Flying Circus”에서 따온 것이라고 한다. 파이썬(python)은 C언어를 기반으로 한 오픈 소스의 고급 프로그래밍 언어 중 한가지이며, 최근 많은 코딩 교육에서 아주 많은 인기를 누리고 있다. 누구나 쉽게 고급 프로그래밍 언어를 배울 수 있다는 것이 이 언어의 장점이다.
![[파이썬 입문] 01. 왜 파이썬 (Python)으로 코딩을 시작하는게 좋을까? 코딩 입문 3 귀도 반 로썸](https://www.shindeacon.co.kr/wp-content/uploads/2023/07/그림2-204x300-optimized.jpg)
2. 파이썬이 왜 인기가 많은 걸까?
2.1. 2023년도 인기 프로그래밍 언어 순위
![[파이썬 입문] 01. 왜 파이썬 (Python)으로 코딩을 시작하는게 좋을까? 코딩 입문 4 2023년도 인기 언어 순위](https://www.shindeacon.co.kr/wp-content/uploads/2023/07/그림1-1-optimized.png)
인기 언어 순위를 보면 파이썬(python)의 순위가 1위인 것을 볼 수 있다. 이 순위표만 본다면 전세계적으로 모든 사람들이 파이썬을 가장 많이 사용한 것으로 착각 할 수도 있다. 하지만 이 순위에는 사실 교육용으로 사용하는 언어까지 포함되어있다. 그렇기에 14위에는 MIT에서 공개 교육용 코딩 프로그램인 스크래치가 포함되어 있는 것을 볼 수 있다. 따라서 파이썬(python) 또한 교육용으로 널리 사용하고 있다는 것이며, 그만큼 코딩 입문으로 배우기 좋은 언어라고 볼 수 있다. 실질적인 업무에서는 C#이나 C++이 더 많이 사용되며, 각각의 개발 환경에서 그에 따르는 언어를 사용하고 있다고 볼 수 있다.
2.2. 파이썬이 인기 많은 이유는?
2.2.1. 배우기가 무척 쉽다. (*다른 언어에 비해 쉬운 것)
2.2.2. 라이브러리가 매우 다양하다
2.2.3. 개발 생산성(프로그램 제작 속도)이 높다.
2.2.4 인공지능, 업무 자동화, 빅데이터 분석, 사물 인터넷, 얼굴 인식, 웹 크로릴링, GUI 프로그래밍, 게임 개발 등 활용 분야가 아주 많다.
더 많은 이유가 있을 수 있지만, 크게 본다면 이렇게 표현할 수 있겠다. 그만큼 배우기 쉽고, 혼자서도 독학으로 배울 수 있을 정도로 정보가 제공되는 자료들이 좋다고 할 수 있다.
3. 파이썬의 장점은?
3.1. 신속한 개발 속도
높은 생산성은 그 무엇과도 비교할 수 없는 Python만의 특징이다. 모든 프로그래밍 언어 중에서 파이썬정도의 낮은 난이도를 가지면서, 여러 분야에서 생산된 훌륭한 패키지들을 통해 범용성까지 갖춘 프로그램언어는 찾기 힘들다. 같은 객체지향인 Java나 C++에 비해 너무나 쉬운 난이도를 가진다.
3.2. 크로스 플랫폼 지원
파이썬은 Windows, macOS, Linux 등 다양한 운영 체제에서 동작하며, 동일한 코드를 사용하여 여러 플랫폼에서 실행할 수 있기에 범용성이 높다.
3.3. 다양한 라이브러리와 풍부한 생태계
다양한 라이브러리와 모듈을 제공하며, 데이터 분석, 인공지능, 웹 개발 등 다양한 분야에서 사용할 수 있습니다. 또한, 오픈소스 커뮤니티가 활발하게 지원하고 있어서 계속해서 새로운 기능과 개선이 이루어진다.
3.4. 객체 지향 프로그래밍
파이썬은 객체 지향 프로그래밍을 지원하며, 코드의 재사용성과 유지보수성을 높다. 위에서도 언급 하였지만, 같은 객체지향 프로그래밍인 Java나 C++에 비해 쉬운 난이도를 가진다.
3.5. 인터프리터 언어
파이썬은 인터프리터 언어로 실행되기 때문에 컴파일이 필요 없어서 개발과 테스트 사이클이 빠르며, 개발자가 코드를 수정하면 즉시 결과를 확인할 수 있는데 이 부분도 개발자 입장에서는 아주 큰 영향을 준다.
3.6. 교육의 편의성
파이썬은 입문으로 시작하기 가장 좋은 언어이며, 독학으로도 배우기 쉽다. 또한, 온라인 커뮤니티가 활발하며, 문제 해결에 도움을 받기 쉽습니다.
3.7. 높은 확장성
C, C++, Java와의 통합이 용이하며, 다른 언어로 작성된 코드를 쉽게 파이썬 코드와 결합하여 사용할 수 있어서 확장성이 엄청난다.
4. 파이썬의 단점은?
4.1. 느리다
실시간으로 기계어를 번역하기 때문에 다른 컴파일 언어에 비해 느리다. 따라서 빠른 속도를 요구하거나 하드웨어를 직접 컨트롤 하는 프로그램에는 적합하지 않은 언어라고 볼 수 있다. 실무에서 업무용으로 활용하기는 좋으나 앱이나 기계에 사용하기에는 적합하지 않는 언어인 것이다.
4.2. GIL(Global Interpreter Lock)
하나의 스레드에 모든 자원을 허락하고 나머지 스레드에 락을 걸어 다른 스레드가 실행되지 않도록 막아버리는 기능으로 처리속도가 느려지게 된다.
그림으로 설명하자면 아래와 같다.
4.3. 일반 사용자에게 배포
보통은 개발자 본인이 사용하려고 만드는 목적이 많기 때문에 일반 사용자에게 배포하기가 조금 어렵다. 그래서 교육용 프로그래밍 언어로 사용을 많이 하게 된다.
5. 파이썬으로 코딩할 경우 고려해야 할 점들
5.1. 보안 측면
5.1.1 모듈과 라이브러리의 신뢰성
파이썬은 다양한 모듈과 라이브러리를 사용하여 개발이 용이하도록 도와줍니다. 하지만 이러한 모듈과 라이브러리를 사용할 때, 제3자가 작성한 코드를 사용하는 경우, 신뢰성을 검토하고 취약점을 최소화해야 합니다.
5.1.2. 소스 코드 읽기 가능성
파이썬은 인터프리터 언어로서 소스 코드가 실행 시점에서 직접 해석되기 때문에, 소스 코드를 쉽게 읽을 수 있습니다. 이로 인해 악의적인 사용자가 코드를 쉽게 분석하고 악용할 수 있을 수 있으므로, 보안에 취약할 수 있습니다.
5.1.3. 취약점 및 보안 업데이트
모든 소프트웨어와 마찬가지로 파이썬도 취약점을 가지고 있을 수 있습니다. 따라서 파이썬 버전을 최신으로 유지하고 보안 업데이트를 적용하는 것이 중요합니다.
5.2. 성능 측면
5.2.1. 인터프리터 언어
파이썬은 인터프리터 언어로서 컴파일 언어보다 실행 시간이 더 오래 걸릴 수 있습니다. 또한, 메모리 사용량도 컴파일 언어보다 더 많을 수 있습니다.
5.2.2. GIL(Global Interpreter Lock)
파이썬은 GIL이라는 특징을 가지고 있어서, 멀티 스레드 환경에서 동시에 여러 CPU 코어를 사용하여 병렬 처리를 할 수 없습니다. 따라서 CPU 바운드 작업에서는 성능 저하가 발생할 수 있습니다.
5.2.3. C 언어와의 통합
파이썬은 C 언어와의 통합이 용이하여, 성능에 중점을 둬야 하는 부분은 C로 작성하고 파이썬과 연동하여 사용할 수 있습니다.
5.2.4. 최적화 기술
파이썬은 몇 가지 최적화 기술을 사용하여 성능을 개선할 수 있습니다. Just-in-time 컴파일러를 사용하는 PyPy와 같은 대안 인터프리터를 사용하거나, Cython 등을 사용하여 C로 컴파일할 수도 있습니다.
요약하자면, 파이썬은 개발 생산성과 읽기 쉬운 코드로 인해 많은 사람들에게 선호되지만, 보안 측면에서는 외부 모듈과 라이브러리의 신뢰성을 주의해야 합니다. 또한, 성능 측면에서는 CPU 바운드 작업이나 멀티 스레드 환경에서 주의가 필요하며, 최적화 기술을 적절히 사용하여 성능을 개선할 수 있습니다.
6. 결론 : 파이썬으로 코딩 입문을 해야 하는 이유
파이썬은 간결하고 읽기 쉬운 문법으로 입문자들이 쉽게 프로그래밍을 배울 수 있으며, 다양한 라이브러리와 생태계로 다양한 분야에서 활용할 수 있는데, 이로 인해 초보자들도 높은 생산성과 효율성으로 프로젝트를 진행할 수 있기 때문입니다. 또한 파이썬은 데이터 과학, 인공지능, 웹 개발, 자동화 등 다양한 분야에서 널리 사용되고 있으므로, 배운 지식을 실전에서 활용하는 기회가 많아집니다. 따라서 파이썬은 코딩을 처음 배우는 사람들에게 적합한 선택이며, 프로그래밍을 통해 창의적이고 유용한 소프트웨어를 개발하는 재미와 가능성을 경험할 수 있습니다. 따라서 코딩 입문하는 분에게는 파이썬으로 시작할 것을 적극 추천드립니다.
[다른 글 더 보기]
챗GPT(ChatGPT), 오픈AI 대화형 인공지능 모델이란 무엇인가?
[파이썬 입문] 02. 파이썬 개발 환경 구축하기
[파이썬 입문] 03. 자료형(data type)