Skip to content

Latest commit

Β 

History

History
85 lines (66 loc) Β· 3.99 KB

File metadata and controls

85 lines (66 loc) Β· 3.99 KB

파이썬 ν•¨μˆ˜ λ§Œλ“€κΈ°

νšŒμ‚¬μ—μ„œ λŒ€λΆ€λΆ„ μ—…λ¬΄λŠ” ν•¨μˆ˜λ‹¨μœ„ λ˜λŠ” 클래슀 λ‹¨μœ„μ˜ ν”„λ‘œκ·Έλž˜λ° 업무λ₯Ό 자주 μ ‘ν•˜κ²Œ λ©λ‹ˆλ‹€.

μ‹€μŠ΅1

  • 두 수λ₯Ό λ”ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ œμž‘ν•΄ λ΄…λ‹ˆλ‹€.
  • ν•¨μˆ˜λ₯Ό λ”°λ‘œ 파이썬으둜 μ €μž₯ν•˜κ³  importν•΄μ„œ μ‚¬μš©ν•˜λŠ” 방법을 μ‹€μŠ΅ν•©λ‹ˆλ‹€.
  • __main__ 을 μ„€λͺ…ν•©λ‹ˆλ‹€.

μ‹€μŠ΅2

λͺ¨λ“  νšŒμ‚¬λŠ” ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•©λ‹ˆλ‹€. 그런 μ˜λ―Έμ—μ„œ μ•„λž˜ μ˜ˆμ œλŠ” μ‹€λ¬΄μ—μ„œ 항상 μ‘΄μž¬ν•  수 밖에 μ—†λŠ” μ˜ˆμ œμž…λ‹ˆλ‹€. ν”„λ‘œμ νŠΈλ₯Ό λΆˆλŸ¬μ˜€λŠ” κ°„λ‹¨ν•œ ν•¨μˆ˜λ₯Ό ν•˜λ‚˜ λ§Œλ“€μ–΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

λͺ¨λ“  νšŒμ‚¬μ—μ„œ κ°€μž₯ 많이 μ‚¬μš©ν•˜λŠ” ν•¨μˆ˜λŠ” νšŒμ‚¬μ—μ„œ 진행쀑인 ν”„λ‘œμ νŠΈ 리슀트λ₯Ό κ°€μ§€κ³  μ˜€λŠ” λ°©λ²•μž…λ‹ˆλ‹€. νšŒμ‚¬λ§ˆλ‹€ μ‘°κΈˆμ”© λ‹€λ₯΄κ² μ§€λ§Œ 일반적으둜 2κ°€μ§€ κ²½μš°κ°€ μ‘΄μž¬ν•©λ‹ˆλ‹€.

  • ν΄λ”μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό κ°€μ§€κ³  μ˜€λŠ” 방법
  • DBμ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό κ°€μ§€κ³  μ˜€λŠ” 방법

였늘 μš°λ¦¬λŠ” ν΄λ”μ—μ„œ ν”„λ‘œμ νŠΈλ₯Ό κ°€μ§€κ³  μ˜€λŠ” 방법을 λ‹€λ£Ήλ‹ˆλ‹€.

λŒ€λΆ€λΆ„μ˜ λͺ¨λ“  νšŒμ‚¬λŠ” ν”„λ‘œμ νŠΈ λͺ©λ‘μ„ κ°€μ§€κ³  μ˜€λŠ” ν•¨μˆ˜ ν•˜λ‚˜μ―€μ€ 내뢀에 μž‘μ„±λ˜μ–΄ μžˆμ„ ν™•λ₯ μ΄ λ†’μŠ΅λ‹ˆλ‹€. νšŒμ‚¬μ—μ„œ /project 폴더 λ‚΄λΆ€μ—μ„œ λͺ¨λ“  ν”„λ‘œμ νŠΈκ°€ μ§„ν–‰λœλ‹€κ³  가정을 ν•˜κ³  ν”„λ‘œμ νŠΈ 리슀트λ₯Ό κ°€μ§€κ³  μ˜€λŠ” ν•¨μˆ˜λ₯Ό μ œμž‘ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€.

λ¨Όμ € / κ²½λ‘œμ— project 폴더λ₯Ό μ œμž‘ν•΄λ³΄κ² μŠ΅λ‹ˆλ‹€. /project λ‚΄λΆ€λŠ” μ•žμœΌλ‘œλ„ κ΄€λ¦¬μžκ°€ μ•„λ‹Œ 일반 μ‚¬μš©μžκ°€ ν•„μš”ν•œ 폴더λ₯Ό λ§Œλ“€ 수 μžˆμ–΄μ•Ό ν•˜κΈ° λ•Œλ¬Έμ— μ‚¬μš©μž κΆŒν•œμ„ μΆ”κ°€ν–ˆμŠ΅λ‹ˆλ‹€. λ˜ν•œ /project 폴더 내뢀에 circle,rectangle,triangle ν”„λ‘œμ νŠΈ 폴더도 μƒμ„±ν•˜κ² μŠ΅λ‹ˆλ‹€. κ΄€λ ¨λœ λͺ…λ Ήμ–΄λŠ” μ•„λž˜μ™€ κ°™μŠ΅λ‹ˆλ‹€.

λ¨Όμ € ν”„λ‘œμ νŠΈ 폴더λ₯Ό 생성해 λ΄…μ‹œλ‹€.

$ su
# cd /
# mkdir project
# chmod 775 project
# chown root:$USER project
# exit
$ cd project
$ mkdir circle
$ mkdir rectangle
$ mkdir triangle

