작업 영역에서 R 코드가 실행되는 위치 제어Controlling where R code runs with workspaces

RTVS(Visual Studio용 R 도구)의 작업 영역에서는 R 세션이 실행되는 위치를 구성할 수 있고 이 구성은 로컬 및 원격 컴퓨터에서 둘 다 수행할 수 있습니다.A workspace in R Tools for Visual Studio (RTVS) lets you configure where an R session runs, which can happen on both local and remote computers. 목적은 잠재적으로 더 강력한 클라우드 기반 컴퓨터를 활용하는 기능을 제공하는 비슷한 사용자 환경이 있는 한쪽 컴퓨터에서 작업하도록 허용하는 것입니다.The goal is to allow you to work on either with a comparable user experience, which gives you the ability to take advantage of potentially more powerful cloud-based computers.

작업 영역 창을 열려면 R 도구 > 창 > 작업 영역 명령을 사용하거나 Ctrl+9를 누릅니다.To open the Workspaces window, use the R Tools > Windows > Workspaces command or press Ctrl+9.

Visual Studio용 R 도구(VS2017)의 작업 영역 창

이 창에서 녹색 확인 표시는 RTVS가 바인딩된 활성 작업 영역을 나타냅니다.In this window, the green checkmark indicates the active workspace to which RTVS is bound. 녹색 화살표를 선택하면 활성 작업 영역이 설정됩니다.Selecting a blue arrow sets the active workspace. 각 작업 영역의 오른쪽에 있는 설정(기어) 아이콘을 사용하여 이름, 위치 및 명령줄 인수를 변경할 수 있습니다.The settings (gear) icon to the right of each workspace allows you to change its name, location, and command-line arguments. 빨간색 X를 선택하면 수동으로 추가된 작업 영역이 제거됩니다.The red X removes a manually added workspace.

항목 내용In this topic:

작업 영역 저장 및 다시 설정Saving and resetting a workspace

기본적으로 RTVS에서는 프로젝트를 닫고 다시 열 때 작업 영역 상태를 저장하지 않습니다.By default, RTVS doesn't save workspace state when you close and reopen a project. 하지만 작업 영역 옵션을 통해 이 동작을 변경할 수 있습니다.You can change this behavior, however, through the Workspace options.

R 도구 > 세션 > 다시 설정 명령 및 대화형 창의 [다시 설정] 도구 모음 단추를 선택하면 언제든지 작업 영역 상태를 다시 설정할 수 있습니다.The R Tools > Session > Reset command and the reset toolbar button in the interactive window also reset workspace state at any time. 원격 작업 영역에서 다시 설정은 원격 서버에 처음 연결할 때 생성된 사용자 프로필을 삭제하므로 누적되어 있는 모든 파일이 효과적으로 삭제됩니다.With remote workspaces, reset deletes the user profile created when first connecting to the remote server, which effectively deletes any files that have accumulated there.

로컬 작업 영역Local workspaces

로컬 작업 영역 목록에는 컴퓨터에 설치한 모든 R 인터프리터가 표시됩니다.The Local workspaces list displays all the R interpreters that you have installed on your computer.

Visual Studio는 시작될 때 HKEY_LOCAL_MACHINE\Software\R-Core\ 레지스트리 키를 검색하여 설치한 R 버전을 모두 자동으로 탐지하려고 합니다.When Visual Studio starts, it attempts to automatically detect all of the versions of R that you have installed by looking through the HKEY_LOCAL_MACHINE\Software\R-Core\ registry key. 이 확인은 시작 시에만 수행되므로 새 R 인터프리터를 설치할 경우 Visual Studio를 다시 시작해야 합니다.Because this check is done only at startup, you need to restart Visual Studio if you install a new R interpreter.

