๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐ŸŽ› Others.../- c & python & android

[Python ๊ณ ๊ธ‰] ํŒŒ์ด์ฌ Module-๋ชจ๋“ˆ์— ๋Œ€ํ•ด์„œ(1)

by Wonit 2020. 5. 7.

ํŒŒ์ด์ฌ์˜ ๋ชจ๋“ˆ(Module)์— ๋Œ€ํ•ด์„œ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“ˆ์ด ์–ด๋–ค ์˜๋ฏธ๋กœ ์“ฐ์ด๋Š”์ง€ ๋จผ์ € ํ™•์ธํ•ด์•ผ ํ•œ๋‹ค.

 

๋ชจ๋“ˆ์˜ ์ •์˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ์  ๋ชจ๋“ˆ๊ณผ ๊ฑด์ถ•ํ•™์  ์˜๋ฏธ, ์ด๋ ‡๊ฒŒ ๋‘ ๊ฐœ๋…์œผ๋กœ ์ •์˜๋ฅผ ํ•ด ๋†“์•˜๋Š”๋ฐ ๋ณธ์งˆ์€ ๊ฐ™์€ ๋œป์ด๋‹ค.

 

๋ชจ๋“ˆ์˜ ์ •์˜

์ด๋ ‡๊ฒŒ๋งŒ ๋“ค์œผ๋ฉด ์ง๊ด€์  ์ดํ•ด๊ฐ€ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋น„์œ ๋ฅผ ํ•ด๋ณด๊ฒ ๋‹ค.

 

๋ธ”๋ก

์šฐ๋ฆฐ ๋ธ”๋ก ์กฐ๊ฐ์œผ๋กœ ์™„์„ฑ๋œ ๋ธ”๋ก ์ง‘์„ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๊ธฐ์„œ ๋ธ”๋ก ์กฐ๊ฐ์— ํ•ด๋‹นํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ๋ชจ๋“ˆ์ด๋‹ค.

 

์šฐ๋ฆฌ๊ฐ€ ๋ฐฐ์šฐ๊ฒŒ๋  ๋ชจ๋“ˆ๋กœ ์šฐ๋ฆฌ๋Š” ์™„์„ฑ๋œ ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

 

์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ธ”๋ก, ์ฆ‰ ๋ชจ๋“ˆ์„ ๋ชจ์•„ ๋‚ด๊ฐ€ ์›ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด์„œ ๋ชจ๋“ˆ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์ •ํ™•ํžˆ ํ•„์š”ํ•˜๋‹ค.

 

์ด์ œ ํŒŒ์ด์ฌ์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ ์ƒ๊ฐํ•ด๋ณด์ž.

 

ํŒŒ์ด์ฌ์—์„œ์˜ ๋ชจ๋“ˆ

 

ํŒŒ์ด์ฌ์—์„œ ๋ชจ๋“ˆ์€ ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋œ ํŒŒ์ผ์œผ๋กœ ์ •์˜๋˜๋Š”๋ฐ, ์ฝ”๋“œ๊ฐ€ ์ €์žฅ๋˜์–ด์žˆ๋Š” ํŒŒ์ผ์ด๋ผ๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ํ•˜๋‚˜์˜ ํŒŒ์ด์ฌ ํŒŒ์ผ์„ ๋œปํ•œ๋‹ค.

 

๋ชจ๋“ˆ์˜ ์„ธ ๊ฐ€์ง€ ์ข…๋ฅ˜

 

๋ชจ๋“ˆ์—๋Š” ์„ธ ๊ฐ€์ง€์˜ ํฐ ํ…Œ๋งˆ๊ฐ€ ์žˆ๋Š”๋ฐ

  1. ๋‚ด์žฅ ๋ชจ๋“ˆ
  2. ์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ
  3. ์„œ๋“œํŒŒํ‹ฐ (Thrid-party) ๋ชจ๋“ˆ

 

์ด๋ ‡๊ฒŒ ์กด์žฌํ•œ๋‹ค.

 

๋‚ด์žฅ ๋ชจ๋“ˆ

Python3(2)์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋ณธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฒฉ์˜ ๋ชจ๋“ˆ์ด๋‹ค. ํŒŒ์ผ ์ž…์ถœ๋ ฅ์—์„œ ์‚ฌ์šฉํ–ˆ๋˜ sys ๋˜ํ•œ ๋‚ด์žฅ ๋ชจ๋“ˆ์ด๋‹ค.

๋Œ€ํ‘œ์ ์ธ ๋‚ด์žฅ ๋ชจ๋“ˆ๋กœ๋Š” dateTime, sys, random ๋“ฑ๋“ฑ์ด ์žˆ๋‹ค.

 

์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ

์‚ฌ์šฉ์ž ์ •์˜ ๋ชจ๋“ˆ์€ ์‚ฌ์šฉ์ž(ํ”„๋กœ๊ทธ๋ž˜๋จธ)๊ฐ€ ์ง์ ‘ ๋งŒ๋“  ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋“ˆ๋กœ์จ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

 

์„œ๋“œํŒŒํ‹ฐ ๋ชจ๋“ˆ(Thrid-party)

์„œ๋“œํŒŒํ‹ฐ ๋ชจ๋“ˆ์€ ๋‹ค๋ฅธ ๊ธฐ์—…์ด๋‚˜ ๋‹จ์ฒด์—์„œ ํŠน์ • ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“  ํŒŒ์ด์ฌ ํŒŒ์ผ์ด๋‹ค.

๋Œ€ํ‘œ์ ์ธ ์„œ๋“œํŒŒํ‹ฐ ๋ชจ๋“ˆ๋กœ๋Š” keras, numpy, TensorFlow ๋“ฑ์ด ์žˆ๋‹ค.

 

๋ชจ๋“ˆ ์ƒ์„ฑํ•˜๊ธฐ์™€ ์‚ฌ์šฉํ•˜๊ธฐ

 

๋ณธ๊ฒฉ์ ์œผ๋กœ Python Programming ์„ ํ•ด๋ณด์ž.

 

๊ฐ„๋‹จํ•˜๊ฒŒ print()ํ•จ์ˆ˜๋กœ ๋ชจ๋“ˆ์„ ๊ตฌ์„ฑํ•ด๋ณด์ž.

 

ModuleA.py

๋ชจ๋“ˆ ์ƒ์„ฑํ•˜๊ธฐ๊ฐ€ ๋๋‚ฌ์œผ๋ฉด ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๋ฐ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” import ๊ตฌ๋ฌธ์„ ์ด์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

import์˜ ํ˜•์‹์€

 

import ๋ชจ๋“ˆ๋ช… ์œผ๋กœ ๋ชจ๋“ˆ ์‚ฌ์šฉ ์ค€๋น„๋ฅผ ๋งˆ์น˜์ž. ๊ทธ๋ฆฌ๊ณ  ์ฐธ์กฐ์—ฐ์‚ฐ์ž .์„ ์ด์šฉํ•ด์„œ ๋ชจ๋“ˆ๋ช….ํ•จ์ˆ˜(๋ณ€์ˆ˜, ํด๋ž˜์Šค)๋กœ ์‚ฌ์šฉํ•ด๋ณด์ž.

 

Test01.py

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.


์œ„์˜ ์ฝ”๋“œ์— module.ModuleA๋ผ๊ณ  ๋˜์–ด์žˆ๋Š”๋ฐ, ์ด ์ด์œ ๋Š” module ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋””๋ ‰ํ† ๋ฆฌ ์ด๋ฆ„๊นŒ์ง€ ์ ์–ด์ค€ ๊ฒƒ์ด๋‹ค.

 

๋””๋ ‰ํ† ๋ฆฌ ๊ตฌ์กฐ

์—ฌ๊ธฐ์„œ ์ข€ ๋” ๊ฐ„ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.

 

as ํ‚ค์›Œ๋“œ

๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” import ๋ชจ๋“ˆ๋ช… ์ด๋ผ๊ณ  ํ–ˆ๋Š”๋ฐ ๋ชจ๋“ˆ๋ช…์ด ๋งŒ์•ฝ ์—„์ฒญ ๊ธด ์ด๋ฆ„์ด๊ฑฐ๋‚˜ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์— ๋˜ ๋””๋ ‰ํ† ๋ฆฌ ๋‚ด๋ถ€์— ๋ชจ๋“ˆ์ด ์žˆ๋Š” ๊ฒฝ์šฐ๋Š” ๋ชจ๋“ˆ๋ช…์ด ๊ธธ์–ด์ ธ์„œ ๊ฐ€๋…์„ฑ์„ ๋‚ฎ์ถ”๊ณ  ๋ณด๊ธฐ ์•ˆ ์ข‹์„ ๊ฒƒ์ด๋‹ค.

 

์ด ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ as ํ‚ค์›Œ๋“œ ์ด๋‹ค.

 

import ๋ชจ๋“ˆ๋ช… as ๋ณ„์นญ

 

์ด๋ ‡๊ฒŒ as ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์œ„์— ๋ดค๋˜ ๋ชจ๋“ˆ์˜ ์‚ฌ์šฉ์„ ์ข€ ๋” ๊ฐ„๊ฒฐํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

as ํ‚ค์›Œ๋“œ ์‚ฌ์šฉ

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ด์•ผํ•  ๋ถ€๋ถ„์ด ์žˆ๋Š”๋ฐ, ๋ชจ๋“ˆ์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค๋Š” ๊ฒƒ ์ž์ฒด๊ฐ€ ํ•ด๋‹น ๋ชจ๋“ˆ ์†Œ์Šค๋ฅผ ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ ์‹œํ‚ค๋Š” ๊ฒƒ, ๊ทธ๋Ÿผ ํŒŒ์ด์ฌ์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ import ๊ตฌ๋ฌธ์„ ๋งŒ๋‚˜์„œ ๋ชจ๋“ˆ์„ ๋งŒ๋‚˜๋ฉด ๋ชจ๋“ˆ์„ Interpreting ํ•œ๋‹ค.

 


์ด ๋ง์€ ์ฆ‰

 

ModuleA.py

 

์ง€๊ธˆ ๋ฐ‘์— printํ•จ์ˆ˜์—์„œ ์ถœ๋ ฅํ•˜๋Š” ๋‚ด์šฉ์ด

 

ModuleA.py์˜ ์‹คํ–‰ ๊ฒฐ๊ณผ

 

ํ•ด๋‹น ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ผ์—์„œ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ๋œป์ด๋‹ค.

 


์ด ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๊ธฐ ์œ„ํ•œ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ ํฌ์ŠคํŒ…์—์„œ ์ด์–ด๊ฐ€๊ฒ ์Šต๋‹ˆ๋‹ค!

๋Œ“๊ธ€