λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
"곡뢀" π‘Ÿπ‘’π‘π‘œπ‘Ÿπ‘‘/π‘ƒπ‘¦π‘‘β„Žπ‘œπ‘›

[Python] λͺ¨λ“ˆ(Module)μ΄λž€? / μœ μš©ν•œ Standard Modules

by ΰ·† Yoni ΰ·† 2021. 9. 3.
728x90
λͺ¨λ“ˆ(Module)μ΄λž€?

λͺ¨λ“ˆ(Module)μ΄λž€ 사전 μ •μ˜μ— μ˜ν•˜λ©΄
'ν”„λ‘œκ·Έλž¨μ„ κΈ°λŠ₯λ³„λ‘œ λΆ„ν• ν•œ 논리적인 일뢀뢄'
이라고 μ ν˜€μžˆλ‹€.

μ΄λ ‡κ²Œ λ“€μ—ˆμ„ λ•Œ μ²˜μŒμ— λ‚˜λ„ 이해λ₯Ό ν•˜μ§€ λͺ»ν–ˆλ‹€.
μ •ν™•νžˆ λͺ¨λ“ˆμ΄λž€ 뭐지...??

λͺ¨λ“ˆμ€ μ—¬λŸ¬ κΈ°λŠ₯을 λͺ¨μ•„λ‘” μ½”λ“œ 쑰각이라고 μ΄ν•΄ν•˜λ©΄ λœλ‹€.
μ΄λ ‡κ²Œ 되면 ν•¨μˆ˜μ™€ ν—·κ°ˆλ¦΄ μˆ˜λ„ μžˆλ‹€.
ν•¨μˆ˜λ„ μ½”λ“œ 쑰각 μ•„λ‹Œκ°€??
ν•˜μ§€λ§Œ κ΅¬μ„±μš”μ†Œλ₯Ό μ‚΄νŽ΄λ³΄λ©΄ 차이점을 μ•Œ μˆ˜κ°€ μžˆλ‹€.

  ν•¨μˆ˜ λͺ¨λ“ˆ
ꡬ성 μš”μ†Œ λ‹¨μˆœ λͺ…λ Ήλ¬Έ μ „μ—­λ³€μˆ˜, ν•¨μˆ˜, 클래슀

κ°€μž₯ 큰 차이점은 ν•¨μˆ˜λŠ”
ν•œ ν”„λ‘œκ·Έλž¨μ˜ μ½”λ“œ λ‚΄μ—μ„œ μž‘μ„±λ˜λŠ” 것이라면
λͺ¨λ“ˆ(Module)은 κ·Έ 자체둜 λ³„λ„μ˜ .py 파일둜 μ €μž₯λ˜λŠ” 것인데
이λ₯Ό λͺ¨λ“ˆν™”(Modularity)이라고 ν•œλ‹€.

ν•œ ν”„λ‘œκ·Έλž¨ μ½”λ“œ 속에 λͺ¨λ“  ν•¨μˆ˜λ“€μ„
κ·Έλ•Œκ·Έλ•Œ λ‹€ μž‘μ„±ν•œλ‹€λ©΄ 가독성도 λ–¨μ–΄μ§ˆ 뿐만 μ•„λ‹ˆλΌ
μ½”λ“œλ₯Ό κ΄€λ¦¬ν•˜λŠ” 것도 μ–΄λ €μšΈ 것이닀.
그렇기에 λͺ¨λ“ˆμ„ μƒμ„±ν•˜λ©΄
μ½”λ“œλ₯Ό 짜고 κ΄€λ¦¬ν•˜λŠ” 것이 μ‰¬μ›Œμ§„λ‹€.

λͺ¨λ“ˆμ„ μ‚¬μš©ν•˜λ©΄
ν•œ νŒŒμΌμ—μ„œ κ΅¬ν˜„ν•˜κ³ μž ν•˜λŠ” 게 더 λͺ…확해지고
ν•΄λ‹Ήν•˜λŠ” λͺ¨λ“ˆμ˜ κΈ°λŠ₯이 ν•„μš”ν•  λ•Œλ§ˆλ‹€
μ–Έμ œλ“ μ§€ importν•΄μ„œ μ‚¬μš©ν•  수 μžˆμ–΄
μ½”λ“œλ₯Ό μž¬μ‚¬μš©ν•  수 μžˆλ‹€λŠ” μž₯점이 μžˆλ‹€.

λ§Œμ•½, μ–΄λ–€ μ–΄ν”Œμ„ λ§Œλ“œλŠ”λ° login.py λͺ¨λ“ˆμ΄ μžˆλ‹€κ³  ν•˜μž.
그럼 μ–΄λ– ν•œ μ–΄ν”Œμ„ λ§Œλ“€λ”λΌλ„
둜그인 κΈ°λŠ₯을 μΆ”κ°€ν•΄μ£Όκ³  싢을 λ•Œλ§ˆλ‹€
κ·Έλƒ₯ login λͺ¨λ“ˆλ§Œ importν•΄μ£Όλ©΄ λ˜λŠ” 것이닀.



