리버스 엔지니어링 기드라 실전 가이드 - 유사 멀웨어로 익히는 소프트웨어 정적 분석
나카지마 쇼타 외 지음, 이창선 외 옮김 / 한빛미디어 / 2022년 1월
평점 :
장바구니담기


미국 국가안보국(NSA)이 개발한 소프트웨어 리버스 엔지니어링 도구인 기드라(Ghidra)를 활용하여 멀웨어와 유사한 프로그램을 실전과 동일하게 정적 분석하는 책이다.

기드라는 소프트웨어 리버스 엔지니어링 도구이다. 그렇기에 먼저 리버스 엔지니어링의 개념이 무엇인지 알 필요가 있다. 이는 쉽게 말해 실행할 수 있는 바이너리 프로그램의 원본 소스를 복원하는 과정이라 보면 된다.

아래 그림이 이를 잘 설명하고 있는데 실행 파일의 헥스 코드를 이용하여 원본 소스코드를 추적하는 과정으로 이해할 수 있다.리버싱

복원한 결과물이 어셈블리어일 경우 디스어셈블이라 칭하고, C언어와 같은 고수준 언어로 복원 시 디컴파일이라 칭하는 차이가 있을 뿐 결국은 인간이 이해할 수 있는 언어로 복원하는 과정이다.

그럼에도 본 도서에서 언급한 바와 같이 함수명이나 변수명과 같은 심벌, 주석, 컴파일러에 의한 자동 최적화 등의 문제로 완벽한 복원은 불가능에 가깝다.

특히 5장부터 등장하는 OS별 실전 문제를 진행하다보면 정말 건초더미에서 바늘 하나 찾는 느낌의 지루함이 반복되기에 끈기와 인내심이 필요하다는 것을 알 수 있다.

기드라에 익숙하지 않았음에도 사람의 노가다를 기드라가 얼마나 크게 줄여주는지 실습을 따라하며 알 수 있었다. 아래 그림과 같이 기드라의 그래프 뷰 기능 하나만 봐도 if문의 디스어셈블 결과를 입체적으로 볼 수 있어 가독성에 큰 도움이 된다.그래프뷰

1장은 리버스 엔지니어링에 필요한 기초 지식이 정리되어 있다. 제어부, ALU, 레지스터, 명령포인터로 구성된 CPU의 기본 구조, 그 과정에서 활용되는 코드, 데이터, 헤더, 힙, 스택 등의 메모리 세부 구조, 호출규약 등의 기본 지식을 익힌다.

이어서 언어의 특성 기본을 배운다. 함수 호출, if, switch, for, while 등의 규약을 살펴보며 간단한 디컴파일의 과정을 거친다. 또한 OS와 칩셋 간 x64 등의 아키텍쳐를 학습한다.

기드라 본래의 기능에 집중하기 위해 이러한 백그라운드 지식은 짧게 서술되어 있지만 기드라 실전에 적용 시 큰 도움이 되므로 확실히 알아두는 것이 좋다. 예를 들면 뒷 부분의 main() 함수를 찾아내는 방법에서 경우의 수를 쉽게 줄일 수 있다.

이런 방법은 풍부한 경험을 통해 쌓이기도 하지만 1장의 기본 지식이나 규약을 잘 익혀두면 처음 겪는 문제나 패턴에서도 원하는 부분을 찾아내기에 좋은 감각을 유지 할 수 있겠다는 생각이 들었다.

2장은 기드라의 세부 구성을 살핀다. 디스어셈블, 디컴파일은 물론 헤더, 라이브러리, 스크립트 분석 등의 기능이 제공된다. 먼저 기드라를 설치하는 방법이 소개된 후 실행 파일을 임포트한다. 분석 실행을 마치면 아래아 같은 화면이 등장하는데 기드라에서 가장 자주 보게 되는 화면이다.코드브라우저

책에서 소개되는 몇가지 권장설정은 그대로 따라하면 된다. 이후 위 그림의 각 기능을 세부적으로 소개하는데 중앙의 Listing 창에는 디스 어셈블한 결과가 표시되며 디컴파일러 창에는 C언어로 변환된 결과가 표시된다.

Program trees 창에는 헤더나 섹션 등 프로그램 구성요소가 구조화되어 출력되며, Symbol Trees 창에는 함수명, 변수명 등의 심벌 정보가 표시된다. Data Type Manager창에는 데이터 타입에 관련된 정보가 출력된다.

각 기능은 읽어도 어떻게 활용하는 것인지 구체적으로 어떻게 동작하는지 파악하기 어렵기 때문에 5장과 같은 실전 예제를 진행한 후 다시 볼 것을 권하고 싶다.

본래 레퍼런스라는 것들은 직접 겪어보며 필요할 때마다 참조하는 것이 기억에도 오래남고 바로바로 이해되는 것이니 이 장에서 개념이 어렵다고 읽기를 포기하지 않길 바란다.

3장에서는 downloader.exe라는 외부에서 타 프로그램을 다운로드하여 실행하는 프로그램을 리버싱한다. 그런데 이 부분 역시 리버싱의 큰 그림은 그려지지만 구체적으로 실습을 따라가기 어려웠다. 가볍게 읽어보고 5장 이후의 실전을 전개하고 다시 돌어와서 보면 쉽게 이해된다.

4장 역시 바로 이해하기는 어렵다. 분석 자동화 기능을 제공하는 Script라는 기능과 UI플러그인을 활용하여 분석 기능을 추가할 수 있는 Extension 기능이 소개된다. Scritps의 기능엔 Python 바인딩 기능도 제공하고 있다는 점이 특이한 부분이다.

5장 이후에는 각 OS별로 실전 러비싱이 진행되는 데 매우 상세하게 분석하고 있어 따라하다보면 감이 잡힌다. 앞의 1 ~ 4장은 가볍게 큰 그림만 그려본다 생각하며 읽고 개념이 어느정도 잡히면 5 ~ 9장을 가급적 먼저 실습해 볼 것을 권한다.

