메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

[진지한 파이써니스타 인터뷰] 파이썬 프레임워크 'WSME' 개발자, 크리스토프 드 비엔

한빛미디어

|

2021-02-08

|

by 쥘리앵 당주

10,578

 
파이썬 작동 원리에서 확장, 테스트, 배포, 최적화까지
『진지한 파이썬』 중
 

파이썬 개발자인 크리스토프 드 비엔Christophe de Vienne은 ‘웹 서비스 메이드 이지WSME’ 프레임워크를 만들었습니다. 이 프레임워크는 개발자들이 파이썬다운 방법으로 웹 서비스를 정의할 수 있게 하며, 다른 웹 프레임워크와 연동할 수 있는 다양한 API를 지원합니다.
· · ·
Q. 파이썬 API를 설계할 때 개발자가 자주 하는 실수는 무엇이 있나요?
저는 파이썬 API를 설계하며 실수하지 않기 위해 다음 규칙을 따르고 있습니다.
❶ 너무 복잡하게 만들지 않습니다
간단하게 만듭니다. 복잡한 API는 이해하기 어렵고 문서화하기 어렵습니다. 실제 라이브러리 기능이 간단할 필요는 없지만 되도록 간단하게 만드는 것이 좋습니다. 그래야 사용자들이 실수 없이 사용할 수 있습니다. 라이브러리가 복잡한 일을 해도 사용자가 쓰기에는 아주 간단하고 직관적일 수 있습니다. urllib API는 내부적인 기능도 복잡하고 사용하기도 어렵습니다.
❷ 문서에 있는 것만 구현합니다
문서에서 설명하지 않은 것을 API로 사용하면, 사용자는 소스 코드를 직접 분석하면서 이해하려고 할 것입니다. 내부적으로 작업한 것이 실행되는 것은 괜찮지만, 사용자에게는 문서에 있는 내용만 실행되어야 합니다. 그렇지 않으면 사용자는 혼란스러울 수도 있고, 언제 바뀔지도 모를 기능에 의존할 수밖에 없습니다.
❸ 사용 사례를 참고합니다
소스 코드 개발에 집중하다 보면 라이브러리를 실제로 어떻게 사용할지 고려하는 것을 잊기 쉽습니다. 좋은 사례를 참고하면 API를 쉽게 설계할 수 있습니다.
❹ 단위 테스트를 만듭니다
테스트 기반 개발test-driven development(TDD)은 특히 파이썬으로 라이브러리를 개발할 때 아주 효율적인 방법입니다. 개발자가 애초부터 사용자의 입장에서 개발하도록 하기 때문입니다. 결국 개발자는 사용자가 사용할 수 있는 설계를 하게 됩니다. 라이브러리를 완전히 다시 개발하게 하는 것은 최후의 방법으로 선택해야 합니다.
Q. 파이썬의 어떤 측면이 라이브러리 API를 쉽게 설계하는 데 도움이 되나요?
파이썬에는 API의 어떤 부분을 공개하고 비공개할지 정의하는 방법이 없습니다. 이는 문제가 될 수도 있고, 장점이 될 수도 있습니다.
개발자가 API의 어떤 부분을 공개할지 어떤 부분을 비공개할지 충분히 고려하지 않기 때문에 문제가 됩니다. 하지만 약간의 규율, 문서, zope.interface와 같은 도구를 사용하면 문제가 되지 않습니다.
이전 버전과 호환성을 유지하면 API를 더 빠르고 쉽게 재설계할 수 있는 장점이 있습니다.
Q. API에서 기능을 개선, 비권장, 제거할 때 무엇을 고려하나요?
API 개발과 관련해서 결정을 할 때 고려하는 몇 가지 기준이 있습니다.
❶ 사용자가 라이브러리를 사용할 때 얼마나 쉽게 사용할 수 있을까
여러분의 API를 사용하는 사용자가 있다는 것을 고려하면, API에 반영하는 변화들은 나름 대로의 가치가 있어야 합니다. 공통으로 사용하는 API가 호환되지 않도록 변경되는 것을 방지해야 합니다. 파이썬의 장점은 API 변경을 반영하기 위해 소스 코드를 재설계하기가 비교적 쉽다는 것입니다.
❷ API를 유지하는 게 얼마나 쉬울까
구현 간소화, 소스 코드 정리, API 사용 간편화, 더 완벽한 단위 테스트, 바로 이해하기 쉬운 API 만들기와 같은 것이 API 관리자로서 삶을 편하게 해줄 것입니다.
❸ 수정을 반영할 때 어떻게 API 일관성을 유지할 수 있을까
API의 모든 기능이 첫 번째 인수와 같은 의미의 유사한 패턴을 가지면 새롭게 추가하는 기 능도 같은 패턴을 따르게 합니다. 너무 많은 기능을 한 번에 수행하면 결국 아무것도 하지 못하게 됩니다. 하고자 하는 것에 중점을 두고 API를 유지합니다.
❹ 사용자에게 어떤 도움을 줄 수 있을까
저는 사용자의 관점을 항상 고려하려 합니다.
Q. 파이썬에서 API 문서화를 할 때 어떤 조언을 하시겠습니까?
좋은 문서가 있어야 사용자가 쉽게 라이브러리를 선택할 수 있습니다. 문서화를 고려하지 않으면 초보자뿐만 아니라 많은 잠재적인 사용자들도 등을 돌리게 될 것입니다. 문제는 문서화가 어렵다는 것입니다. 그래서 문서화는 항상 무시된다는 경향이 있죠.
❶ 미리 문서화하고 지속적인 통합 개발에 문서화를 포함합니다
문서를 생성하고 공개하기 위해 ‘Read the Docs’ 도구를 사용하면, 최소한 오픈소스 소프 트웨어의 문서를 작성하고 공개하는 데 문제가 없을 것입니다.
❷ API에 클래스와 함수를 문서화하기 위해 독스트링을 사용합니다
PEP 257(https://www.python.org/dev/peps/pep-0257)에 따르면, 개발자는 API가 하는 기능을 이해하기 위해 소스 코드를 볼 필요가 없습니다. 독스트링에서 HTML 문서를 생성하고 API 레퍼런스를 제한하지 않도록 합니다.
❸ 실질적인 예제를 제공합니다
초보자에게는 실제 적용 사례를 보여줄 수 있는 최소한 1개 이상의 ‘안내서’가 있어야 합니다. 안내서는 API 기본 사용부터 시작해서 사례들을 제공해야 합니다.
❹ 버전별로 API의 변경 사항을 자세히 문서화합니다
버전 관리 시스템version control system(VCS) 로그로는 충분하지 않습니다!
❺ 언제든지 문서를 볼 수 있고 읽기 쉽게 만듭니다
사용자가 힘들이지 않고 쉽게 찾을 수 있고, 필요한 정보를 얻을 수 있어야 합니다. PyPI에 문서를 공개하면 쉽게 할 수 있습니다. 사용자가 ‘Read the Docs’에서 문서를 찾을 수도 있기 때문에 이곳에 공개하는 것도 좋은 생각입니다.
❻ 마지막으로 효율적이고 매력적인 테마를 선택합니다
웹 서비스 메이드 이지에는 ‘Cloud’ 스핑크스 테마를 선택했지만, 더 많은 테마를 선택할 수 있습니다. 멋진 문서를 만들기 위한 웹 전문가까지 될 필요는 없습니다.
· · ·
댓글 입력
자료실