RTVS에서는 비표준 방법으로 설치된 R 인터프리터를 검색할 수 없습니다(예를 들어 설치 관리자를 실행하지 않고 단순히 파일을 폴더에 복사할 경우).RTVS might not detect an R interpreter that's installed in a non-standard way (for example, when simply copying files to a folder instead of running an installer). 이 경우 다음과 같이 새 로컬 R 작업 영역을 수동으로 만듭니다.In this case, manually create a new local R Workspace as follows:

  1. [작업 영역] 창에서 추가 단추를 선택합니다.Select the Add button in the Workspaces window.
  2. 새 작업 영역의 이름을 입력합니다.Enter a name for the new Workspace.
  3. RTVS에서 인터프리터를 시작할 때 인터프리터에 전달할 모든 선택적 명령줄 인수와 함께 인터프리터가 있는 bin 폴더가 포함된 폴더인 R 루트 폴더의 경로를 입력합니다.Enter the path to the R root folder, which is the one that contains the bin folder with the interpreter, along with any optional command-line arguments to pass to the interpreter when RTVS starts it up.
  4. 완료되면 저장을 선택합니다.Select Save when you're done.

새 작업 영역 추가

원격 작업 영역Remote workspaces

원격 작업 영역을 통해 원격 컴퓨터의 R 세션에 연결할 수 있습니다.Remote workspaces let you connect to an R session on a remote computer. 이 목적으로 컴퓨터를 구성하는 방법에 대해서는 원격 작업 영역 설정을 참조하세요.(See Setting up remote workspaces for how to configure a computer for this purpose.)

Visual Studio는 원격 작업 영역을 자동으로 검색하지 않으므로 이전 섹션의 설명대로 [작업 영역] 창에서 추가 단추를 사용하여 수동으로 추가해야 합니다.Visual Studio doesn't automatically detect remote workspaces, so you must add them manually using the Add button in the Workspaces window as described in the previous section. 이 경우 로컬 경로가 아닌 원격 컴퓨터의 URI를 입력합니다.In this case, enter the remote computer's URI rather than a local path.

중요

원격 작업 영역은 원격 컴퓨터와의 통신에 대한 개인 정보 및 무결성을 보장하기 위해 HTTPS 프로토콜을 사용해야 하는 URI로 식별됩니다.Remote workspaces are identified by a URI that must use the HTTPS protocol to ensure the privacy and the integrity of communication with the remote computer. Visual Studio는 HTTPS를 지원하지 않는 원격 컴퓨터에 연결할 수 없습니다.Visual Studio cannot connect to a remote computer that does not support HTTPS.

참고

원격 작업 영역은 미리 보기에 효과적입니다.Remote workspaces are effectively in preview. 향후 릴리스에서 파일 동기화 문제 구현을 개선하기 위한 작업이 진행 중이며 귀하의 아이디어와 피드백을 기다리고 있습니다.We are working on a better implementation of the file sync problem for a future release and welcome your ideas and feedback.

원격 작업 영역 로그온Remote Workspace Logon

원격 작업 영역에 로그온하려면 사용자 이름 및 암호를 사용해야 합니다.You must use a username and password to logon to the remote workspace.

Windows 작업 영역에 로그온Logon to Windows workspace

원격 컴퓨터가 도메인 계정을 사용하도록 설정되어 있는 경우 도메인 로그온을 사용하여 원격 작업 영역에 액세스할 수 있습니다.If your remote machine is setup to use your domain account, you can use the domain logon to access a remote workspace. 그렇지 않을 경우 machine-name\username 형식을 사용하여 원격 컴퓨터에서 컴퓨터 계정을 사용하여 로그온해야 합니다.If it is not, then you have to use machine-name\username format to logon using a machine account on the remote machine.

Linux 작업 영역으로 로그온Logon to Linux workspace

Linux 계정에 로그온하려면 <<unix>>\username 형식을 사용합니다.To logon to a linux account use <<unix>>\username format. 예를 들어 이름이 ruser인 계정이 있는 경우 사용자 이름을 <<unix>>\ruser로 입력해야 합니다.For example, if you have an account by the name ruser, then you should type in the username as <<unix>>\ruser.

작업 영역 간 전환Switching between workspaces

RTVS는 한 번에 하나의 작업 영역에만 바인딩됩니다.RTVS is bound to only a single workspace at a time. 바인딩된 작업 영역은 [작업 영역] 창의 작은 녹색 확인 표시로 표시됩니다.The bound workspace is indicated by a small green checkmark in the Workspaces window. 기본적으로 RTVS는 이전 세션의 마지막 로컬 작업 영역에 바인딩됩니다.By default, RTVS binds to the last open local workspace in a previous session.