예를 들면 5장은 리눅스에서 구동되는 ELF 바이너리를 분석한다. 예제로 크랙미라는 실행파일이 등장하는데 리버싱에 성공하면 엑세스 코드나 비밀번호를 찾아낼 수 있다.

이 프로그램을 실행하면 패스워드를 입력하라고 나오는데 아무 문자가 입력하면 Wrong이라고 틀렸다는 메시자 출력되는 프로그램이다. 결국 이 프로그램을 리버싱하여 정확한 패스워드를 알아내는 것이 본 리버싱 예제의 목적이라고 할 수 있다.

이 프로그램의 main() 함수를 디컴파일하면 아래 그림과 같은 리버싱 결과를 볼 수 있다. 25행에서 fgets()가 사용됨을 확인 가능하다. 위에서 설명한 사용자가 패스워드를 입력하면 fgets() 함수로 입력값을 가져와 변수에 저장하게 됨을 추측할 수 있다.main디컴파일

34행에는 비교문이 등장한다. 사용자가 입력한 값은 local_38 변수에 저장되고 local_68에 들어있는 값과 비교하는 셈이다. 그런데 자세히 보면 사용자의 입력값이 ^연산을 거친다. 즉, 0x7a값과 한글자씩 XOR 연산을 수행하는 것이다. 결과가 같다면 Correct라는 문자열을 출력하는 구조이다.

결국 핵심은 XOR 역연산에 달려 있음을 알 수 있다. 책에서는 2가지 방법을 활용하여 역연산에 도전한다. 솔버라는 기드라 Script를 활용하는 방법 하나와 CyberChef라는 GUI기반 웹애플리케이션을 활용하여 패스워드를 찾아내는 방법이 소개된다.

그렇게 얻은 패스워드로 Level2에 도전하며 Level4까지 진행하는 실습을 거치게 된다. 이어서 6장 이후에는 윈도우 운영체제의 PX파일, 안드로이드 APK파일 및 패킹 등을 풀어내는 방법들이 소개되는데 한 과정씩 따라하다보면 쉽고 재미있게 저자들의 풍부한 경험을 흡수할 수 있다.

본 도서의 장점을 정리하면 다음과 같다.

  • 매우 실전적이다.
    리버싱에 관심이 많아 서점에서 찾다보면 개념이나 방법론만 늘어놓은 책들이 부지기수이다. 대충 내용은 알겠는데 다 읽어도 프로그램 간단한 것 하나도 리버싱 할 수 없다. 반면 이 책은 따라만 해도 감이 오며 저자들이 그간 경험했던 풍부한 경험을 거저 먹는 느낌이 든다.

  • 기드라의 기능이 매우 풍부하다.
    구성된 GUI 자체만으로도 다 활용해보기 힘들 정도의 다양한 기능이 제공되는데 이것도 모자라 Script나 Extension 기능도 제공되며 관련 서드파티로 연동할 수 있는 프로그램도 풍부하다. 약 20년 전 즈음 소프트아이스라는 툴을 이용해 헥스코드로 일일이 수정하며 게임 머니를 올리려고 노력하며 진땀 흘렸던 것을 생각하면 기드라는 천상의 툴이라고 극찬할만 하다.

  • 주로 디컴파일의 기능을 활용하여 설명한다.
    C언어가 제아무리 어렵다고 한들 어셈블리어에 비하면 천국이다. 어셈블리 프로그래밍은 해 본 사람이라면 알겠지만 한정된 레지스터 안에 어떤 값이 존재할지 머리가 기억해야 하는 경우가 태반이다. 게다가 PUSH, CALL 등 한정된 명령어로 분기, 반복문 혹은 그 이상의 로직을 구현하려면 기억력이 남아나질 않는다. 이 책에서는 주로 C언어로 디컴파일의 결과만 설명하기에 이 역시 천국이 따로 없다.

단점은 거의 없다. 기드라 툴로 동적 분석이 안된다는 점이 단점이라고는 하나 분기점 우회 등 일부 편법으로 대체 가능한 팁들도 소개되며 무엇보다 나의 경우 정적 분석 하나 숙달하는데도 부족한 실력이어서인지 동적 분석까지 집중할 겨를이 없었다.

아무튼 지금까지 나온 리버싱 책 중 실전 감각을 키우는데 가장 훌륭한 책이라는 생각을 했다. 아무리 이론이 빠삭해도 눈앞에 작은 프로그램 하나 리버싱을 못한다면 무슨 소용이 있겠는가? 그런점에서 백견이 불여일타의 정신을 확실하게 고수하는 본 도서를 추천하고 싶다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
나이스한 데이터 분석 - 데이터가 말하는 트렌드
나이스지니데이타 지음 / 이콘 / 2021년 11월
평점 :
장바구니담기


나이스 그룹의 데이터 사업을 담당하는 전문가들의 데이터를 통한 트렌드 분석서이자 실제 데이터 기업에서 수행하는 업무를 정리한 책이다.

책은 크게 두 부분으로 나뉘는데 1부의 핵심키워드는 트렌드와 데이터 리터러시이다.

코로나 이후의 집콕 트렌드에 대한 분석, 주류 수요 분석, 레트로 트렌드 분석, 수입차 구매 예측 지역 분석, 학군 분석 등 일반인들이 개인적으로나 비즈니스적으로나 가장 관심있어 할만한 주제들을 분석하고 있어 재미있게 읽을 수 있다.

