파이썬 코드를 보호하는 방법

조회수 7799회

저는 지금 고객들에게 배포될 소프트웨어를 파이썬으로 개발하고 있습니다. 사장님은 시간제 라이센스를 걸어 소프트웨어의 사용을 제한하고 싶어하네요.

문제는 만약 .py 혹은 .pyc 파일을 배포하게 되면 (디컴파일하거나) 고객이 라이센스를 확인하는 코드를 지워버릴 수가 있다는 겁니다.

사장님 또한 고객이 코드를 읽을 수 있으면 코드를 베껴갈 수 있다는 걱정 때문에 코드가 고객에게 공개되지 않기를 바라고 있습니다.

어떻게 하면 이 문제를 해결할 수 있을까요? 되도록이면 규격화된 해결법이면 좋을 것 같습니다.

참고로 소프트웨어는 리눅스 시스템 기반에서 작동할 예정입니다. (그래서 py2exe는 해결방법이 되지 못할 것 같네요.)

1 답변

  • 좋아요

    0

    싫어요
    채택 취소하기

    바이트 코드로 컴파일된 인터프리팅 언어인 파이썬의 코드를 보호하는 것은 꽤 어려운 일입니다. py2exe와 같은 exe 패키징 툴을 사용하더라도, 실행파일의 구조가 꽤 알려져 있고, 파이썬의 바이트 코드는 가독성이 좋은 편이기 때문이죠.

    이러한 경우에는 어느정도의 타협이 필요합니다. 과연 그 코드가 얼마나 보호받을 가치가 있는지, 정말 숨겨야할만한 내용 (이를테면 은행 거래에 사용될 암호화의 키값과 같은 수준의 것)이 있는지, 아니면 그저 너무 과잉 보호하려는 것은 아닌지 등을 고려할 필요가 있습니다. 최고의 상품을 최대한 빨리 개발할 수 있게끔 해줄 언어를 선택하고, 아이디어가 얼마나 가치있는지를 현실적으로 바라볼 필요가 있습니다.

    만약 라이센스 확인이 안전하게 이루어질 필요가 있다고 정말로 생각하신다면, 기본적인 코드는 파이썬으로 놔둔채, 라이센스 확인에 관한 코드만 작은 크기의 C 확장으로 작성함으로써 리버스 엔지니어링을 굉장히 어렵게 만들 수 있습니다. (물론 불가능한 것은 아닙니다!)

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)