2012-04-20 2 views
2

여러 사용자가 사용할 수있게하려는 데이터를 읽고 처리하는 코드가 있지만 코드를 볼 수 없도록하고 싶습니다.코드 노출없이 여러 사용자와 R 기능 공유

R 또는 RStudio를 사용하여이를 수행 할 방법이 있습니까?

+8

리포 지 토리를 갖는 것은 사용자가 코드를 참조하십시오. 이 질문을 한 것은 이번이 두 번째로, 당신은 여전히 ​​가난하게 말한 방식으로 질문하고 있습니다. 진짜 질문이 있다면 : "어떻게 사용자로부터 코드를 숨길 수 있습니까?"그 대답은 아마도 "단지 약간의 난이도"일 것입니다. –

+0

질문을하려고하는 사람이 "전문가"에 의해 좌절당하는 것은 흥미 롭습니다. 나는이 사이트에서 평판을 얻으려고 애 쓰지 않는 것 같습니다. –

+5

많은 사람들이 오픈 소스 코드를 제공합니다. 우리는 코드 숨기기에 관해 가장 좋은 그룹이 아닐 수도 있습니다. –

답변

8

하나의 옵션은 Rserve와 같은 것을 사용하여 서비스로 서비스를 노출하는 것입니다. 그러나 사용자를 위해 코드를 실행하는 서버를 호스팅해야합니다.

+0

+1 동의. RStudio Server는 코드 서버를 호스팅하는 많은 다른 패키지와 함께이 솔루션에 대해서도 작동합니다. – Iterator

+4

그러나 RStudio Server를 사용하면 코드를 숨기지 않습니다. R 세션은 원격으로 실행되지만 사용자는 여전히 사용되는 모든 코드를 볼 수 있습니다. –

2

R 코드를 사용할 때 사용자로부터 코드를 숨길 방법이 없습니다. 패키지의 바이너리 패키지를 배포 할 수는 있지만 일반 텍스트로 R 코드가 계속 포함됩니다. 또한 코드가 R에로드되면 사용자는 명령 행에 괄호없이 입력하여 모든 기능의 소스를 볼 수 있습니다.

왜 코드를 숨길 지 잘 모르겠습니다. 어쩌면 당신은 당신의 질문에 그것에 대해 더 명확하게하기 위해 논평 할 수 있습니다. 또한 귀하의 질문에 답할 수있는 코드를 숨기는 것 이외의 다른 해결책을 제시 할 수도 있습니다. 경험이없는 사용자로부터 구현 세부 사항을 유지하는 것이 코드를 숨기는 경우 다음을 수행 할 수 있습니다.

  1. 사용자가 기능을 사용할 수있게하려는 기능을위한 래퍼 기능을 만듭니다. 이러한 래퍼 함수는 다음과 유사 할 수 있습니다.

    spam_wapper = function(a, b) { 
        return(.spam(a = a, b = b)) 
    }) 
    
  2. 랩퍼가 아닌 모든 함수를 사용자가 볼 수 없게 만듭니다.

    pkgname::.spam 
    

    을하지만 미경 R 프로그래머 찾기가 어려워, 코드에 도착 단단하다 : 그들은 여전히 ​​명시 적으로 패키지의 네임 스페이스를 명시하여 액세스 할 수 있습니다. 그러나 일단 트릭을 배우면 더 이상 도움이되지 않습니다.

당신이 당신의 R 코드를 사용하여 돈을 원하기 때문에 당신의 이유는 경우, 훌륭하게 제작 된 R 코드를 숨기기 (이 경우 내가 defintely :) 공유 것), 또는 어떤 경쟁에서 코드를 숨길 그 수도 너의 생각을 훔쳐. 이 경우 @baptiste의 제안이 효과가있을 수 있습니다. 하지만 Fortran, C 또는 C++에서 코드를 다시 작성하는 데는 많은 노력이 필요하다고 생각합니다. 나는 그저 소스 코드를 제공한다고 말할 것입니다 ...