๐Ÿ“š ์Šคํ„ฐ๋””/ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” ๊ฐ•์˜์ž๋ฃŒ

[3ํŒ€/๊น€๊ฒฝ์€] 9์ฃผ์ฐจ ํŒŒ์ด์ฌ ์Šคํ„ฐ๋”” - ๋ชจ๋“ˆ๊ณผ ํŒจํ‚ค์ง€

๊ฒฝ์€ 2023. 5. 24. 23:31

๋ฐ์ดํ„ฐ ๊ณผํ•™์„ ์œ„ํ•œ ํŒŒ์ด์ฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ต์žฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž‘์„ฑํ•œ ๊ฐ•์˜์ž๋ฃŒ์ž…๋‹ˆ๋‹ค.

9์ฐจ์‹œ_ํŒจํ‚ค์ง€_๊ฐ•์˜์•ˆ.pdf
1.57MB
9์ฐจ์‹œ_ํŒจํ‚ค์ง€_๊ณผ์ œ.pdf
1.59MB

๋ชจ๋“ˆ์˜ ๊ฐœ๋…

  • ๋ชจ๋“ˆ(module)์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋งŒ ๋‚˜์˜ค๋Š” ๊ฐœ๋…์€ ์•„๋‹ˆ๋‹ค.
  • 2014๋…„ ๊ตฌ๊ธ€Google์—์„œ๋Š” ๋ชจ๋“ˆํ˜• ํœด๋Œ€์ „ํ™”๋ฅผ ๋งŒ๋“ค์–ด ํŒ๋งคํ•˜๋Š” ๋‚ด์šฉ์˜ ‘Ara’๋ผ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์‹คํ–‰ํ•œ ์ ์ด ์žˆ๋‹ค. ํœด๋Œ€์ „ํ™”์— ๋“ค์–ด๊ฐ€๋Š” ์นด๋ฉ”๋ผ, ๋ฉ”๋ชจ๋ฆฌ, ์™€์ดํŒŒ์ด ๋“ฑ์„ ํ•˜๋‚˜์˜ ๋ธ”๋ก์œผ๋กœ ๊ฐœ๋ณ„ ํŒ๋งคํ•˜๊ณ  ์กฐ๋ฆฝํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์„ ๋งŒ๋“ค์–ด์ฃผ๋Š” ํ”„๋กœ์ ํŠธ์˜€๋‹ค.
  • ๋ ˆ๊ณ  ๋ธ”๋ก์€ ๊ทธ ํ•˜๋‚˜๋งŒ์œผ๋กœ๋„ ์ œํ’ˆ์ด์ง€๋งŒ, ๋‹ค๋ฅธ ๋ธ”๋ก๋“ค๊ณผ ์—ฐ๊ฒฐํ•˜๊ฑฐ๋‚˜ ํฐ ๋ฐ‘ํŒ์— ์กฐ๋ฆฝํ•ด ๋‚˜๊ฐ์œผ๋กœ์จ ๊ฑฐ๋Œ€ํ•œ ์ž‘ํ’ˆ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ๋ ˆ๊ณ  ๋ธ”๋ก ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ๋ฐ”๋กœ ๋ชจ๋“ˆ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ด์™ธ์—๋„ ์ž๋™์ฐจ ๋ถ€ํ’ˆ์ด๋‚˜ ๋ฒฝ๋Œ ๋“ฑ๋„ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ ๊ฐœ๋…์œผ๋กœ ์ œ์ž‘๋œ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ๋ชจ๋“ˆ์ด๋ผ๋Š” ๊ฐœ๋…์€ ๋ฌด์—‡์ผ๊นŒ?
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋ชจ๋“ˆ์€ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ ์กฐ๊ฐ์„ ๋œปํ•œ๋‹ค. ์ฆ‰, ํ•˜๋‚˜ํ•˜๋‚˜ ์—ฐ๊ฒฐํ•ด ์–ด๋–ค ๋ชฉ์ ์„ ๊ฐ€์ง„ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์ž‘์€ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค. ๊ฐ ๋ชจ๋“ˆ ์—ญ์‹œ ์ €๋งˆ๋‹ค ์—ญํ• ์ด ์žˆ์–ด์„œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ชจ๋“ˆ๊ณผ ์ธํ„ฐํŽ˜์ด์Šค interface๋งŒ ์—ฐ๊ฒฐ๋˜๋ฉด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ฐœ๋…
      • ํ•จ์ˆ˜์—์„œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž…๋ ฅํ•˜๋Š” ์•ฝ์†
      • ๋‹ค์‹œ ๋งํ•ด ํ•ด๋‹น ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋ชจ๋“ˆ ๊ฐ„์˜ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ์•ฝ์†์ด ํ•„์š”ํ•œ๋ฐ, ์ด๊ฒƒ์„ ์ธํ„ฐํŽ˜์ด์Šค๋ผ๊ณ  ํ•œ๋‹ค.
    • ์ฃผ๋ณ€์—์„œ์˜ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์„œ๋น„์Šค๋˜๊ณ  ์žˆ๋Š” ํ”„๋กœ๊ทธ๋žจ
      • ๋Œ€ํ‘œ์ ์ธ ์˜ˆ๊ฐ€ ์นด์นด ์˜ค ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๊ฒŒ์ž„ ํ”„๋กœ๊ทธ๋žจ์ด๋‹ค.
      • ์Šค๋งˆํŠธํฐ์„ ํ†ตํ•ด ์นด์นด์˜ค ๊ณ„์ •์œผ๋กœ ํŠน์ •ํ•œ ์นด์นด์˜ค ๊ฒŒ์ž„์„ ํ•˜๋ฉด ๋Œ€๋ถ€๋ถ„ ๋น„์Šทํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ฒŒ์ž„์ด ์‹คํ–‰๋œ๋‹ค. ์ด๋Š” ์นด์นด์˜ค์—์„œ ๋ชจ๋“ˆํ™” ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์ธํ„ฐ๋„ท์— ์ œ๊ณตํ•จ์œผ๋กœ์จ ๋‹ค์–‘ํ•œ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์‚ฌ๊ฐ€ ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
      • ์ด๋ ‡๊ฒŒ ๋ชจ๋“ˆํ™”๋œ ํ”„๋กœ๊ทธ๋žจ์„ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์ด๋‚˜ ์ž์‹ ์ด ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๋งค์šฐ ์‰ฝ๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜๋„, ๋˜๋Š” ์ œ๊ณตํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

random ๋ชจ๋“ˆ

  • ๋‚œ์ˆ˜๋ฅผ ์‰ฝ๊ฒŒ ์ƒ์„ฑ์‹œ์ผœ ์ฃผ๋Š” ๋ชจ๋“ˆ์ด๋‹ค.
  • >>> import random >>> random.randint(l, 1000) 198
  • 1ใ€œ1000 ์ค‘ ์ž„์˜์˜ ์ˆซ์ž๊ฐ€ ์ƒ์„ฑ๋œ๋‹ค.
  • ์—ฌ๊ธฐ์„œ๋Š” import ๊ตฌ๋ฌธ์ด ์ค‘์š”ํ•˜๋‹ค. import ๊ตฌ๋ฌธ์€ ๋’ค์— ์žˆ๋Š” ๋ชจ๋“ˆ, ์ฆ‰ random์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ˜ธ์ถœํ•˜๋ผ๋Š” ๋ช…๋ น์–ด์ด๋‹ค.
  • ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๋ง์€ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ฆฌ๋ผ๋Š” ๋œป์ด๋‹ค. ๋‹ค์Œ์œผ๋กœ ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ทธ ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ํ•จ์ˆ˜, ์—ฌ๊ธฐ์„œ๋Š” randint() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค. randint() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด randint ํ•จ์ˆ˜์˜ ์ธํ„ฐํŽ˜์ด์Šค, ์ฆ‰ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์„ค์ •์ด ์–ด๋–ป๊ฒŒ ๋˜์–ด ์žˆ๋Š”์ง€ ์•Œ์•„์•ผ ํ•œ๋‹ค.