활성 작업 영역을 변경하려면 원하는 작업 영역 옆에 있는 파란색 화살표를 선택합니다.To change the active workspace, select the blue arrow next to the desired workspace. 이렇게 하면 세션을 저장할지 묻는 메시지가 표시되고, 현재 작업 영역이 종료되고, 새 작업 영역으로 전환됩니다.Doing so prompts you to save your session, terminates the current workspace, then switches to the new one.

저장 프롬프트를 사용하지 않으려면 R 도구 > 옵션 명령을 선택하고 작업 영역을 전환하기 전에 확인 대화 상자를 표시합니다. 옵션을 No로 설정합니다.To disable the save prompt, select the R Tools > Options command and set the Show confirmation dialog before switching workspaces option to No. 작업 영역 옵션을 참조하세요.See Workspace options.

제거된 로컬 작업 영역 또는 사용할 수 없는 원격 작업 영역으로 전환하려고 하면 RTVS가 작업 영역에 바인딩되지 않을 수 있습니다.If you attempt to switch to a local workspace that's been uninstalled, or to a remote workspace that it unavailable, RTVS might not be bound to any workspace. 따라서 대화형 창에 코드를 입력하거나 코드를 실행하려고 할 때 오류가 나타날 수 있습니다.As a result, you might see an error when you enter code in the interactive window or try to run code otherwise:

작업 영역이 RTVS에 바인딩되지 않은 경우 오류

이 문제를 수정하려면 [작업 영역] 창에서 다른 작업 영역으로 전환합니다.To correct this, switch to another workspace in the Workspaces window. 작업 영역을 사용할 수 없으면 R 인터프리터를 설치해야 합니다.If no workspaces are available, you need to install an R interpreter. Visual Studio를 실행하는 동안 인터프리터를 설치한 경우 Visual Studio를 다시 시작해 볼 수 있습니다.You can also try restarting Visual Studio if you've installed an interpreter while Visual Studio running.

원격 작업 영역으로 전환Switching to a remote workspace

RTVS에서는 원격 작업 영역에 처음 연결할 때 자격 증명을 묻는 메시지를 표시하고 이후 세션을 위해 해당 자격 증명을 캐시합니다(안전한 Windows 자격 증명 보관 사용).RTVS prompts you for credentials when you first connect to a remote workspace, then caches those credentials (using the secure Windows Credential Locker) for later sessions. 원격 서버 통신은 HTTPS(필수)를 통해 안전하게 수행됩니다.Communication with the remote server is then done securely over HTTPS (which is required).

서버 구성에 따라서는, 연결할 때 “원격 R Services를 통해 제공된 보안 인증서에서는 사용자가 컴퓨터(이름)에 연결되어 있음을 입증하도록 허용하지 않습니다.”라고 표시된 인증서 경고를 확인할 수 있습니다.Depending on the server's configuration, you may see a certificate warning when connecting that reads, "The security certificate presented by the Remote R Services does not allow us to prove that you are indeed connecting to the machine (name)."

원격 작업 영역에 연결할 때 자체 서명된 인증서 경고 대화 상자

인증서는 연결하려는 컴퓨터에서 RTVS에 제공하는 문서입니다.The certificate is a document presented to RTVS by the computer that you're trying to connect to. 인증서는 해당 컴퓨터의 URI를 식별하는 필드를 포함합니다.The certificate contains a field that identifies the URI of that computer. RTVS에서 인증서 URI와 컴퓨터에 연결하는 데 사용된 URI 간에 불일치를 발견하면 서버의 보안이 손상되었을 수 있음을 나타내는 경고가 표시됩니다.The warning appears when RTVS detects a mismatch between the URI in the certificate and the URI used to connect to the computer, indicating that the server's security may have been compromised.

그러나 원격 컴퓨터에서 HTTPS를 사용하도록 설정하는 데 신뢰할 수 있는 공급자의 인증서를 사용하는 대신 자체 서명된 인증서를 사용한 경우에도 이 경고가 나타납니다.However, this warning also appears if a self-signed certificate was used to enable HTTPS on the remote computer instead of using one from a trusted provider. 자세한 내용은 원격 작업 영역 설정을 참조하세요.For more information, see Setting up remote workspaces.