이미 분석한 결과를 편히 읽을 수 있지만 읽는 것 만으로는 비즈니스적 지식을 얻는 것외에 특별히 얻을 것이 없다. 이 파트를 보다 의미있게 읽고 싶다면 저자들이 트렌드를 분석하는 과정에서 활용한 데이터 분석 방법과 그 과정을 잘 이해하고 인사이트를 도출할 수 있는 스스로의 데이터 리터러시를 키우는 일이 필요하다.

크게 눈에 띄는 장은 집콕을 분석한 1장과 수입차 수요를 분석한 4장이다. 1장은 데이터 리터러시에 관하여 문외한일지라도 쉽게 읽을 수 있다. 게다가 코로나 후 일상은 누구에게나 자신의 일이 되어 버렸기에 더 공감하며 읽을 수 있을 것이다. 데이터로 대충 이런 분석이 가능하구나 감을 잡고 쉽게 첫발을 딛게 도와주는 장이다.

가장 수준 높은 분석이 이뤄지는 장은 4장이다. 데이터 분석이나 통계에 대한 지식이 있는 사람은 아래 그림을 쉽게 해석할 수 있겠지만 데이터 문외한은 생각보다 어려운 그림이다.이상치

아래식은 수입차 구매 수요를 파악하기 위한 회귀식으로 소득이나 지역 등 여러 독립변수를 기반으로 수입차 구매라는 종속변수를 도출하는 과정에서 이상치를 추출하는 모습이다.

중앙의 은하수와 같은 선을 제외하면 부산 중구를 시작으로 아해 울산 남구에 이르기까지 외딴 섬 마냥 따로노는 데이터가 있는데 이런 데이터를 이상치라고 한다.

예를 들면 울산 동구, 남구의 경우 현대자동차가 있는 지역이므로 수입차 보다 국산차를 더 저렴하게 구입할 수 있기에 수입차 구매량이 적다는 인사이트를 도출할 수 있는셈이다.

이상치는 때로는 전체 트렌트를 분석하고자 버려지는 쓰레기 취급을 받을 때도 있지만 위 사례와 같이 의미있는 통찰을 전해주기도 하기에 처리하는데 주의가 필요하다. 4장은 이런 약간 고난이도의 분석 방법을 다루고 있어 데이터 과학이나 분석에 관심있는 독자들이 다음단계로 넘어가기 위한 징검다리로 괜찮은 장이라는 생각을 했다.

이어서 2부의 내용을 소개하고자 한다. 2부는 데이터 분석 부서에서 실제 어떤 일을 하고 있는지에 대해 다루는 장이다. 1부가 일반인들에게 도움이 되는 데이터 리터러시 수준의 분석을 다뤘다면 2부는 데이터 분석 회사로의 이직 혹은 취업을 목표로 하는 독자들에게 도움이 될 것이다.

6장은 데이터 분석을 위한 기본적인 개념을 총체적으로 잘 정리하고 있다. 군집분석, 연관분석, 시각화의 중요성과 의미 등 일반적인 데이터 분석팀에서 밥먹듯이 수행하는 일들이 대충 어떤 일들인지 포괄적으로 잘 정리하고 있다.

7장은 데이터 엔지니어링 및 인프라 업무를 잘 정리하고 있다. 아래 그림과 같이 데이터는 분석이나 모델링으로 끝나는 것이 아니다. 알고리즘이나 모델이 가설을 잘 검증하기 위해 데이터를 수집, 정제, 전처리 하여 알기 쉽게 떠먹여줘야 함은 물론 그 결과를 서빙하여 제품으로 만들어 낼 줄도 알아야 한다.파이프라인

이를 위한 총체적인 파이프라인 과정이 필요한데 각 과정의 세부 유닛들을 잘 정리하여 설명하고 있다.

8장에는 그 외 데이터 특성을 다룬다. 데이터 분석의 80%는 전처리라는 근거 없는 낭설을 주위에서 많이 듣곤 하는데 그만큼 전처리는 많은 시간을 잡아먹는 귀찮은 일임에는 이견의 여지가 없다.

아래 그림은 전처리가 무엇인지 가장 구체적으로 잘 설명해주는 그림이라 할 수 있다. 현실의 데이터는 위 테이블이고 이를 전처리를 거쳐 정제한 데이터는 아래 테이블이라 생각하면 된다.전처리

조금 더 자세히 들여다보면 주소는 도로명주소 우편번호로 정제하고 있고, 매장명은 업종으로, 메뉴는 어떤 분류에 속하는지 속성은 차가운지 뜨거운지 용량은 어떤지 등등의 세부 데이터로 분류된다. 그나마 판매가격은 숫자 데이터인지라 전처리 과정을 거칠일이 적다.

이 한 그림만 제대로 이해하고 있어도 전처리에 대한 대부분의 설명이 가능한데 이 책에서 좋은 예시를 담고 있다는 생각이 들었다. 2부에서 현장의 실무를 담기 위해 애썼다는 저자들의 소개에 공감할 수 있는 부분이었다.

마지막으로 9장에는 CEO를 위한 조언이 담겨 있다. 데이터 비즈니스를 꿈꾸는 이들은 무엇을, 어떻게가 아닌 왜라는 질문에 답할 수 있어야 함을 강조한다. 특히 3VD 과정을 통해 현재 보유하고 있는 데이터가 얼마나 더러운지 평가하는 방법이 소개되는데 꽤 도움이 될만한 사항이라 생각했다.

각각 얼마나 지저분하고 귀찮은 과정을 거쳐야 하는지, 얼마나 전문적이고 어려운 성격의 데이터인지, 분석할수록 위험해지며 법적 분석 검토가 필요해지는 데이터들이 3VD에 해당하는 데이터라 할 수 있다. 관련 세부 체크리스트가 제시되어 있어 실질적인 도움이 될 것이다.

정리하면 이 책은 일반인이 데이터 문해력에 관심이 있거나 기본적인 통계, 데이터 과학을 학습한 이들이 커리어를 위한 도전을 위해 입문 과정으로 읽을만한 도서이다. 저자들이 상당히 정성을 기울여 독자들이 잘 소화할 수 있게 떠 먹여주는 느낌이 들었다.