λ§ˆλ¬΄λ¦¬ν•˜λ©΄μ„œ λ‚΄κ°€ μ΅œκ·Όμ— κ³΅λΆ€ν•œ μœ μš©ν•œ μŠ€νƒ λ‹€λ“œ λͺ¨λ“ˆλ“€ 쀑 λͺ‡κ°œλ§Œ 정리해보겠닀.


random.py

import random 

# 1~100 쀑 λžœλ€ν•œ μ •μˆ˜ 좜λ ₯ 
print(random.randint(1, 100)) 

# 0~1 μ‚¬μ΄μ˜ λžœλ€ν•œ μ†Œμˆ˜ 좜λ ₯ 
print(random.uniform(0, 1))
84
0.28660941561947206  


datetime.py

import datetime 

# ν˜„μž¬μ˜ μ‹œκ°„κ³Ό λ‚ μ§œ 
today = datetime.datetime.now() 
print(today) 

# 좜λ ₯값을 "μš”μΌ, μ›” 일 연도"둜 ν¬λ§·νŒ…(formatting) 
print(today.strftime("%A, %B %dth %Y")) 

# νŠΉμ • μ‹œκ°„κ³Ό λ‚ μ§œ 
my_day = datetime.datetime(2021, 12, 17, 11, 6, 15) 
print(my_day) 

# 두 datetime의 차이 
print(today - my_day)
2021-09-03 14:09:34.879237
Friday, September 03th 2021
2021-12-17 11:59:59
-105 days, 2:09:35.879237

νŠΉμ • λ‚ μ§œ λ³€μˆ˜μΈ my_dayλ₯Ό λ‚˜μ˜ μ’…κ°•μΌλ‘œ μ„€μ •ν•΄λ‘μ—ˆλ‹€..γ…Žγ…Ž
μ½”λ”© 결과창으둜 보아... 쒅강은 105μΌμ΄λ‚˜ λ‚¨μ•˜λ€¬... 흐윽.....
아직 λ©€κ³  λ¨Ό λ‚˜μ˜ μ’…κ°•μ΄λž€... ( ´•οΈ΅•` )

os.py

import os 

# ν˜„μž¬ μ–΄λ–€ κ³„μ •μœΌλ‘œ 둜그인 λ˜μ–΄μžˆλŠ”μ§€ 확인 
print(os.getlogin()) 

# ν˜„μž¬ 파일의 디렉토리(directory) 확인 
print(os.getcwd()) 

# ν˜„μž¬ ν”„λ‘œμ„ΈμŠ€ ID 확인 
print(os.getpid)

이 λͺ¨λ“ˆμ˜ 결과창은 κ°œμΈμ •λ³΄κ°€ ν¬ν•¨λ˜μ–΄ μžˆκΈ°μ— μ˜¬λ¦¬μ§€ μ•Šκ² λ‹€ :-)

OSλŠ” Operating System, 즉 운영체제의 μ•½μžμ΄λ‹€.
이 os λͺ¨λ“ˆμ„ 톡해 파이썬으둜 운영체제λ₯Ό μ‘°μž‘ν•˜κ±°λ‚˜
μš΄μ˜μ²΄μ œμ— κ΄€ν•œ 정보λ₯Ό κ°€μ Έμ˜¬ 수 μžˆλ‹€.

μ–΄μ¨Œλ“  κ°„λ‹¨ν•œ λͺ‡λͺ‡κ°œμ˜ λͺ¨λ“ˆ μ •λ¦¬λŠ” μ—¬κΈ°κΉŒμ§€λ‹€!!



μ—¬λŸ¬κ°€μ§€ λͺ¨λ“ˆλ“€μ„ κ³΅λΆ€ν•˜λ‹€λ³΄λ‹ˆ

μ € random λͺ¨λ“ˆμ΄ λˆˆμ— μ΅μ—ˆλ‹€.
μƒκ°ν•΄λ³΄λ‹ˆ μ €λ²ˆ ν•™κΈ° μˆ˜μ—… ν”„λ‘œμ νŠΈ μ‹œκ°„μ—
μ„œλ²„-ν΄λΌμ΄μ–ΈνŠΈ 숫자 μ•Όκ΅¬κ²Œμž„ μ½”λ“œλ₯Ό 지 λ•Œ
μ—„μ²­λ‚˜κ²Œ μ‚¬μš©ν–ˆλ˜ λͺ¨λ“ˆμ΄μ—ˆλ‹€!!
μ„œλ²„-ν΄λΌμ΄μ–ΈνŠΈ 숫자 μ•Όκ΅¬κ²Œμž„...ν•˜ν•³.....
κ΅μˆ˜λ‹˜μ΄ μ°Έ 많이 λ―Έμ› λ˜ μ‹œμ ˆ ( α΄—_α΄—Μ©Μ© )


λ‹Ήμ‹œμ—” λ„ˆλ¬΄ νž˜λ“€μ—ˆλ˜ μ‹œκ°„λ“€μ΄μ§€λ§Œ

μ΄λ ‡κ²Œ μ§€λ‚˜κ³  λ³΄λ‹ˆ λ‹€ 쒋은 κ²½ν—˜μ΄μ—ˆμ§€ λͺ¨,,, γ…Ž
행볡...ν–ˆλ‹€.....!!

 

728x90

λŒ“κΈ€