로컬 및 원격 컴퓨터의 디렉터리Directories on local and remote computers

기본적으로 새 R 인터프리터를 로컬 작업 영역에서 시작하면 현재 작업 디렉터리는 %userprofile%\Documents입니다.By default, when you start a new R interpreter in a local workspace, your current working directory is %userprofile%\Documents. R 도구 > 작업 디렉터리 명령을 사용하거나 Visual Studio 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 여기에 작업 디렉터리 설정 같은 명령을 선택하여 언제든지 디렉터리를 변경할 수 있습니다.You can change directory at any time using the R Tools > Working Directory commands, or by right-clicking a project in Visual Studio Solution Explorer and selecting commands like Set Working Directory Here.

원격 컴퓨터에 처음 연결할 때 RTVS가 자격 증명에 따라 사용자 프로필을 자동으로 생성하므로 작업 디렉터리는 해당 프로필 아래 Documents 폴더로 설정됩니다.When you first connect to a remote computer, RTVS automatically creates a user profile based on your credentials, which sets the working directory to the Documents folder under that profile. 이 폴더는 같은 자격 증명을 사용하는 모든 후속 원격 세션에 사용됩니다.This folder is used for all subsequent remote sessions that use the same credentials.

따라서 코드가 실행되는 정확한 위치는 로컬 및 원격 작업 영역 간에 다를 수 있습니다.As a result, the exact location where your code runs can differ between local and remote workspaces. 코드에서는 항상 데이터 파일의 상태 경로를 사용하세요. 이렇게 하면 여러 작업 영역에 걸쳐 코드를 이식할 수 있습니다.In your code, then, always use relative paths to data files and such so that your code is portable across workspaces.

원격 작업 영역에서는 작업 디렉터리의 모든 파일이 같은 사용자 프로필에 대한 여러 세션에 걸쳐 그대로 유지됩니다.Note also that with remote workspaces, all files in the working directory remain in place across sessions for the same user profile. 앞의 설명대로 원격 작업 영역을 사용할 경우 R 도구 > 세션 > 다시 설정 명령(또는 대화형 창의 [다시 설정] 단추)을 사용하여 이러한 파일을 삭제할 수 있습니다.As noted earlier, you can delete these files by using the R Tools > Session > Reset command (or the reset button in the interactive window) when using a remote workspace. 이 명령을 통해 다시 연결할 때 다시 생성된 사용자 프로필도 서버에서 삭제됩니다.This command again deletes the user profile from the server, which is recreated when you reconnect.

원격 작업 영역으로 프로젝트 파일 복사Copying project files to remote workspaces

Visual Studio에서 R 프로젝트를 사용할 경우 원격 작업 영역을 사용 중인 경우에도 로컬 컴퓨터에는 항상 최신 프로젝트 파일이 포함됩니다.When working with R projects in Visual Studio, the local computer always has the latest project files even when you're using a remote workspace. 즉, Visual Studio에서 프로젝트를 열 경우(일반적으로 해당 프로젝트가 포함된 솔루션을 열 경우) RTVS에서는 프로젝트 콘텐츠가 완전히 로컬 컴퓨터에 상주한다고 간주합니다.That is, when you open a project in Visual Studio (which typically means opening a solution containing that project), RTVS assumes that the project's contents reside wholly on the local computer. 원격 작업 영역은 실제로 프로젝트 파일 및 코드의 모든 출력에 대한 임시 호스트입니다.The remote workspace is, in effect, just a temporary host for the project's files and any output from the code. 이는 예를 들어 대화형 창에서 source를 사용하여 파일을 로드할 경우 해당 파일이 직접 제공한 경로의 원격 컴퓨터에 있어야 하거나 setwd() 함수로 설정된 원격 R 인터프리터의 현재 작업 디렉터리에 있어야 함을 의미합니다.This means, for example, that when loading a file using source in the interactive window, that file must already be on the remote computer in the path you provide, or it must be in the current working directory of the remote R interpreter (set with the setwd() function).

