Skip to content

Latest commit

 

History

History
85 lines (66 loc) · 3.99 KB

python_make_function.md

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를 다루면서 어떻게 회사가 경로규칙을 엄격하게 지킬 수 있는지 알아보겠습니다.