ํŒจํ‚ค์ง€์˜ ๊ฐœ๋…

  • ํŒจํ‚ค์ง€ packages๋Š” ๋ชจ๋“ˆ์˜ ๋ฌถ์Œ์ด๋‹ค.
  • from์€ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ค์ง€๋ถ€ํ„ฐ ํ˜ธ์ถœํ•˜๋Š” ๋ช…๋ น์–ด์ด๋‹ค.

  • ์œ„์™€ ๊ฐ™์ด ์ผ์ข…์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์ฒ˜๋Ÿผ ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€ ์•ˆ์— ์—ฌ๋Ÿฌ ๊ฐœ ์˜ ๋ชจ๋“ˆ์ด ์žˆ๋Š”๋ฐ, ์ด ๋ชจ๋“ˆ๋“ค์ด ์„œ๋กœ ํฌํ•จ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง€๋ฉฐ ๊ฑฐ๋Œ€ํ•œ ํŒจํ‚ค์ง€๋ฅผ ๋งŒ๋“ ๋‹ค.

๋ชจ๋“ˆ ๋งŒ๋“ค๊ธฐ ์‹ค์Šต

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

‘fah_converter.py’๋กœ ์ €์žฅ

def covert_c_to_f(celcius_value):
    return celcius_value * 9.0/5+32

ํ•ด๋‹น๋ชจ๋“ˆ์„์‚ฌ์šฉํ•˜๋Š” ์ฝ”๋“œ (ํ”ํžˆ ํด๋ผ์ด์–ธํŠธ ์ฝ”๋“œ๋ผ๊ณ  ๋ถ€๋ฆ„)๋ฅผ ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑํ•˜์—ฌ ‘module_ex.py'๋กœ ์ €์žฅ

import fah_converter 

print("Enter a celsius value:")
celsius = float(input())
fahrenheit = fah_converter.covert_c_to_f(celsius)
print("That's", fahrenheit, "degrees Fahrenheit.")
Enter a Celsius value:
10                              #์‚ฌ์šฉ์ž ์ž…๋ ฅ 
That's 50.0 degrees Fahrenheit. #๊ฒฐ๊ณผ๊ฐ’ ์ถœ๋ ฅ
  • ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํ•ต์‹ฌ ์ฝ”๋“œ๋Š” 1ํ–‰์˜ import fah_converter๋กœ, ๊ธฐ์กด์— ๋งŒ๋“  ์ฝ”๋“œ ํŒŒ์ผ์—์„œ. py๋ฅผ ๋นผ๊ณ  ํ•ด๋‹น ํŒŒ์ผ์˜ ์ด๋ฆ„๋งŒ ์ž…๋ ฅํ•˜๋ฉด ํŒŒ์ผ ๋‚ด์˜ ํ•จ์ˆ˜๋ฅผ ๋ถˆ๋Ÿฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฆ‰,. py ์ž์ฒด๊ฐ€ ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์ด ๋œ๋‹ค.
  • ์ด ์ฝ”๋“œ์—์„œ๋Š” fah_converter๊ฐ€ ๋ชจ๋“ˆ์ด๊ณ , ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์˜ covert_c_to_f() ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” 5ํ–‰๊ณผ ๊ฐ™์ด fahrenheit = fah_ converter.covert_c_to_f (celsius)๋ผ๊ณ  ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.
  • ํ•ต์‹ฌ์€ ํ˜ธ์ถœ๋ฐ›๋Š” ๋ชจ๋“ˆ๊ณผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์ด ๊ฐ™์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์— ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ๋Š” fah_converter.py์™€ module_ex.py๊ฐ€ ๊ฐ™์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์— ์žˆ์–ด์•ผ ๋ฌธ์ œ์—†์ด ์‹คํ–‰๋œ๋‹ค.

 

๋„ค์ž„์ŠคํŽ˜์ด์Šค

  • ๋„ค์ž„์ŠคํŽ˜์ด์Šค๋Š” ๋ชจ๋“ˆ ํ˜ธ์ถœ์˜ ๋ฒ”์œ„๋ฅผ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
  • ํ•˜๋‚˜์˜ ๋ชจ๋“ˆ์•ˆ์—๋Š” ํด๋ž˜์Šค, ํ•จ์ˆ˜, ๋ณ€์ˆ˜๊ฐ€ ์žˆ์œผ๋ฉฐ import๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ด๋“ค์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ๋•Œ๋กœ๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์˜ ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ํ˜ธ์ถœ๋œ ๋ชจ๋“ˆ์˜ ํ•จ์ˆ˜ ์ด๋ฆ„์ด ๊ฐ™์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ์ข‹์€ ์Šต๊ด€์€ ์•„๋‹ˆ์ง€๋งŒ ์ต์ˆ™ํ•˜์ง€ ์•Š์•„ ๋ฐœ์ƒํ•˜๋Š” ์‹ค์ˆ˜์ผ ์ˆ˜๋„ ์žˆ๊ณ  ํ•„์š”์— ๋”ฐ๋ผ ๊ธฐ์กด ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋‹ค๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์ด ๊ฒฝ์šฐ ํ˜ธ์ถœ๋œ ๋ชจ๋“ˆ์˜ ์‚ฌ์šฉ ๋ฒ”์œ„๋ฅผ ๋ช…ํ™•ํžˆ ์ง€์ •ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ฐœ๋…์ด ๋ฐ”๋กœ ๋„ค์ž„์ŠคํŽ˜์ด์Šค์ด๋‹ค.
  • ๋ชจ๋“ˆ ์ด๋ฆ„์— ์•Œ๋ฆฌ์•„์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ๋ชจ๋“ˆ ์•ˆ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•
    • ์•Œ๋ฆฌ์•„์Šค๋Š” ์ผ์ข…์˜ ๋ณ„์นญ์œผ๋กœ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ๋ฐ”๊ฟ” ๋ถ€๋ฅผ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์ด ๋„ˆ๋ฌด ๊ธธ๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์ฝ”๋“œ์™€ ํ—ท๊ฐˆ๋ฆฌ๋Š” ์ด๋ฆ„์ผ ๋•Œ as ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์˜ ์ด๋ฆ„์„ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋ฐ”๊ฟ” ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
    import fah_converter as fah
    print(fah.covert_c_to_f(41.6))
    
    106.8800000000000
    
    • 1ํ–‰์—์„œ ์ด์ „์— ๋งŒ๋“  fah_converter ๋ชจ๋“ˆ์„ fah๋กœ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•˜์—ฌ ํ˜ธ์ถœํ•˜์˜€๋‹ค.
    • fah.covert_c_to_f(41.6) ์ฝ”๋“œ๋กœ fah_converter ๋ชจ๋“ˆ ์•ˆ์— covert_c_to f() ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์˜€๋‹ค.
    ๐Ÿ’ก ‘๋ชจ๋“ˆ๋ช….ํ•จ์ˆ˜๋ช…(๋˜๋Š” ํด๋ž˜์Šค๋ช…/๋ณ€์ˆ˜๋ช…)’
    • ์œ„์˜ ํ˜•ํƒœ๋กœ ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ํ˜„์žฌ ์‚ฌ์šฉํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋žจ์— ๊ฐ™์€ ์ด๋ฆ„์˜ ์ฝ”๋“œ๊ฐ€ ์žˆ๋”๋ผ๋„ ๋ชจ๋“ˆ ๋‚ด์—์„œ๋งŒ ํ•œ์ •ํ•˜์—ฌ ํ˜ธ์ถœํ•ด์•ผ ํ•œ๋‹ค.

from ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์—์„œ ํŠน์ • ํ•จ์ˆ˜ ๋˜๋Š” ํด๋ž˜์Šค๋งŒ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•

import covert_c_to_f
2 print(covert_c_to_f(41.6))
106.88000000000001
  • ‘from ๋ชจ๋“ˆ๋ช… import ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ํ•จ์ˆ˜๋ช…’์˜ ํ˜•ํƒœ๋กœ ์ž‘์„ฑํ•˜๋ฉด ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ๋‹ค ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ œ ์ด ํ•จ์ˆ˜๋Š” ๋ณ„๋„์˜ ๋ชจ๋“ˆ๋ช…์„ ์จ ์ฃผ์ง€ ์•Š์•„๋„ ๋‹จ๋… ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์—ฌ๊ธฐ์„œ ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ from์€ ๊ผญ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•œ ํ‚ค์›Œ๋“œ๊ฐ€ ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. ํŒจํ‚ค์ง€๋ฅผ ํ˜ธ์ถœํ•˜๊ฑฐ๋‚˜ ํ•ด๋‹น ํŒจํ‚ค์ง€ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•  ๋•Œ๋„ from ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํŒจํ‚ค์ง€์™€ ํŒจํ‚ค์ง€, ํŒจํ‚ค์ง€์™€ ๋ชจ๋“ˆ ๊ฐ„์—๋Š” ์„œ๋กœ ์ค‘์ฒฉ๊ตฌ์กฐ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๊ณ  ์ด ์ค‘์ฒฉ ๊ตฌ์กฐ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ from์˜ ์—ญํ• ์ด๋‹ค.

ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ณ„ํ‘œ(*)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ

  • ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ณ„ํ‘œ(*)๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ
    • ์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํ“จํ„ฐ์—์„œ ๋ณ„ํ‘œ๋Š” ๊ณฑ์…ˆ์˜ ์˜๋ฏธ๋„ ์žˆ์ง€๋งŒ ๋ชจ๋“  ๊ฒƒ์ด๋ผ๋Š” ๋œป๋„ ์žˆ๋‹ค.
    from fah_converter import * 
    print(covert_c_to_f(41.6))
    
    106.88000000000001
    
    • ‘from ๋ชจ๋“ˆ๋ช… import ์ˆ˜’๋ผ๊ณ  ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ๋ชจ๋“ˆ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ํ˜ธ์ถœํ•œ๋‹ค๋Š” ๋œป์ด๋‹ค.

๊ฐ€์žฅ ์„ ํ˜ธํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ ์•Œ๋ฆฌ์•„์Šค๋ฅผ ์ƒ์„ฑํ•˜์—ฌ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ๊ฐ๊ฐ์˜ ํ•จ์ˆ˜๋‚˜ ํด๋ž˜์Šค๊ฐ€ ์–ด๋””์„œ ๋‚˜์˜ค๋Š”์ง€๋ฅผ ๋ช…ํ™•ํžˆ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ํ•จ์ˆ˜๋ผ๋„ covert_c_to_f๋ณด๋‹ค fah.covert_c_to_f๋ผ๊ณ  ํ‘œ๊ธฐํ•˜๋Š” ๊ฒƒ์ด ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ์ž…์žฅ์—์„œ๋Š” ์ฝ”๋“œ์˜ ์ถœ์ฒ˜๋ฅผ ๋ช…ํ™•ํžˆ ์•Œ ์ˆ˜ ์žˆ์–ด์„œ ์ข‹๋‹ค.

๋‚ด์žฅ ๋ชจ๋“ˆ์˜ ์‚ฌ์šฉ

 

  • ํŒŒ์ด์ฌ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ฐœ๋ฐœํ•˜๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ž ์ฒ˜๋ฆฌ, ์›น, ์ˆ˜ํ•™๊ณผ ๊ด€๋ จ๋œ ๋‹ค์–‘ํ•œ ๋‚ด์žฅ ๋ชจ๋“ˆ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋ณ„๋‹ค๋ฅธ ์กฐ์น˜ ์—†์ด import๋ฌธ ํ•œ ์ค„๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
  • random ๋ชจ๋“ˆ
    • ์ด ๋ชจ๋“ˆ ์•ˆ์—๋Š” ์ •์ˆ˜ ๋ชจ๋“ˆ์„ ์ƒ์„ฑํ•˜๋Š” randint() ํ•จ์ˆ˜์™€ ์ž„์˜์˜ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•˜๋Š” random() ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค.
    >>> import random
    >>> print(random.randint (0, 100))  # 0-100 ์‚ฌ์ด์˜ ์ •์ˆ˜ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑ
    7
    >>> print(random.random())          # ์ผ๋ฐ˜์ ์ธ ๋‚œ์ˆ˜ ์ƒ์„ฑ
    0.056550421789531846
    
  • time ๋ชจ๋“ˆ
    • ์‹œ๊ฐ„๊ณผ ๊ด€๋ จ๋œ time ๋ชจ๋“ˆ์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์‹œ๊ฐ„์„ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ํ˜„์žฌ ์‹œ๊ฐ์„ ์•Œ๋ ค์ค€๋‹ค.
    • ๋Œ€ํ‘œ์ ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์ด ๋™์ž‘ํ•˜๋Š” ํ˜„์žฌ ์‹œ๊ฐ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.
    >>> import time
    >>> print (time.localtimeO) # ํ˜„์žฌ ์‹œ๊ฐ ์ถœ๋ ฅ 
    time.struct_time(tm_year=2018, tm_mon=8, tm_mday=19, tm_hour=22, tm_min=9, 
    tm_sec=21, tm_wday=6, tm_yday=231, tm_isdst=0)
    
  • urlib ๋ชจ๋“ˆ
    • ์›น๊ณผ ๊ด€๋ จ๋œ urllib ๋ชจ๋“ˆ์€ ์›น ์ฃผ์†Œ์˜ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.
    • ๋Œ€ํ‘œ์ ์œผ๋กœ urllib์˜ request ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ฉด ํŠน์ • URL์˜ ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. urllib.request.urlopen() ์ฝ”๋“œ์—์„œ ๊ด„ํ˜ธ ์•ˆ์— ํŠน์ • ์›น ์ฃผ์†Œ๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ํ•ด๋‹น ์ฃผ์†Œ์˜ HTML ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์˜จ๋‹ค.
    >>> import urllib.request
    >>> response = urllib.request.urlopen("<http://theteamlab.io>") 
    >>> print(response.read())
    
    [์ฐธ๊ณ ]
    • ์ด์™ธ์—๋„ ๋งŽ์€ ํŒŒ์ด์ฌ ๋ชจ๋“ˆ์ด ์žˆ๋‹ค ๊ทธ๋ ‡๋‹ค๋ฉด ์ด ๋ชจ๋“ˆ๋“ค์€ ์–ด๋–ป๊ฒŒ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„๊นŒ?
    • ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๊ตฌ๊ธ€์—์„œ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ํŠนํžˆ ์˜์–ด๋กœ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
    • ๐Ÿ’ก python time module run timeํŒŒ์ด์ฌ ์ฝ”๋ฆฌ์•„์— ๋ฌธ์˜ํ•˜๊ธฐ
      • ํŒŒ์ด์ฌ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๋งŽ์€ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋Š” ๋Œ€ํ‘œ์ ์ธ ์ปค๋ฎค๋‹ˆํ‹ฐ
      ๐Ÿ’ก https://www.facebook.com/groups/pythonkorea
    • ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ˆ˜ํ–‰์— ๊ฑธ๋ฆฐ ์‹œ๊ฐ„์„ ์•Œ์•„๋‚ด๋Š” ๋ชจ๋“ˆ์„ ์ฐพ์„ ๋•Œ

