본문 바로가기
Programming

파이썬 프로그래밍을 잘한다는 것은?

by 하하호호 2020. 10. 15.
반응형

 

 

 파이썬 프로그램을 잘 한다는 것은 다양한 의미가 있다. 일반적으로 창조적인 코드를 만들어내어 극단적으로 코드수를 줄이는 것이라는 생각이 많지만 현실에서는 그렇지 않다. 프로그래밍 또한 사람이 하는 일이고, 머신에게 일을 주는 고용주의 입장이기 때문에 복잡한 한 사람의 창조자 보단 다수의 노동자가 훨씬 효율적이다.

 

 창조적인 코딩은 다양한 문제가 발생한다. 먼저 내가 만든 코드를 다른 사람이 사용할 때 해석하는데 들어가는 시간적 비용 + 인력비용이 발생한다. 둘째, 새로운 이슈가 발생하였을 때 재사용이 불가능한 코드가 되버리기 쉽상이다. 셋째, 일시적 사용목적으로 만든 코드는 완성도가 떨어지거나 보안에 취약할 수 있다.

 

 결국 프로그래밍을 한다는 것은 정형화된 클래쓰나 모듈을 사용하는 것이 된다. 그리고 프로그래밍을 잘 한다는 것은 얼마나 많은 정형화된 클래쓰나 모듈을 이해하고 사용할 수 있느냐의 문제다. 창조적인 코드는 아주 일부에 국한된 재능이기 때문에, 일반인도 프로그래밍을 통해 작업을 할 수 있는 기회가 주어지는 것이다.

 

 1. 클래쓰 class

 클래쓰는 일정한 기능을 모아놓은 집합체라고 할 수 있다. 변수를 사용할 수도 있고, 함수를 사용할 수도 있으며, 일정한 기능을 하는 변수/함수를 모아서 관리하기 편하도록 하는 장치다. 

 

 클래쓰를 선언하고 실제 코딩에서 사용하기 위해서는 인스턴트 변수를 만들어서 클래쓰를 사용하게 된다. 아래 예시는 'bread'클래쓰를 선언하고 실제 인스턴트 변수에 클래쓰를 입력하여 클래쓰 내의 변수를 사용하는 예시다. 

 

bread 클래쓰

 클래쓰 내에 함수를 이용할 경우에는 주의해야 할 점이 있다. 함수 입력 변수에 'self' 예약어를 사용해주어야 한다. 다른 작업자가 해당 클래쓰를 이용할 때 자신만의 변수를 이용하기 때문에, 함수 입력단자로 self를 이용해주어야 원활한 사용이 가능하다.

 

2. 모듈 module

 

 모듈은 아예 새로운 python 파일을 만들어서 import 해서 사용하는 기능이다. 데이터처리 부터 수학문제 HTML 처리 등등 다양한 기능을 하는 모듈이 이미 google에 뿌려져 있는 세상이다. 즉, 누구나 마음만 먹으면 복잡한 기능을 처리하는 모듈을 import 하여 자신만의 프로그램을 완성할 수 있다.

 

 모듈을 사용하기 위해서는 먼저 import를 해야 한다. 여기서 중요한 것은 모듈을 import 하기 위해서는 파이썬이 찾을 수 있는 경로에 모듈 파일을 저장해야 하는데, 현재 파이썬이 알고 있는 경로를 알아보는 방법은 다음과 같다.

 

 

 먼저 sys 모듈을 불러오고 sys.path 함수를 실행하면 현재 본인의 파이썬 프로그램이 기억하는 path가 나열될 것이다. 만약 본인만의 새로운 path를 추가하고자 한다면 다음과 코드가 필요하다.

 

 new_path 경로를 추가하게 되면 내가 저장한 모듈을 불러와서 해당 기능을 사용할 수 있게 된다. 불러올 모듈이 가지고 있는 기능 중에 일부만 사용할 계획이라면 굳이 메모리 낭비하면서 전체 기능을 불러올 필요가 없다. 본인이 사용하고자 하는 특정기능만을 불러오기 위해서는 다음 코드가 필요하다.

 

 module 로 부터 function1, function2를 불러와서 내 프로그램을 완성하고자 하는 코드다. 모듈은 다양한 목적을 위해 이미 많이 만들어져 있으므로, 본인이 완성하고 싶은 프로그램에 필요한 모듈을 찾아 매뉴얼을 참고 하여 이용하면 된다.

 

 프로그램 기술이 고도화 되면서 이제는 일반 프로그래머가 무에서 유를 창조하는 시대가 아니다. 이미 만들어져있는 기능들을 그냥 불러와서 사용하기만 하면 된다. 마치 레고 처럼 블록을 하나씩 조합하고 조립해서 만들어 나가는 것이 프로그래밍이다. 나만 아는 코드를 짜는 프로그래머는 협업에 있어 어려움이 생긴다.

 

 물론 컴퓨터 구조와 데이터 처리연산에 대한 해박한 지식이 있으면 프로그래밍에 많은 도움이 될 수 있겠지만 기존에 나와있는 모듈을 사용하기만 하더라도 시작할 수 있다. 프로그래밍 능력은 결국 얼마나 다양한 모듈을 다재다능하게 사용할 수 있느냐에 달린 것이다.

반응형

댓글