ν”„λ‘œμ νŠΈ 리슀트λ₯Ό κ°€μ§€κ³  μ˜€λŠ” ν•¨μˆ˜λ₯Ό μ§œλŠ” 것은 κ°„λ‹¨ν•©λ‹ˆλ‹€.

#coding:utf8
import os

def Projects():
    """
    Projects ν•¨μˆ˜λŠ” ν”„λ‘œμ νŠΈ λͺ©λ‘μ„ 리슀트둜 λ°˜ν™˜ν•œλ‹€.
    """
    return os.listdir("/project")

if __name__ == '__main__':
    print(Projects())

ν•˜μ§€λ§Œ μœ„ ν•¨μˆ˜μ—λŠ” 단점이 μžˆμŠ΅λ‹ˆλ‹€. 폴더가 μ•„λ‹Œ νŒŒμΌκΉŒμ§€ μ „λΆ€ ν”„λ‘œμ νŠΈλ‘œ μΈμ‹ν•œλ‹€λŠ” μ μž…λ‹ˆλ‹€. ν΄λ”λ§Œ ν”„λ‘œμ νŠΈλ‘œ μΈμ‹ν•˜κΈ° μœ„ν•΄μ„œλŠ” μ•„λž˜μ²˜λŸΌ 폴더 ν˜•νƒœκ°€ λ§žλŠ”μ§€ μ²΄ν¬ν•˜λŠ” μ½”λ“œκ°€ ν•„μš”ν•©λ‹ˆλ‹€.

#coding:utf8
import os

def Projects():
    """
    Projects ν•¨μˆ˜λŠ” ν”„λ‘œμ νŠΈ λͺ©λ‘μ„ 리슀트둜 λ°˜ν™˜ν•œλ‹€.
    """
    plist = []
    for i in os.listdir("/project"):
        if not os.path.isdir("/project/"+i):
            continue
        plist.append(i)
    return plist

if __name__ == '__main__':
    print(Projects())

μš°λ¦¬λŠ” μ•„μ£Ό κ°„λ‹¨ν•˜κ²Œ ν”„λ‘œμ νŠΈλ¦¬μŠ€νŠΈλ₯Ό 경둜λ₯Ό ν†΅ν•΄μ„œ κ°€μ§€κ³  μ˜€λŠ” ν•¨μˆ˜λ₯Ό μ œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. νšŒμ‚¬μ— μ‘΄μž¬ν•˜λŠ” μˆ˜λ§Žμ€ μ„œλ²„, OS에 λ”°λΌμ„œ ν”„λ‘œμ νŠΈλ₯Ό κ°€μ§€κ³  μ˜€λŠ” 방법은 νšŒμ‚¬λ§ˆλ‹€ μ‘°κΈˆμ”© λ‹€λ₯΄κ² μ§€λ§Œ 컨셉은 μ–Έμ œλ‚˜ λΉ„μŠ·ν•©λ‹ˆλ‹€.

사싀 μœ„μ— μ†Œκ°œλœ ν”„λ‘œμ νŠΈ 리슀트λ₯Ό κ°€μ§€κ³ μ˜€λŠ” μ½”λ“œλŠ” νšŒμ‚¬ μ „μ²΄μ—μ„œ λˆ„κ΅°κ°€ ν•œλͺ…이 μž‘μ„± κ³΅μœ ν•˜κ³  νšŒμ‚¬ 전체에 λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ μ‚¬μš©ν•  수 μžˆλ„λ‘ κ΄€λ¦¬ν•˜λ©΄ λ‹€λ₯Έ ν”„λ‘œκ·Έλž˜λ¨Έλ“€μ΄ λ°˜λ³΅ν•΄μ„œ λ§Œλ“€μ§€ μ•Šμ•„λ„ λ˜λŠ” ν•¨μˆ˜μž…λ‹ˆλ‹€. νšŒμ‚¬λ‚΄μ—μ„œ ν•„μš”ν•œ μ½”λ“œλ₯Ό κ³΅μœ ν•˜λŠ” λ¬Έν™”κ°€ 더 μ€‘μš”ν•©λ‹ˆλ‹€. μ—¬λŸ¬λΆ„μ΄ νšŒμ‚¬μ—μ„œ 무언가λ₯Ό λ§Œλ“€ λ•Œ 이미 κ·Έ κΈ°λŠ₯이 이미 μ‘΄μž¬ν•˜λŠ” μ½”λ“œμΈμ§€ 항상 μ²΄ν¬ν•˜λŠ” μŠ΅κ΄€μ„ λ“€μ΄μ„Έμš”.

νšŒμ‚¬μ— λ‹€μ–‘ν•œ μ„œλ²„, μ •λ¦¬λ˜μ§€ μ•Šμ€ 폴더듀이 많이 μ‘΄μž¬ν•˜λ©΄ Path κ΄€λ ¨ 라이브러리λ₯Ό λ¨Όμ € λ§Œλ“€κ³  κ·Έ 라이브러리λ₯΄ ν†΅ν•΄μ„œ 경둜λ₯Ό 생성할 ν•„μš”κ°€ μžˆμŠ΅λ‹ˆλ‹€.

λ‹€μŒμ‹œκ°„μ—μ„œλŠ” Python Classλ₯Ό λ‹€λ£¨λ©΄μ„œ μ–΄λ–»κ²Œ νšŒμ‚¬κ°€ κ²½λ‘œκ·œμΉ™μ„ μ—„κ²©ν•˜κ²Œ 지킬 수 μžˆλŠ”μ§€ μ•Œμ•„λ³΄κ² μŠ΅λ‹ˆλ‹€.