반면 개인적으로 한 가지 아쉬운 점은 실전에서 정확히 어떤 일을 하는지 매우 디테일한 예를 들면 신입 사원이 직접 나이스 데이터에 취업하여 겪는 일들 그러니까 조금 더 거친 실무 내용이 등장하길 바랬는데 보다 추상적이었다는 생각이 들어 아쉽다.

어쩌면 이런 거친 데이터와 일을 다루면 책이 전혀 안 팔릴지 모르겠다. 이는 내 취향이므로 책을 평가하는데에는 불필요한 요소이지만 그래도 요즈음은 일반적인 분석 방법론을 다루는 책이 포화상태인지라 나와 같은 생각을 갖고 있는 독자 수요층이 꽤 있진 않을런지 생각해본다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
만화로 배우는 조선 왕실의 신화 한빛비즈 교양툰 15
우용곡 지음, 전인혁 감수 / 한빛비즈 / 2022년 2월
평점 :
장바구니담기


조선을 중심으로 우리 역사에서 국가, 민간에서 모셨던 신을 다룬 책으로 단순히 종교 개념을 넘어서 조상들의 교육, 사상, 문화와의 정서적 유대를 되새겨 볼 수 있게 해주는 명작이다.

불교는 부처님, 가톨릭은 삼위일체 주님, 개신교는 예수님, 이슬람교는 알라신… 다양한 종교마다 우리는 대표하는 유일신을 쉽게 떠올릴 수 있다. 그런데 유교는 어느 신을 모실까? 공자? 조금 더 나아가 우리 민족은 어떤 신을 모셨을까?

답부터 말하자면 무수히 많은 신이다. 대표적으로 공자를 말하곤 하지만 그는 유교의 창시자로써 상징적의 가치를 지닐 뿐 다른 종교에서 말하는 유일신, 절대자의 의미를 지니지는 않는다.

국토의 신 국사, 곡식의 신 국직, 토지의 신 후토, 오곡의 신 후직, 역대 제왕들을 모신 종묘, 조선의 사대고조, 공신들을 모신 공신당, 농사의 신 신농, 양잠의 신 서릉, 날씨의 신 풍운뇌우, 우사단의 여섯 신, 문묘의 18현, 단군왕검, 기자, 각 국의 시조묘, 동묘의 관우, 영성과 노인성, 마신, 무사귀신을 위한 여제에 이르기까지 본 도서에서 다루는 신들만 해도 헤아리기 어려울 정도이다.

왜 이리 많은 신을 모실까? 그리고 이런 관습이 오늘날 우리에게 왜 중요하고 어떤 의미를 지닐까?

역사가 발전할 수록 종교는 유일신의 형태로 발전한다고 했다. 하지만 그런 관점에서 본다면 우리나라를 포함한 중국 및 동북아시아 문화권은 미개하기 짝이 없는 셈이다.

하지만 세상 이치에 음, 양이 존재하지 않는 일이 없다. 서양은 예수 그리스도라는 유일신을 중심으로 강력한 사상적, 절대적 구심점을 모을 수 있었지만 받아들이는 관점에 따라 악용되며 수차례의 종교 개혁을 거치기도 했고 르네상스의 인본주의에서와 같이 사람을 신과 분리하거나 재평가 하는 진통을 겪기도 했다. 특히 신과 인간은 철저히 분리된 존재이며 과학이나 문화 또한 철저히 분리된 존재였다.

반면 이 책에서 다루는 우리나라나 유교 문화권의 국가에서 신은 언제 어느곳에서나 다양한 형태로 존재하며 그들과 정신적 유대관계와 친밀성을 갖는 표상으로서의 기능을 수행하고 있다는 생각을 했다.

책의 마지막 즈음 에필로그에서 저자가 아플때마다 할머니가 무당집에서 기도를 올리는 의미를 이제는 알 것도 같다는 말을 했다.

무당집에가서 소원을 관철시키고자 함은 종교적 관점 혹은 과학적 관점에서보면 의미없는 미신일 뿐이지만 그 시절 그 당시 사람들에게는 종교를 넘어선 일상이자 문화였으니 프레임을 어디에 두느냐의 문제일 뿐 폄하 여부의 문제가 아니라 생각한다.

최근 증조부님이 물려주신 땅의 소유권이 제대로 정리되어 있지 않아 골치를 썩는 일이 있었다. 아직도 해결중이지만 그 과정에서 남 모를 따뜻함을 느끼고 정서적 유대를 느끼기도 했다.

소유권을 정리하는 과정에서 상속 지분 때문에 제적 등본을 찾아보며 가족들간에도 구전되지 않은채 일찍 돌아가신 조상님을 알게되며 슬프기도 했고 먼 조상님이라고 생각했던 분의 자손들이 생각보다 가까운 곳에 살고 있음을 알게 되기도 했다.

또, 토지대장이나 구 등기부 등본을 떼어 보며 조상님들이 땅을 지키기 위해 일제시절부터 고군 분투했음을 느낄 수 있었으며 어려운 한자와 일본어를 해석해가며 대략적으로나마 그 옛날 어떤 활동을 하셨는지 상상을 하니 뵙지 못한 분들이 정겹게 느껴지기도 했다.

이런 느낌이 유교 문화권에서 살아온 후천적 유대감인지 사람 본성에 선천적으로 이어져 오는 각인인 것인지는 알 수 없으나 구구절절이 개인사를 떠드는 이유는 이 책에서 다루는 주제가 어떤 의미인지를 전달하고 싶기 때문이다.

위에서 수 많은 신들을 열거했듯 우리 선조들의 일상에는 항상 신이 있었다. 눈, 비, 바람도 과학이나 기후가 아닌 신이라는 매개체를 통해 소통하려 한다.