파일은 다음과 같이 원격 서버로 복사됩니다.Files are copied to the remote server as follows:

  • 대화형 창을 통해 원격으로 파일을 사용하려면 먼저 솔루션 탐색기에서 해당 파일(또는 프로젝트)을 마우스 오른쪽 단추로 클릭하고 소스 선택됨을 선택하여 파일을 수동으로 복사해야 합니다.To work with files remotely through the interactive window, you must first copy them manually by right-clicking those files (or the project) in Solution Explorer and selecting **Source Selected **. 개별 파일의 경우 서버의 작업 디렉터리로 복사되고, 프로젝트를 복사할 경우 RTVS에서 프로젝트에 대한 폴더를 만듭니다.For individual files, they're copied to the working directory on the server; when copying a project, RTVS creates a folder for the project.

  • 솔루션 탐색기에서 파일을 선택하고 선택한 파일 원본 제공을 선택하여 파일을 복사할 수도 있습니다.You can also copy files by selecting then in Solution Explorer and then selecting Source Selected Files(s). 이 작업으로 파일이 대화형 창으로 로드되고 여기서 실행됩니다.This action loads them into the interactive window and runs them there. 세션이 원격 컴퓨터에 연결되면 파일은 먼저 원격 컴퓨터로 복사됩니다.If the session is connected to a remote computer, the files are copied there first.

  • RTVS가 원격 작업 영역에 바인딩되고 F5 키를 누르고 디버그 > 디버깅 시작을 선택하거나 코드 실행을 시작하면 RTVS에서는 기본적으로 프로젝트 파일을 원격 작업 영역으로 자동으로 복사합니다(이 동작을 제어하는 방법은 아래 내용 참조).When RTVS is bound to a remote workspace and you press F5, select Debug > Start Debugging, or otherwise start running your code, RTVS by default copies the project's file to the remote workspace automatically (see below for how to control this behavior).

  • 이미 서버에 있는 모든 파일을 덮어씁니다.Any files that already exist on the server are overwritten.

참고

RTVS가 모든 R 함수 호출을 확실히 가로챌 수는 없으므로 대화형 창 내에서 source() 또는 runApp()(Shiny 응용 프로그램의 경우) 등의 함수를 호출하면 파일이 원격 작업 영역으로 복사되지 않습니다.Because RTVS cannot reliably intercept all R function calls, calling functions such as source() or runApp() (for Shiny applications) within the interactive window does not copy files to the remote workspace.

프로젝트 속성은 프로젝트가 실행될 때 RTVS가 파일을 복사할지 여부, 그리고 정확히 복사되는 파일을 제어합니다.Project properties control whether RTVS copies files when a project is run, and exactly which files are copied. 이 페이지를 열려면 프로젝트 > (이름) 속성... 메뉴 명령을 선택하거나 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭하고 속성...을 선택합니다.To open this page, select the Project > (name) Properties... menu command, or right-click the project in Solution Explorer and select Properties....

파일 전송 설정이 있는 프로젝트 속성 실행 탭

여기서 실행할 전송 파일 속성은 RTVS가 프로젝트 파일을 자동으로 복사할지 여부를 결정합니다.Here, the Transfer files on run property determines whether RTVS copies project files automatically. 전송할 파일 값은 정확히 전송되는 파일을 필터링합니다.The Files to transfer value then filters exactly which files are transferred. 기본값은 .R, .Rmd, .sql, .md.cpp 파일만 복사하는 것입니다.The default is to copy only .R, .Rmd, .sql, .md, and .cpp files. 이 동작은 실행할 때마다 큰 데이터 파일이 의도치 않게 서버로 복사되지 않도록 합니다.This behavior avoids inadvertently copying large data files to the server with every run.

원격 작업 영역에서 파일 복사Copying files from a remote workspace

R 스크립트가 서버의 파일을 생성할 경우 rtvs::fetch_file 함수를 사용하여 해당 파일을 다시 클라이언트로 복사할 수 있습니다.If your R script generates files on the server, you can copy those files back to the client using the rtvs::fetch_file function. 이 함수는 최소한 컴퓨터로 복사할 파일의 원격 경로를 허용하고 경우에 따라 컴퓨터의 대상 경로를 허용합니다.This function accepts, at a minimum, the remote path to the file that you want to copy to your computer, and optionally the target path on your computer. 경로를 지정하지 않으면 파일이 %userprofile%\Downloads 폴더로 복사됩니다.If you don't specify a path, the file is copied into your %userprofile%\Downloads folder.