⚡ 개요
2023년도 끝나가는데 새로운 언어에 대해서 공부를 하고 도전해보려고 한다.
많은 언어들이 있지만 파이썬을 선택한 이유는 많은 정보를 찾아봤을때 웹을 가장 빨리 만들고 쉽게 만들 수 있다고 소개를 하고 있다.
회사에서 개발을 하다보면 중간에 계속해서 기획이 변경되는 과정들이 존재한다. 이 과정에서 내가 사용하고 있는 자바로 프로토 타입을 만든다고 했을 때, 기존 소스를 카피해서 만들어야 하고 지금의 경우는 프로젝트가 커짐에 따라서 이 또한 쉽지도 않다.
이런 저런 이유가 존재하지만 결국은 쉽게 만들 수 있고, 많은 개발자들이 사용하고 있는 파이썬을 서브 언어로써 사용해 볼 수 있도록 공부를 해보려고 한다. 물론 자바로 개발을 하고 있기 때문에 코틀린의 경우는 짬짬이 공부를 하고 있다. :)
예전에는 공부를 할때 무작정 언어 문법을 공부하고 기본적인 CRUD를 작성했다면 요즘의 경우는 방법을 바꾸고 있다.
1. 언어가 어떻게 만들어졌고, 어떻게 발전해 왔는가?
2. 언어의 장단점이 무엇이며, 어떤 개발에 주로 사용을 하는가?
파이썬의 역사에 대해서는 나무위키에 자세하게 설명이 되어있다 (참조)
위의 두가지를 먼저 확인한 이후에 내가 개발을 하면서 까다로웠던 함수들을 해당 언어로 구현을 해보면서 문법을 공부하고 있다.
⚡ 파이썬 장단점
아직은 파이썬을 제대로 사용해 본 게 아니라서 장단점에 대해서 기본적인 정보만 적을 수밖에 없을 거 같다.
하지만 파이썬의 장단점에 대해서 보고 내가 일부 느낀 점에 대해서 적도록 하겠다.
- 문법이 쉽다 : 파이썬의 경우 쉬운 문법을 가지고 있어서 초보자들도 배우기가 쉽다.
- 이 부분의 경우는 파이썬이 간결한 문법을 지니고 있어서 그렇게 느낀다고 생각을 한다. 변수를 작성한때보 보면 데이터 유형을 선언하지 않고 만든다. 하지만 이게 과연 복잡성이 높은 개발을 할 때 좋을지는 한번 생각해봐야 할 거 같다.
- 생산성 : 파이썬은 다른 언어와 비교할 수 있는 높은 생산성을 가지고 있으며 다른 언어와도 함께 잘 작동한다.
- C++로 구현되어 있지만 파이썬에서 사용할 수 있는 OpenCV나 C와 C++로 구현된 NumPy, Rust로 구현된 Ruff 등 다른 언어로 구현된 후 파이썬으로 사용할 수 있도록 만들어진 라이브러리가 존재하며, 이러한 패키지들이 파이썬의 높은 생산의 장점을 그대로 가지면서 동시에 높은 속도까지 가져갈 수 있다고 한다.
- 커뮤니티 지원 및 다양한 라이브러리 : 파이썬은 전 세계적으로 많이 사랑받고 있는 언어이기 때문에 이에 따른 다양한 커뮤니티 활성화 및 다양한 라이브러리가 존재한다.
- 이 부분은 진짜 엄청난 메리트라고 생각을 한다. 파이썬의 역사가 깊다 보니 엄청나게 많고 다양한 라이브러리 및 예제가 존재한다. 파이썬을 공부하면서 혹시 이거 있나? 싶어서 검색을 하면 거의 대부분의 경우는 나온다고 볼 수 있다. 처음 파이썬을 공부한다면 도움을 많이 받을 수 있으며 비 개발자여도 검색만 잘해서 짜집기를 한다면 프로그램이 하나 나올 수 있다.
더 많은 장점들이 있겠지만 다른 장점은 개발을 해보면서 몸소 느껴봐야 할 거 같다.
다음은 단점에 대해서도 알아보자.
- 성능 및 속도 : 파이썬은 인터프리터 언어로서 실행 속도가 다른 언어에 비해서 상대적으로 느릴 수 있다.
- 인터프리터 언어이기 때문에 충분히 성능면에서는 좋지 않을 것이다. 하지만 나는 프로토 타입을 개발하기 위해서 파이썬을 공부하는 것이기 때문에 성능정인 부분은 상관이 없다. 혹시라도 개발을 할 때 고성능이 필요하다면 그때 다시 한 번 더 자세하게 공부를 해봐야 할거 같다.
- GIL( Global Interpreter Lock) : 파이썬 하면 빼놓을 수 없는 내용이다. CPython에서 사용되는 메커니즘으로 동시에 여러 스레드가 파이썬 바이트코드를 실행하는 것을 방지하는 락이다. 데이터의 일관성을 유지하고 방목 현상을 방지하는 역할을 하게 한다.
- GIL의 경우는 파이썬 개발에서 안정성을 보장하지만 이와 별개로 멀티프로세싱을 사용하거나 계산을 많이 해야 하는 프로그램에서는 성능적으로 좋지 않아서 보통은 C와 같이 성능이 좋은 언어로 구현을 하고 붙이는 작업을 많이 한다고 한다. 최근에는 GIL 관련해서 일부 문제점을 뜯어고치고 나서 3.2 버전부터는 새로운 GIL이 적용돼서 성능적으로도 어느 정도 개선이 되었다고 한다.
파이썬의 장단점에 대해서 찾아보다 느낀 점은 성능이다. 대부분 단점에 대해서 얘기할 때는 성능에 대해서 단점을 말하고 이에 보안된 내용을 같이 공유하고 있다. 우리 프로그램에서도 계산이 많은 부분이 존재하기는 하지만 프로토 타입으로 만들고 부시 고를 반복하려고 하는 거 기 때문에 개발을 하면서 직접 느껴봐야겠다.
⚡ 파이썬 공부 순서
내가 웹 개발 시 공부하는 방식이다. :(
- 내가 개발 시 자주 사용하는 함수를 해당 언어로 구현. (문법)
- 프레임 워크를 이용해서 게시판 만들기. (기본적인 CRUD)
- 프레임 워크를 사용하지 않고 게시판 만들기. (구조에 대한 이해)
- 이력 처리 (이력 기반 및 통계 대용량 데이터 처리)
- ex) os 이벤트 및 엑셀 기반 가공된 대용량 데이터
- gitHub를 통한 다른 파이썬 웹 개발 코드 확인 (다른 개발자와 내용 비교 및 공부)
- 추가 클론 코딩등 (익숙해지기)
⚡생각
연차는 쌓이고 자바의 숙련도는 늘어가고 있으며, 기본기는 아직도 매일매일 공부하고 있다.
파이썬을 공부하면서 느낀 점은 나 자신이 많이 늘었다고 생각하고 있다. 파이썬은 다들 쉽다고 한다 하지만 처음으로 파이썬을 공부한다고 하면 이해를 못 하고 개발을 했을 거 같다. 뭐가 뭔지도 모르고 그냥 코딩하면 화면이 뜨고 데이터가 호출되고.. 연차가 쌓이면서 느끼는 거지만 기본은 매우 중요하다고 다시 한번 느끼며 열심히 해야겠다.
'Front' 카테고리의 다른 글
프로그레시브 웹 앱(PWA)에 대한 내용 정리 (0) | 2023.04.11 |
---|