단군왕검은 물론 한민족 각 국가의 시조들을 모두 포용한다. 쿠데타라는 국가 정통성에 흠집이 생길 수 있음에도 이전 국가에 대한 배려와 존중, 포용이 있었다. 아래 그림처럼 한민족 각 국가의 시조들을 모신 사당들이 그 증거이다.시조

농사나 곡식과 관련된 신들도 모신다. 비단을 생산하기 위한 누에의 신도 모시고 집이나 마을을 지키는 신도 모시며 마을을 벗어난 산과 강의 신도 모신다. 과거부터 의식주는 가장 중요한 생계 수단이었던 만큼 중요하다고 생각하는 대상에는 모두 신을 부여하고 소통하고자 했다.

따뜻하다.

이러한 본질을 알고나니 교과서에서 배웠던 이원론이 무슨 의미인지 대강은 알 것도 같다. 이치라는 눈에 보이지 않는 대상과 어떻게든 연결하여 내 마음과 소통을 나누고 안녕을 꿈꿨던 조상들의 간절함과 왠지 모를 귀여움까지 느껴진다.

세상에 배척할 것이 없고 모든 것과 유대감을 맺어가고 심지어 그 속에서 충이나 효와 같은 예절을 배우고 교육을 하며 제사를 올리는 일련의 과정에서 숭고함과 지혜를 느낄 수 있었다.

자연을 배척하지 않고 자연과 항상 융화되며 자연에 인격을 부여하고 존중해 온 셈이다. 오죽하면 생계에 중요한 수단이었던 말의 신까지 모셨을까?

한가지 더 우리 민족의 자주사상과 관련된 부분도 이 책에서 재미를 느낄 수 있는 관전포인트이다.
대한제국

대한제국 즉, 황제국이 되고나서야 사직단에서 모시는 국사, 국직의 칭호를 태사, 태직으로 승격하여 모실 수 있었고 원구단에서 제를 올릴 수 있게 되었다.

당나라의 예법이 이어져 온 이래 황제와 제후는 모실 수 있는 신의 종류에 제한이 있었음은 어느 종교이든 사람이 어떻게 해석하고 악용하느냐에 따라 부작용이 있을 수 있음을 뜻한다.

씁쓸한 일이지만 어쨌든 당시 대한제국의 건국과 더불어 상당부분 자주성이 회복되었다는 것은 역사교과서에서 만난 것 이상으로 민중들에게 큰 의미를 지녔던 일이 아닐까 싶어 기쁜 마음이다.

스토리 중심으로 본 도서의 리뷰를 작성했지만 간간히 소개된 그림 처럼 이 책은 만화로 그려져 있어 매우 이해하기 쉽고 재미의 요소도 빼놓을 수 없는 책이다.

단순히 신과 종교 이야기만 나오는 것이 아닌 각국의 건국신화, 문화, 시대적 배경이 같이 소개되어 있어 재미있는 관점으로 역사를 접할 수 있는 책이기도 하다. 앞서 언급했듯 유교와 우리 문화권에서의 신은 모든 곳에 각기 존재하기 때문이다.

괜히 네이버 베스트 도전만화에서 최고 별점을 받은 것이 아니라는 생각이 든다. 딱딱하고 그 안에 숨은 진정한 의미를 역사 교과서를 통해 익히기란 시간도 부족하고 집중력도 떨어지는 법이다.

본 도서는 역사에 관심이 있는 이들에게 혹은 학생들에게 큰 가치를 지닌 책이다. 역사에 숨은 오묘한 뜻과 깊이를 누수없이 전달하면서도 쉽고 재미있다는 책을 만든다는 것은 쉬운일이 아니기 때문이다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
수학을 읽어드립니다 - 수학과 코딩을 가르치는 별난 영문과 교수의 특별하고 재미있는 수학이야기
남호성 지음 / 한국경제신문 / 2021년 12월
평점 :
장바구니담기


AI에 쓰이는 미래에 필수적인 함수, 미분, 행렬, 확률 등의 수학을 세상에서 가장 알기쉽게 설명한 책이자, 빛나는 미래를 꿈꾸는 청년들에게 나침반이 될만한 한 교수님의 좌충우돌 인생기이다.

결론부터 말하라면 간만에 몇 안되는 인생책을 만나 행복하기 그지없다. 이제 막 초등학교에 들어가는 아들내미가 수학을 배우기 시작한다면 이 책으로 시작할 것을 권할 것이다.

누가 되었든 간에 꼭 이 책은 필독서라 할 수 있을만큼 어떤 칭찬으로도 형언하기 어려운 책이다. 재미있어 보이는 표지와 흥미를 끄는 책 제목이 이 책으로 인도할만한 톡톡한 역할을 해내겠지만 그럼에도 이 책의 진가를 담기는 어려울 것이다.

다음은 책 말미의 에필로그에 나오는 문구이다.

“4차(산업혁명)가 사람을 닮은 기계를 만드는 시대라면 5차는 기계를 닮은 사람이 나올지도 모르겠다.”

이 문구를 읽고 ‘문과 출신이 수학의 진의에 다가서면 이렇게 아름다운 서술이 가능하구나.’라는 생각을 했다. 책을 다 읽은 사람은 느끼겠지만 이 문구에는 조건부 확률을 기반으로 한 논리 전개가 들어있는 듯 하다.

“수학을 제대로 보고 아는 건 더 이상 의무가 아니라 권리다.” 이 문구 역시 수학을 제대로 고민한 문과 출신만 가능한 표현이 아닐까?

책의 5부를 읽어보면 알겠지만 문과 출신 분이 수학의 경지에 오르면 수학을 이렇게 쉽게 표현할 수 있겠구나라는 생각에 놀랄 수 밖에 없다. 또, 천재가 엄청난 노력을 하면 이런 전달력이 가능하겠다는 생각도 들었다.

분야마다 정도의 차이는 있을 뿐. 누구나 모르는 것에 대한 호기심은 존재한다. 문제는 유독 수학만큼은 모르는 영역 이상의 의미를 부여하는 것이 문제인 것 같다.

책에서 서술한대로 세상의 모든 것을 함수로 이해하고 조금 더 나아가 행렬로 되어 있다는 것을 이해할 수 있다면 그저 수학도 몰랐던 것의 하나일 뿐이다.

그리고 그 호기심으로 궁금증을 풀기 위해 몰입하다보면 그 속에 숨은 신과 자연의 코드를 읽어나갈 수 있을텐데 말이다. 이 책은 수학을 그렇게 몰랐던, 궁금했던 것의 하나로 바꿔주는 마법을 부린다.

책은 크게 두 부분으로 나뉜다. 책의 절반은 교수님의 좌충우돌 인생기가 매우 솔직하게 담겨있다. 상아탑에서 내려오는 능력을 가지신 몇 안되는 교수님이다. 우리 시대에 필요한 교수님으로 이 리뷰를 읽으실리는 없겠지만 존경을 표하고 싶다.

뒷 부분의 절반은 세상에서 가장 쉬운 수학책이 등장한다. 인공지능을 연구하는 나로써는 코사인 유사도와 벡터를 시작으로 조건부 확률, 딥러닝을 이렇게 짧은 분량으로 이렇게 쉽게 설명하는 책을 본 적이 없다. 새 시대의 수학 교육 방식이자 새로운 교과서로 채택되어도 손색이 없을만큼 훌륭한 책이다.


전반부 인생 도전기에는 진솔함이 묻어 있다. 영문학 석사 학위를 그만두고 코딩 학원에서 1년 간 학습한 내용과 스스로의 갈 길을 선택하기 위해 부단히 노력했던 일들. 삼성 SDS에 취업하여 퇴시한 일.

유학의 길을 떠나 예일대학교 해스킨스연구소에서 세계 최초의 조음 합성기 TADA를 만든 성과, 이후 모교의 영문과 교수가 된 일을 거쳐, 남즈(NAMZ) 연구소를 만들어 미디어 젠과의 연구 협력에 이르기까지 그 과정에 진솔함이 묻어 있다.

신분의 변화가 있을때마다 그때의 심정 쉽지 않았던 퇴사(퇴학)의 길들의 디테일이 묻어 있음은 물론 2014년 스승의 날에 스스로에게 쓴 편지는 진솔함 그 자체이다.

책을 많이 읽어 온 나로써는 부끄러움 때문에라도 혹은 혹여라도 스스로의 이미지와 권위를 내려깍을지도 모른다는 두려움이 진솔함을 왜곡한다는 것을 잘 느끼는 편이기에 진솔함을 좋은 책의 척도로 삼기도 한다.

KT 프로젝트에서 음성학을 연구한 본인의 실력이 컴퓨터 프로그래밍과 응용력에 출중한 공학 출신의 전문가에게 “을”처럼 비춰지며 코딩의 길을 걷게 되었다는 저자의 말에 많은 생각을 했다.

요즘 인공지능을 주도하는 데이터 과학자에게 필요한 소양은 업무도메인 + 수학 + IT의 결합이라고 표현할 수 있다. 인공지능을 연구하는 나로써는 IT 출신이기에 업무도메인을 기반으로 한 연구 능력의 부족에 갈증을 느낀다.

적지 않은 나이에 새로운 도전이 두려워 소극적으로 임하고 있지만 언제고 하고 싶은 것이 생기면 자리를 박차고 새로운 여행을 떠난 저자의 도전에 많은 자극을 받았다.

학사 출신인 나의 연구 능력 부족에서 온 충격이 아마도 저자의 공학에 관한 충격과 흡사하지 않았을까 생각해본다.

또, 90년대에 코딩을 비교적 빠르게 접할 수 있었던 것은 저자가 시운을 제대로 만났다는 생각이 들었지만 떠 한편 당시 인터넷이 지금 처럼 활성화 된 시절이 아닌지라 유학을 준비하는 과정이 쉽지 않음은 비운일 수도 있겠다는 생각이 들었다.

그럼에도 하늘은 스스로 돕는 자를 돕는다고 저자의 거침없는 도전정신과 노력이 공평한 조건을 성공에 유리하게 만든 것이 아닐까 하고 많은 생각에 잠기기도 했다.

해스킨스 연구소에서 한 인도인 동료와 진정한 융합이 AI 시대 필요한 융합의 선구적 경험이었음에 부러움이 드는가 하면 내 자식이었어도 이렇게 가르칠 수 있냐고 되묻는 교수님으로써의 자세에 존경심이 생기기도 했다.

전반부를 요약하자면 가슴에 뜨거운 무언가가 있는 사람이 그리고 그것을 실천으로 표출하는 사람이 세상을 바꾼다는 흔하지만 자주 잊는 진리임을 다시금 되새길 수 있었다. 특히 진로에 고민이 많은 (대)학생이라면 꼭 필독하기 바란다.


후반부에는 본격적으로 책 제목에 어울리는 수학이 등장한다. 그 중에서도 백미는 5부로 함수, 미분, 행렬, 확률 등 AI에 필수적인 수학을 다룬다.

어찌나 전달력과 가독성이 기가 막힌지 책을 전부 인용할 수는 없기에 가장 뇌리에 남아있는 몇가지 예시를 들고자 한다.

벡터가 단순히 숫자를 열거한 것이라는 표현을 시작으로 좌표에 점을 찍어 시각화하며 코사인 유사도를 언급하는데 코사인 유사도를 공식으로만 접한 나로써는 이렇게 쉬운 전달이 가능하다는 것에 놀라움을 금치 못했다.

유사도를 유클리드 거리로 산정하거나 각도의 크기로 결정지을 수 있고 국어, 영어 2개 차원의 좌표 상에서 코사인 90도가 유사도가 0가 되고 반대로 동일한 벡터일 경우 유사도가 1이자 코사인 0각도를 이룬다는 사실을 너무 쉽게 설명하고 있다.

이를 시작으로 한 단계 한 단계 인공지능 - 딥러닝 - 으로 다가가는 스텝이 예술이다.

우리가 살면서 배탈이 나면 무엇을 잘못 먹었는지 생각하곤 한다.미분

위 그림처럼 각 음식량을 조절해보며 달걀을 1개 적게 먹었더니 설사가 줄었다는 사실을 알게 된다. 이 간단한 그림에 인공지능의 거의 모든 것이 담겨있다. 이런 예시를 만들어 낸 저자의 통찰에 놀라움을 금치 못했다.

미분값을 영향력으로 표현한다. 달걀을 1개 줄였더니 응가의 묽기가 3이 줄었다. 입력의 변화량이 1인데, 출력의 변화량이 3이니 이 경우 미분값은 3이 된다. 즉, 미분값은 달걀이 설사에 미치는 영향력이다.

또, 위 그림으로 설사를 예측하는 인공지능을 만들 수도 있다. 극단적으로 표현하면 달걀의 설사에 미치는 영향력이 1이 될 수 있고 나머지 음식들은 0이라고 표현할 수도 있겠지만 저마다 약간의 영향력을 가질수도 있을 것이다.

영향력

위 그림이 이를 표현한다. 물론 예제가 바뀐 그림이지만 수면시간, 운동시간 등을 국수, 달걀 등으로 생각해도 괜찮을 것 같다. 이를 조금 일반화하면 아래와 같은 그림이 된다.

일반화

이 a, b, c, .., h의 값을 구하는 것을 인공지능에서의 학습이라고 한다. 이는 우측 수식에서의 행렬 값이 되는데 이 행렬 값이 얼마나 정확하느냐에 따라 인공지능의 성능이 결정된다.

물론 이 과정에서 경사하강법, 오차역전파법이라는 개념이 숨어있긴한데 용어만 등장하지 않았을 분 이들의 원리 또한 간접적으로 책에서 모두 언급하고 있다.

달걀의 개수와 다른 음식들의 개수를 조절하며 정확한 행렬을 구해나가는 과정 즉, 학습의 의미를 설명하고 있기 때문이며 여기에서 영향력에 해당하는 미분이 활용된다.

이러고 보면 세상의 모든 것은 함수이고 더 나아가면 행렬이 된다. 영화 매트릭스는 우리말로 행렬인데 세상이 매트릭스로 이뤄졌다는 것은 과언이 아닌 듯 하다. 이런데도 수학이 일상과 동떨어졌다는 대부분의 선입견이 맞다고 할 수 있을까?

또 하나 예를 들자면 베이즈 추론을 이렇게 알기 쉽게 서술하는 책은 처음 본다. 아래 그림은 주사위 2개를 던져 P(A=2), P(A=2,B=3), P(B=3|A=2)를 그림으로 구하는 장면이다.확률

이제 그림으로 보니 명확해진다. 값은 각각 6/36, 1/36, 1/6이 된다.

중요한 것은 이 세가지 확률값에 아래와 같은 관계가 성립된다는 것이다. 이를 통해 일반화된 조건부 확률을 거쳐 베이즈 추론을 유추해가는 과정이 예술이다. 공학 출신인 나로써는 이런 문과식 전달력에 혀를 내두를 뿐이다.베이즈 추론

조건부 확률을 이해했다고 생각한 것은 일주일 남짓이었지만 이를 우도나 인과가 뒤집힌 사전 확률 개념으로 이해하는데 세달이 걸렸다. 간단한 수식이 전부인 줄 알고 수식으로 먼저 공부한 내 성과이다. 이마저도 안쓰다가 다시 쓰려면 개념이 혼동되어 재학습이 필요했다.

만약 이 책으로 시작했다면 조건부 확률을 10분만에 마스터 할 수 있었을 것이다. 리뷰만으로는 설명의 한계가 있다. 이 책 값의 정가가 왜 1.6만원인지 모르겠지만 이 가격으로 수학에 대한 접근법의 패러다임을 180도 뒤집을 수 있다는 사실에 주목했으면 한다.


책을 읽는 시간보다 리뷰를 작성하는데 걸린 시간이 더 길었던 책은 이 책이 처음이다. 교수님 다운 탁월한 전달력은 엄청나게 몰입하게 만들었고 읽는데 고작 1시간 남짓 걸린 것 같다. 반면 리뷰는 책의 진가를 퇴색시키지 않기 위해 더 많은 시간을 쏟았으나 역시 진가를 표현하기엔 역부족인 듯 하다.

다른 책은 몰라도 이 책만큼은 독자의 인생을 위해 꼭 필독할 것을 권하고 싶다. 단 한 권, 딱 한 시간에 수십 년 수학의 내공은 물론 수십 년 교수님의 인생 내공도 흡수할 수 있기 때문이다.




댓글(2) 먼댓글(0) 좋아요(3)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
남호성 2022-02-04 00:38   좋아요 1 | 댓글달기 | 수정 | 삭제 | URL
고맙습니다. ^^; 한번 놀러 오세요~~ 저희 연구소

nanhmjjang 2022-05-01 19:58   좋아요 0 | URL
세상에.. 저자님께서 직접 댓글을 남겨주실줄이야..! 너무 영광입니다. 인생책을 저술해주셔서 깊이 감사드리고요. 제 주제에 이 멋진 연구소를 방문해도 되는건지 모르겠네요.^^;;
 
