인생논어 - 1

  0. 조형권님이 쓴 <<인생논어>>를 읽고 필사한다는 생각으로 구문들을 옮겨 적으려 한다.


 1. 나만의 속도를 유지하라.

 子曰, 射不主皮 爲力不同科 古之道也
(자왈, 사부주피 위력부동과 고지도야)

 해석: 활을 쏠 때 과녁을 뚫는 것만을 중시할 필요가 없다. 사람은 저마다 가진 힘이 다르기 때문이다. 이것이 바로 옛날의 도다. 

 읽은 감상:
 사람의 재능은 모두 다르다. 어떤 사람은 타고난 신체조건으로 높은 운동 능력을 보여줄 것이고, 어떤 사람은 뛰어난 두뇌로 이해력이 빠를 것이다. 결국 본인의 재능을 찾고, 그에 맞는 길을 따라가는 것이 옳다는 의미로 이해된다. 
  결국 사회라는 것도 수없이 만은 사람들이 모여 사는만큼, 생각도 다르고 하고자하는 바도 다를 것이다. 그런데 항상 하나의 가치로 사람을 묶으려하고, 서로 비교하며 감정을 소모한다. 
  얼마나 비효율적인가! 본인을 알아가는 과정에서 오는 기쁨을 느끼며 결국 재능을 알아내고 그 방향으로 나가면 쓸데없는 분노와 좌절이 줄어들 것이다. 그러면서 쌓이는 긍정적인 에너지가 결국 개인이나 사회를 쉽게 무너지지 않도록 하는 방어막이 아닐까 생각해본다.


 2. 지향점이 명확하면 흔들려도 괜찮다.

子曰, “譬如爲山, 未成一, , 吾止也. 譬如平地, 雖覆一, , 吾往也 

(자왈, 비여위산, 미성일궤, 지, 오지야, 비여평지, 수복일궤, 진, 오왕야)

  해석: 가령 산을 만드는 것으로 비유하자면 한 삼태기의 흙을 보태지 않아 완성되지 못하더라도 중지하면 내가 중지하는 것이다. 가령 땅을 평평하게 만드는 것으로 비유하자면 한 삼태기의 흙만 쌓았다고 해도 나아가면 내가 나아가는 것이다.

  읽은 감상:
  멈추거나 나아가는 것도 내 선택의 문제이다. 내가 추구하는 가치, 내가 원하는 것을 따라 본인의 속도에 맞게 앞으로 나아가는 것이 기쁨일 것이다.  

 

VS Code에서 워크스페이스 별로 터미널 설정 바꾸기

 0. 왜 했냐면

  최근에 새로운 언어를 배워볼까 하여 Rust를 VS Code에 설정해보았다. VS Code 특성상 시스템의 터미널을 많이 사용하는데, 기존에 파이썬을 위해 Anaconda 터미널을 설정해 뒀더니 Rust 실행 할 때마다 conda를 부르는 불상사가 생기더라.


1. 하는 방법

 하는 방법은 간단하다. 일단 VS Code의 세팅이 Default -> User -> Workspace 순으로 override된다는 것만 이해하면 된다. 기존에 Anaconda 터미널 설정을 했다면, User에 한 것일거다. 그 내용을 새로운 Workspace를 만들고 설정을 옮기면 된다. 

 먼저 현재 워크 스페이스(파이썬을 사용하는 워크스페이스)를 File -> Save Workspace As 메뉴로 새로 저장한다. 그 이후 다음의 순서로 설정을 옮겨준다. 

  1) Ctrl + Shift + P 를 눌러서 Preferences: Open Settings를 선택하면 User setting의 Json파일이 열린다. 그럼 다음의 코드가 보일 것이다.


{
    "python.pythonPath": "[ANACONDA path]/python.exe",    
    "python.languageServer": "Pylance",
    "terminal.integrated.shellArgs.windows": [
        "/K", 
        "[ANACONDA path]/Scripts/activate.bat [ANACONDA path]"
    ],
    "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe" ,    
}

   위에서 terminal 어쩌고로 시작하는 내용 때문에 다른 언어에서 터미널 사용할 때 문제가 생기는 것이다. 이 내용을 카피하고 다 주석처리 해버린다. 그리고 저장.


 2) Ctrl + Shift + P를 눌러 Preferences: Open Workspace Settings(JSON)을 선택하면 다음 처럼 코드가 나올 것이다. 그럼 settings 하위에 앞서 보았던 terminal 세팅을 붙여주고 저장한다. 이 때 이 워크스페이스를 다시 열면 terminal 세팅을 허용할거냐는 메시지가 뜨는데, 그 때 오케이를 한다.


