본문 바로가기

Python

Chapter 12 : Python - Module, Package, Built-in function, Third-party function


안녕하세요, 오랜만(?)에 포스팅으로 찾아뵙습니다!
첫 인사글을 보신분은아시겠지만 제 직업이 현재 군인이다보니..
최근 설 연휴 앞,뒤로 좀 많이 바빠서 이제야 포스팅을 올리네요
그래도 좋은 소식은 오늘이 파이썬 기초 포스팅 마지막 날이라는 것입니다!
오늘로 복습겸 블로그 포스팅은 마무리하고
파이썬 연습겸 자체실습 포스팅으로 찾아올수도 있을것 같네요

오늘 다룰 내용은 바로 파이썬 모듈과 패키지, 내장 및 외장함수입니다.
각각의 개념과 예시를 들면서 살펴보도록 하겠습니다.

모듈


파이썬에서 모듈(module)함수, 변수, 클래스 등을 정의한 파일입니다.
모듈은 코드의 재사용성과 구성 요소의 분리를 도와줍니다.
다른 모듈에서 정의된 기능을 가져와 사용하거나,
독립적으로 실행될 수 있는 프로그램을 작성할 수 있습니다.

파이썬에서는 모듈을 import 문을 사용하여 가져옵니다.
import 문을 사용하면 다른 파이썬 파일에 작성된 모듈을
현재 파일에서 사용할 수 있습니다.
예를 들어, math 모듈을 사용하고 싶다면 다음과 같이 import문을 사용합니다.

import math

result = math.sqrt(16)
print(result)  # 4.0


위의 예제에서 import math
math 모듈을 현재 파일에서 사용하겠다는 의미입니다.
math.sqrt(16)math 모듈에 정의된 sqrt 함수를 호출하는 것입니다.

또한, 모듈의 일부만 사용하고 싶을 때는 from 키워드를 사용하여
특정 기능만 가져올 수도 있습니다.
예를 들어, math 모듈에서 sqrt 함수만 사용하고 싶다면
다음과 같이 작성할 수 있습니다.

from math import sqrt

result = sqrt(16)
print(result)  # 4.0


이렇게 하면 math 모듈 전체를 가져오지 않고
sqrt 함수만 사용할 수 있는데 사용 방법은 밑에서 다시한번
구체적으로 살펴보도록 하겠습니다.


모듈 생성 및 사용 방법

파이썬의 모듈은 꼭 이미 만들어져 있는 것만
사용할 수 있는것은 아닙니다.
예를들어, 코드를 작성하는데 필요한 함수들이 있다면
새로운 모듈을 생성하고 그 안에 정의하여 사용할 수 있는 것입니다.
모듈을 만들고 사용하기 위해서는 다음과 같은 단계를 따릅니다.


1. 새로운 파이썬 파일을 생성합니다.
모듈의 이름은 파일의 이름과 동일하게 지정해야 합니다.
예를 들어, 모듈의 이름이 mymodule이라면
mymodule.py라는 이름으로 파일을 생성합니다.
(모듈은 확장자가 .py입니다.)


2. 모듈 파일에 필요한 함수, 변수, 클래스 등을 정의합니다.
모듈 파일 안에서는 다양한 기능을 정의할 수 있으며,
이후 다른 파이썬 파일에서 이 모듈을 가져와 사용할 수 있습니다.


3. 모듈 파일을 다른 파이썬 파일에서 사용하기 위해
import문을 사용합니다. 다른 파이썬 파일에서 모듈을 사용하려면
import문을 사용하여 해당 모듈을 가져옵니다.

모듈을 사용한 함수호출 결과

모듈을 통해 함수를 호출하는 방식은
위에서 본 방식 외에도 다양하게 있습니다.
아래의 예제 코드들을 확인해보시면 될 것 같네요

import mymodule as pork  # 별칭을 사용하여 모듈 참조
pork.adult_male(3)
pork.adult_female(4)
pork.elemantary_student(5)

from mymodule import *  # 모듈의 모든 내용을 사용하겠다는 의미
adult_male(3)
adult_female(4)
elemantary_student(5)

from mymodule import adult_male, adult_female  # 내가 원하는 함수만 불러올 수 있다.
adult_male(3)
adult_female(4)
elemantary_student(5)  # price_soldier는 import로 불러오지 않아서 오류가 발생

from mymodule import elemantary_student as EST # 불러온 함수의 이름을 새로 정의할 수도 있음
EST(5)

=> 초등학생 5명이 드시기엔 600g이 적당합니다.

패키지


파이썬에서 패키지여러 모듈의 집합으로 구성되어 있습니다.
모듈은 파이썬 코드를 담고 있는 파일이며,
패키지는 이러한 모듈들을 디렉토리 구조로 관리하는 것입니다.
한마디로 한 폴더 안에 모듈들을 관리한다는 뜻이죠

패키지를 사용하는 이유는 크게 두 가지입니다.
첫째, 다른 사람들이 만든 유용한 모듈을 쉽게 사용할 수 있습니다.
둘째, 코드를 구성하는 모듈들을 조직적으로 관리할 수 있습니다.
패키지를 사용하면 코드를 모듈 단위로 분리하여 유지보수가 용이하고,
재사용 가능한 코드를 만들 수 있습니다.

설명을 길게 적어놓았지만 쉽게 말하자면
하나의 폴더를 만들고 그 안에 여러 모듈을 정리해놓았다면
그 폴더가 바로 패키지라는 것입니다!
그럼 이제 바로 사용방법을 살펴보겠습니다.

