Web Analytics Made Easy - Statcounter

생각나는대로

표준적인 개발 work-flow에 관하여

sleepy_wug 2019. 11. 21. 10:26

학과에서 제가 참여하는 RA팀에서는 코딩을 모르는 언어학자들이 양적 연구를 쉽게 할수있도록 툴을 개발 및 관리하고 있습니다. 어문계열 중 음성음운론 과목을 들어보신 분들은 익숙하실 praat과 유사하다고 생각하면 될 것 같습니다.

 

http://www.fon.hum.uva.nl/praat/

 

Praat: doing Phonetics by Computer

Questions, problems, solutions:    1. Many problems can be solved by upgrading to version 6.1.06 of Praat.    2. Make sure you have read the Intro from Praat's Help menu.    3. If that does not help, use the Search button in Praat's manual window.    4. Or

www.fon.hum.uva.nl

 

저희 팀에서는 파이썬으로 개발을 하고, 정기적으로 코드를 마감(code-freezing)하여 실행파일(executable)의 형태로 배포합니다. 따라서 code-freezing tool로서 pyinstaller를 사용합니다.

 

코어 팀 이외에도 학부생 참여가 많고, 또한 프로그래밍 언어를 모르는 사용자층으로부터도 피드백을 받고 있습니다. 그래서 github을 사용합니다.

 

이번학기에 컴퓨터과학 전공자들과 프로젝트를 하면서 겪어보니, 우리RA팀만의 독특한 work-flow가 있다는 생각이 들어서 정리 및 공유하고자 합니다.

 

1. 작업환경 관리는 anaconda로

 

Anaconda를 사용해서 environment를 따로 관리합니다. 현재 우리팀에서 개발 및 관리중인 프로그램은 2개라서 각각의 개발을 위해 독립적인 environment를 사용합니다. 또한 매번 실행파일을 만들 때는, python만 설치된 새로운 environment를 만들고, 그 상태에서 dependent한 package들을 하나하나 확인해가며 실행파일을 만듭니다.

 

의외로 컴퓨터전공자들은 파이썬을 안쓰는 것 같습니다. 파이썬 개발환경관리를 체계적으로 하기위해 anaconda를 제가 먼저 제안을 하니 다들 만족했습니다.

 

2. IDE는 각자 알아서 하되, 코딩스타일 매뉴얼을 따를 것

 

개인적으로는 PyCharm을 사용합니다만, Spyder 사용하는 팀원도 있습니다. 다만, 코딩스타일의 매뉴얼을 만들어놓고 그 표준에 최대한 따라서 코딩을 합니다. IDE를 사용하는 것은 개발하는 사람의 편의를 위해 무척 중요합니다. 대부분의 IDE 는 git을 지원하므로 버전관리 면에서도 편리하다는 것은 두말할 필요도 없을 것 같습니다.

 

3. Github

 

사실 말하면 입만 아프죠.ㅎㅎ 다만, 미팅에서 나온 내용의 아주 사소한 것도 전부 항목별로 정리해서 issue에 올려놓는 습관을 들이면 편리합니다. 이렇게 하면 따로 회의록을 만들 필요가 없어요.

 

4. Pyinstaller

 

python code를 실행파일로 만드는 툴에는 cx-freeze, py2app (py2exe) 등 다양한 종류가 있고 장단점이 있는 줄은 알고 있지만, 우리팀에서는 Pyinstaller를 사용합니다. 그 이유는 다음과 같습니다. 사실 spec파일만 잘 만들면 명령어 한줄로 누구나 쉽게 실행파일을 만들 수 있습니다. 실행파일을 만드는 것이 os의존적이라서, 윈도우 PC에서 맥 실행파일을 만들 수 없고, 맥 PC에서는 윈도우 실행파일을 만들 수 없습니다. 따라서 아마도 우리팀에서는 동일한 코드를 시스템만 다르게 실행파일로 만들려면 pyinstaller가 적절하다고 판단한 것 같습니다.