{
	"folders": [
		{
			"path": "[WS Folder]"
		}
	],
	"settings": {
		// Copy here!!!!
	}
}

 그럼 이제 Python은 python용 conda terminal을, 다른 언어는 다른 세팅으로 터미널을 사용할 수 있다.

VS Code에서 py torch, jupyter notebook 설정 해보기

일단 나는 개발 환경으로 Visual Studio Code를 사용하고 있고,
Python은 Anaconda를 통해서 관리하고 있다.

최근 PyTorch를 설치하면서 jupyter notebook으로 학습하려하니, 약간의 삽질이 필요했으니 그 내용을 기록해보겠다.

1. PyTorch 설치

 매우 친절하게도 pytorch.org에 접속해보면 설치 환경에 따라 어떤 커맨드를 넣어야 하는지 나온다. 매우 친절하다. 일단 기분이 좋아졌다.
 물론 설치를 그냥 base환경에 하면 안되고, conda prompt에서 다음을 실행하고 한다.



 $ conda create --name ai_torch
 $ conda activate a_torch

여기서 'ai_torch'는 그냥 내가 정한 이름이니 아무거나 쓰면 된다.
 VS Code를 열면 해당 환경이 다시 로드되므로 앞으로 이 환경을 쓸 수있다.(물론 이미 python plug-in이 있다는 가정 하에...)

2. 가상 환경에 Jupyter notebook 설치

 Conda prompt에서 다음 커맨드로 jupyter notebook을 설치한다.



 $ conda install jupyter notebook 

 그럼 ipython이나 그 외 필요한 패키지 등이 설치된다.

 다 설치가 되었으면, 이 가상 환경의 커널(python 등의 실행 환경)을 등록해주자.
 등록을 해 놓으면 jupyter notebook에서 가상 환경을 선택해 사용 가능하다.


 $ python -m ipykernel install --user --name py_torch --display-name "[Py Torch]" 

 display-name 옵션 뒤의 내용은 알아서 정하자.

 이제 VS Code든 어디든 jupyter notebook에서 가상 환경을 사용할 수 있다.

조커(2019)



안전망 없는 사회는 평범한 사람들을 구석으로 몰아 넣기도 한다.
그 사람들이 모두 범죄를 저지르고 악행을 저지르는 것은 아니지만, 어느 임계점을 넘어버리면 못 참게 되지 않을까.

그리고 몰리는 사람들의 수가 많아지면 많아질수록 잘못된 우상을 앞세워 사회를 더욱 혼란해진다. 조커는 가장 바닥같은 인생이었지만, 어느새 그를 무시했던 대중들에게 가장 추앙 받는 존재가 되어 버린다.

두 시간 내내 눌려 본 영화였다.

우연은 얼마나 내 삶을 지배하는가 - 원글: 2018.07.04

삶과 운

 우리나라에서 즐겨쓰는 말 중에 운칠기삼(運七技三)이라는 말이 있다. 어떤 일이나 사람이 잘 되려면 운이 작용이 70%, 기술(사람이 할 수 있는 정도)가 30%라는 말 정도로 이해할 수 있다.
 어느 한 사람의 성공도 그러한 듯 하다. 어떤 사람은 별 능력이 있어보이지 않지만 결과가 좋은 사람이 있고, 또 다른 사람은 정말 능력도 출중하고 노력도 하지만 결과가 좋지않은 경우도 있다. 이럴 때 사람들은 어떻게든 잘 된, 또는 잘 못된 이유에 대해 찾으려 한다. 물론 찾으면 그 이유는 찾아진다. 잘 하다가 뭔가 상황에 맞지 않는 판단을 했든, 어떤식으로든 필요한 부분에 딱 하나의 못을 정확히 박았든 말이다.
 이렇게 어떤 일을 할 때, 같은 노력으로도 누군가는 잘 되고, 누군가는 아니라면, 사람들은 운이 좋고 나쁨을 얘기한다. 하지만 이 운이라는 것이 눈에 보이거나 어떻게 계산할 수 있는 것이 아니어서 ‘사주’, ‘점성술’ 등의 이름으로 사람의 미래를 점치려는 시도가 많다. 그리고 누군가는 이 것을 신의 뜻으로 돌리기도 한다.
 물론 어떤 일의 성공을 운만으로 정의할 수는 없다. 분명 성공의 확률을 높이기 위한 기(技)의 영역은 존재하고 본인의 노력을 다 했을 때 마지막으로 운의 영역에 결과를 맡겨야한다.

