'''
이론 컴퓨터 과학 {{{#!wiki style="display: inline-block; font-family:Times New Roman, serif;font-style:italic"''' |
|||||
{{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" |
<colbgcolor=#a36> 이론 | ||||
기본 대상 | 수학기초론{ 수리논리학( 논리 연산) · 계산 가능성 이론 · 범주론 · 집합론} · 이산수학( 그래프 이론) · 수치해석학 · 확률론 및 통계학 · 선형대수학 | ||||
다루는 대상과 주요 토픽 | |||||
계산 가능성 이론 | 재귀함수 · 튜링 머신 · 람다대수 · 처치-튜링 명제 · 바쁜 비버 | ||||
오토마타 이론 | FSM · 푸시다운 · 튜링 머신( 폰노이만 구조) · 정규 표현식 · 콘웨이의 생명 게임 · 형식언어 | ||||
계산 복잡도 이론 | 점근 표기법 · 튜링 기계^ 고전, 양자, 비결정론적, 병렬 임의접근 기계^ · 알고리즘 · 자료구조 · 알고리즘 패러다임( 그리디 알고리즘, 동적 계획법) | ||||
정보이론 | 데이터 압축( 무손실 압축 포맷 · 손실 압축 포맷) · 채널 코딩(채널 용량) · 알고리즘 정보 이론(AIT) · 양자정보과학 | ||||
프로그래밍 언어이론 | 프로그래밍 언어( 함수형 언어 · 객체 지향 프로그래밍 · 증명보조기) · 메타 프로그래밍 · 유형 이론 · 프로그래밍 언어 의미론 · 파싱 · 컴파일러 이론 | ||||
주요 알고리즘 및 자료구조 | |||||
기초 | 정렬 알고리즘 · 순서도 · 탐색 알고리즘 | ||||
추상적 자료형 및 구현 | 배열^ 벡터^ · 리스트^ 연결 리스트^ · 셋(set)^ 레드-블랙 트리, B-트리^ · 우선순위 큐^ 힙, 피보나치 힙^ | ||||
수학적 최적화 | 조합 최적화 | 외판원 순회 문제 · 담금질 기법 · 유전 알고리즘 · 기계학습 | |||
볼록 최적화 | 내부점 방법 · 경사하강법 | ||||
선형계획법 | 심플렉스법 | ||||
계산 수론 및 암호학 | 밀러-라빈 소수판별법 · Pollard-rho 알고리즘 · 쇼어 알고리즘 · LLL 알고리즘 · 해시( MD5 · 암호화폐 · 사전 공격( 레인보우 테이블) · SHA) · 양자 암호 | ||||
대칭키 암호화 방식 | 블록 암호 알고리즘( AES · ARIA · LEA · Camellia) · 스트림 암호 알고리즘(RC4) | ||||
공개키 암호화 방식 | 공개키 암호 알고리즘( 타원 곡선 암호 · RSA) · 신원 기반 암호 알고리즘(SM9) | ||||
계산기하학 | 볼록 껍질 · 들로네 삼각분할 및 보로노이 도형^Fortune의 line-sweeping 알고리즘^ · 범위 탐색^vp-tree, R-tree^ · k-NN | ||||
그래프 이론 | 탐색^ BFS, DFS, 다익스트라 알고리즘, A* 알고리즘^ · 에드몬드-카프 · 크루스칼 알고리즘 · 위상 정렬 · 네트워크 이론 | ||||
정리 | |||||
정지 문제 대각선 논법 · 암달의 법칙 · P-NP 문제미해결 · 콜라츠 추측미해결 | |||||
틀:이산수학 · 틀:수학기초론 · 틀:컴퓨터공학 | }}}}}}}}} |
1. 개요
Grid Computing네트워크로 연결된 컴퓨터들이 서로 정보를 처리하고 공유할 수 있는 점을 이용한 컴퓨터의 자원들 - CPU와 RAM의 연산·처리능력, 하드디스크의 저장공간, 유·무선 인터넷 망의 활용 등 - 을 서로 공유하여 컴퓨팅 능력을 향상시키기 위해 사용되는 병렬 분산 시스템의 한 종류이다. P2P(Peer-to-Peer)
2. 의미
기본적인 개념은 주변에 전력망(Power Grid)이 구축되어 있으면 전력선을 따오는 것만으로도 전기를 쉽게 공급받을 수 있는 것처럼, 구축된 컴퓨팅 망(Grid)에 연결하는 것만으로도 언제 어디서나 쉽게 컴퓨팅 능력을 공급받을 수 있도록 하자는 것이었다. 대한민국에서 그리드 컴퓨팅을 설명할 때 격자란 표현에 집착하는 경향이 있는데 집착할 이유가 없다. 오히려 격자보다 Web이나 Net으로 이해하는 것이 낫다.100의 작업을 처리하는데, CPU 하나에서 처리하면 아무리 고성능 CPU를 사용하더라도 물리적인 한계가 존재한다. 이를 뛰어넘어 더 빠른 처리를 하기 위하여 여러 대의 CPU를 병렬 연결하여 작업을 나누어 처리하게 되며. 이 때문에 한 CPU를 여러 코어의 병렬 구조로 구성한 듀얼코어, 쿼드코어, 헥사코어 등의 CPU가 나오는 것으로, 슈퍼컴퓨터는 데이터처리를 위한 최소한의 컴퓨터 수백대를 병렬 연결한 것이라고 할 수 있다.
이 개념을 하나의 컴퓨터가 아니라 네트워크에 적용하면 네트워크에 연결된 불특정 다수의 컴퓨터에 데이터를 전송하여 연산하게 한 다음 이를 서버에서 취합하여 전체 데이터를 내는 기술이 된다. 특히 과학 및 공학 분야에서 주로 처리하는 데이터는 비슷한 계산을 조건만 약간씩 바꿔 가며 결과를 얻는 병렬 연산이 많기 때문에 이러한 기술을 이용하면 슈퍼 컴퓨터로도 수십 년이 걸릴 데이터를 불과 수 개월에서 수 년 정도만에 처리가 가능하다고 한다. 대표적인 예로 SETI@home, Folding@home [1]이 있다. 대한민국에서는 KISTI가 Korea@Home을 운영하고 있었으나 서비스 중단.
개념적으론 그리드 컴퓨팅은 분산 컴퓨팅의 한 종류이나 어감상 차이가 있는데, 분산 컴퓨팅은 서버가 병렬 연결된 다수의 클라이언트를 다수의 독립된 연산코어처럼 활용하는 쪽에 초점을 두고 클라이언트는 단지 자신이 지닌 연산 및 처리능력을 제공하기만 한다면, 그리드 컴퓨팅은 이들을 무지막지한 능력을 지닌 가상의 컴퓨터로 재구성하는 쪽에 초점이 맞춰져 있으며, 병렬로 연결된 컴퓨터들은 서로 연산 및 처리능력을 제공하기도 하고 제공받기도 하는 관계이다. 비유하자면 그리드 컴퓨팅은 인수합병이고, 분산 컴퓨팅은 하청업체 내지 아웃소싱 정도.
SETI@home 프로젝트의 경우 BOINC이란 프로그램을 이용하고 있는데, 이 프로그램이 하는 일이 연결된 컴퓨터들을 다수의 연산코어처럼 활용하여 연산 및 처리능력을 제공받는 형식이다. 공익 목적으로 사용되는 그리드 프로그램의 대표주자라고 할 수 있다.
소규모로써는 Visual Studio의 분산 컴파일 애드온 IncrediBuild 등도 볼 수 있다. 특히 고급/객체지향 언어일수록 목적파일을 소스코드마다 만들고 링커의 연결작업으로 최종 파일을 빌드하니 가능한 한 소스코드를 분산화해서 여러 기기에서 컴파일하면 그만큼 빠른 컴파일을 할 수 있다. 전체 빌드에 몇 분이 걸리던 것을 수 초에서 수십 초 내로 줄일 수 있을 정도.
3. 대한민국의 그리드 컴퓨팅
한편, 대한민국에서는 인터넷 콘텐츠 서비스 업자들 가운데 상당수가 애용하는 개념이기도 하다. 동영상 서비스로 말하자면- 사용자 A가 동영상을 재생한다.
- 동영상의 내용이 사용자 A의 컴퓨터에 잠시 저장된다.
- 사용자 B가 동영상을 재생한다.
- 동영상의 내용이 사용자 B의 컴퓨터에 잠시 저장된다. 이때, 동영상의 내용은 서버가 아닌 사용자 A의 컴퓨터에서 가져온다.
- 사용자 C가 동영상을 재생한다.
- 동영상의 내용이 사용자 C의 컴퓨터에 잠시 저장된다. 이때, 동영상의 내용은 서버가 아닌 사용자 A와 사용자 B의 컴퓨터에서 가져온다.
간단히 사용자에게 원 서버 관리자의 짐을 나누어 지게 하는 것이라고 생각하면 된다. 즉 원서버를 관리하는 업자 입장에서는 원 서버 관리 및 망 사용료의 지출을 줄이거나 사용자에 떠넘길 수 있다는 유리함이 있는 것이다. 사실상 토렌트와 거의 비슷한 것이라 봐도 된다.
하지만 다른 사람의 컴퓨터 자원과 전기요금을 서버의 용도로 사용하는 것이기 때문에, 이를 약관 등으로 사전에 고지하지 않으면 불법이다.
인터넷을 통한 그리드 컴퓨팅은 크래킹에 악용될 위험성이 있으며, 대체로 사용자의 명시적 동의를 받지 않은 채 이루어진다는 점에서 논란의 소지가 있다. 또한 한국에서 이 기술을 사용하는 인터넷 콘텐츠 서비스 업자들 대부분이 사용자의 컴퓨터 자원을 쓰기 위해 특정 소프트웨어의 설치를 요구하는데, 이러한 소프트웨어가 대부분 Active X 기반이다 보니 한국 인터넷 환경의 Internet Explorer를 위시한 마이크로소프트 제품군에의 의존을 심화하고 다양한 플랫폼에 대한 접근성 향상의 발목을 잡는 주범이 되기도 했다.
사실 널리 알려지지는 않은 사실이지만, 대부분의 국내 웹하드 사는 그리드 컴퓨팅을 사용하고 있다. 지금 당장 작업 관리자를 켜서 qdownupdate.exe, qdownagent.exe, qdownservice.exe, ExpressService.exe, microcloudengine.exe, cloudmanager.exe, winnetplus.exe, natsvc.exe, v_service.exe, v_member.exe, smmgr.exe, CCDNService.exe, HgridEngine 등의 파일이 메모리에 상주되어 있지 않은가 살펴보자. 이게 바로 대부분의 웹하드 다운로더를 설치하면 함께 설치하는 퀵다운 서비스라는 그리드 컴퓨팅 프로그램이다. 컴퓨터를 켜면 자동으로 SYSTEM 계정 권한으로 실행되며, 강제 종료를 해도 알아서 다시 켜진다. 이것은 해당 프로세스가 인스톨시에 서비스에 등록되어 실행되기 때문인데, 서비스가 강제 중단되었을 때 자동으로 다시 시작 이라는 옵션이 지정되어 있어 죽여도 죽여도 한도 끝도 없이 살아나는 것처럼 보인다.[2] 시작-실행 으로 들어가거나 단축키 Window(특수키)-R을 누른 후, services.msc(즉, 관리도구의 서비스 관리부분을 실행하는 것과 같다.)를 실행해서 서비스 리스트를 보면 쉽게 종료할 수 있다. (XP 기준으로) 이 관리 콘솔에서 서비스를 삭제하는 것은 불가능하나 사용하지 않음 상태로 만들어서 서비스를 더이상 실행되지 못하게 만들 수 있다.
웹하드를 쓰는 사람들은 가급적 받을 것만 받고 나서 해당 프로그램을 강제종료하고 다운로더를 언인스톨하자. 필요할 때 다시 깔면 되니까. 이 과정 자체가 번거롭다면 그리드관련서비스를 처음부터 실행이 되지 않게 설정할 수도 있다. XP 이상의 윈도우는 각 실행파일에 접근권한을 설정할 수 있는데 XP에서는 cacls 7에서는 icacls를 사용해 ACL을 편집함으로 권한을 지정할 수 있다. 관련 명령어를 bat파일로 만들어 접근권한을 필요에 따라 변경할 수 있다. 더 쉬운 방법으로 해당 그리드 서비스의 실행파일을 찾아 우클릭→속성→보안(탭)→편집 란에서 권한을 지정할 수 있다. (System, Administrators, 사용자 계정) 모든권한이나 읽기, 쓰기, 실행 등의 권한을 '거부' 로 설정하면 해당 프로그램은 실행도, 읽기도, 쓰기도, 삭제도 안된다. 당연히 재설치도 되지 않는다. MSE나 사제 방화벽을 설치해서 위의 프로그램들을 강제로 차단할 수 있다. Windows 7에선 보다 확장된 기능 덕분에 별도의 유틸 없이도 차단이 가능하다.
사실 위의 방법 외에도 그냥 프로세스 끄자마자 삭제하고 새 폴더를 만들어서 이름을 위 응용프로그램으로 바꾸면 된다. 이렇게 하면 삭제된 프로그램을 다시 만들려고 해도 이미 있는 파일이기 때문에 생성이 안 되고 당연 그리드가 돌아가지도 않는다.[3]
2004~2005년 사이에 네이버에서 동영상 재생을 터보 플레이어[4]로 했는데, 터보 플레이어에서 그리드 컴퓨팅을 사용했기 때문에 네이버에서 동영상만 보면 인터넷이 많이 느려졌고 불만이 속출했으며, 하루에 약 1기가 이상의 트래픽이 발생하다보니 아예 몇몇 대학 및 공공기관에서는 구내 컴퓨터에 터보 플레이어를 설치하지 말라는 공문을 띄우기까지 했다. 2004년 11월경 이게 공론화되면서 비판이 쏟아졌고 기사도 나왔다, 결국 네이버는 2005년 6월 27일 터보플레이어를 버리고 MMS나 RTSP 프로토콜(윈도우에 내장된 미디어 플레이어가 사용된다.)로 스트리밍하는 방식으로 바꿨다. 이후 2008~2009년에 플래시로 다시 더 바꾸긴 했지만, 2013년 TV캐스트가 시작되면서 그리드 프로그램을 설치하게 했었다.
안드로이드 버전 네이버 미디어 플레이어는 그리드 컴퓨팅을 사용한다. 아이폰 버전에서는 사용하지 않는다(애초에 아이폰 버전에서는 고화질 동영상 재생시 앱을 설치할 필요가 없다).
싸이월드 배경음악 재생 서비스도 이 방식을 사용한다. 판도라TV도 사용했었는데, 나중에 플래시로 바꿨다. 하지만 모질라 파이어폭스 등에서 일부 동영상이 플래시로 인식이 되지 않는 것으로 보아 아직도 판도라TV에 이 방식을 사용하는 동영상이 일부 있는 것으로 판단된다.
클럽박스도 이 방법을 사용한다. 원래부터 클럽박스는 단순한 웹하드가 아니라 그리드 컴퓨팅을 사용한 공유 방식을 사용했는데, 이후에 욕을 상당히 먹게 되면서 2점을 추가로 주는 옵션을 추가하였다. 여기서 2점을 추가하는 의미는 그리드 컴퓨팅 자체를 허용한다는 의미가 아니라 이미 실행되고 있던 그리드 컴퓨팅의 대역폭을 넓힌다는 의미이다. 결국 실행하고만 있어도 컴퓨터의 속도를 깎아먹는 셈. 이를 두고 조삼모사라고 까이기도 한다. 기술적인 면에서 클럽박스의 솔루션은 꽤 유명해서, 게임사에서 게임 클라이언트를 배포하는데서도 쓰고 있다. WOW의 경우 그리드 컴퓨팅은 아니지만 원리가 비슷한 토렌트 방식으로 게임을 배포한다.
다음에서도 플래시 동영상 중에서 재생 시간이 긴 것[5]은 피노(Pino)을 설치하게 했었다.
아프리카TV 역시 8Mbps로 보려면 그리드 방식의 설치형 플레이어가 필요하다. 연 900억원의 망 사용료를 그리드로 150억원까지 줄일 수 있기 때문이다. # # #
어떤 안티바이러스 프로그램은 그리드 컴퓨팅을 사용하는 프로그램을 악성코드 또는 PUP로 진단하여 삭제하기도 한다.
이것은 SETI@home이나 Korea@Home의 그리드 컴퓨팅과 차이가 있는데, SETI@home이나 Korea@Home은 CPU의 연산을 필요로 하는 반면 판도라TV나 클럽박스 등의 웹하드류는 CPU보다는 트래픽과 저장장치 엑세스에 초점이 맞춰져있다는 점이다. 물론 둘 다 용어상 그리드 컴퓨팅이지만. 뭐 정확히 나누자면, 전자는 컴퓨팅 그리드이고, 후자는 데이터 그리드로 나눌수 있다.
2012년 6월부터 KT이용자는 그리드 컴퓨팅을 악용하는 웹하드 업체 이용이 어려워지니 참고하자.
2014년 2월 5일부터 네이버 웹툰에서도 스피드뷰라는 이름의 그리드 컴퓨팅 프로그램이 나왔다. 당연히 이용자들에게 욕을 있는대로 먹고 2월 28일자로 내렸다. 위에서 말했듯이 네이버TV에서도 사용했었다.[6]
2024년 5월 2일부터 치지직에서 순차적 그리드 적용을 하였다. 관련공지. 지속 가능한 서비스 제공이라는 언급을 한 것으로 보아, 트위치나 아프리카 TV가 겪은 망 사용료 문제를 동일하게 겪은 것으로 추정된다.
2024년 6월에 KT에서 웹하드 업체와 이용자들의 그리드 컴퓨팅을 막기 위해서 고객의 인터넷 사용내역을 감청하고 해킹하여 악성코드를 설치했던 것이 발각되는 사건이 있었다.
3.1. 웹하드 그리드 컴퓨팅 파일 삭제
레알신세계라는 유틸로 간편하게 삭제할 수 있다. 비스타 혹은 Windows 7의 경우 삭제 후 마데카솔을 바를 수 있다. 마데카솔은 해제하기 전까진 그리드 컴퓨팅 파일이 다시 못 깔리게 한다.그리드 스위치라는 프로그램도 있다. 실시간 감시 기능까지 달려있어 사용자가 모르게 컴퓨터에 그리드 컴퓨팅 파일이 실행될때 알아차릴 수 있다. 홈페이지
'그리드킬러'라는 프로그램도 있다. (지금은 사이트 접속되지않는다.)
참고로 그리드 컴퓨팅을 하지 않는다는 것과 백그라운드 프로그램이 실행되지 않는다는 것은 의미가 전혀 다르다. 실제로 "그리드가 없는 웹하드"를 표방하는 모업체는 사용자에게 별도의 고지를 하지 않은 채 백그라운드 프로세스를 2개 이상 실행하도록 만든다. 이는 주로 DRM관련 프로그램이지만, 사실 해당 프로그램이 실행되지 않더라도 웹하드 자체적으로 저작물을 관리하는 데에는 큰 문제가 없다.
4. 창작물에서
- 스타크래프트에 등장하는 프로토스의 연결 네트워크인 칼라도 그리드 컴퓨팅의 일종이다. 다만, 이쪽은 프로토스의 사이오닉 연결이 모여 만들어진 것이라 그 본체가 없고, 공허의 유산에서 아몬이 칼라를 오염시키며 프로토스를 세뇌하고, 결국 모든 프로토스가 신경삭을 끊음으로써 소멸한다.
- 어떤 마술의 금서목록에 등장하는 미사카 네트워크와 레벨 어퍼는 그리드 컴퓨팅과 같은 원리이다. 대신 컴퓨터가 아닌 인간의 뇌를 사용할 뿐이다.
- 공각기동대에서 이시카와는 자신이 운영하는 파칭코 가게에 죽치고 있는 할아버지들의 전뇌를 그리드 컴퓨팅에 이용한다. 물론 몰래 이용하는 것이지만, 그들의 전뇌를 빌리는 댓가로 그 할아버지들의 승률을 유리하게 만들어준다고 한다.
- 디지몬 테이머즈에서 아이들을 현실로 귀환시킬 와일드 번치 팀의 아크[7]를 띄울 메모리가 데리파의 방해로 인해 휴프노스로도 부족해지자, 곽소룡의 아버지 곽성치의 묘안으로 전 세계 사람들에게 협조를 구한 후 엄청난 수의 컴퓨터들의 그리드 컴퓨팅을 통해 아크를 띄우는 데 성공한다.
- 영화 매트릭스의 대본 초안에서 인간은 동력원이 아니라 대규모 그리드 컴퓨팅 클러스터의 CPU로 사용된다는 설정이었지만, 대중이 그리드 컴퓨팅의 개념을 이해하지 못할 것을 염려한 워너 브라더스의 의견에 따라 CPU 대신 배터리로 용도가 변경되었다. 이 초창기 설정의 흔적은 Goliath와 같은 단편 소설 등지에서 확인할 수 있다.
- 터미네이터 시리즈의 스카이넷(터미네이터3에 의한 설정 변경 이후)도 그리드 컴퓨팅을 위한 프로그램이다. 존 코너가 이 사실을 깨달았을 때는 이미 스카이넷의 반란을 막을 방법이 없었고, 곧 핵미사일이 발사된다.
- PSYCHO-PASS의 시빌라 시스템은 공식적으로는 수도권 각지에 위치한 서버들을 이용해 그리드 컴퓨팅을 통한 병렬 분산 처리를 통해 사람의 범죄계수와 심리, 생각과 적성 등을 판단하는 시스템이다. 그러나 실상은...
- 총몽 라스트 오더에서 등장하는 중앙전뇌 멜키제데크가 그리드 컴퓨팅을 사용한다. 여기에 숨겨져 있던 무서운 사실이 있으니, 바로 멜키제데크는 자렘의 시민들의 성인식때 척출하는 뇌를 이용해 구성된 것이다. 즉, 반도체 따위가 아닌 인간의 살아있는 뇌를 이용한 그리드 컴퓨팅. 이용된 뇌의 주인들의 의식은 가상세계 속에서 살아가는 상태가 된다. 이런 점에서 영화 매트릭스의 초기 설정과 비슷하나, 이쪽은 신체를 버리고 뇌만 따로 추출해서 연산능력만을 활용한다.
- 어쌔신 크리드 시리즈의 유노는 앱스테르고의 헬릭스 서버에 기생하면서 전세계 네트워크를 돌아다니며 인류를 세뇌하고 있다. 엄밀히 따지면 유노 본인은 프로그램이 아니나, 그리드 컴퓨팅이나 다름 없는 행동양식을 취한다는 점에서 그리드 컴퓨팅의 성격을 강하게 띄고 있으며, 헬릭스 서버와 사용자의 헬릭스 기기들을 제 멋대로 드나들며 데이터를 섞고 조합한다.[8]
- 와치독 2에서는 전작의 경험치 시스템이 팔로워로 대체되었는데, 팔로워들은 데드섹에서 배포하는 그리드 컴퓨팅 앱을 설치해서 주인공의 해킹에 필요한 연산 능력의 일부를 제공한다고 한다. 행동 주체인 데드섹은 기본적으로 자유를 추구하는 아나키스트 단체라서 주인공이 나쁜 짓을 하면 추종자들이 떨어져나간다.
[1]
소니와
스탠퍼드 대학교가 협력하는 그리드 컴퓨팅을 이용한 질병 연구 프로그램이다. 이전에는
플레이스테이션 전용이었지만, 윈도우, 맥, 리눅스, 안드로이드 가릴 것 없이 지원하고 있다. 2015년부터는
엑스페리아에 한정해 스마트폰 애플리케이션을 다운받을 수 있다
[2]
Service 관련 API를 약간이라도 다뤄 본 사람은 쉽게 이해가 가능할 듯.
[3]
아니면 dir > (파일명).exe로 만들어도 된다.
[4]
터보 플레이어 자체는 NHN에서 공급했으며, 네이버 이외에도, 해당 솔루션을 쓰는 지상파 방송사(MBC의 계열사인 MBC게임도 포함)나 투니버스 등지 에서도 사용했다.
[5]
대체로 20분이 넘어가는 동영상에 적용되는 것으로 보인다.
[6]
다른 웹브라우저에서는 플러그인 방식이 아닌 플래시 기반의 플레이어인데, NPAPI가 종료되어 설치를 하게 할 수 없다보니 이렇게 된 것이다.
[7]
후에
그라니가 된다.
[8]
어쌔신 크리드: 신디케이트에서는 헬릭스 유전자 메모리 라이브러리를 대놓고 끌어들여 플레이어에게 플레이하게 하기도 했다.