HOWTO · R
R Studio에서 R 다시 시작
이 문서에서는 먼저 R을 다시 시작해야 하는 필요성을 설명한 다음 R Studio를 사용하여 R을 다시 시작하는 다른 방법을 언급합니다.
이 페이지의 내용
RStudio에서 R 세션을 다시 시작하려면 Session > Restart R을 선택하거나 Ctrl + Shift + F10을 누릅니다(Mac에서는 Ctrl 대신 Command를 사용). 재시작하면 현재 세션의 객체가 지워지고 R이 다시 시작됩니다. 다만 운영 체제가 다른 애플리케이션에 메모리를 즉시 모두 반환한다고 보장되지는 않습니다.
RStudio에서 R 세션을 다시 시작하는 이유
RStudio는 세션에서 R 코드를 실행합니다. 같은 세션에서 여러 스크립트를 작업하면 스크립트들이 Global Environment의 객체를 함께 사용할 수 있습니다. 예를 들어 객체 이름에 새 값을 할당하면, 다른 스크립트에 있더라도 이후에 그 이름을 사용하는 코드가 새 값을 보게 됩니다.
R을 다시 시작하면 새로운 R 프로세스가 시작되고 해당 세션에 있던 객체가 제거됩니다. 이전 세션에서 연결한 패키지도 재시작 후에는 더 이상 연결되어 있지 않으므로, 분석에 필요한 패키지를 다시 불러오고 객체를 다시 만들어야 합니다. 재시작하면 스크립트가 깨끗한 상태에서 제대로 작동하는지 확인하는 데 도움이 됩니다. 메모리 회수는 R과 운영 체제에 따라 달라지므로, 재시작 후 특정 용량의 메모리를 사용할 수 있게 된다고 기대해서는 안 됩니다.
RStudio 인터페이스에서 R 다시 시작하기
빠르게 다시 시작하려면 RStudio 인터페이스를 사용합니다.
- Session > Restart R을 선택합니다.
- 또는 Ctrl + Shift + F10을 누릅니다. Mac에서는 Command + Shift + F10을 누릅니다.
사용 중인 플랫폼이나 RStudio 버전에 따라 단축키가 다를 수 있으므로, 이럴 때는 메뉴 경로를 사용하면 됩니다. 재시작하기 전에 필요한 작업을 저장하세요. R이 다시 시작되면 패키지를 불러오고 데이터를 읽는 등 필요한 설정 코드를 다시 실행합니다.
프로그래밍 방식으로 R 다시 시작하기: 지원되는 방법과 문서화되지 않은 옵션
코드에서 활성 RStudio 세션에 재시작을 요청해야 한다면 rstudioapi 패키지의 rstudioapi::restartSession()을 사용합니다. 이 패키지를 R 세션에서 사용할 수 있어야 하며, 호출도 RStudio에서 실행해야 합니다. 이 함수는 IDE에 재시작을 요청하므로, RStudio 밖에서 실행된 R 프로세스를 다시 시작하는 범용적인 방법은 아닙니다.
rstudioapi::restartSession()
내부 명령인 .rs.restartR()은 문서화되지 않았으며 RStudio 내부 기능에 종속되어 있습니다. 동작이 지원되는 공개 인터페이스가 아니고 변경될 수 있으므로 스크립트나 작업 흐름에서 이 명령에 의존하지 마세요. 문서화된 메뉴나 rstudioapi API를 대신할 방법으로 권장되지 않습니다.
예를 들어 R의 quit(save = "no", status = 0) 함수는 R 프로세스를 종료합니다. 종료 후 새 프로세스를 시작하지 않으므로 재시작 방법이 아닙니다.
별도의 세션을 위해 RStudio 프로젝트 사용하기
RStudio 프로젝트는 프로젝트의 작업 디렉터리를 비롯해 관련 파일과 프로젝트 설정을 한곳에 모아 둡니다. 프로젝트를 사용하면 분석 작업을 정리하기 쉬워지고, 설정에 따라 RStudio가 프로젝트별 작업 공간 상태를 연결할 수도 있습니다. 프로젝트만으로 여러 R 프로세스가 동시에 실행되는 것은 보장되지 않습니다. 동시에 세션을 사용해야 한다면 별도의 RStudio 창이나 다른 프로세스를 이용하세요.
참고 자료
- R for Data Science 8장에서는 R 작업 흐름에서 프로젝트를 사용하는 방법을 설명합니다.
- R for Health Data Science 1.6절에서는 R을 정기적으로 다시 시작하는 방법과 RStudio 시작 옵션을 다룹니다.