패키지 생성 및 사용 방법

패키지를 생성하고 사용하는 방법을 간단하게 설명해드리겠습니다.


1. 패키지 생성
   먼저, 패키지 이름으로 된 새로운 폴더를 생성합니다.
예를 들어, practice_package 라는 패키지를 생성하려면
practice_package 라는 이름의 폴더를 생성합니다.
   다음으로, 패키지 폴더 안에는 해당 패키지와 관련된 모듈들을 생성합니다.
모듈은 앞서 설명했듯이 일반적으로 `.py` 확장자를 가지며,
각 모듈은 해당 패키지의 기능을 구현합니다.

2. 패키지 사용
   다른 파일에서 패키지를 사용하기 위해서는 import 문을 사용합니다.
예를 들어, practice_package 패키지의
mymodule 모듈을 사용하여
모듈안에 있는 함수를 사용할 때는
패키지이름.모듈이름.함수이름 형식으로 사용합니다.

import practice_package.mymodule
practice_package.mymodule.adult_male(4)
또는 
from practice_package import mymodule
mymodule.adult_male(4)

=>성인남자 4명이 드시기엔 1000g이 적당합니다.


이렇게 패키지를 생성하고 사용하는 것이 기본적인 방법입니다.
예제코드는 사용방법을 보여주기 위해 간단히 작성했지만
패키지를 생성할 때는 관련된 기능을 가진 모듈들을 적절하게 그룹화하고,
모듈 내에서는 해당 기능을 구현하도록 합니다.
이렇게 모듈들이 모여 패키지를 형성하면
코드의 구조가 잘 정리되고 유지보수가 용이해집니다.

또한, 패키지를 사용할 때는 import 문을 통해
해당 패키지나 모듈을 가져와 사용할 수 있습니다.
import 문을 사용할 때는 패키지 이름과 모듈 이름을
적절하게 지정하여 사용하면 됩니다.


내장함수와 외장함수

그럼 이제 파이썬의 내장함수와 외장함수에 대해 살펴보겠습니다.

1. 내장함수
   파이썬에는 기본적으로 내장되어 있는 함수들이 있습니다.
이 함수들은 파이썬을 설치하면 자동으로 사용할 수 있습니다.
내장함수는 파이썬에서 자주 사용되는
일반적인 작업들을 수행하기 위해 제공되는 함수입니다.
쉽게 설명하자면, 내장함수는 파이썬에서
이미 만들어져 있는 함수들로,
우리가 필요할 때마다 사용할 수 있는 도구들이라고 생각하시면 됩니다.

2. 내장함수의 예시 및 사용방법
사실 내장함수는 예시를 들 필요가 없을 정도로
매우매우 친숙합니다..ㅎㅎ
   가장 기본적인 내장함수 중 하나는 print() 함수입니다.
이 함수는 전달된 값을 화면에 출력하는 역할을 하죠.
다른 예시를 하나만 더 들어보자면, len() 함수가 있습니다.
이 함수는 괄호 안에 전달된 객체의 길이 또는 요소의 개수를 반환합니다.
이렇게 내장함수는 import를 한다던가
별 다른 작업없이 바로바로 사용할 수 있는 것들입니다.

3. 외장함수
   외장함수는 파이썬의 표준 라이브러리에 포함되어 있지만,
기본적으로 파이썬을 설치할 때 함께 설치되지는 않습니다.
외장함수는 특정한 작업을 수행하기 위해 필요한 함수들로,
필요할 때 개발자가 별도로 설치해서 사용해야 합니다.

4. 외장함수의 예시 및 사용방법
   대표적인 외장함수 중 하나는 random 모듈에 있는
randint() 함수입니다.
이 함수는 임의의 정수를 반환합니다.
예를 들어, import random을 작성한 후
random.randint(1, 10)라고 작성하면
1부터 10 사이의 임의의 정수가 반환됩니다.
  
또 다른 예시로는 datetime 모듈에 있는
datetime.now() 함수입니다.
이 함수는 현재 날짜와 시간을 반환합니다.
import datetime을 작성한 후
datetime.datetime.now()라고 작성하면
현재 날짜와 시간이 반환됩니다.

import random
import datetime

random_number = random.randint(1, 10)
print(random_number)

current_datetime = datetime.datetime.now()
print(current_datetime)
외장함수 사용과 출력결과

이것으로 파이썬 기본기 학습에 대한 블로그 포스팅을
모두 마무리하게 되었습니다!
제가 지금까지 학습한 모든 내용을 다 포스팅한 것은 아니고
조금 어렵다고 생각되거나
혼동을 야기하고 금방 잊어버릴 것 같은
그런 내용들을 위주로 포스팅했는데요,

사실은 누군가에게 설명하고 가르쳐주기 위해서
이 블로그를 시작한 것은 아니다보니
제 글만으로는 이해하기 어려울 수 있지만
그래도 이 글을 봐주시는 누군가에겐 도움이 되었으면 좋겠습니다.

앞으로는 제가 스스로 파이썬 연습을 하면서
작성한 프로그램을 코드리뷰하는 내용이라던가
새롭게 알게된 내용 등을 포스팅하게 될것 같습니다!

이제 막 한 걸음을 끝낸 것 같네요:)
다음에 또 뵙겠습니다. 모두 화이팅하세요~

출처 : https://youtu.be/kWiCuklohdY
필자는 해당 링크 영상을 통해 학습하였으나,
포스팅 내용 및 설명은 영상과 다를 수 있음을 알립니다.