외계인과 우주전쟁을 한다면 #6 - 광속엔진

우주전쟁 2007. 11. 10. 18:01 Posted by 지민아빠

이 글을 읽기전에 먼저 이런 잡담을 하게된 이전 글들을 읽어 보시면 좋을 것 같습니다.



사용자 삽입 이미지

그럼 광속으로 우주를 항해하려면 "충분한 동력" 이라는 가정과, "충분한 가속"을 견딜 수 있는 가속차단장치가 필요 하겠다. 그리고 또 한가지 일본만화 "플라네테스"에서 "스페이스 데브리" 문제가 나오는 것 처럼 작은 스크류 한조각 이라도 우주에서 광속비행을 하는 도중 부딛힌 다면 그 즉시 우주선은 핵미사일에 맞은 것 처럼 산산조각 나 버릴 것이다. (웜홀을 이용한 도약이라면 이런 문제는 어느정도 없어질 것 같다.) 그러므로 광속비행을 위한 조건으로 에너지 필드와 같은 차단 장치도 추가되어야 겠다.


충분한 동력

우주전함의 동력으로 가장 많이 등장 하는 것은 아마 "핵융합 엔진" 인 것 같다. 하지만 핵융합 엔진은 우주선의 추진 엔진으로 직접 사용 되기에는 적합하지 않은 것 같다. 가까운 미래에 우주선의 추진엔진으로는 "이온엔진"(현재 NASA에서 이온엔진의 시제품을 개발중) 이 사용 될 것 같다.  이온엔진은 태양에너지 패널과 사용하며 크세논가스를 사용하여 추진력을 얻으며, 적은 연료로 장시간 동안 추진력을 얻는 것이 가능하지만 추진력 자체는 약하다.(이온엔진을 사용한 유인 우주선은 특성상 소설 '파피용'에서 나온 파피용호를 보면 비슷 할 것 같다.) 일단 가까운 시일에 실용화되는 무인 우주선은 이온엔진을 사용할 확률이 높은 것 같다. 이온엔진을 사용하면 (제한된 적재공간 안에서) 적은 연료를 가지고, 높은 속도를 얻기 위한 충분히 오랜시간동안 가속 하는 것이 가능하기 때문이다. 하지만 이온엔진만 가지고 (20광년 거리의) 장거리 비행을 한다면 가속과 감속에 너무 오랜 시간이 걸리게 되고, 갑작스런 항로변경은 거의 불가능 하다. 때문에 항로 변경이나 급가속을 위한 현재의 고체질소 방식의 보조 엔진이 추가되어야 할 듯 하다.
추진엔진을 제외한 동력사용(태양광이 약한 장소에서 "이온엔진에 동력을 공급하는 태양에너지 패널"을 대채하는 용도도 포함)은 아마 "상온핵융합" 기술이 가장 유력하다. 핵융합 기술이 현재의 중수소 방식을 탈피하게 되면 어느정도 가능성이 있지 않을까 한다. (역시 핵융합과 같은 획기적인 에너지 공급 방식이 없이는 한정된 공간에서 거대한 에너지를 사용하는 우주전함이라는 존재는 거의 불가하다.)


충분한 가속

사용자 삽입 이미지
광속비행을 하려면 빠른 시간안에 광속에 가까운 속도까지 가속을 하여야 한다. (스타워즈의 하이퍼 드라이브를 보라! 쓩~ 하고 떠난다.) 그럴려면 일단 우주선의 구조 자체가 가속에 필요한 높은 압력(전투기 조종사들이 음속가속시에 높은 G의 압력을 받는 것과 비슷)을 견딜 수 있어야 하고, 탑승원 들도 가속을 견딜 수 있어야 한다. (여기에 장애물을 피하기 위한 항로변경을 위한 압력도 계산 되어야 한다.) 스타워즈의 하이퍼 드라이브와 같은 가속을 하기 위해서는 가속차단장치가 없이는 탑승원들은 전부 압사하고 말 것이다. 물론 무인 우주선일 경우를 가정한다면 우주선의 구조만 가속을 견딜 수 있으면 되니까 문제가 훨씬 간단해 진다. "가속차단장치"에 관한 자료는 비슷한 거라도 찾을 수가 없었다. 그래서 이 부분은 제외하고, 일단 무인 우주선이나 그 비슷한 어떤 방식으로 갈 수 밖에 없을 것 같다.
이제 남은 문제는 짧은 시간안에  광속에 가까운 속도까지 어떻게 가속을 하는가가 문제인데.. 스타워즈의 하이퍼 드라이브 처럼 순간적으로 광속에 가까운 속도까지 가속 하는 것은 거의 불가능해 보인다. 이온엔진을 충분히 개량 하거나, 순간 가속용 보조 엔진을 사용한다고 하는 것이 가장 가능성 있는 설정 일 것 같다. 이렇게 하더라도 충분한 속도까지 가속 하려면 아마 최소 몇달에서 몇년은 걸릴 것 같다.


충분한 보호

광속 비행을 위해서는 아주 작은 (콩알만한) 장애물도 위험천만 하므로, 이런 것들을 튕겨주거나 소멸시킬 수 있는 차단막 같은 것들이 필요하게 된다. 가장 간단한 방법으로는 우주선의 주변 영역에 플라즈마와 같은 에너지를 지속적으로 방사 하면서 항해 하는 것인데 이럴 경우 에너지 사용이 과다하기 때문에 불가능 해 보인다. 그리고 자기장과 같은  필드를 전개 하면서 항해하는 경우  몇가지 종류의  물체는 우주선을 빗겨가게 하는 것이 가능해 보인다. 가장 가능성 있어 보이는 방법은 자기장과 같은 필드를 광범위하게 사용하면서 아주 정밀하고 빠른 컴퓨터와 관측 기계를 사용하여 작은 물체까지도 감지하고 필요할 경우 근접거리에서 플라즈마와 같은 에너지로 작은 물체를 요격하여 방향을 바꾸어 튕겨내며, 관측이 불가능한 아주 작은 물체는 우주선 표면에 지속적으로 에너지를 흘려서 보호하는 방식으로 복합적으로 구성하는 방식이다. 에너지 필드와 같은 획기적인 보호방식이 발견되기 전까지는 제한적인 보호 만 가능 할 듯 하다. 나머지는 아마 운에 맏겨지지 않을까?

,

이 글을 읽기전에 먼저 이런 잡담을 하게된 이전 글들을 읽어 보시면 좋을 것 같습니다.


우주전함에 필요한 것들 - 초광속비행

우주전쟁을 하는데 가장 문제가 되는 것은 아마도 거리의 극복? 일 것 같다.

이런 점에서 우주를 배경으로 하는 만화나 영화를 보면 항상 장거리 이동을 위한 설정(초광속비행)이 들어가게 되는데, 거리를 극복 하는 방법에는 여러가지 방법이 있을 수 있지만 여기서는 아래 두가지만 살펴본다.

  1. 워프: 블랙홀 이나 웜홀, 아공간에 의한 (혹은 직접적인 방법으로) 공간왜곡을 통하여 이동하는 방식
  2. 광속엔진 (상대성 이론에 의하면 광속보다 빠른속도는 불가능 하므로 광속보다 빠른 속도는 제외함)을 사용하는 방식

두가지 방식은 꼭 별개로 취급되는 것은 아니고 광속(에 가까운 속도로)으로 블랙홀에 돌입해야 한다("영원한 전쟁"에서의 콜렙서 점프)던지 하는 설정을 가져가기도 한다.

사용자 삽입 이미지
먼저 공간왜곡을 통하여 이동하는 경우를 살펴보면, 크게 이미 우주에 존재 하는 공간왜곡(블랙홀,웜홀,게이트 와 같은 이름들이 등장한다)을 이용하는 방법이나, 아무 곳에서나 공간 왜곡을 만들어서 장거리 이동(주로 공간을 접었다가 편다는 표현을 쓴다)을 하는 경우가 있다. 후자의 경우 살펴볼 자료가 거의 없다. (그 만큼 과학적인 근거가 부족하다는 뜻이기도 하다) 그래서 살펴볼 자료가 그나마 있는 블랙홀이나 웜홀에 관한 자료를 찾아보면, 블랙홀의 존재에 관하여 서는 어느정도 의미있는 추측이 가능한 정도 이지만, 화이트홀 이나 웜홀의 경우 추측이 전부이다. 웜홀이 존재하는지도 모른다는 것이다. 그래도 블랙홀의 가능성이 어느정도 추측이 가능하기 때문에 그나마 웜홀을 통한 워프가 일말의 가능성이 있다는 희망이라도 보이는 부분이다.

웜홀을 통한 초광속비행의 최대 장점은 공간왜곡을 이용한 방법이기 때문에 짧게는 수광년에서 수백광년의 거리를 짧은 시간에 이동이 가능 하다는 점이다. 거리대비 광속을 훨씬 뛰어넘는 속도가 가능 하며, 이동중에 어떤 장애물도 없다는 아주 매력적인 설정도 가능하다. (웜홀을 이용한 여행 방법이 발견 된다면 정말로 가까운 미래에 다른 행성계로의 여행이 가능 할 수도 있겠다)

반면에 웜홀의 위치가 정해져 있으므로 그곳까지 이동하여야 한다는 점이 단점이다. (초광속 비행의 어려움에 비하면 이 정도는 기쁘게 사소하다고 해줄 수도 있다. ㅜ.ㅜ)

아직까지 웜홀에 대해서는 밝혀진 바가 거의 없기 때문에 이를 이용한 이동이 가능한지 가능하지 않은지 살펴볼 수가 없다. 그리나 광속엔진의 경우 동력만 충분 하다면 시간이 오래 걸리더라도 충분한 가속을 통해서 광속에 가까운 속도까지 갈 수 있으리라 기대된다. 다음 글 에서는 광속엔진에 관한 가능성을 찾아 보려고 한다. ^^

이 글은 스프링노트에서 작성되었습니다.

,

이 글을 읽기전에 먼저 이런 잡담을 하게된 발단과 가정과 시작을 읽어 보시면 좋을 것 같습니다.


본격적인 이야기

현재와 아주 가까운 미래에 우주전쟁을 벌이게 된다면 이런 답답한 우주전쟁이 벌어질 것 같다. 영화나 만화에서 본 것 처럼 멋지고 환상적인 장면도 없다.

그럼 처음 이 이야기를 시작 하게된 발단에 대해서 다시 생각해 보면. "만화나 영화에서 너무 자주 보아서 이제는 너무 식상한 그런 우주전쟁 장면이 진짜로 가능할까?" 하는 궁금증에서 시작한 이야기 였다. 물론 결론은 났다. 현재나 가까운 미래에는 그런 장면이 절대 불가능 하다. 시작부터 충분히 예상된 결론이다. 하지만 이대로 그냥 현재 상황만 살펴보고 결론내고 끝내기에는 너무 밋밋하다. 그래서 영화나 만화에서 보는 환상적인 우주전쟁 장면이 가능하려면 뭐가 더 있어야 할까? 생각해 보았다.


사용자 삽입 이미지

우주전함 야마토 中 한장면

그럼 만화영화에서 등장하는 우주전쟁 장면에 무엇이 등장하는지 부터 먼저 살펴 보자. 일단 우주전함이 등장 한다. 주인장에게 우주전함이라 하면, 먼저 보통 일본만화에 오래전 부터 자주 등장하는 (현재의 바다에서 떠다니는 전함의 모습을 바탕으로 한) 모습이 가장 먼저 떠오르고, 그 다음으로 스타워즈에 등장하는 전함들이 떠오른다. 자 좀 더 상상하기 쉬운 "스타워즈"에 등장하는 우주전함과 비슷한 모습으로 가정을 해보고 그러한 전함을 만들려면 어떤 기술이 필요할 지 생각해 보면.

  1. 광속(워프)엔진 (또는 아공간 점프 또는 이와 비슷한 원거리 이동 방법)
  2. 중력발생장치(또는 가속 차단 장치) 또는 반중력장치
  3. (상온) 핵 융합 동력 엔진 (또는 우주공간에서도 충분히 오래 사용 가능한 에너지원)
  4. 근거리 직사 공격이 가능한 레이저 무기들 (스타워즈의 갤럭시 건)
  5. 원거리 공격이 가능한 로켓추진(미사일) 무기들
  6. 작은 물체나 공격으로 부터 보호 가능한 방어막 (에너지 필드)
  7. 공기정화 시스템을 비롯한 한정된 공간에서 생명유지를 지원하기 위한 어떤 시스템들

등이 필요 할 것 같다.

그리고 메카닉 로봇이나 소형 전투기 등이 날아다니며, 전투를 벌인다.

다른 여러가지 요소들이 존재 하겠지만, 우주전함 하나만 살펴 보기에도 벅찬 관계로 메카닉 로봇이나, 우주 전투기와 같은 것들은 모두 생략 하고 우주전함에 관련된 것들만 조사해 보려고 한다. ^^

우주전함에서 간단히 생각해도 필요한 이런 장치들을 만드는 것이 가능할까? 가능 하다면 얼마나 가까운 미래에 가능할까? 현재로써 알 수 없는 것들은 제쳐두고, 힌트라도 있는 것들이 있으면 찾아 보려한다.

업데이트: 가족들과 하루이틀정도 가까운 곳에 나들이 갑니다. ^^

이 글은 스프링노트에서 작성되었습니다.

,

이 글을 읽기전에 먼저 이런 잡담을 하게된 발단과 가정을 읽어 보시면 좋을 것 같습니다.


이야기의 시작

자아 그럼. 우주전쟁을 하는 상대는 정해졌고, 그럼 이제 지구에서 20광년 떨어진 외계 행성을 공격할 수 있는 방법을 찾아보아야 겠다. 현재까지 유인 우주선을 가장 멀리 보낸 곳은 달 뿐이다. 가까운 미래에 사람이 태양계를 벗어날 가능성이 얼마나 있을지는 모르겠지만, 아무래도 20광년 거리의 외계 행성에 사람을 보내는 것은 가까운 미래에도 불가능 할 것 같아 보인다. 그렇지만 무인 우주선을 태양계 밖의 원하는 위치로 보내는 것은 가능 하지 않을까? 지구에서 원격으로 조정하는 무인 우주선을 보내는 것은 아니더라도 자동으로 프로그래밍 된 무인 우주선을 20광년 거리의 외계 행성 근처까지 보내서 (우주선에 탑재된 자동 추적 핵미사일 등으로) 공격을 가하는 것은 어느정도 가능성이 보인다.

사용자 삽입 이미지
그럼 무인 우주선을 20광년 거리로 보내는데 얼마나 시간이 걸릴까? 이는 우주선에 얼마나 많은 추진체가 실릴 수 있느냐에 따라 가속과 감속, 항로변경이 얼마나 가능한가가 결정 될테고, 우주선의 내구력이 어느정도의 가속 압력에 견딜 수 있는가에 따라 가속에 거리는 시간과 감속에 걸리는 시간이 결정 되어야 알 수 있을 것이다. 거기에다가 우주선이 최대로 낼 수 있는 속도가 제한 될 수도 있을 것 같다. 개인적으로는 우주선의 최대 속도는 광속 이상으로는 힘들 것 같다. (여기에 대한 이론은 찾아보지 않았다.) 아무튼 순전히 개인적인 취향으로 우주선의 최대 속도는 광속의 0.99로 제한하고 계산을 해보면, 우주선이 외계행성에 도착 하는데는 (가속 과 감속 시간을 계산하지 않더라도) 최소 20년 이상의 시간이 걸리게 된다. 이것도 추진체가 충분히 많이 실릴 수 있다는 가정하에 계산된 것이고, 실제로 우주 탐사선 보이저 2호가 천왕성 까지 가는데 10년 이상이 걸렸다. 태양계의 반지름이 약 40AU 정도로 1광년(6.324×104 AU)의 1500분의 1도 안된다는 걸 생각해 보면, 보이저 2호가 20광년을 날아 가려면 30만년 이상 걸린다는 뜻이다.
사용자 삽입 이미지
가까운 미래에 눈부신 기술발전을 이루어 광속의 10분의 1 속도까지 가속 했다가 감속 할 수 있는 (충분한 추진채를 탑재할 수 있는) 우주선을 만들었다고 쳐도 20광년 이면 200년 이상이 걸린다. 그럼 우주전쟁은 가능한 많은 시나리오를 검토 한 후에 가능한 많은 무인 우주선을 예상 시나리오 대로 계획 하여 보내고, 200년 동안 기다려서 1차 공격의 결과를 받고, 그 동안 수집된 가능한 많은 데이터를 바탕으로 결과를 검토 한 후에 다음 2차 공격을 보내는 식으로 진행 될 것 같다. (중간 부분에서 전투가 이루어 진다고 해도 100년 텀으로 진행 된다.)

1세기에 한턴씩 이루어지는 체스를 두는 것과 비슷한 느낌일 것이다.

이 글은 스프링노트에서 작성되었습니다.

,

이 글을 읽기전에 먼저 이런 잡담을 하게된 발단을 읽어 보시면 좋을 것 같습니다. - 외계인과 우주전쟁을 한다면 #1 - 이야기의 발단


이야기의 가정

이에대한 상상을 하기 전에 먼저 전쟁을 하려면 상대방이 있어야 한다. 상대방=외계인. 외계인은 있을까? 또는 외계인이 있다면 어디에 있을까? 어느정도 문명을 가지고 있을까? 이런 전제 조건이 있어야 할 것 같다.

외계인 대해서는 아직 확실하게 밝혀진 것이 아~무~ 것도 없다. 그러니까 일단 발단이 된 SF 소설에 자주 등장 하는 것 처럼, 지구인과 비슷 (하지는 않더라도 최소한 머리와 팔다리는 구분이 가능)한 외계인이 있다고 가정하고, 문명 수준이 너무 많이 차이나면 일방적으로 공격하는 외계인에게 방어하는 것이 고작인 상황이나, 돌도끼나 사용할 만한 외계인을 (찾아갈 수 있다면) 찾아가서 일방적으로 학살 하는 상황이 될터이니 이런 상황은 우주전쟁이라고 부를 만한 상황이 아니니까, 어느정도 지구의 문명수준과 비슷 하거나 조금 더 진보한 상황이라고 가정 하자. (이 부분은 그냥 이렇게 가정해 버리고 지나가야 할 듯 하다.)


사용자 삽입 이미지

사진은 Flickr 에서 찾은 "Mr & Mrs ET"

그 다음에 어디에 있는 외계인과 전쟁을 벌이게 될 것인가. 하는 가정이 남았는데, 이건 그래도 어느정도 전부 가정이 아닌 사실에 입각해서 생각해 볼 수 있을 것 같아서, 일단 태양계에서 가장 가까운 지구형 행성계가 어디일까를 찾아 보았다. 그런데 아직까지의 행성 검출 기법은 주로 목성형 행성을 발견하는데 그치고 있다고 한다. 지구형 행성을 발견 했다는 소식이 있어서 봤는데, 20.5 광년 떨어진 곳이란다. 그럼 태양계와 가장 까운 외계인이 있을 가능성이 높은 지구형 행성이 어디 있는지 모르므로, (그렇다. 현재의 지구의 기술력으로는 우주전쟁은 커녕 가까운 다른 별들을 살펴보는 데도 추측만 할 수 있는 상황인 것이다.) 그럼 이것도 가능성 높은 어느 한가지를 가정하고 가야 겠다. 태양계에서 가장 가까운 항성은 Proxima Centauri 이고 현재 거리는 약 4광년 정도 된다. 그리고 태양계에 가까운 지구와 비슷한 행성을 가지고 있을 가능성이 있는 Vega (이것도 순전히 관측 되거나 계산된 증거는 없고 이 정도 되면 지구와 비슷한 행성이 있을 확률이 있다. 정도의 근거) 까지는 약 25광년 정도가 된다. 그럼 최소 (지구형 행성이 20.5 광년 쯤에 있다고 하니까) 20광년 이상은 가야 그나마 외계인이 살 만한 행성이 존재할 가능성이 약간이나마 있을 수도 있다는 뜻이다. 그럼 지구에서 20광년 떨어진 어느 별과 우주전쟁을 치른다고 가정해 보아야 겠다.

이 글은 스프링노트에서 작성되었습니다.

,

이야기의 발단

SF 소설속에 흔히 등장하는 내용 중에 한가지는 외계인과의 우주전쟁이다. 그 중에서도 우주전함이 등장하고  로봇을 타고 전투를 하는 내용은 오래전부터 너무 많아서 오히려 식상하고 진부하기 까지 하다. 그러나 SF 소설을 아주 좋아하는 주인장으로서는 참으로 흥미가 땡기는 주재가 아닐 수 없다.

사용자 삽입 이미지

스타워즈 中 한장면

만약 가까운 미래에 외계인과 우주전쟁이 일어 난다면 우주에서는 어떤 종류의 전투가 일어나게 될까? 문득 만화영화에서 너무 자주 보아서 이제는 너무 식상한 그런 장면이 진짜로 가능할까 궁금해 졌다. 그러기 위해서는 아마 현재 상황은 어떨까 부터 생각해 보아야 할 것 같다. (현재의 우리는 아직 우주에서 타고 싸울 수 있는 멋진 메카닉 로봇은 커녕, 우주전함이라고 불리울 만한 가장 그럴듯 한 물체는 NASA에서 띄우는 스페이스 셔틀이 전부이다.)

오늘은 밤이 늦었으니 내일 본격적으로 생각해 보아야 겠다. ^^

이 글은 스프링노트에서 작성되었습니다.

,

초기 구글 검색엔진의 구조

정보검색 2007. 11. 1. 14:42 Posted by 지민아빠

현재 구글에서 사용하고 있는 검색엔진의 구조에 대해서 공개되어 있는 정보는 별로 없지만 몇가지 논문을 통해서 공개된 내용이 약간 있다고 합니다.

대부분은 웹검색 시스템의 구조에 관한 설명이고, 블로그 검색이나, Gmail 검색에 사용되는 시스템도 아마 비슷하지 않을까.. 합니다만.. ^^ (구글은 반영속도가 아주 느려도 되는 웹검색 시스템과, 반영속도가 빨라야 하는 블로그 검색을 다른 시스템으로 돌린다고 합니다. GMail 처럼 실시간 반영되어야 하는 검색의 경우 아예 웹검색 엔진과 다른 엔진을 사용한다고 합니다.)

 
여기에서 잠깐, 간단히 살펴 볼 구글 검색엔진 이라는 것은.. 구글의 창시자 인 "Sergey Brin" 과 "Lawrence Page" 가 1997년 인가 1998년에 "Stanford University" 에 있을때 쓴 "The Anatomy of a Large-Scale Hypertextual Web Search Engine" 이라는 논문의 내용을 바탕으로 합니다. 97년 당시의 내용을 바탕으로 하기 때문에 현재의 구조와는 많이 다를거라고 생각 됩니다만, 기본 구조를 살짝 살펴 볼 수 있다는데 의의가 있는 것 같습니다. ^^ 여기에는 "2.1 Page Rank"의 (간단한 개념적 수학공식) 소개나 "4.1 Google Architecture Overview"와 같은 내용이 들어 있습니다.

사용자 삽입 이미지

Figure 1. High Level Google Architecture


설계된 시스템의 목표는 초당 100~1000개의 쿼리를 처리하는 것 이였으며 (1.2절)

논문에서는 이 시스템으로 2400만 건의 페이지를 모아서, 2억5천900만개 이상의 Anchor를 인덱스 하였다고 합니다. (2.2절)

 
그림1의 개괄적인 구조로 보았을때 이때의 시스템은 크게 2개 이상의 스텝으로 나뉘어 동작하여야 하기 때문에 배치작업으로 이루어 졌을 것 같습니다.

그리고 일반적인 Crawler, Indexer, Searcher 와 같은 구조들이 보이고, Nutch 구조와 비교해 보시면 Crawler -> Indexer -> Searcher 로 가는 구조도 거의 똑같아 보입니다. 여기서 crawl 된 페이지에서 추출된 link 를 다시 crawler로 보낼때 DocIndex 부분에서 보낸 다는 것이 제 눈에는 약간 신기해 보였습니다. ^^


이 글은 얼마전에 주워들은 내용을 복습하는 의미에서 논문을 다시한번 살펴보고 정리하는 중에 올리는 글입니다. ^^


참고문헌:
The Anatomy of a Search Engine

2007/11/01 - 공개 검색엔진 Nutch의 구조
,

공개 검색엔진 Nutch의 구조

정보검색 2007. 11. 1. 01:03 Posted by 지민아빠

Nutch는 자바로 구현된 오픈소스 검색엔진 입니다. Lucene이 Indexer 와 Searcher로 구성되어 있고, Nutch는 Lucene에 없는 웹검색에 필요한 모든 기본요소를 전부 갖추어서 웹검색 용으로 확장 한 것이라고 보면 될 것 같습니다. 그래서 Nutch Lucene 기반의 공개 웹검색 엔진입니다. Nutch는 많은 부분 구글 검색 엔진 구조를 목표로 하고 있습니다.

전체적인 구조는 일반적인 웹검색 시스템의 구조와 비슷한 것 같습니다.

사용자 삽입 이미지

Nutch의 구조는 그림과 같은데, 이걸 지금 제가 알고 있는 웹검색 시스템의 구조로 이해하기 위해서 대충 나누어 보면 아래처럼 나눌 수 있을 것 같습니다.

  1. Crawler
    • Nutch는 웹데이터 들을 효과적으로 가져올 수 있는 fetcher 들을 가지고 있습니다. 이를 통해서 목표로 하는 URL 들의 데이터를 수집하고, 이 작업은 목표로 하는 깊이까지 도착하면 멈춥니다.
  2. Repository
    • 수집된 웹 데이터 들은 Repository에 저장됩니다. Nutch에서는 특별히 Repository 라는 명칭을 사용하지는 않지만, WebDB와 Segment들이 여기에 해당 한다고 볼 수 있을 것 같습니다.
  3. Indexer
    • 수집된 데이터는 Lucene에서 사용 가능한 Index 형식으로 구성되어야 합니다.
  4. Searcher
    • 구성된 Index는 Lucene Searcher 에서 사용됩니다.

몇일 뒤에 어떤 고마운 분이 Nutch의 구조나 특징에 대하여 조사 한것을 설명 해 주실텐데 Nutch가 어떻게 생긴건지 전혀 몰라서 간단히 살펴 보았습니다. 이제 어느정도 설명을 들을 만한 최소한의 기본 준비는 한 것 같으니 이제 기다려야 겠군요. ^^


참고문헌:

Introduction to Nutch, Part 1: Crawling by Tom White 2006/01/10 번역본

Introduction to Nutch, Part 2: Searching by Tom White 2006/02/16

Nutch: Open-Source Web Search Software by Doug Cutting(doug@nutch.org) 2004/11/26

Open Source Search by Doug Cutting(cutting@apache.org) 2005/12/05

,

구글 페이지 랭크의 이해를 위한 간단설명

정보검색 2007. 10. 30. 14:57 Posted by 지민아빠
사용자 삽입 이미지
요즘 구글에서 페이지 랭크를 업데이트 하고 있다고, 소식이 들리고 있습니다. 들리는 소식에 의하면 블로그 쪽에 특화된 변화가 있다고 합니다만 아직 정확히 밝혀진 내용은 접해보지 못했습니다.

얼마전에 회사에서 Google's PageRank and Beyond 라는 책을 스터디 한 적이 있습니다. 역시 PageRank의 내용은 수학적인 내용이 거의 전부이기 때문에 수학에 취약한 본인은 다른분들의 도움을 받아서 겨우겨우 쫓아가는 것이 전부 였지만, PageRank의 개념을 이해하고 특성을 이해하는 데는 많은 도움이 되어 나름 뿌듯한 스터디 였습니다. ㅜ.ㅜ

구글의 PageRank라는 개념은 쉽게 이야기 해서 "사람들이 Link를 많이 거는 URL은 사람들이 많이 찾아가는 곳일 테고, 그 만큼 정확한 정보가 있는 곳일테니 URL의 랭킹값을 높게 주자." 라는 이론입니다. 이 것은 사람들이 실제로 어디를 얼마나 찾아가는지 모르기 때문에 이것을 계산하기 위하여 구글에서 개발한 방법입니다. 아마 실제로 사람들이 어디를 돌아다니는지 알 수 있으면 PageRank 보다 더 정확한 랭킹값을 계산 할 수 있을 거라고 생각 합니다.

실제로 구글에서 PageRank 를 어떤 값을 가지고 어떻게 계산하는지 전부 다 공개되어 있지는 않지만 추상적으로 보면 아래 그림과 같은 방법으로 계산 될 겁니다.
사용자 삽입 이미지
출처: How PageRank Works

이렇게 계산 된 값은 이론상 원래 하나의 URL당 하나의 상수값을 가지고 전체의 URL이 일렬로 주욱 순위별로 서 있는 형태를 가지게 됩니다. 그러므로 여러분의 블로그에 여러개의 글들은 전부다 PageRank 값을 가지고 있습니다. 다만 대부분 Top URL을 링크로 거는 경우가 많으므로 가장 널리 알려진 Top URL이 PageRank 값이 가장 높을 확률이 높습니다.
이 값을 보기 쉽게 0부터 10까지의 레벨로 표시한 값이 보통 '3'이네 '7'이네 하고 부르는 값이 됩니다. 레벨별로 분포는 보통 아래그림과 같다고 합니다.
사용자 삽입 이미지
분포를 보면 6레벨 이하의 값은 전세계 웹페이지 중에서 밑바닥 이군요. ㅜ.ㅜ (하지만 그래도 3.5 이상의 값을 가지면 Average에 속할 수 있습니다!!!)

여기까지 구글의 PageRank를 이해하기 위한 간단 설명이였습니다.
자아 마지막으로 Rank 9를 먹는 그날까지!! 고고~~
,

Mac OS X 의 부팅 순서 #3 - launchd

블라블라 2007. 10. 10. 01:20 Posted by 지민아빠

이 글을 읽기전에 먼저 아래의 두개의 글을 읽고 PC의 BIOS 와 인탤맥의 EFI 펌웨어가 다르다는 것을 참고 하시면 좀 더 도움이 될 것 같다.

2007/10/09 - Mac OS X 의 부팅 순서 #2 - EFI
2007/10/08 - Mac OS X 의 부팅 순서 #1 - BIOS, APM

일단 펌웨어와 부트로더를 통해서 커널이 로딩되고 launchd 가 로딩 된다는데 까지는 위에서 언급 했다.

그 이후는 궁금했던 영역에서 벗어나는 관계로 살펴보지 않을 것이다. 그럼 Mac OS X 의 커널 과 유저랜드가 어떻게 생겼는지 좀 살펴 보면 대충 부팅 과정을 살펴 보는 것은 마무리가 될 것 같다.

다행이 이 부분은 요즘들어 많은 사람들이 iPhone 해킹에 관심을 가지면서 참고 할 만한 자료가 좀 있다.


사용자 삽입 이미지
이하는 iPhone OS X Architecture: the BSD Unix Userland글의 번역에서 관심 영역에 필요한 부분을 발췌해 아주 약간 재구성한 내용이다.

The Mac OS X Structure.

OS X 계열의 Kernel 은 모두 Mach Kernel 을 사용 한다. (Apple TV, iPhone, Mac OS X 전부 동일) 여기에는 Kernel Extension 이라는게 들어가게 된다. (참고로 iPhone에 사용된 두가지 종류의 kext는 USB 입력 과 VPN 이란다.) Mac OS X 의 맨 밑단에는 Kernel 이 있고 그 위에는 Mac OS X의 BSD 유닉스 환경이 놓여 있다. 커널 바깥쪽에서 돌아가는 프로세스는, 유닉스에서 유저랜드(userland)에서 돌아간다고 말한다. 맥에서 BSD 유닉스 유저랜드는 보통 데스크톱 사용자가 볼 수 없다. (콘솔을 띄워서만 볼 수 있다.)


The Mac OS X boot step.

일단 EFI 부트로더가 디스크로부터 커널을 읽어들여 RAM으로 불러들이면, 그 후, 커널은 kext를 읽고 BSD 유닉스 유저랜드를 설정한다. 평상시 부팅 과정에는 다중 사용자 환경도 여기에 포함되며, 로그인 창을 띄우게 된다. 특정 사용자가 로그인하면 맥 데스크톱 환경이 설정된다. 이 설정은 디렉토리 안에 저장된 사용자 설정에 따른다.


launchd

표준형 유닉스 배포폰과 맥에서 /bin은 머신 레벨 유닉스 애플리케이션(바이너리)이 있는 곳이다. 터미널셸인 bash나 파일복사인 cp, 파일 삭제인 rm 등이 들어있다. 여기에 launchd 명령을 내리는 launchctl 도 들어있다.

유닉스에서의 세 개의 도메인

  • 머신 레벨 소프트웨어: 모든 사용자용으로 설치
  • 시스템 레벨 소프트웨어: 시스템의 중요 기능 관련
  • 사용자 레벨 소프트웨어: 특정 사용자만으로 설치


표준형 유닉스 배포폰과 맥에서 /sbin은 시스템 레벨 유닉스 애플리케이션(시스템 바이너리)이 있는 곳이다. 디스크 확인용인 fsck와 네트워크 파이어월인 ipfw, 라우팅인 route, 디스크 파일시스템은 mount, 그리고 맥오에스텐 상의 launchd (프로세서 론쳐)가 들어 있다.  kextload 도 여기 들어 있다.


launchd는 여러 가지 유닉스 프로세스를 교체하기 위해 애플이 만들어낸 메커니즘이다. 그 대상은 다음과 같다.

  • 실행시, 혹은 사용자 로그인 시에 프로세스 시작
  • 일정에 따른 프로세스 시작
  • 경로 지정의 파일 변화에 따른 프로세스 시작
  • 리퀘스트의 요구에 따른 프로세스 시작
  • 로깅 레벨과 론치 아규먼트(argument)의 지정
  • 론치 환경 변수의 지정과 작업 디렉토리 프로세스
  • 리소스 제한과 권한 지정
launchd가 처음 소개된 것은 맥오에스텐 타이거이지만, crin이나 init, rc, scripts, inet, xinet, at, watchdog과 같은 기존 유닉스 프로세스도 계속 남아 있다. 그런데 레퍼드에서는 launchd만 남을 예정이다. 애플의 최신 레퍼드 OS 기술에 기반한 아이폰도 launchd만 사용한다.


애플은 또한 다른 유닉스 배포폰들이 쓰게 하기 위해, launchd를 공개하였다. 물론 리눅스 사용자들은 계속 원래 방식을 쓰는 것으로 보인다.
[launchd in Depth - AFP548]
[Leopard Wishlist: Launch Control]


부팅 과정에서 launchd 는

  1. /etc/rc 실행하고,
  2. /System/Library/LaunchAgents/Library/LaunchDaemons 부분을 실행 하고,
  3. login window를 시작 시킨다.

사용자 삽입 이미지

이 글은 스프링노트에서 작성되었습니다.

'블라블라' 카테고리의 다른 글

페라리로 우주까지 갈 수 있을까?  (8) 2008.08.12
Mac OS X 의 부팅 순서 #2 - EFI  (0) 2007.10.09
Mac OS X 의 부팅 순서 #1 - BIOS, APM  (0) 2007.10.08
,

Mac OS X 의 부팅 순서 #2 - EFI

블라블라 2007. 10. 9. 19:34 Posted by 지민아빠

전번 글에서 BIOSAPM에 관해서 잠깐 언급 했었는데 이번에는 EFI 에 관해서 잠깐 언급을 하려고 한다.


Open Firmware

기존의 PowerPC 기반의 매킨토시에서는 Open Firmware라는 펌웨어를 사용했다.

이는 SUN에서 개발된 '하드웨어 독립적인' 펌웨어 인데, PowerPC 기반 Apple Macintosh , Sun Microsystems SPARC 기반 웤스테이션 및 서버, OLPC (100달러 노트북으로 유명) 데스크탑 에서 쓰인다. PowerPC 기반 Apple Macintosh에서 부팅순서는 간단히 아래와 같다.


  1. Open Firmware activates, does its thing to the hardware, and then loads BootX.
  2. BootX loads the kernel, spins the pinwheel cursor, and loads any needed kernel extensions (kexts), and then the kernel loads launchd.

출처: wikipedia

(참고로 Open Firmware 기반 부팅은 자세히 알고 싶으면 Booting Mac OS X 글을 참고)


Extensible Firmware Interface

인탤맥 에서는 EFI-compliant 펌웨어 를 사용한다. EFI는 인텔에서 PC에서도 Open Firmware 와 같은 기술을 제공하고자 만들어서 Itanium 에 장착된 기술이다.

Itanium 자체는 완전 망했지만 EFI 는 인탤기반 맥에서 채택되어 성공을 위하여 열심히 파닥파닥 날개짓을 하고 있다. (USB 도 사장될 위기에서 맥에서 채택된 이후 화려하게 떠오른 것과 비교되는 장면 이다. 참고로 M$와 하드웨어 업체는 인텔의 EFI 권고를 거절 했다. 현재는 64bit Windows Vista 에서 EFI 를 지원한다고 한다.) 2006년 1월 출시된 인탤맥 시스템 에서 부터 EFI가 사용 되었으며, 2006년 4월에 Boot Camp 가 나오면서 legacy BIOS를 지원하는 EFI 구현으로 펌웨어가 업데이트 되었다.


EFI 호환 펌웨어는 대략 아래 그림처럼 동작한다.

사용자 삽입 이미지

출처: wikipedia.org

여기서 OS의 Boot Loader는 EFI Application 에 해당한다. GUID Partition Table (GPT)가 관계가 있다. (귀차니즘으로 생략)


Intel based Macintosh boot step

인탤맥에서의 EFI 펌웨어의 동작은 PowerPC 기반 Apple Macintosh에서 부팅순서와거의비슷하다. 다만  Open Firmware 대신 EFI 가 사용되고 BootX 대신 boot.efi 가 사용된다.

  1. 펌웨어가 로딩되고,
  2. boot.efi 가 로딩 된 후에
  3. kernel 이 로딩되고,
  4. kernel 이 launchd 를 로딩 한다.


Mac OS X의 kernel 및 launchd 를 설명 하려면 Mac OS X 의 구조에 대하여 설명 하여야 한다. 이것들은 다음편에 살펴 보도록 하겠다.

2007/10/08 - Mac OS X 의 부팅 순서 #1

이 글은 스프링노트에서 작성되었습니다.

,

Mac OS X 의 부팅 순서 #1 - BIOS, APM

블라블라 2007. 10. 8. 19:27 Posted by 지민아빠

정확히는 인탤맥의 부팅 과정에 대해서 궁금해서 조사를 해 보았습니다. 일부 내용은 Imaging MacBooks: Understanding MBR, APM, & GPT 을 읽어보고 이해가 안가는 부분을 따로 찾아 본 내용을 보충해서 변경 했고, 일부 내용은 번역글을 그대로 인용했습니다.


Intel x86 PC Boot Step.
흔히 주변에서 보는 일반적 PC에는 거의 전부다 BIOS(펌웨어)라는 놈이 설치되어있다.

이 (IBM-PC 호환기종에 탑재된) BIOS라는 놈은

  1. 기본적인 (키보드,마우스,HDD 등의)하드웨어를 시작한 다음
  2. (기본설정 또는 사용자가 설정 한) Boot 순서 대로 부팅장치를 찾는다.
  3. 그 다음은 MBR 차례가 된다. MBR 은 활성 플래그를 알고 있는 4개의 Primary partition을 스캔하고, 파티션의 Volume Boot Record를 실행한다.
  4. MBR 또는 Volume Boot Record 에 걸쳐서 실행되는 Second Stage boot loader 의 영역은 NTLDR, LILO, GRUB 등의 Boot Loader가 담당하게 된다.


M$는 초기 파티션 4개의 제약을 극복하기 위하여 Extended MBR을 사용한다. 이것이 바로 윈도우에서 보이는 "논리 디스크 파티션"이라 불리는 놈을 이해하는 방법이다. 부팅이 불가능 하고 DOS에서 접근이 불가하다.


APM (Apple Partition Map)

애플은 하드웨어와 소프트웨어가 통일되어 있기 때문에 IBM-PC 호환기종의 PC 들을 신경 쓸 필요가 없다. 그래서 맥을 부팅시키기 위한 좀더 기능적인 APM 이란걸 만들었다. 맥에서는 Primary partition이나 Extended partition 의 개념이 없고, 시작 디스크로 선택된 파티션으로 부팅이 시작 되게 된다.


아래는 Imaging MacBooks: Understanding MBR, APM, & GPT 글의 내용을 번역 한 내용을 MBR과 APM, GPT라는 글에서 보고 인용, 맥에서 시동 디스크로 선택된 파티션으로 부팅하는 비교설명 이다.

  • T Firewire Target Mode로 부팅시킨다. 이경우 맥의 드라이브를 외장 파이어와이어 드라이브처럼 인식시킬 수 있다. PC는 이 기능을 할 수 없다.
  • C 머신을 외장 광드라이브에서 부팅시킬 수 있다. PC에서 이렇게 하려면, BIOS를 따로 설정해서 CD로부터 부팅할 수 있도록 한 다음, 시작 키를 눌러야 한다.
  • Option 운영체제가 있는, 즉 부팅 가능한 디바이스를 찾아서 선택 목록으로 나타낸다. PC는 역시 이 기능을 할 수 없다.
  • PR+Option+Apple PR-RAM을 소거하여 첫 번째로 발견하는 드라이브로 부팅시킨다. PC는 소거할 것이 없다.

애플의 ATM 조합인 Open Firmware와 PR-RAM은 PC가 수상하게시리 계속 갖지 못하고 있는 혁신적인 기능을 매우 많이 제공해 줘왔다. 이에 따라 인텔은 BIOS를 대체하고 맥과 같은 기능을 PC에 제공하기 위해 EFI라는 아키텍쳐를 새로이 디자인한다.

(영문 내용이 원문 인지는 확실 한 것 같은데, 어디가 처음 번역한 곳이고 어디가 펌한 내용인지는 출처 표기가 불분명 해서 잘 모르겠습니다.)


이 글은 스프링노트에서 작성되었습니다.

'블라블라' 카테고리의 다른 글

페라리로 우주까지 갈 수 있을까?  (8) 2008.08.12
Mac OS X 의 부팅 순서 #3 - launchd  (0) 2007.10.10
Mac OS X 의 부팅 순서 #2 - EFI  (0) 2007.10.09
,

정보처리(검색) 기계에 대한 최초의 묘사

정보검색 2007. 5. 28. 20:36 Posted by 지민아빠
"Google's PageRank and Beyond" 라는 책을 읽고 있다.
아직 앞부분을 읽고 있는지라 여기에 Google의 PageRank 에 대한 내용이 있는지는 잘 모르겠다. 어떤분의 말씀에 의하면 "Beyond"에 좀 더 주목한 책이라고 하던데...

이 책에서 첫부분에 "Vannevar Bush"(배니버 부시)라는 분의 1945년 발표된 "As We May Think"(우리가 생각하는 데로) 라는 글에서 나오는 "Memex"(Memory Extender)라는 기계에 대하여 나온다. 대충 이렇게 생긴 기계라는데..

사용자 삽입 이미지
이미지를 어디서 얻었는가 하면: 구글에서 이미지 검색해서 어떤 외국 사이트에서 구했다.

이 기계가 무엇을 하는 기계인고 하니.. 사람의 생각을 기억해 두었다가 조작해서 다시 찾아낼 수 있는 기계이다. 일종의 컨셉트 머신 정도 되는 그림인데.. 요즘말하는 정보처리, 컴퓨터,검색 이라는 개념을 생각해 낸 시초라고 볼 수 있을 것 같다.

아무래도 "검색"에 관한 책이다 보니, 이런 것들을 소개해 주고 있다. 오랜만에 신선한 정보를 접하며, 학생시절의 향수를 느껴보니 좋다.

어디가서 "검색"의 역사에 대하여 잘난척 좀 할때 유용하게 사용하시라. 어디 블로그에서 이런글 읽었는데 검색의 시초는 이런거였다고 하더라고..

참고: 배니버 부시
,
BLOG main image
지민아빠의 해처리

카테고리

분류 전체보기 (73)
블라블라 (21)
정보검색 (15)
우주전쟁 (37)

최근에 올라온 글

지민아빠의 해처리

지민아빠's Blog is powered by Tattertools
Copyright by 지민아빠 [ http://www.ringblog.com ]. All rights reserved.

Tattertools DesignMyself!
지민아빠's Blog is powered by Textcube. Designed by Qwer999.