Genius DM

Terms > Sandbox 본문

Computer Science & Engineering

Terms > Sandbox

Damon Jung 2018. 9. 6. 00:31

샌드박스


 IT 관련 글에서 심심치않게 볼 수 있는 샌드박스라는 용어가 궁금하여 정리해보겠다. 이런 개념적인 용어를 이제부터 하나씩 정리해서, 소프트웨어 및 컴퓨터 과학 관련 용어를 꼼꼼히 쌓아나가야 겠다는 생각이 들었다. 


어려운 글이나 정의를 보기 전에, 샌드박스라는 것이 무엇인지 의미적으로 궁금해서 검색해보았더니, 아래와 같은 이미지가 나왔다.




출처 : sandbox.jpg



샌드박스라는 용어가 보통 어떠한 환경을 샌드박싱한다라고 얘기하는데, 그림을 어떤 개념으로 사용되는지 감이 온다. 어린 아이들이 놀 수 있는 "독립적인" 공간이다. 소프트웨어에서는 대상이 아이들이 아니라, 특정 환경이나 특정 어플리케이션을 독립적으로 구성한다는 얘기일 것 같다. 이제 위키피디아에서 정의를 살펴보자.


sandbox is a testing environment that isolates untested code changes and outright experimentation from the production environment or repository,[1] in the context of software development including Web development and revision control.

샌드박스는 테스트 환경을 의미하는데, 웹 개발이나 형상관리를 포함한 소프트웨어 개발에서 릴리즈된 환경이나 저장소에서 테스트되지 않은 코드나 실험적인 요소들을 분리한 환경이 바로 샌드박스이다. 


역시 이미지부터 찾아보는 것은 굉장히 효율적인 것 같다. 영어가 모국어인 사람에게는 샌드박스라는 말을 듣자마자 해당 이미지와, Isolated environment 가 머리 속에 떠올려졌을 것이다. 위 정의는 Software 에서의 샌드박스이고, 아래 정의는 컴퓨터 보안 용어로써의 샌드박스 정의이다. 어차피 Isolated environment 라는 핵심적인 개념은 변하지 않는다.


In computer security, a sandbox is a security mechanism for separating running programs, usually in an effort to mitigate system failures or software vulnerabilities from spreading. It is often used to execute untested or untrusted programs or code, possibly from unverified or untrusted third parties, suppliers, users or websites, without risking harm to the host machine or operating system.[1]A sandbox typically provides a tightly controlled set of resources for guest programs to run in, such as scratch space on disk and memory. Network access, the ability to inspect the host system or read from input devices are usually disallowed or heavily restricted.

컴퓨터 보안에서 샌드박스는 보안 메커니즘을 의미한다. 보통 시스템 결함이나 소프트웨어 취약점이 심각한 단계로 이르지 않도록 완화하기 위한 일환으로 실행 중인 프로그램을 독립시키는 매커니즘을 샌드박스라 한다. 샌드박싱은 테스트되지 않았거나 신뢰할 수 없는 프로그램이나 코드를 실행할 때 사용되며, 이 프로그램이나 코드는 인증되지 않았거나 신뢰할 수 없는 써드파티 앱이나 공급자, 유저 또는 웹사이트로부터 실행될 수 있는 코드인데, 샌드박싱을 통해이들로부터 호스트 머신이나 운영체제를 보호하며 안전하게 구동시킬 수 있다. 샌드박스는 일반적으로 디스크와 메모리의 스크래치 스페이스같은 환경에서 게스트 프로그램을 구동할 수 있게 해주는 강력한 제어하의 리소스를 제공한다. 네트워크 엑세스나 호스트 시스템을 조사하거나 입력 장치를 읽어들이는 등의 행위는 일반적으로 허용되지 않는다.



요약

샌드박스는 결국 "독립된 영역" 에서 특정한 행위를 할 수 있게 해주는 개념이다. 아이들이 샌드박스라는 "독립된 공간" 에서 모래를 갖고 놀 수 있는 환경 처럼, 독립된 영역에서 소프트웨어 또는 기능의 일부, 소스코드를 아무렇게나 가지고 놀 수 있도록 해주는 환경인 것이다.















Sandbox


I've seen this term from time to time, so I decided to write about this term sandbox. I thought it'd be good for me to post the terms in software or computer science I'll be encountered.


Before looking at tricky articles or definitions, I googled sandbox to see what's the essential meaning and an image was popped out.




source : sandbox.jpg



This term is often used to sandbox some environment or something, I immediately got the picture of what it's about by looking at the picture above. It's an isolated space for kids ! then it must be some independent space or environment for software, not for kids this time. Now let's see the formal definition in the wikipedia.


sandbox is a testing environment that isolates untested code changes and outright experimentation from the production environment or repository,[1] in the context of software development including Web development and revision control.


Searching an image and tasting what the term would be always useful I guess. People using English as their mother tongue would come up with the image and would be able to imagine an isolated environment right away the moment they heard "sandbox". The definition above is a sandbox in software development, and the one below is in computer security. The core idea, image of sandbox doesn't change at all anyway.


In computer security, a sandbox is a security mechanism for separating running programs, usually in an effort to mitigate system failures or software vulnerabilities from spreading. It is often used to execute untested or untrusted programs or code, possibly from unverified or untrusted third parties, suppliers, users or websites, without risking harm to the host machine or operating system.[1]A sandbox typically provides a tightly controlled set of resources for guest programs to run in, such as scratch space on disk and memory. Network access, the ability to inspect the host system or read from input devices are usually disallowed or heavily restricted.



In a nutshell

The sandbox means in the end, an isolated space or environment for performing or testing something in that specific area. It means an environment for testing or manipulating the software itself, its specific unit of functionalities, or its snippet of source codes, just like the environment for kids to play with stuffs in that area.

































'Computer Science & Engineering' 카테고리의 다른 글

CS50 Introduction to Computer Science  (0) 2017.08.25
Comments