과학과 운

 이 책의 저자는 ‘양자물리학’으로 박사학위를 받았다. 양자물리학은 어찌 보면 현대 물리의 최첨단을 달리는 학문이라 할 수 있다. 하지만 아이러니하게도 양자의 관찰 결과는 확률에 의존하고 있다. 그리고 카오스 이론은 아주 작은 초기 조건의 차이가 엄청나게 큰 결과의 차이를 가져온다고 말한다. 예전 사람들은 ‘라플라스의 악마’처럼 모든 것의 결과를 예측할 수 있는 무엇인가 있지 않을까 했지만, 과학이 발전될수록 점점 모르는 것이 있다는 어찌보면 역설적인 결론에 다다른다.

운은 인간의 영역 바깥에 있나

 현재로서는 그렇다. 하지만 이 책에서도 적고있고, 앞서에서 언급한 것 처럼 일이 성사될 확률을 높이는 것은 전적으로 인간의 몫이다. 책의 말미에 진화의 예를 들며 이야기한 것 처럼 우연으로 발생한 어느 일이 생명력을 갖는 것은 전적으로 인간 선택의 영역이다. 또한 과학이 발전하다보면 운 자체를 이해할 날도 오지 않을까.

대량살상 수학무기(캐시 오닐) - 원글 작성: 2017.12.17


이 책의 원저자 ‘캐시 오닐’은 하버드 대학에서 정수론으로 박사 학위를 받았다. 하버드 대학 정수론 전공이라 하면 순수 수학에서는 정말 알아준다고 한다. 졸업 후 교수, 헤지 펀드의 퀀트, 스타트업의 데이터 과학자 등을 거쳤다. 그녀의 이력에서 알 수 있듯이 수학 모형에 대한 이야기를 하기에 가장 좋은 위치일 것 같다.
 저자는 데이터를 처리하고 어떠한 예측을 내놓는 모형 중 일부를 ‘WMD(Weapon of Math Destruction)’이라 칭한다. 이 말은 ‘대량 살상무기’를 꼬은 말이다. 어느 모형이 WMD의 반열에 오르기 위해 여러가지 조건이 있다.
  1. 대리 데이터를 사용할 것
  2. 확산이 빠를 것
  3. 부정적 피드백 루프를 만들어 낼 것
 어떠한 대상을 판단하는데 있어 다양한 정보가 필요하다. 그 대상이 사람이라면 더욱 그럴 것이다. 한 사람이 살아온 환경, 성격 등 정말 많은 요소가 있다. 하지만 소위 빅데이터를 이용한다는 모형을 통해 사람을 판단한다고 하면, 모형이 사용할 수 있는 데이터는 매우 피상적이다. 가령 사는 지역으로 범죄 발생 가능성을 예측한다거나, 인종, 민족 등으로 신용 등급을 유추한다(대리 데이터). 이렇다 보니 이미 가난한 환경에 사는 사람은 계속 감시 받고, 자금을 융통할 수 없어 더욱 가난해지는 악순환에 처한다(부정적 피드백). 문제는 이러한 WMD가 돈을 빌려주는 금융기관 처럼 힘 있는 기관들에 흔하게 퍼져있고, 빠른 속도로 여기 저기 적용되어진다(빠른 확산). 이는 마이너리티의 입장에서 일상 생활을 영위 하는 사람들을 실패의 나락으로 빠트릴 수도 있다.
 요즈음 빅데이터와 머신러닝이 아주 흔한 소재가 되었다. 마치 데이터만 충분하다면 모든 답을 다 도출할 수 있을 것이라 생각한다. 하지만 하나 착각하고 있는 것은 ‘상관관계’와 ‘인과관계’를 동일시 하는 것이다. 대부분의 모형은 데이터와 결과의 상관관계를 찾는데는 상당히 능하다. 하지만 그것이 인과관계를 설명하는 것은 절대 아니다. 그렇다보니 머신러닝의 결과물은 의문 투성이일 수 밖에 없고, 일부는 결과물을 마치 신탁인양 생각하는 경우도 있다.
 수학 모형은 어렵다. 하지만 이 모형에서 나온 결과를 대하는 사람들은 반드시 의심하여야 한다. 그를 통하여 무조건적인 신뢰만 피한다면 블랙박스라 하더라도 나름 유용한 도구로 사용할 수 있다. 결정을 내리는 것은 결국 사람이다.

'남한산성'(김훈)을 읽고


   0. 최근 영화 '남한산성'이 개봉하면서 'JTBC 뉴스룸'에 '김훈'작가가 출현한 적이 있다. 이 때 인터뷰가 인상에 남아 책을 꼭 읽어보고자 하였다. 인터뷰 내내 묻어나는 그의 말에 대한 집념은 매력적이었다. 애초에 소설에 별 관심이 없는 나지만, 이 책은 꼭 한번 읽어보고 싶었다.

   1. 소설의 말은 건조하고 담담하다. 어느 한 구석 감성에 젖어 격한 말을 내뿜는 곳이 없다. 그럼에도 머릿속에 그려지는 시린 서울의 풍경과, 남한산성 안에서의 고단함은 소설 내내 나를 짓눌렀다. 이미 역사로 알고있는 '병자호란'과 '삼전도 굴욕'의 사이 내용을 그의 상상력과 필체로 저술했다.
   이판 최명길은 청과 화친하여 이 위기를 넘고자 했고, 예판 김상헌은 끝까지 싸우길 원했다. 그들은 쇠락해가던 명나라와 오랑캐(여진)에서 세력이 커져 중국 대륙을 쓸어담기 시작한 청나라 사이에서 갈등했다. 어찌보면 반도에 위치한 소국에게는 피할 수 없는 운명이었으리라. 이 사이에서 현실감각 없는 관료들은 공허한 말만 내뱉는다. 대표적으로 영의정 김류가 그랬다. 그리고 그 사이에 낀 왕은 무기력했다. 묘당 아래서 각자의 위치를 지닌 사람들은 스스로 그 위치를 지켰다. 수어사 이시백이 그랬고, 대장장이 서날쇠가 그랬다.

   2. 이 소설의 좋은 점은 단순히 정치가의 시각만 가지고 쓴 것이 아니라는 점이다.
   소위 천민들은 명이고, 청이고 상관없이 전쟁이 끝나기를 바랐다.
   김상헌에게 목이 베인 사공은 그저 본인이 살기위한 길을 찾아가는 것 뿐이었다. 그에게 그 것이 반역이라고 생각할 겨를은 없었을 것이다.  노비였던 정명수는 청으로 투항하여 통역일을 하며 전횡을 일삼았다.
   대장장이 서날쇠가 그나마 본인의 삶에 애착을 갖는 인물이다. 그는 김상헌을 도와 격서를 돌리기도 하고, 사공의 딸 나루를 거두어 키운다. 전쟁이 끝나고 본인의 자리로 돌아와 다시 그 삶을 지속한다.
   소설 내내 그들의 고단함이 몸으로 느껴진다.

   3. 개인적으로 강요된 애국과 충성을 싫어한다. 결국 본인들의 터전에 대한 애착이 있어야 애국이란 것도 생기고, 외부의 적을 맞아 싸울 힘이 생긴다고 생각한다. 그래서 소설 속에 그려진 일반 백성들의 모습이 나에겐 그리 낯설지 않았다. 그만큼 그당시 정치가 일반 백성들과는 멀리 떨어져있었고, 어떤 공감대도 나누지 못했다는 증거인 것 같다. 청에 끌려갔다 돌아와 독살당한(것으로 추정되는) 소현세자가 더욱 애처롭게 느껴진다.

인생논어 - 1

  0. 조형권님이 쓴 <<인생논어>> 를 읽고 필사한다는 생각으로 구문들을 옮겨 적으려 한다.  1. 나만의 속도를 유지하라.   子曰, 射不主皮 爲力不同科 古之道也 (자왈, 사부주피 위력부동과 고지도야)  해석: 활을 쏠 때 ...