ํŒจํ‚ค์ง€์˜ ๊ตฌ์„ฑ

  • ํŒจํ‚ค์ง€๋Š” ํ•˜๋‚˜์˜ ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ์˜ ๋ฌถ์Œ์ด๋‹ค.
  • ๋ชจ๋“ˆ์€ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๊ณ , ํŒจํ‚ค์ง€๋Š” ํŒŒ์ผ์ด ํฌํ•จ๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ(ํด๋”)๋กœ ๊ตฌ์„ฑ๋œ๋‹ค. ์ฆ‰, ์—ฌ๋Ÿฌ ๊ฐœ์˜ , py ํŒŒ์ผ์ด ํ•˜๋‚˜์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ๋“ค์–ด๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ‘ํŒจํ‚ค์ง€’๋ผ๊ณ  ํ•œ๋‹ค.
  • ํ”ํžˆ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์ด ๋งŒ๋“  ํ”„๋กœ๊ทธ๋žจ์„ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ library๋ผ๊ณ  ํ•˜๋Š”๋ฐ. ํŒŒ์ด ์ฌ์—์„œ๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ•˜๋‚˜์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ์ดํ•ดํ•˜๋ฉด ๋œ๋‹ค. ํŒŒ์ด์ฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ํŒŒ์ด์ฌ ์˜คํ”ˆ์†Œ์Šค ํ”„๋กœ๊ทธ๋žจ์€ ๋ชจ๋‘ ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.
  • ํŒŒ์ด์ฌ์˜ ๋ชจ๋“ˆ์„ ๊ตฌ์„ฑํ•  ๋•Œ์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ํŒจํ‚ค์ง€์—๋„ ์˜ˆ์•ฝ์–ด๊ฐ€ ์žˆ๋‹ค. ํŒจํ‚ค์ง€์—์„œ ํ•œ ๊ฐ€์ง€ ์ฃผ ์˜ํ•  ์ ์€ ํŒŒ์ผ๋ช… ์ž์ฒด๊ฐ€ ์˜ˆ์•ฝ์–ด๋ฅผ ๋ฐ˜๋“œ์‹œ ์ง€์ผœ์•ผ๋งŒ ์‹คํ–‰๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํŒจํ‚ค์ง€ ๋‚ด์˜ ๋ช‡๋ช‡ ํŒŒ์ผ์—๋Š” init,__ main__ ๋“ฑ์˜ ํ‚ค์›Œ๋“œ ํŒŒ์ผ๋ช…์ด ์‚ฌ์šฉ๋œ๋‹ค.

ํŒจํ‚ค์ง€ ๋งŒ๋“ค๊ธฐ ์‹ค์Šต

์ธํ„ฐ๋„ท์—์„œ ์ฃผ์‹ ์ •๋ณด๋ฅผ ๋ฐ›์•„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๊ณ , ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ

  • ์‹ค์ œ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๊ณ  ๋Œ€๋žต ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์œผ๋กœ ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ•œ๋‹ค๋Š” ๊ฐœ๋…๋งŒ ์•Œ์•„๋ณด๊ธฐ ์œ„ํ•œ ์‹ค์Šต์ด๋‹ค.
  1. ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์„ฑํ•˜๊ธฐ
    • ์‹ค์Šต์—์„œ ๋งŒ๋“ค ํŒจํ‚ค์ง€ ์ด๋ฆ„์€ ‘roboadvisor’
    • ํŒจํ‚ค์ง€ ์ด๋ฆ„ ๋Œ€๋ถ€๋ถ„์€ ์†Œ๋ฌธ์ž๋ฅผ ์‚ฌ์šฉ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†Œ๋ฌธ์ž๋กœ ํŒจํ‚ค์ง€ ์ด๋ฆ„์„ ์ง€์ •
    • roboadvisor์—๋Š” ์„ธ ๊ฐ€์ง€ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •
    crawling(ํฌ๋กค๋ง): ์ฃผ์‹ ๊ด€๋ จ ๋ฐ์ดํ„ฐ๋ฅผ ์ธํ„ฐ๋„ท์—์„œ ๊ฐ€์ ธ์˜ค๋Š” ๊ธฐ๋Šฅ database(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค): ๊ฐ€์ ธ์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋Šฅ
    • ํŒจํ‚ค์ง€๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•œ ์ฒซ ๋ฒˆ์งธ ๋‹จ๊ณ„๋Š” ๊ฐ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ ๋‹ค์‹œ ์„ธ๋ถ€ ํŒจํ‚ค์ง€์— ๋งž์ถฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋จผ์ € cmd ์ฐฝ์— ๋‹ค์Œ ๋ช…๋ น์„ ์ž…๋ ฅํ•˜์—ฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
    mkdir roboadvisor
  2. crawling mkdir
  3. database mkdir analysis
  4. cd roboadvisor mkdir
  5. analysis(๋ถ„์„): ํ•ด๋‹น ์ •๋ณด๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์˜๋ฏธ ์žˆ๋Š” ๊ฐ’์„ ๋ฝ‘์•„๋‚ด๋Š” ๊ธฐ๋Šฅ

๋””๋ ‰ํ„ฐ๋ฆฌ๋ณ„๋กœ ํ•„์š”ํ•œ ๋ชจ๋“ˆ ๋งŒ๋“ค๊ธฐ

  • ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€๋Š” ์ค‘์ฒฉ๋œ ๊ตฌ์กฐ๋กœ ๋งŒ๋“ค ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ํŒจํ‚ค์ง€ ์•ˆ์— ๋˜ ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ ‡๊ฒŒ ๊ฐ๊ฐ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ•˜๋‚˜์˜ ํŒจํ‚ค์ง€๋กœ ์„ ์–ธํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์˜ˆ์•ฝ๋œ ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
  • ๋ฐ”๋กœ _ _ init _ _.py ์ด๋‹ค.

  • _ init _. py ํŒŒ์ผ์€ ๊ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํŒจํ‚ค์ง€์ž„์„ ๋‚˜ํƒ€๋‚ด๋Š” ์˜ˆ์•ฝ ํŒŒ์ผ์ด๋‹ค.
  • ์œ„์˜ ์‚ฌ์ง„์ฒ˜๋Ÿผ ๊ธฐ๋ณธ .py ๋ชจ๋“ˆ ํŒŒ์ผ๊ณผ ํ•จ๊ป˜ ๊ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์— _ init _.py๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ํŒจํ‚ค์ง€์˜ ๊ธฐ๋ณธ ๊ตฌ์กฐ๊ฐ€ ๋งŒ๋“ค์–ด์ง„๋‹ค. ๊ฐ๊ฐ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์— .py ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด ๊ตฌ์„ฑํ•œ๋‹ค.

ํŒจํ‚ค์ง€์˜ ๊ตฌ์กฐ ์„ค๊ณ„

