반응형

안녕하세요, 왕초보 코린이를 위한 코딩유치원에 오신 것을 환영합니다.

 

 

[코딩유치원 기초문법 강의]

 

2021.03.09 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 1편_프로그래밍과 코딩의 정의, 그리고 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 2편_문자열 자료형

2021.03.11 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 3편_변수란 무엇일까?

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 4편_리스트 자료형

2021.03.12 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 5편_튜플, 딕셔너리 자료형

2021.03.13 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 6편_집합, 불 자료형

2021.03.14 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 7편_제어문(if문)

2021.03.15 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 8편_제어문(while문)

2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

2021.03.17 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 10편_함수, 모듈, 패키지 개념 총정리

2021.03.18 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 11편_함수 사용법

2021.03.19 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 12편_모듈 사용법2021.03.16 - [파이썬 기초/기초 문법] - [코딩유치원] 파이썬 기초 문법 9편_제어문(for문)

 

 

코딩유치원에서는 기초 문법을 하나하나 자세히 다루기보다는 개념에 대해 간략히 설명하고 넘어갈 예정입니다.

마치 영어를 시작할 때, 문법만 주구장창 공부하다가 영어에 흥미를 잃어버리는 것과 같이 코딩도 마찬가지라고 생각하기 때문입니다.

문법을 자세히 다루는 곳은 구글에서 조금만 검색해도 많이 나올뿐만 아니라, 나중에 필요할 때마다 찾아보는 것이 더 효율적입니다!


오늘은 함수, 모듈, 그리고 패키지가 무엇인지 큰 맥락에서 이야기 해보려합니다.

 

바로 함수를 만드는 법에 대해서 깊게 들어가기 보다는 이것들의 의미에 대해서 알고 큰 그림을 먼저 그리는 것이 더 좋다고 생각했기 때문입니다.

 

그럼 바로 시작하겠습니다!

 

함수

 

출처. 프로그래머가 필요한 수학 (brunch)

 

수학을 조금이라도 배워보신 분들이라면 한번쯤 들어보셨을 함수입니다. 우리가 많이 본 함수란 y=5x+10 요론거죠.

 

다들 알고 계실테지만 함수란 무엇인지 한번 정의하고 넘어가보겠습니다.

 

함수의 정의

입력(Input)을 받아서 내부적인 처리를 통해 출력(Output)을 돌려주는 시스템

 

 

놀랍게도 우리가 지금껏 배워왔던 내용들이 함수의 정의에 모두 들어가있습니다. 어떤가요? 그림이 조금 그려지시나요?

 

입력 & 출력 숫자, 문자열, 리스트, 튜플, 딕셔너리, 집합, 불 자료형
내부적인 처리 함수, if문, while문, for문

 

그런데 잠깐, 이상한 점이 있습니다. 내부적인 처리에 함수가 들어가있는데 이건 오타일까요?

당연히 아닙니다. 함수 안에도 함수가 들어갈 수 있기 때문이죠. 아래의 식당 함수 예를 보면서 설명드리겠습니다.

 

세상만사는 함수다?!

 

 

예를 들어, 식당 함수라는 것이 있다고 생각해봅시다. 식당 사장님이 자본을 가지고 인력을 뽑아서 식당 함수를 만들었습니다.

 

식당 함수 안에는 당연히 세부적인 함수들이 있겠죠? 맛있게 요리를 하는 함수, 손님에게 주문을 받고 음식을 가져다주는 함수, 식사를 끝내고 나가는 손님에게 돈 계산을 하는 함수, 남은 그릇들을 깨끗이 설거지 하는 함수 등등 그 외에도 다양한 함수들이 있습니다.

 

이렇게 직원들이 각자의 함수를 수행함으로써 영업이익이라는 최종적으로 원하는 Output을 낼 것입니다.

물론 그 안에서도 직원에게 주는 월급, 식자재 구입 등의 Input등이 있을 거란 것도 아시겠죠?

 

곰곰히 생각해보면 세상의 모든 일들을 함수로 생각해볼 수 있겠네요!

 

 

함수는 왜 사용할까?

 

혹시 모든 프로그래밍에서 왜 함수를 정의해서 사용하는지 궁금하지 않으신가요?

그것은 바로 인간의 본성에 있습니다. 사람은 태생적으로 반복적인 일을 지루해하고 싫어하기 때문입니다.

간편하고 편리한 것을 선호하는게 인간의 본성이죠. 마치 자주 찾는 사이트를 즐겨찾기 해놓는 것을 생각하면 바로 이해가 가실까요?

 

자주 사용하는 코드를 하나의 함수로 만들어 놓으면 나도 편하고, 남들도 편합니다.

나는 편한건 알겠는데 남들은 왜 편하냐구요? 이유는 다음과 같습니다.

 

1) 함수로 코드를 제작하면 가독성이 뛰어나다

2) 내가 제작한 함수를 남도 사용할 수 있게 배포할 수 있다

 

가독성이 뛰어나다는 것은 내가 코드를 다시 볼 때도 좋지만, 협업할 때 남도 읽기 쉽다는 장점이 있죠.

 

그리고 내가 제작한 함수를 남도 사용할 수 있다는 것은 바꿔 말하면 남이 제작한 함수를 내가 사용할 수 있다는 말입니다.

우리 같은 초보 입장에서는 코딩 고수들이 이미 만들어 놓은 함수를 쓸 수 있다는 것이 가장 큰 매력일 것입니다.

 

 

모듈과 패키지, 라이브러리

남이 제작한 함수를 사용하는 것과 지금부터 배울 모듈과 패키지, 라이브러리 개념과 관련이 있으니 조금만 더 집중해봅시다!

 

한땀한땀 파워포인트로 그린 개념도

모듈

모듈이란 파이썬 프로그램을 작성할 때, 함수나 변수 또는 클래스를 불러와서 사용할 수 있게끔 모아 놓은 파이썬 파일(.py)입니다.

우리가 설치한 VS Code에서 파이썬 파일을 만들 때, 제목.py로 만들었던 것 기억하시나요? 바로 그 파일을 모듈화 하는 규칙을 추가해서 작성하면 그것이 바로 모듈입니다. (추후 함수와 모듈 작성하는 법은 따로 포스팅하겠습니다)

 

패키지

패키지는 아주 쉽게 말해서 모듈을 잔뜩 모아서 폴더에 넣어둔 것을 생각하시면 됩니다. 이때, 패키지 안에 폴더가 더 있을 수도 있습니다.

파이썬의 강점은 강력한 패키지들이 많다는 것이죠. 데이터 사이언스와 관련된 Pandas, Numpy, 엑셀을 다루는 Openpyxl, 딥러닝을 위한 Tensor Flow 등 다양한 패키지들을 조금만 공부하면 사용할 수 있다는게 참 매력적이지 않나요?

 

라이브러리

라이브러리는 파이썬 설치 시 기본으로 설치되는 파이썬 표준 라이브러리(Python Standard Library, PSL)와 외부 라이브러리로 크게 두 가지로 나뉩니다. 외부에서 install 함수로 설치하는 패키지들은 외부 라이브러리에 별도 저장되는 것으로 보입니다. 사실 저도 패키지와 라이브러리 개념을 혼용해서 사용해와서 처음 알았네요. 말그대로 도서관처럼 책이라는 패키지를 저장해두는 곳이라고 생각하면 좋겠습니다.

 


오늘은 함수부터 시작해서 모듈, 패키지, 라이브러리의 개념에 대해서 알아보았어요.

 

다음 시간에는 이런 유용한 개념들을 어떻게 사용하는지에 대해서 차근차근 알아보겠습니다.

 

긴글 읽어주셔서 감사합니다.

 

반응형

+ Recent posts