์ธ๊ณต์ง€๋Šฅ๐Ÿพ/ํŒŒ์ด์ฌ ๊ธฐ๋ณธ

[ํŒŒ์ด์ฌ ๊ธฐ๋ณธ ๊ฐœ๋…] ๋ชจ๋“ˆ๊ณผ ํŒจํ‚ค์ง€์™€ ํ”„๋กœ์ ํŠธ

๐Ÿช„ํ•˜๋ฃจ๐Ÿช„ 2023. 1. 24. 18:30
728x90

* ์ด ๊ธ€์€ ๋„ค์ด๋ฒ„ ๋ถ€์ŠคํŠธ ์ฝ”์Šค์˜ ์ธ๊ณต์ง€๋Šฅ(AI) ๊ธฐ์ดˆ ๋‹ค์ง€๊ธฐ ๊ฐ•์˜๋ฅผ ์ˆ˜๊ฐ•ํ•˜๋ฉฐ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

ํ”„๋กœ์ ํŠธ๋ฅผ ํ• ๋•Œ, ๋‚ด๊ฐ€ ๋งŒ๋“  ์ฝ”๋“œ๋ฅผ ๊ฐ„๋‹จํžˆ ๋‹ค๋ฅธ ํŒ€์›๋“ค์ด ์‚ฌ์šฉํ•˜๊ฒŒ ํ•˜๊ณ  ์‹ถ์—ˆ๋˜ ์ ์ด ๋งŽ์•˜๋‹ค.
api๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๊ฑฐ๋‚˜ ๋ชจ๋“ˆ๋กœ ๋งŒ๋“ ๋‹ค๊ฑฐ๋‚˜,,,
ํ•™๊ธฐ์ค‘์—๋Š” ๋‹ค๋ฅธ ๊ณผ์ œ๋•Œ๋ฌธ์— ์ด๋Ÿฌํ•œ ์šฉ์–ด๋“ค์— ์ง€๋ ˆ ๊ฒ๋จน๊ณ  ๋‹ค๋ฅธ ํŒ€์›๋“ค์—๊ฒŒ ๊ฑฐ์˜ ๋ถ€ํƒํ–ˆ์—ˆ๋‹ค.
ํ•œ๋ฒˆ์ฏค์€ ์ •๋ณตํ•˜๊ณ  ๋„˜์–ด๊ฐ€์•ผ ํ•˜๋Š” ๊ฐœ๋…์ด๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ํ•˜๊ณ  ์‹ถ์€ ๊ณต๋ถ€๋ฅผ ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ๋งˆ์นจ ๊ณต๋ถ€ํ•  ์ข‹์€ ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ์ง‘์ค‘ํ•ด์„œ ๊ณต๋ถ€ํ•ด์„œ ๋‚ด๊ฑธ๋กœ ๋งŒ๋“ค์–ด ๋ณด์ž.

 

1) Module    ๋ชจ๋“ˆ ํ˜น์€ API (=๋ถ€ํ’ˆ)

- ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ ์กฐ๊ฐ๋“ค

- ํ”„๋กœ๊ทธ๋žจ์„ ๋ชจ๋“ˆํ™”ํ•˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์›Œ์ง

    ex. ๋„ค์ด๋ฒ„ ์ ‘์† ๋ชจ๋“ˆ(ํ˜น์€ api) -> ๊ฒŒ์ž„์—์„œ ์‚ฌ์šฉ

    ex. Built-in Module

 

- ๋ชจ๋“ˆ ๋งŒ๋“ค๊ธฐ

  • .py ํŒŒ์ผ์„ ์˜๋ฏธ
  • ๊ฐ™์€ ํด๋”์— ํ˜ธ์ถœ๋ , ํ˜ธ์ถœํ•  .py ํŒŒ์ผ์„ ์ €์žฅ
<tobecalled.py> # ๋ชจ๋“ˆ๋กœ ์‚ฌ์šฉ๋ , ํ˜ธ์ถœ๋˜๋Š” ํŒŒ์ด์ฌ ํŒŒ์ผ
def called_func(value):
	return value


<caller.py> # ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๋Š” ํŒŒ์ด์ฌ ํŒŒ์ผ
#๋ชจ๋“ˆ๋กœ ํ˜ธ์ถœ
import tobecalled.py

input_val=0
output_value=tobecalled.called_func(input_val)

๋ชจ๋“ˆ์ด๋ฆ„.ํ•จ์ˆ˜๋ช…(๋งค๊ฐœ๋ณ€์ˆ˜) ๋กœ ํ˜ธ์ถœ์‹œ

__pycache__ ๋ผ๋Š” ํด๋” ์ƒ์„ฑ

→ ํŒŒ์ด์ฌ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๊ฐ€ ์ปดํŒŒ์ผ(=๋ฉ”๋ชจ๋ฆฌ ๋กœ๋”ฉ์‹œ ๋” ๋น ๋ฅด๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๊ณ„์–ด๋กœ ๋ฒˆ์—ญ)ํ•˜์—ฌ ํด๋”์•ˆ์— tobecalled.cpython-XX.pyc ํŒŒ์ผ ์ƒ์„ฑ

tobecalled.py (๋ชจ๋“ˆ)์˜ ๋ชจ๋“  ์ฝ”๋“œ๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ๋กœ ๋กœ๋”ฉ

 

 

- ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๋Š” ๋ช‡๊ฐ€์ง€ ๋ฐฉ๋ฒ•

  • Alias(๋ณ„์นญ) ๋งŒ๋“ค๊ธฐ
import tobecalled as tbc
  • ๋ชจ๋‘ ํ˜ธ์ถœ
from tobecalled import tobecalled_class_or_func
  • ํŠน์ • ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๋งŒ ํ˜ธ์ถœ
from tobecalled import *

 

cf) Built-in Module ๊ธฐ๋ณธ ๋นŒํŠธ์ธ ๋ชจ๋“ˆ

import random
import time
import urllib.request

 

2) Package    ํŒจํ‚ค์ง€

- ๋ชจ๋“ˆ์„ ๋ชจ์•„๋†“์€ ๋‹จ์œ„. ํ•˜๋‚˜์˜ ํ”„๋กœ๊ทธ๋žจ (์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํด๋”๋กœ ๋ฌถ์—ˆ๋‹ค๊ณ  ์ƒ๊ฐ)์„ ๋งŒ๋“œ๋Š” ์ฝ”๋“œ์˜ ๋ฌถ์Œ

- ํŒจํ‚ค์ง€ ๋งŒ๋“ค๊ธฐ

  0. ์ œ์ผ ํฐ ์ฃผ์ œ์˜ ํ”„๋กœ์ ํŠธ ํด๋”๋ฅผ ๋งŒ๋“ ๋’ค ex. App

  1. ๊ธฐ๋Šฅ์„ ์„ธ๋ถ€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด ํด๋”๋กœ ๋งŒ๋“ฆ

      ex. order/    sound/    image/

  2. ๊ฐ ํด๋”๋ณ„๋กœ ํ•„์š”ํ•œ ๋ชจ๋“ˆ์„ ๊ตฌํ˜„

   3. ํด๋”๋ณ„๋กœ __init__.py ๊ตฌ์„ฑ

  • ์ œ์ผ ์ƒ์œ„ ํด๋”(๐Ÿ“‚App) __init__.py ์ฝ”๋“œ
__all__ = ["image", "order", "sound"] #ํด๋”๋ช…

from . import sound
from . import order
from . import image
  • ์ผ๋ฐ˜ ํด๋”(๐Ÿ“‚order) __init__.py ์ฝ”๋“œ
__all__ = ["group", "indivisual"] #๋ชจ๋“ˆ๋ช…

from . import group
from . import indivisual

  4. ๐Ÿ“‚(ํด๋”) ํ˜ธ์ถœ

[cmd]
python App

 

  • ์ œ์ผ ์ƒ์œ„ ํด๋”(๐Ÿ“‚App) __main__.py ์ƒ์„ฑ

์ฝ”๋“œ

if __name__ == '__main__':
    print("Hello App")

๊ฒฐ๊ณผ

  5. ๋ชจ๋“ˆ ์‚ฌ์šฉ

from module_dir import Class_or_func

 

3) Project    ํ”„๋กœ์ ํŠธ

- ํŒจํ‚ค์ง€๋ฅผ ๊ณต๊ฐœํ•˜๋Š”๊ฒƒ

728x90