๐Ÿ’ก ์œ„ ์‚ฌ์ง„์˜ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋Š” ์ž„์˜๋กœ ์ž‘์„ฑํ•œ ๊ฒƒ์ด๋‹ค. ํŒจํ‚ค์ง€์˜ ๊ตฌ์กฐ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ์ž๋Š” ์„ค๊ณ„ ๊ณผ์ •์„ ๊ฑฐ์ณ์•ผ ํ•œ๋‹ค. ํ•˜์œ„ ํŒจํ‚ค์ง€๋ณ„๋กœ ํ•ด์•ผ ํ•˜๋Š” ์ผ๊ณผ ํ•˜์œ„ ํŒจํ‚ค์ง€์— ์†Œ์†๋œ ๋ชจ๋“ˆ๋“ค์ด ํ•ด์•ผ ํ•  ์ผ์„ ๋”ฐ๋กœ ์ •์˜ํ•ด ๊ฐ ๋ชจ๋“ˆ์— ์—ญํ• ์„ ๋ถ€์—ฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

๊ฐ ํ•˜์œ„ ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ๋ชจ๋“ˆ์— ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ์ฝ”๋“œ ์ž‘์„ฑ

  • ์ตœ์†Œํ•œ ์‹คํ–‰ ์—ฌ๋ถ€๋งŒ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅ
def series_test(): 
    print("series")
def statics_test():
    print("statics")
  • ์œ„ ๋‘๊ฐœ์˜ ์ฝ”๋“œ๋Š” analysis ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” series.py์™€ statics.py์— ๋“ค์–ด๊ฐˆ ์ฝ”๋“œ์ด๋‹ค.
>>> from roboadvisor.analysis import series 
>>> series.series_test()
series
  • ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ ๋ชจ๋“ˆ์„ ์‹ค์ œ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ํŒŒ์ด์ฌ ์…ธ์—์„œ ์œ„๊ณผ ๊ฐ™์ด ์ž…๋ ฅํ•œ๋‹ค.
  • ์ด๋•Œ roboadvisor์˜ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํŒŒ์ด์ฌ ์…ธ์„ ์‹คํ–‰ํ•ด์•ผ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค.
  • ์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด roboadvisor ๋””๋ ‰ํ„ฐ๋ฆฌ ์•ˆ์— ‘_ _ pycache _ _’๋ผ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋Š”๋ฐ, ์ด๊ฒƒ์€ ํŒŒ์ด์ฌ์˜ ์–ธ์–ด์  ํŠน์„ฑ์œผ๋กœ ์ƒ๊ธฐ๋Š” ๊ฒฐ๊ณผ์ด๋‹ค.
  • ํŒŒ์ด์ฌ์€ ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด๋ฏ€๋กœ ์‹คํ–‰ ์ „์— ๋ณ„๋„์˜ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‹คํ–‰์‹œํ‚ค์ง€๋Š” ์•Š์ง€๋งŒ, ์‹คํ–‰ ์‹œ์ ์— ์ปดํŒŒ์ผ์ด ์ด๋ฃจ์–ด์ง€๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋กœ ์–ป์–ด์ง„ ์ปดํŒŒ์ผ๋œ ํŒŒ์ผ์„ ํ”„๋กœ๊ทธ๋žจ์— ์‚ฌ์šฉํ•œ๋‹ค. _ _ pycache _ _ ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ์ด ์ž‘๋™๋  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๋ชจ๋“ˆ๋“ค์˜ ์ปดํŒŒ์ผ ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • ์ด๋ ‡๊ฒŒ ํ•œ๋ฒˆ pycache ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋˜๋ฉด ๊ทธ ์‹œ์ ์—์„œ ํ•ด๋‹น ๋ชจ๋“ˆ์„ ์ˆ˜์ •ํ•ด๋„ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š๋Š”๋‹ค. ํ•ด๋‹น ํ”„๋กœ๊ทธ๋žจ ๋˜๋Š” ํŒŒ์ด์ฌ ์…ธ์ด ์™„์ „ํžˆ ์ข…๋ฃŒํ•œ ํ›„ ์ˆ˜์ •ํ•ด์•ผ ํ•ด๋‹น ๋ชจ๋“ˆ์˜ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐ˜์˜๋œ๋‹ค. ์ธํ„ฐํ”„๋ฆฌํ„ฐ ์–ธ์–ด์ด์ง€๋งŒ ๋‚ด๋ถ€์ ์œผ๋กœ ์ปดํŒŒ์ผ ๊ณผ์ •๋„ ๊ฑฐ์น˜๊ณ , ํšจ์œจ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๊ณผ์ •์„ ๊ฑฐ์นœ๋‹ค.

๋””๋ ‰ํ„ฐ๋ฆฌ๋ณ„๋กœ _ _ init _ _.py ๊ตฌ์„ฑํ•˜๊ธฐ

  • 3๋‹จ๊ณ„์—์„œ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ณ„๋กœ _ _ init _ _.py ํŒŒ์ผ์„ ๊ตฌ์„ฑํ•œ๋‹ค.
  • _ _ init _ _์€ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํŒŒ์ด์ฌ์˜ ํŒจํ‚ค์ง€๋ผ๊ณ  ์„ ์–ธํ•˜๋Š” ์ดˆ๊ธฐํ™” ์Šคํฌ๋ฆฝํŠธ์ด๋‹ค.
  • _ _ init _ _.py ํŒŒ์ผ์€ ํŒŒ์ด์ฌ์˜ ๊ฑฐ์˜ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋Œ€ํ‘œ์ ์ธ ํŒŒ์ด์ฌ ๋จธ์‹ ๋Ÿฌ๋‹ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ scikit-learn์˜ ๊ฒฝ์šฐ ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ๊ฐ€์žฅ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ถ€ํ„ฐ _ _ init _ _.py ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋‹ค.

  • _ _ init _ _.py ํŒŒ์ผ์€ ํŒจํ‚ค์ง€ ๊ฐœ๋ฐœ์ž๋‚˜ ์„ค์น˜ ์‹œ ํ™•์ธํ•ด์•ผ ํ•  ๋‚ด์šฉ ๋“ฑ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜์ง€๋งŒ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๋‚ด์šฉ์€ ์ด ํŒจํ‚ค์ง€์˜ ๊ตฌ์กฐ์ด๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ _ _ init _ _.py ํŒŒ์ผ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•ด๋‹น ํŒจํ‚ค์ง€๊ฐ€ ํฌํ•จ๋œ ๋ชจ๋“ˆ์— ๊ด€ํ•œ ์ •๋ณด๊ฐ€ ์žˆ๋‹ค.์•„๋ž˜ ์ฝ”๋“œ๋ฅผ roboadvisor ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ _ _ init _ _.py์— ์ž…๋ ฅํ•ด๋ณด์ž.
import analysis
import crawling
import database

__all__= ['analysis', 'crawling', 'database']
  • roboadvisor ๋””๋ ‰ํ„ฐ๋ฆฌ์—๋Š” 3๊ฐœ์˜ ํ•˜์œ„ ํŒจํ‚ค์ง€, ์ฆ‰ analysis, crawling, database๊ฐ€ ์žˆ๋‹ค.
  • ์ด ๊ฐ๊ฐ์˜ ํŒจํ‚ค์ง€๋ฅผ _ _ init _ _.py ์•ˆ์— __all__๊ณผ import๋ฌธ์„ ์‚ฌ์šฉํ•ด ์„ ์–ธํ•ด์•ผ ํ•œ๋‹ค. ๋”ฐ๋ผ ์„œ _ _ all _ _์ด๋ผ๋Š” ๋ฆฌ์ŠคํŠธํ˜•์˜ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค์–ด ์ฐจ๋ก€๋Œ€๋กœ ํ•˜์œ„ ํŒจํ‚ค์ง€์˜ ์ด๋ฆ„์„ ์ž…๋ ฅํ•˜๊ณ , ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ๊ฐ ํ•˜์œ„ ํŒจํ‚ค์ง€๋ฅผ import๋ฌธ์œผ๋กœ ํ˜ธ์ถœํ•œ๋‹ค.
  • ํ•˜์œ„ ํŒจํ‚ค์ง€์˜ _ _ init _ _.py ํŒŒ์ผ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค.