50억 벌어 교수직도 던진 최성락 투자법
최성락 지음 / 페이퍼로드 / 2021년 12월
평점 :
장바구니담기


모두가 선망하는 교수라는 직업을 그만두고 50억의 자산을 일군 경험담을 담은 책으로 퇴사 후 파이어족으로서의 고민도 함께 담겨 더욱 읽을만한 재미가 있다.

저자는 비트코인, 부동산, 미국주식 등으로 50억의 자산을 일구고 파이어족으로 변신한 전직 교수님이다. 교수라는 직업은 본 도서의 4장에서 저자가 설명하다시피 정년이 65세까지 보장되는 안정적인 직업이자 일반인에게는 선망받는 전문 직종이다.

1, 2장에서는 비트코인 덕분에 자산가로 변모한 과정이 담겨있고 3장에는 미국주식의 투자 경험담이 담겨있다. 4장은 파이어족이 된 후 어떻게 살아야할지에 대한 고민이 담겨 있는데 일반인 대부분은 겪기 힘든 나아가 상상도 하기 힘든 경우의 고민이기에 개인적으로 가장 흥미롭게 읽은 대목이다. 5장은 자본주의의 실체를 알게 해줄만한 자산가들의 사고방식을 엿 볼 수 있다.

이 책은 저자가 서문에서 밝힌바와 같이 엄청난 투자법이나 투자의 고수가 되기 위한 방법을 다루고 있지는 않다. 다만 저자가 투자에 성공하기까지의 경험담이 담겨 있어 흥미진진하고 당시 저자의 심리상태와 나의 가상의 심리상태와 비교하며 마인드 형성에 도음되는 글귀가 수록되어 있다.

사실 1 ~ 2장에서 저자가 언급한 비트코인의 가능성에는 개인적으로 부정적이다. 아마도 내가 비트코인 투자를 실패했기 때문일 것이다. 더불어 3장의 미국 주식의 가능성에는 동의하는 부분이 많았다. 이 또한 미국주식에서 내가 승전을 거두고 있기 때문일 것이다.

이런 저런 관점에서 가장 중요하게 생각하는 생존 편향의 문제가 떠올랐다. 생존 편향의 일화는 정확한 내용은 기억나지 않지만 영국이 세계대전에서 전투기 추락율을 줄이기 위한 시도에서 비롯된다.

당시 살아남은 비행기의 총알이 어느곳에 가장 많이 맞았는지를 분석하여 그 부분을 보강하는 식으로 대처했으나 결과적으로 생존율이 더 떨어진다. 이를 의아하게 생각했지만 이런 대처법에는 큰 결함이 있었다.

바로 살아남은 비행기의 저격 흔적만 조사했다는 점이다. 반대로 총알을 안 맞은 곳이 약점인지라 약점을 안 맞은 비행기가 되려 살아남은 셈이다. 이는 인과관계와 상관관계의 차이와도 이어지는 부분이다. 아이스크림을 많이 먹으면 상어에게 잡아먹힐 확률이 높아진다는 논리와 마찬가지인 셈이다.

어쨌든 저자의 경험담을 읽으며 이런 부분에 대한 생각이 한 층 굳어졌다. 저자 역시 투자의 액수나 타이밍에 따라 주가가 위로 갈지 아래로 갈지에 대한 판단과 관점이 달라진다고 언급하고 있다. 이에 십분 동의하는 바이다.

따라서 반대논리가 매우 중요하다. 내가 승산이 있다 생각하여 들어간 투자에는 반드시 떨어질 것도 염두에 두고 떨어진다면 어떤 시나리오로 떨어질지 시뮬레이션하고 정보를 수집하여 보다 객관적인 정보를 얻거나 확률 높은 판단의 구사가 가능할 것이다.

투자법은 이 즈음 정리하고 개인적으로 가장 흥미롭게 읽은 4장의 내용을 다뤄보고자 한다. 누구나 인생에 한 번쯤은 파이어족이 되길 소망해 본 적이 있을 것이다.

지긋지긋한 직장 혹은 조직의 인간관계에 해방되어 스스로의 시간을 알차게 원하는대로 영위하는 것을 거부하는 사람은 없을 것이다. 분명 단점을 극복하는 삶이나 그 자체가 행복을 가져다 주진 않는다는 점을 저자가 일깨워주었다.

생각보다 큰 장점이 없는 삶이라는 생각이 들었다. 아니 정확히는 인생을 왜 사는가라는 철학적인 질문으로 회귀한다는 결론에 도달한다는 것을 알게 되었다.

막상 시간이 나도 누구와 그 시간을 영위할지에 대한 고민이 남아있다. 소속이 없어졌기에 주위에 남는 인맥은 가족과 친구가 전부이다. 그 남은 친구마저도 직장에 소속되어 함께 할 수 있는 시간은 매우 적다.

직장을 그만두고 온 종일 드라마를 시청하거나 게임에 전념하는 것도 좋지 않은 일임은 누구나 알고 있다. 그렇기에 저자는 책을 읽고 저술하는 활동에 집중하면서 개인 연구소를 경영하며 삶을 가꾸고 있다고 한다.

나의 경우 반드시 하고 싶은 일이 있고 그 일이 시간이 엄청나게 걸리는 일임을 알고 있어 남아도는 시간에 지루할 일은 없을 듯 하다. 하지만 주위 사람이 사라지는 문제와 삶의 행복을 추구하는 목표나 계획은 다시금 냉철히 고민해 봐야 겠다는 생각이 들었다.

정리하자면 이 책은 투자에 대한 마인드를 점검하고 이미 인생의 성공을 거둔 한 파이어족의 경험담에 나 자신을 투영시켜 미래를 꿈꿔볼 수 있는 책이다. 투자와 인생의 본질을 재미있게 미리 경험해보고 싶다면 이 책을 읽어볼 것을 추천한다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo