티스토리 뷰

728x90

[ 읽은 이유 ]

 

부제는 '컴퓨터 세상을 만든 기발한 아이디어들'이다.

한때 IT를 전공했고 범IT 산업에 속한 사람으로서 세상을 만들 알고리즘이 뭔지 궁금했다.

 

[ 배운 점 ]

 

이 책의 백미는 공개키 암호에 대한 설명이다.

최근에 읽은 '모두를 위한 물리학'에서 저자는 '최소 작용의 원리'를 글로 설명하는 것은 불가능하다라고 했다. 근래 출판된 초소 가능한 원리와 관련된 책은 '가능한 최선의 세계'라는 책이다.

 

17세기 수학자인 모페르튀는 모든 가능한 운동은 그 작용량을 최소화하는 방향으로 일어난다는 최소작용의 법칙을 주장했다고 한다. 

 

여튼 공개키 암호에 대해 일반인이 알 수준의 수학적 풀이를 해주는 조금 있다.

(기억이 나는 이런 책으로는 안톤 스프라울의 '소프트웨어 작동법'이 있다.)

 

하지만 이렇게 평이한 글로 공개키 암호화 알고리즘을 설명하는 책은 없는 것 같다.

 

[ 주요 내용 ]

 

ㅇ  알고리즘이란 문제를 푸는 데 필요한 단계의 순서를 명확히 명시하는 구체적인 계산법이다.

 

ㅇ 거의 기계적으로 이뤄지는 알고리즘 단계에 주목하라. 사실 이는 알고리즘의 핵심 기능 중 하나이다. 각 단계는 절대적으로 정확해야 하며 어떤 인간적 직관이나 추측도 요하지 않는다. 이처럼 매우 기계적인 각 단계는 컴퓨터 프로그램으로 만들어낼 수 있다. 알고리즘의 또 다른 중요한 기능은 입력 내용에 상관없이 늘 작동한다는 점이다.

 

ㅇ 수학과 물리학 같은 일반 과학 분야에서 중요한 결과는 대개 하나의 공식으로 포착된다. (유명한 예로 피타코라스의 정리와 아인슈타인은 e=mc2이 있다.) 이와는 대조적으로 컴퓨터과학에서 위대한 아이디어는 일반적으로 (물론 알고리즘을 이용해) 문제를 푸는 방법을 기술한다.

 

ㅇ '어느 수학자의 변명'에서 하디는 "아름다움은 가장 중요한 시험대다. 추한 모습의 수학이 영원이 자리잡을 곳은 이 세상 어디에도 없다." 아름다움 시험대는 컴퓨터과학의 기저에 있는 이론적 발상에도 적용된다.

 

ㅇ 오류 정정 코드는 가장 많이 이용되는 위대한 알고리즘일지도 모른다. 이 덕분에 컴퓨터는 백업사본이나 재전송에 의존할 필요 없이 저장 또는 전송 데이터에 있는 오류를 인식해 정정할 수 있다.....모든 하드 디스크 드라이브, 네트워크 전송, CD와 DVD , 일부 컴퓨터 메모리에서 오류 정정 코드가 쓰이는데도, 워낙 맡은 바 임무를 잘 수행하기 때문에 사용자는 의식조차 하지 못한다.

 

ㅇ 태턴 인식은 컴퓨터가 손글씨, 말, 얼굴처럼 매우 변동이 심한 정보를 인식하는 기법이다.

 

ㅇ 구글이 검색 산업의 강자로 부상하게 된 것은 랭킹 알고리즘 덕분.....검색엔진은 랭킹 알고리즘의 질에 따라 살거나 죽는다는 말은 절대 과장이 아니다.

 

ㅇ Indexing이란 발상은 글쓰기만큼이나 오래됐다. 5,000년 전에 지어진 바빌론 신전 도서관에서도 주제에 따라 설형 문자판을 분류해 놓았던 것을 볼 수 있다.

 

ㅇ 지금까지 가장 천재적이고 영향력 있는 컴퓨터과학 알고리즘의 하나.....공개 키 암호화

 

ㅇ 공개키 암호화의 진정한 힘은 (사용할 코드에 비밀스럽게 합의할 기회가 없음에도) 수신자만 해독할 수 있는 비밀 코드를 이용할 수 있다는 데 있다..

 

ㅇ 신뢰할 수 없는 채널을 통해 신뢰할 수 있는 통신을 가능케 하는 가장 기본적인 트릭은 우리가 잘 아는 방법이다. 정확한 정보를 확실히 전달하려면 이를 몇 번 반복할 필요가 있다는 것이다.

 

ㅇ 셰넌의 1948년 논문은 정보 이론 분야의 탄생으로 간주한다...'수학적 통신 이론'....잡음이 많고 오류 발생이 쉬운 연결을 거치고도 오류 없는 놀랍도록 높은 통신율을 달성하는 것이 원칙적으로 가능하다는 사실을 수학적으로 증명했다.

 

ㅇ 신경망 학습 단계는 신경망이 훈련 샘플에 대해 제대로 수행할 때까지 모든 비중과 역치를 반복 조정하는 일을 비롯해 상당한 작업량이 필요하다.

 

ㅇ 인공지능 연구자들이 깨우친 가장 중요한 교훈의 하나....지적인 것처럼 보이는 행동이 무작위적 시스템에서 비롯됐을 수도 있다는 사실이다. 인간 뇌로 들어가 뉴런 간의 연결 강도를 분석해 본다면 거의 대부분이 무작위로 나타날 것이다. 그러나 그 연결 강도의 허술한 집합이 총체적으로 작동할 때 인간의 지적 활동을 산출한다.

 

ㅇ 데이터베이스는 거래 과정에서 두 가지 주요 사안을 처리한다. 이는 효율성과 신뢰성이다. DB는 수천 명의 고객이 충돌이나 모순 없이 동시에 거래를 수행하게 하는 알고리즘을 기반으로 효율성을 제공한다. 또한 DB는 일반적으로 심각한 데이터 손실을 낳는 (디스크 드라이브 같은) 컴퓨터 부품의 문제가 발생해도 데이터를 보전하는 알고리즘을 기반으로 신뢰성을 제공한다. 온라인 뱅킹은 (오류나 모순 없이 많은 고객을 한 번에 대응하는) 탁월한 효율성과 완벽한 신뢰성을 요하는 Application의 전형적인 예다.

 

ㅇ DB 이면의 근본적 (그리고 아름다운) 알고리즘 3가지. 미리 쓰기 로그, 2단계 커밋, 관계형 DB

 

ㅇ 하드 드라이브와 플래시 메모리 스틱 같은 컴퓨터 저장 장치는 적은 양의 데이터만을 동시에 쓸 수 있다. 이는 약 500자 정도에 해당한다. (일반적으로 512바이트인 하드 디스크의 섹터 크기로 예를 들 수 있다.)  오늘날 드라이브가 이런 500자 쓰기를 1초에 수백, 수천 번을 실행할 수 있기 때문이다..그러나 디스크의 내용은 한 번에 수백 글자만 바뀐다는 사실에는 변함이 없다....

 

ㅇ 일반적으로 컴퓨터는 한 번에 DB의 한 행만을 업데이트할 수 있다....일반적인 크기의 DB에서 두 행을 바꾸려면 각각 두번의 디스크 연산이 필요하다.

 

ㅇ 최초의 전자 계산기가 탄생하기 전에 이미 컴퓨터로 풀 수 없는 문제의 존재가 밝혀졌다. 1930년대 말 미국의 수학자와 영국의 수학자는 컴퓨터로 해결할 수 없는 문제가 있다는 사실을 각자 밝혀냈다. 미국의 수학자는 컴퓨터과학의 많은 분야에서 이론적 기초를 세운 계산 이론을 정립한 알론조 처치였고, 영국인 수학자는 컴퓨터과학 창립에 가장 중요한 역할을 한 앨런 튜링이었다.

 

컴퓨터과학에서 'X의 불가능은 증명 가능하다'라고 말할 때 X가 매우 어려워 보인다거나 실제로 이를 달성하기란 불가능하다라는 뜻이 아니다. 이는 X를 절대 달성할 수 없다는 사실이 100% 확실하다는 뜻이다.

댓글