from . import series
from . import statics

__all__= ['series', 'statics']
  • ์˜ˆ๋ฅผ ๋“ค์–ด analysis ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ _ _ init _ _.py ํŒŒ์ผ์€ ์œ„ ์ฝ”๋“œ์™€ ๊ฐ™์ด ๊ฐ ํŒจํ‚ค์ง€์— ํฌํ•จ๋œ ๋ชจ๋“ˆ๋ช…์„ ๋ชจ๋‘ ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค. ์ƒ๋‹นํžˆ ๋ฒˆ๊ฑฐ๋กœ์šด ์ž‘์—…์ด์ง€๋งŒ ํŒจํ‚ค์ง€๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ๊ผญ ํ•ด์•ผ ํ•˜๋Š” ์ž‘์—…์ด๋ฉฐ ํŒจํ‚ค์ง€๋ณ„๋กœ ๋ชจ๋‘ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•œ๋‹ค.
  • crawling๊ณผ database ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ _ init,py ํŒŒ์ผ์—๋„ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž…๋ ฅํ•˜๊ณ  ์ €์žฅํ•œ๋‹ค.

[์ฐธ๊ณ ]

  • ‘from .’์„ import๋ฌธ ์•ž์— ๋ถ™์ด๋Š” ์ด์œ ๋Š” ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ analysis์˜ ํŒจํ‚ค์ง€๋ฅผ ํ˜ธ์ถœํ•˜๊ธฐ ์œ„ํ•จ์ด๋‹ค. ‘from .’์„ ๋ถ™์ด์ง€ ์•Š์œผ๋ฉด ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์ธ roboadvisor์—์„œ series๋‚˜ statics ํŒจํ‚ค์ง€๋ฅผ ์ฐพ๊ฒŒ ๋˜์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

_ _ main _ _.py ํŒŒ์ผ ๋งŒ๋“ค๊ธฐ

 

  • 4๋‹จ๊ณ„์—์„œ๋Š” ํŒจํ‚ค์ง€๋ฅผ ํ•œ ๋ฒˆ์— ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด roboadvisor ๋””๋ ‰ํ„ฐ๋ฆฌ์— _ _ main _ _.py ํŒŒ ์ผ์„ ๋งŒ๋“ ๋‹ค.
  • _ _ main _ _.py ํŒŒ์ผ์„ ๋งŒ๋“œ๋Š” ์ด์œ ๋Š” ํŒจํ‚ค์ง€ ์ž์ฒด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค. ์ง€ ๊ธˆ๊นŒ์ง€ ๊ณ„์† ํŒŒ์ด์ฌ ํŒŒ์ผ๋ช… ํ˜•ํƒœ์ธ .py ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด ์‹คํ–‰ํ•˜์˜€๋‹ค. ๊ฐ™์€ ๋ฐฉ๋ฒ•์œผ๋กœ ํŒจํ‚ค์ง€ ์ž ์ฒด๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“ค์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด _ _ main _ _.py ํŒŒ์ผ์ด๋‹ค.
  • _ _ main _ _.py ํŒŒ์ผ์˜ ๊ตฌ์„ฑ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ˜ธ์ค„ํ•ด์•ผ ํ•˜๋Š” ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ์„ from๊ณผ import๋ฌธ์œผ๋กœ ํ˜ธ์ถœํ•œ ํ›„, if _ _ name _ == ‘ _ main _ _’ ์‹คํ–‰ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค.
from analysis.series import series_test
from crawling.parser import parser_test

if _ _ name _ _ == '_ _ main _ _':
    series_test()
    parser_test()
  1. ์‹คํ–‰ํ•˜๊ธฐ (ํŒจํ‚ค์ง€ ์ด๋ฆ„๋งŒ ํ˜ธ์ถœ)
  • ๋งˆ์ง€๋ง‰ 5๋‹จ๊ณ„์—์„œ๋Š” ํ•ด๋‹น ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.
  • ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•œ ํ›„ ํ•ด๋‹น ํŒจํ‚ค์ง€์˜ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ(์ด ์˜ˆ์‹œ์—์„œ๋Š” roboadvisor์˜ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ)์—์„œ ‘python ํŒจํ‚ค์ง€๋ช…'์„ ์ž…๋ ฅํ•˜์—ฌ ์‹คํ–‰ํ•œ๋‹ค.
python 
roboadvisor series
parser

[์ฐธ๊ณ ]

  • ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด roboadvisor ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฐ˜๋“œ์‹œ ์ตœ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰ํ•œ๋‹ค.

ํŒจํ‚ค์ง€ ๋„ค์ž„์ŠคํŽ˜์ด์Šค

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

์ ˆ๋Œ€ ์ฐธ์กฐ

๐Ÿ’ก from roboadvisor.analysis import series

 

  • ์œ„ ์ฝ”๋“œ์—์„œ from์€ roboadvisor๋ถ€ํ„ฐ ์‹œ์ž‘ํ•œ๋‹ค.
  • ์ฆ‰ ํŒจํ‚ค์ง€ ์ด๋ฆ„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜์—ฌ series๊นŒ์ง€ ๋ชจ๋“  ๊ฒฝ๋กœ๋ฅผ ์ž…๋ ฅํ•œ๋‹ค. ‘from ์ „์ฒด ํŒจํ‚ค์ง€.์„œ๋ธŒ ํŒจํ‚ค์ง€ import ๋ชจ๋“ˆ’์˜ ํ˜•์‹์ด๋‹ค.
  • ์ด๋ ‡๊ฒŒ ์ „์ฒด ๊ฒฝ๋กœ๋ฅผ ๋ชจ๋‘ ์ž…๋ ฅํ•˜๋Š” ๊ฒƒ์„ ์ ˆ๋Œ€ ์ฐธ์กฐ๋ผ๊ณ  ํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ํŒจํ‚ค์ง€ ๋‚ด๋ถ€์—์„œ ๋‹ค๋ฅธ ํŒจํ‚ค์ง€๋ฅผ ๋ถ€๋ฅผ ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋ฉฐ,_ init ** _ .**py ํŒŒ์ผ์„ ๋งŒ๋“ค ๋•Œ๋„ ์ ˆ๋Œ€ ์ฐธ์กฐ๋กœ ๋ชจ ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ํ•œ ๊ฐ€์ง€ ์ฃผ์˜ํ•  ์ ์€ ๊ฐ€์žฅ ์ƒ์œ„์— ์žˆ๋Š” _ init ** _**.py ํŒŒ์ผ๋„ ์ƒ์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ roboadvisor๋ฅผ ๋„ฃ๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
__all__= ['analysis', 'crawling', 'database']

from roboadvisor import analysis
from roboadvisor import crawling
from roboadvisor import database
  • ์œ„์ฒ˜๋Ÿผ ์ž‘์„ฑํ•ด์•ผ ๋‹ค๋ฅธ ์„œ๋ธŒ ๋ชจ๋“ˆ์—์„œ๋„ ๋ชจ๋“ˆ์„ ์‰ฝ๊ฒŒ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒ๋Œ€ ์ฐธ์กฐ

  • ์ƒ๋Œ€ ์ฐธ์กฐ์˜ ํ•ต์‹ฌ์€ ํ˜„์žฌ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๋ชจ๋“ˆ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์ด๋‹ค.
from .series import series_test
from ..crawling.parser import parser_test
  • ์—ฌ๊ธฐ์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ฝ”๋“œ๋Š” .series์™€ ..crawling.parser์ด๋‹ค.
  • ๋จผ์ € ์  1๊ฐœ(.)๋Š” ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ, ์  2๊ฐœ(..)๋Š” ๋ถ€๋ชจ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ๋œปํ•œ๋‹ค.
  • ํŒจํ‚ค์ง€ ๊ตฌ์กฐ์—์„œ ๋ณด์•˜๋˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ๋ผ๋ฉด ํ˜„์žฌ ๋””๋ ‰ํ„ฐ๋ฆฌ์—์„œ series ๋ชจ๋“ˆ ์•ˆ์˜ seriesJest ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋ผ๋Š” ๋œป์ด๋‹ค. ์ฆ‰, ํ˜„์žฌ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” series ๋ชจ๋“ˆ์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” analysis์ด๋‹ค.
  • ํ•˜์ง€๋งŒ ํŒจํ‚ค์ง€ ๋‚ด์—์„œ๋Š” ์ƒ๋Œ€ ์ฐธ์กฐ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์„ ์ถ”์ฒœํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ์ฝ”๋“œ๋ฅผ ๊ฐ„๋žตํžˆ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์žฅ์ ์ด ์žˆ์ง€๋งŒ, ํŒจํ‚ค์ง€ ์ „์ฒด๋ฅผ ๋ณด๋Š” ์ž…์žฅ์—์„œ๋Š” ๋ชจ๋“  ํŒจํ‚ค์ง€์˜ ๊ฒฝ๋กœ๋ฅผ ์ •ํ™•ํžˆ ๊ธฐ๋ก ํ•˜๋Š” ๊ฒƒ์ด ์ข€ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋‹ค. ์ด๊ฒƒ์€ _ init ** _**.py ํŒŒ์ผ์„ ์„ ์–ธํ•  ๋•Œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ด๋‹ค. ๊ฐ€๋Šฅํ•˜๋ฉด ํŒจํ‚ค์ง€ ๋‚ด์—์„œ ๋ชจ๋“ˆ์„ ์ •์˜ํ•  ๋•Œ๋Š” ์ ˆ๋Œ€ ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

๊ฐ€์ƒํ™˜๊ฒฝ์˜ ๊ฐœ๋…

  • ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋งŒ๋“  ํŒจํ‚ค์ง€๋ฅผ ์ง์ ‘ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ธ ๊ฐ€์ƒํ™˜๊ฒฝ
  • ๋งŒ์•ฝ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ๋งŒ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ 2๊ฐœ ์ด์ƒ์˜ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ฒŒ ๋œ๋‹ค๋ฉด ๊ฐ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ํ”„๋กœ ๊ทธ๋ž˜๋ฐ ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ํ”„๋กœ์ ํŠธ๋‚˜ ์›น์„ ๋‹ค๋ฃจ๋Š” ํ”„๋กœ์ ํŠธ๋Š” ๊ทธ ์„ฑ๊ฒฉ์ด ๋งค์šฐ ๋‹ค๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ ํ”„๋กœ์ ํŠธ์— ๋งž๋Š” ํ™˜๊ฒฝ์„ ์„ค์ •ํ•˜์—ฌ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค.
  • ํŒŒ์ด์ฌ์—์„œ๋Š” ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ํ”„๋กœ์ ํŠธ ํŒจํ‚ค์ง€๋ฅผ ๊ด€ ๋ฆฌํ•˜๋Š” ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ ์–ด๋–ค ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋Š” ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•  ๊ธฐ๋ณธ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ํ•„์š”ํ•œ ์ถ”๊ฐ€ ํŒจํ‚ค์ง€๊นŒ์ง€ ์„ค์น˜ํ•ด์•ผ ํ•œ๋‹ค.
  • ์ด๋Ÿฌํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ๋•Œ ์„œ๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๊ฐ€ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๋„๋ก ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์ ํŠธ ์ˆ˜ํ–‰ ํ™˜๊ฒฝ์„ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ‘๊ฐ€์ƒํ™˜๊ฒฝ’์ด๋ผ๊ณ  ํ•œ๋‹ค.
  • ์ด ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๊ธฐ ์œ„ํ•ด ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋Œ€ํ‘œ์ ์ธ ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ๋กœ virtualenv์™€ conda๊ฐ€ ์žˆ๋‹ค.
  • virtualenv๋Š” ํŒŒ์ด์ฌ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ๋กœ pip์„ ์ด์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. conda๋Š” ๊ต์žฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํ”„๋ฆฌํ„ฐ์ธ miniconda์˜ ์ „์šฉ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ ๋„๊ตฌ๋กœ ๊ฐ€์ƒํ™˜๊ฒฝ ๊ด€๋ฆฌ์™€ ํŒจํ‚ค์ง€ ์„ค์น˜๋ฅผ ๊ฐ™์ด ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ผ๋ฐ˜์ ์œผ๋กœ virtualenv์™€ pip์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.
  • ํ•˜์ง€๋งŒ ์šด์˜์ฒด์ œ ๋Œ€๋ถ€๋ถ„์ด ์œˆ๋„์ด๋ฏ€๋กœ ๊ต์žฌ์—์„œ๋Š” conda๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ํ•œ๋‹ค. ๋˜ํ•œ, ํŒŒ์ด์ฌ ํŒจํ‚ค์ง€๋Š” ๋Œ€๋ถ€๋ถ„ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋ฟ ์•„๋‹ˆ๋ผ C ์ฝ”๋“œ๋ฅผ ๊ฐ™์ด ์„ค์น˜ํ•  ๋•Œ๊ฐ€ ๋งŽ์•„ ์ปดํŒŒ์ผ๋œ C ํŒŒ์ผ์„ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”๋ฐ, pip์€ ์ด๋ฅผ ์ง€์›ํ•ด์ฃผ์ง€ ์•Š์„ ๋•Œ๊ฐ€ ๋งŽ๋‹ค. ๊ทธ์— ๋ฐ˜ํ•ด conda๋Š” ์ด ๋ถ€๋ถ„๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๋ชจ๋‘ ์„ค์น˜ํ•ด์ฃผ๋ฏ€๋กœ ์ฒ˜์Œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ด์šฉํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ข€ ๋” ์ ํ•ฉํ•˜๋‹ค.

๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ ํŠน์ง•

virtualenv + pip - ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ฐ€์ƒํ™˜๊ฒฝ ๊ด€๋ฆฌ ๋„๊ตฌ, ๋ž˜ํผ๋Ÿฐ์Šค์™€ ํŒจํ‚ค์ง€๊ฐ€ ๊ฐ€์žฅ ๋งŽ์Œ
conda - ์ƒ์šฉ ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ์ธ miniconda ์˜ ๊ธฐ๋ณธ ๊ฐ€์ƒํ™˜๊ฒฝ ๋„๊ตฌ, ์„ค์น˜๊ฐ€ ์‰ฌ์›Œ ์œˆ๋„์—์„œ ์œ ์šฉ

 

๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

conda ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ€์ƒํ™˜๊ฒฝ ์„ค์ •ํ•˜๊ธฐ

 

  • ๊ฐ€์ƒํ™˜๊ฒฝ ๋งŒ๋“ค๊ธฐ
  • ๋‹ค์Œ ๋ช…๋ น์„ cmd ์ฐฝ์— ์ž…๋ ฅ

  • conda → ์‹คํ–‰ ๋ช…๋ น์–ด
  • create → ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“œ๋Š” ์ธ์ˆ˜(argument)
  • -n my_project ์—์„œ -n์€ name์˜ ์ค„์ž„๋ง์ด๊ณ , my_project๋Š” ๊ตฌ์„ฑํ•  ๊ฐ€์ƒํ™˜๊ฒฝ ์ด๋ฆ„์ด๋‹ค.
  • python=3.4๋Š” ์„ค์น˜๋˜๋Š” ํŒŒ์ด์ฌ์˜ ๋ฒ„์ „์ด๋‹ค.
  • ์ฆ‰, ์œ„ ๋ช…๋ น์–ด๋ฅผ ํ•ด์„ํ•˜๋ฉด ‘my_project๋ผ๋Š” ์ด๋ฆ„์˜ ๊ฐ€์ƒํ™˜๊ฒฝ์„ python 3.4 ๋ฒ„์ „์œผ๋กœ ๋งŒ๋“ค์–ด๋ผ.’์ด๋‹ค.

  • ‘Proceed ([y]/n)?’์—์„œ y๋ฅผ ์ž…๋ ฅํ•˜๋ฉด ์„ค์น˜๊ฐ€ ์‹œ์ž‘๋œ๋‹ค.

๊ฐ€์ƒํ™˜๊ฒฝ ์‹คํ–‰ํ•˜๊ธฐ

  • ๊ตฌ์„ฑํ•œ ๊ฐ€์ƒํ™˜๊ฒฝ ์‹คํ–‰ํ•˜๊ธฐ
  • ์‹คํ–‰๋ฐฉ๋ฒ•์€ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ๋งŒ๋“ค๋ฉด ๋‚˜ํƒ€๋‚˜๋Š” ํ™”๋ฉด์— ์ด๋ฏธ ์„ค๋ช…๋˜์–ด ์žˆ๋‹ค.

 ๐Ÿ’ก activate my_project

 

  • ์ด ์ฝ”๋“œ๋Š” my_project๋ผ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ์„ ํ™œ์„ฑํ™”activateํ•˜๋ผ๋Š” ๋œป์ด๋‹ค.
  • ๊ตฌ์„ฑ๋œ ๊ฐ€์ƒํ™˜๊ฒฝ์˜ ์ด๋ฆ„์„ activate ๋‹ค์Œ์— ๋„ฃ์œผ๋ฉด ํ•ด๋‹น ๊ฐ€์ƒํ™˜๊ฒฝ์ด ์‹คํ–‰๋˜๊ณ , ์•„๋ž˜์™€ ๊ฐ™์ด ํ”„๋กฌํ”„ํŠธ ์•ž์— (my_project) ๋ผ๋Š” ๊ฐ€์ƒํ™˜๊ฒฝ ์ด๋ฆ„์ด ๋ถ™๋Š”๋‹ค. ์ด์ œ๋ถ€ํ„ฐ๋Š” ํ•ด๋‹น ๊ฐ€์ƒํ™˜๊ฒฝ์˜ ์ธํ„ฐํ”„๋ฆฌํ„ฐ๋งŒ ์‹คํ–‰ ๋œ๋‹ค.

  • ์ด ์ƒํƒœ์—์„œ ‘where ptyhon’ ์„ ์ž…๋ ฅํ•˜๋ฉด ํ˜„์žฌ ์‹คํ–‰๋˜๋Š” ํŒŒ์ด์ฌ์˜ ์œ„์น˜๊ฐ€ ์–ด๋””์ธ์ง€ ์ถœ๋ ฅ

  • ์‹คํ–‰๋œ ๊ฐ€์ƒํ™˜๊ฒฝ์„ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ‘deactivate’๋ฅผ ์ž…๋ ฅ

๊ฐ€์ƒํ™˜๊ฒฝ ํŒจํ‚ค์ง€ ์„ค์น˜ํ•˜๊ธฐ

  • ํ•ด๋‹น ๊ฐ€์ƒํ™˜๊ฒฝ์—์„œ ์ƒˆ๋กœ์šด ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•ด๋ณด๊ธฐ
  • ํŒจํ‚ค์ง€์˜ ์ข…๋ฅ˜๋Š” ๋งค์šฐ ๋งŽ๊ณ , ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ์ข…๋ฅ˜๋„ ๋งŽ๋‹ค. ์ผ๋‹จ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค

๐Ÿ’ก conda install matplotlib

๊ฐ€์ƒํ™˜๊ฒฝ ํŒจํ‚ค์ง€ ์‹ค์Šตํ•˜๊ธฐ

  • ์„ค์น˜๋œ ํŒจํ‚ค์ง€๋ฅผ ์‹คํ–‰
  • ์•ž์—์„œ ์„ค์น˜ํ•œ matplotlib์€ ๋Œ€ํ‘œ์ ์ธ ํŒŒ์ด์ฌ ๊ทธ๋ž˜ํ”„ ๊ด€๋ฆฌ ํŒจํ‚ค์ง€๋กœ, ์—‘์…€๊ณผ ๊ฐ™์€ ๊ทธ๋ž˜ํ”„๋ฅผ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค. ํ˜„์žฌ ๋ฐ์ดํ„ฐ ๋ถ„์„์„ ํ•  ๋•Œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๋„๊ตฌ์™€ ํ•จ๊ป˜ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๋‹ค.
>>> import matplotlib.pyplot as pit
>>> pit.plot([1, 2, 3, 4])
[<matplotlib.lines.Line2D object at 0x000001E8CC52C080>] 
>>> plt.ylabel('some numbers')
Text(0, 0.5, 'some numbers')
>>> plt.show()
  • ์ด ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์•„๋ž˜์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์€ ๊น”๋”ํ•œ ๊ทธ๋ž˜ํ”„ ํ™”๋ฉด์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
  • matplotlib์€ ๋…ผ๋ฌธ์„ ์“ฐ๊ฑฐ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋ฐ์ดํ„ฐ ๋ถ„์„ ๊ฒฐ๊ณผ๋ฅผ ๋ณด์—ฌ์ค„ ๋•Œ ๋งค์šฐ ์œ ์šฉํ•œ ๋ชจ๋“ˆ์ด๋‹ค.

[์ฐธ๊ณ ]

jupyter ํŒจํ‚ค์ง€

๋ฐ์ดํ„ฐ๋ฅผ ๋ถ„์„ํ•  ๋•Œ ๋งค์šฐ ์œ ์šฉํ•œ ํŒจํ‚ค์ง€๋กœ jupyter๊ฐ€ ์žˆ๋‹ค.

๋จผ์ € ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด cmd ์ฐฝ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ช…๋ น์–ด๋ฅผ ์ž…๋ ฅํ•œ๋‹ค.

๐Ÿ’ก conda install jupyter

 

์„ค์น˜๊ฐ€ ๋๋‚˜๋ฉด ‘jupyter notebook’์„ ์ž…๋ ฅํ•˜์—ฌ ์‹คํ–‰์‹œํ‚จ๋‹ค ์ด์ œ jupyter ํ™˜๊ฒฝ์—์„œ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 ๐Ÿ’ก jupyter notebook

 

jupyter๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์›น์—์„œ ์ฝ”๋”ฉํ•  ์ˆ˜ ์žˆ๋Š” ํ™˜๊ฒฝ์ด ๋‚˜ํƒ€๋‚œ๋‹ค ์—ฌ๊ธฐ์—์„œ [New] ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜์—ฌ ์ƒˆ๋กœ์šด Notebook ์„ ์ƒ์„ฑ ํ•œ ํ›„ ์ฝ”๋”ฉํ•˜๊ณ [Ctri]+[Enter]๋ฅผ ๋ˆ„๋ฅด๋ฉด ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค.