"살리고 글쓰기" AC2 과정을 들으면서 알게된 글쓰기 방법으로 기존에 내가 글을 쓰던 방법과는 상당히 다른 부분이 있다. 내가 사용하던 예전 글쓰기는 기존 책의 구조와 비슷하게 개론에서 시작하여 각론으로 나아가는 글쓰기 방법이었다. 하지만 살리고 글쓰기는 애자일하게 글을 쓰는 방식으로 반복적(Iterative)으로 그리고 생성적으로 글을 쓴다.

 

예전의 방식이라면 어떤 주제를 적을 것인지 생각하고 이야기할 생각의 가지들을 만들어 부분들을 채워 갔을 것이다. , 내가 이야기하려는 주제가 생각이 나더라도 전체적인 구조와 각론이 정해질 때까지 정리되지 않으면 글을 쓰기 시작하지 못하고 시간이 많이 걸렸다. 살리고 글쓰기를 , 장점은 글감을 적고, 문장을 만들고, 거기서 글을 만들어 간다. 이렇게 반복적으로 글을 쓰는 것이다. 이렇게 작게 시작하므로 언제나, 어디서나, 낮은 에너지로 글을 있다. 글도, 핸드폰과과 랩탑 컴퓨터를 이용하여 썼다. 책상에서 버스에서 거실의 소파에서 반복적으로 글을 썼다.

 

살리고 글쓰기는 반복적으로 글을 쓰기도 하지만, 생성적(generative)으로 글을 쓴다. 앞에서 언급한 것과 같이 우선 하고 싶은 말에서 시작한다. , 글감이 있다면 글을 쓰기를 시작할 있다. 단어에서 문장이 나오고, 거기에서 센터를 찾아 자연스럽게 나무가 가지를 뻗듯이 글을 펼쳐보는 것처럼 발전 시킨다. 이를 반복적으로 적용하여 글을 쓰면서, 새롭게 떠오르는 센터를 기준으로 계속 글을 써간다. 그러면서, 글이 어떻게 전체적으로 변하고 있는지 살피면서 계속해서 글을 써간다. 인공물이 아닌 자연에서 관찰되는 자연물과 같이 만들어 지도록 생성적으로 글을 쓴다. 글은 "살리고 글쓰기" 배우고 배운 내용을 정리하고 연습하는 관점에서 발견한 센터들을 기준으로 반복적으로 생성적으로 글을 것이다.

 

나는 예전의 방법으로 글의 구조 잡는데 에너지를 쓰고 나서, 정작 글쓰기를 시작하지 못하는 경우가 너무 많았다. 살리고 글쓰기와 비교하여, 기존의 글쓰기는 글감이 있다고 하더라도 예상하는 글의 뼈대가 보일 때까지 충분한 고민을 하여야 하기 때문이다.  또한, 이러한 뼈대를 위한 구조나 로직을 먼저 생각하다 보면,  쓰려고 하는 글의 중요한 부분의 발견을 놓칠 수도 있다. 살리고 글쓰기의 경우는 이와 상반된 장점이 있다. 글을 , 적은 에너지로 시작할 있다. 또한, 글을 쓰면서 전체와 센터를 고민하게 되므로 새로운 발견, 창발적인 주제를 발견할 수도 있다. 이렇게 낮은 에너지 진입 장벽과 새로운 주제 발견이 글감과 관련된 글을 확률을 높여 준다.

 

살리고 글쓰기를 다른 장점은 글감을 적고 시작하고, 거기서 자연스럽게 발전되어 나가는 것이다. , 여러 가지 방법을 사용할 있을 것으로 생각이 들었다. 하나는 생각의 흐름데로 써본다는 것이다. 말하기에 대비하여 글쓰기의 장점은 뱉어 생각을 이리 저리 정리하여 다듬을 있다는 것이다. 글의 살을 붙이는 다른 여러 가지 방법이 있다. 글감에 대해서 시간 순으로 써본다거나, 생각하는 주제 주변을 탐색하거나, 글감의 구조에 대해 살펴 있다. 애자일적으로 접근하는 방법을 생각해 보면, 글감에 대해서 추상과 구체를 왔다갔다하는 방법 또한 좋은 방법이다. , 추상적으로 설명하다가, 나의 경험과 같은 , 구체로 들어가면 된다. 이렇게 하여 글을 적다 보면 하고 싶은 글감에 살이 많이 붙는 것을 느낄 있다.

 

물론 기존 글쓰기 방법을 살리고 글쓰기에서 사용하는 방법을 배재할 필요까지는 없어 보인다. 기존 글쓰기에서 좋은 점들을 적용하는 것도 글을 좋게 만드는 좋은 방법들이다. 살리기 글쓰기를 알려주신 김창준님이 설명해 주신 내용 몇가지를 살펴 보자. 우선 해외 대학에서 글쓰기에 대해 가르치는 하나로 아키데믹 라이팅(Academic Writing) 있다. 여기에도 여러 가지가 있지만, 창준님이 예로 들어 주신 것은 글을 문단(paragraph) 구조화하는 것이다. 문단을 나누어 글을 쓰면, 글이 단정하고 명료해 진다. 다른 하나는 글을 쓰고 소리 내어 읽어 보는 것이다. 예전에 유시민 작가의 글쓰기에 대한 책을 적이 있다. 여기에도 똑같이 언급되었는데, 글도 말이기 때문에 소리내어 읽어 보면서 정리하면 좋아 진다. 이렇듯 기존의 글쓰기에 좋은 방법도 살리고 글쓰기에 적용할 있다.

 

살리고 글쓰기를 알게 되고 얻은 가장 것은 생각을 글로 조금 쉽게 펼쳐 나갈 있겠구나 하는 것이다. 하지만, 살리고 글쓰기의 방법을 배웠다고 바로 몸에 익혀지는 것은 아닐 것이다. 이제 시작이고, 수련이 필요한 것이다. 연습을 하면서, 빼먹지 않았으면 하는 것은 피드백을 받는 것일 것이다. , 이제 시작이다.

책을 읽는 다면 처음 부터 끝까지 눈으로 읽고 이해하는 것이 일반적이라고 생각 있다. 하지만, 공부나 연구를 업으로 하다 보니, 여러 다양한 방법들을 알게 되었. 다른 많은 일들이 그렇듯이 이 것도 효과와 효율에 대해 이야기 해볼 수 있겠다. 효과와 효율, 비슷하면서도 다른 말이다. 효과는 어떤 일을 하고 원하는 "목표" 얻게 되는 것을 의미하고 효율은 어떤 일을 , "비용" 얼마나 되느냐라고  있다. 나름 내가 알고 있는 방법이 있다고 자부했지만, 최근에 알게 방법을 포함하여 내가 사용했던 방법들을 포함하여 정리해 보자.

 

최근에 AC2를 통해 알게 된 효과적으로 읽는 방법은 내가 학위를 논문을 빠르게 읽는 방법과 유사했다. 조건은 분야를 알아서 중요한 부분만 읽는 것과 비슷했다. 선행 과정으로 필요한 것은 글의 전체 구조를 보고 중요한 부분 찾아 후에 부분을 파악하는 것이다. 많은 논문은 구조가 비슷해서 것이 쉽게 적용된다. 책의 경우는 목차를 보고 어떤 부분을 읽을 것인지 결정을 한다. 책을 읽으며 내용을 파악할 때에도 가정(가추법/귀추법 abduction) 하고 확인하여 읽는 부분도 최소화 하는 것이 필요하다. 또한, 마인드풀(mindful)하게 책을 읽어야 한다. , 내가 책의 내용을 어떻게 사용할 것인지 계속 생각하면서 읽는 것이 효과를 높이는 방법이다.

 

논문을 읽는 경우도 내가 저작할 활용하기 위해서 논문이 다루는 문제가 무엇인지 그리고 어떤 새로운 방법으로 풀었는지를 나의 언어로 작성을 해두어야 했다. 논문을 읽을 수록 점점 읽기 쉬워졌는데, 하루에 10편도 넘게 읽을 있는 경우도 생겼다. 논문을 읽을 , 지도 교수는 사람이 기존과 다른 "새로운 아이디어(novel idea)" 무엇인지 것을 어떻게 증명해 보였는지 " 문장"으로 정리할 것을 요구했다. 처음에는 부분을 논문에서 발췌했더니  "재구성(rephrase)"라도 해서 나의 말로 바꾸어야 한다고 강조하셨다. 부분이 되기 시작하면서 논문 읽는 능력이 늘어 나기 시작하고, 기존 알고 있던 다른 연구와 유사한 경우는 정말 30분도 안되서 정리가 되곤 했다. 그리고는 그 것들이 내가 쓰는 논문의 참고 문헌에 기반이 되기도 했다.

 

효율에 대해서 조금 생각해 보면, 책을 읽을 사용하는 에너지에 대해 생각해 있다언제인가 책이 많아져 정리해야 , 책을 스캔하여 있다는 것이 가능하다는 것을 알게 되었다. 또한 이북도 서점에 많이 생기기 시작했다. 또한, 어느 유투버가 책을 스캔하는 것에 대해서도 설명하는 것을 후에 책을 스캔하고 혹은 이북으로 책을 구매 후에 책을 TTS(Text To Speech) 이용해서 듣는 것을 시도해보기 시작했다. 사실은 오디오북을 시작하려고 했지만, 오디오북을 구할 있는 한계가 명확했다. 특히, 우리 나라 책에서는 그랬다. 이렇게 책을 스캔해서 읽는 부분은 나에게 혁명적이었다. 내가 운전을 하면서 혹은 운동을 하면서 들어도 라디오나 음악을 듣는 수준의 에너지로 책을 읽을 있었다. 나는 번역한 책을 퇴고 때도 들어서 3 정도 들었다. 앉아서 번역본을 보면서 듣기도 하고, 차를 타고 다니면서 듣기도 하였다.

 

그렇다면, 효과와 효율은 서로 상반되기만 한 것일까? 학위를 하려면 정말 많은 논문을 읽어야 한다. 하지만, 처음에는 어느 분야의 초보자가 그렇듯이 에너지가 많이 들고 어려움이 많다. 나도 논문 한편에 일주일, 혹은 이주일을 읽어도 어려웠다.  후에도 어느 정도 이력이 붙었는데도 어려운 부분이 있었는데, 이는 논문의 난이도가 매우 높을 때이다. 나도  편의 논문은 제출한 상황이었음에도 이런 경험이 있었는데, 참고할 논문[1] 내용이 수학적인 것이 너무 많고 난이도가 높아서 이해도가 낮은 경우였다.  때에  논문을 여러 번 필사하였다. 처음 읽을 때에는 내가 필요로 하다는 생각이 들었지만 내용이  이해가 되지 않았다. 그래서,   정도 필사를 했고, 전반적인 흐름은 이해하지만, 여전히 이해가 되지 않은 부분도 있었다. 그러고 나서, 몇 번   사하고 나서 논문에서 여기서 이야기 하는 수식의 유도가 이해가 되기 시작했다. 최종에는 내가 필요로 하는 수식을 추출을 하였고  것을 활용하여 내 졸업 요건에 필요한 주요 저널 논문의 작성이 가능했다. , 나의 에너지를 최대한 사용하여 목표에 도달하는 방법이었다. 효과와 효율을 고민하여 나의 최대한을 끌어 낸 경우였다고 생각된다.

 

앞에서 이야기 듯이 책을 읽을 , 목적과 비용에 대해서 생각하면서 읽는 것이 필요하다. 그렇게 해야 효과적으로 효율적으로 있다는 부분이다. 목적의 경우, 어떻게 활용할 것인가 글을 쓰기 위한 것인가 아니면 학습을 위해 나의 행동에 어떻게 연결 것인가 고민하면서 읽는 것이 중요하다. 정확한 목표 없이 흥미를 위해서도 읽을 있다. 하지만, 목표를 분명히 하지 않으면 효과가 떨어질 있다. 효율 측면에서는 에너지를 많이 넣어야 하는가 적게 넣을 것인가도 고민해 부분이다. 마치 산책을 하듯이 힘을 최대한 빼고 읽어야 하는 상황이 있을 수도 있고, 남극 탐험을 하듯 이 내가 가야 하는 목표를 향해 나의 에너지를  써야 한다면 어떻게 해야  것인가도 고민할  있는 것이다.

 

참조 문헌

[1] L. Xu and J. Heizer, "Media streaming via TFRC: An analytical study of the impact of TFRC on user-perceived media quality", Proceedings of IEEE INFOCOM, Jan. 2006, http://personal.ie.cuhk.edu.hk/~dmchiu/reading/infocom06_tfrc.pdf

사전적인 정의/애자일의 간단한 역사

. 군사 과제 . Waterfall 형식 (불확실성이 작음)

. 90년대 넓어지면서 일반 대중을 위한 소프트웨어 (불확실성이 커짐)

  새로운 소프트웨어 개발 방식. 너무 계획 중심이 아닌, 해보면서 고쳐 나가는 방식.

  경량방법론 주의자 Lightweight methodologist

. 2001년도 만나서 애자일 선언문(Agile Manifesto)

  부터 애자일이 특별한 의미를 가지게 .

 

애자일의 에센서(김창준님의 정리, 실재적 정의)

. 협력(collaboration): 자기 업무 영역을 넘어서의 협력. 불확실성이 높을 때에는 협력을 잘해야 .

  협력을 하면 좋은 일은 곱하기, 나쁜 일은 나누기가 .

  터널 비전(Tunneled vision) ==> 다른 사람들과의 협력이 필요함

. 피드백(feedback)

  내부적인 : 

  외부적인 것을 포함: 내가 만든 것을 다른 사람들이 만들고 의견을 받을 있음.

  내가 것을 보고 배우는 .

  일을 잘하는 사람들의 특징은 피드백 시킹 (Feedback seeking) 능력이 좋다.

 

. 학습

  동양문화 공부=독서라고 정형화해서 생각

  불확실성이 작업을 , 얻어내는

 

참고

https://www.podbbang.com/channels/14757/episodes/22365173

다니엘 핑크의 "후회의 재발견", 원제는 "Power of Regret"[1]. 신철님 진원님께서 추천해 주셨던 것으로 기억하여 바로 주문하여 책을 받아서, Reading less를 시도해 보았다.

우리는 우리 의지대로 될 것이라는 "자유 의지"와 모든 일에는 이유가 있다는 "환경"의 교차점에 살고 있다고 저자는 이야기 한다. 여기서 불행이 발생했을 때, 거기서 부터 구원의 시퀀스(redemption sequence)로 가는지 아니면 다른 방향으로 오염 시퀀스(contamination sequence)가는지 이 두 가지 경우가 서로 우위를 차지하기 위해서 경합을 벌인다고 한다. 마치 디즈니의 인사이드 아웃에서 예전의 슬픈 기억도 가족들과 이겨내는 시퀀스가 연결될 것인지 아니면 거기에 머무를 것인지 바뀌기도 하는 것도 이와 관련되어 보인다.

저자는 또한, 스포츠에서 2위 선수의 내가 조금 더 "했더라면" 1위 했을 텐데라는 입장과 3위 선수가 "적어도" 4위를 하지 않아 메달을 땄다라는 것에서 누가 더 만족하고 있는가에 대한 차이도 이야기 한다. 그러면서, 감정을 바라보는 두 관점에 대해서 이야기 하는데, "무시해야 할 것"과 "중요한 것"이라는 입장에 대해서도 설명한다. 무시할 것이라는 입장은 감정을 묻어 두면 결국 직면해야 할 순간을 유예하는 것 뿐이라고 이야기 한다. 또한, "중요한 것"이라는 것은 감정이 우리 존재의 본질이라고 생각하고 "항상 자신의 감정을 믿어라"라고 이야기 한다. 나 예전에는 전자의 입장이었지만 후자의 입장을 가지고 있다.

저자는 책에서 위에 이야기 한 두 방법 이외에 새로운 접근 방법을 제안 한다. 그 감정에 대해서 "생각"을 보태어 "행동"으로 보다 나은 향샹된 성과와 보다 깊은 의미를 찾도록 하는 다른 접근 방법을 제시한다. 이것을 후회 최적화 프레임워크라고 부르고 있다.

 

참고

[1] 다니엘 핑크, "후회의 재발견 - 더 나은 나를 만드는, 가장 불쾌한 감정의 힘에 대하여", 김명철 (옮긴이) 한국경제신문

나는 ChatGPT 사용자로서 내가 담당하는 제품/기능에 대해서 물어보기도 하고 테트리스 프로그램을 짜달라는 것과 같은 간단한 실험을 해보았다. 얼마전 페친과 뉴스피드에서 ChatGPT 대해 의견 나눔이 있었다. 스탠스의 차이가 댓글에 대댓글을 달며 한참을 이야기를 나눴다. 여기서는 표절과 사실 왜곡에 대한 조금 정리하여 적어 본다. 우선, 나는 ChatGPT 세상을 바꿀 변곡점이라 믿고 있고, 나도 내가 이를 사용하길 바라고 있다는 것을 무엇 보다도 먼저 이야기 한다.

 

아일랜드에서 학위를 , 대학원 연구원(Postgrad Researcher) 자격이었다. 그래서, 과정 수업은 거의 없고 연구 위주로 진행이 되었다. 그래도, 학교에서 가르쳐 몇가지 하나가 표절(Plagiarism)이었다. 시작하자 마자 2시간이었난지 반나절인지 영어 수업이라며 가르쳤다. 한마디로 다른 사람이 저작물에 있는 내용을 논문에 적으려면 참고 문헌(reference) 반드시 표기하라는 것이다. 또한, 글을 그대로 적지 말고 말로 바꾸어서 적으라고 했다. 지도교수님도 부분을 여러 강조해서 이야기 했다.

 

이런 측면에서 ChatGPT 빠르게 받아 들이는 학생들을 가르쳐야 하는 학교나 연구를 수행하는 학계가 먼저 대응하고 있는 것이 보인다. 세계 의학 편집자 협회(WAME)ChatGPT와 챗봇에 대한 네 가지 권장사항을 발표했다[1]. 여러 가지가 있지만, 우선 눈에 띄는 것은 1) "챗봇은 저자가 될 수 없다" 2) "챗봇이 생성한 자료를 포함한 모든 출처에 대한 책임은 저자에게 있다"라는 부분이다. , 우리가 ChatGPT 생성한 자료가 아무리 좋은 내용을 포함하고 있다고 하더라도, 내가 결과를 저작물에 쓰려면 내용에 대한 출처를 찾아야 하는 수고가 필요하다는 것이다.

 

ChatGPT 대한 여러 이야기를 보다고 알게 ChatGPT 특징 다른 하나가 사실 왜곡(Hallucination)이다. 용어를 "적당히 생성" 혹은 "환각적 지식"이라고 번역하시는 분도 보았다. ChatGPT 생성하는 자료의 사실 왜곡율이 15~20% 정도 된다고 한다[2]. 물론 부분에 대해서 못되었다고 지적하면서 사용하는 경우도 많이 보고 있다. 또한, ChatGPT 다음 버전들과 비슷한 제품들이 나올 경우 발생할 있는 오염에 대해서도 이야기하는 글도 나오고 있다[3]. 물론, 부분에 대한 고민은 연구자들의 몫일게다. 우리는 ChatGPT가 틀릴 수도 있다는 것을 알고 꼭 다시 확인하는 것이 필요하다고 생각한다.

 

그렇다면, 우리는 ChatGPT 쓰면 안되는 것인가? 나는 아니라고 생각한다. 도리어 어떻게 해야 활용할 것인가? 그리고 무엇이 개선되어야 하는가를 고민하는 것이 중요하다고 생각한다. 사용하기 위해서 고민하는 사람들이 프람프트 엔지니어링[4][5] 이야기 하고 있다. 부분은 나도 탐색이 필요한 부분이다.

 

그리고, 근본적인 질문으로 우리는 기계를 믿을 것인가? 사람을 믿을 것인가? 고민해야 한다고 생각한다. 질문은 결국 선택의 문제가 것이다. 나는 개발자/엔지니어로서 기계는 실수하지 않는 것을 알고 있다. 하지만, 또한 잊지 않는 것이 있다. 바로, 기계를 만든 것은 사람이라는 것이다. 기계에 문제가 있다면 의도하였던 의도하지 않았던 많은 부분 사람이 관여한 것이라는 , 그리고 기계를 활용하거나 악용하는 것도 사람이라는 것이다. 그래서, 나는 그리고 우리는 것을 알고 판단하고 선택해야 것이라고 믿는다.

 

 

참고

[1] http://www.docdocdoc.co.kr/news/articleView.html?idxno=3002315

[2] https://www.datanami.com/2023/01/17/hallucinations-plagiarism-and-chatgpt/

[3] https://twitter.com/191cf54fad/status/1624953860531060736?s=46&t=-CjiWmVTqVXP06ygy0eXwA&fbclid=IwAR11lbIsRfs3yKpPncUvT3mWxlEy1QObCOJRPberGb9UgVXvtY6Ck3j6pJo

[4]https://github.com/dair-ai/Prompt-Engineering-Guide?fbclid=IwAR34DHEs5d3bZc33gP-sCnrLgm5IDxKP0BYhyMnSQH1z7C93rQY-9_qQ7KU&mibextid=Zxz2cZ

[5]https://learnprompting.org/docs/intro

 

"복잡하지만 단순하게(Simply Complexity)"[1], 이 책은 복잡계 삼인방이 읽은 책 중 단 한 권만 골라 추천할 것이라는데 동의한 책이다. 어려운 내용을 꿰뚫는 정리와 다양한 사례가 포함되어 다양한 분야의 사람들이 흥미를 가지고 살펴볼 수 있는 책이다. 많은 복잡계 책이 다루고 있는 바이러스, 도시, 전쟁, 물리학 그리고 금융에서의 다양한 사례가 설명되어 있다.

이 책에서는 여러 책에서도 채용하고 있는 복잡성 과학 정의를 채용하는데, "상호작용"하는 "개체"들의 집합에서 "창발"하는 현상에 대한 연구가 그 것이다. 사실 복잡계가 무엇이라 정의하는 것 보다는 우리가 보는 "현상"을 가지고 정의하는 것이 흥미롭다. 또한, 흥미로운 것은 현실 세계에서의 복잡성 사례 대부분은, 여러 존재들이 식량, 공간, 에너지, 권력, 부 등 "한정된 자원을 놓고 경쟁하는 상황"이 핵심이라고 지적하고 있는 것이다. 나는 이 부분이 가장 다른 책들과 다른 부분이라 생각한다.

좀 더 상세한 복잡계의 특징은 다음과 같다.
1. 복잡계는 다수의 상호작용 하는 개체, 또는 행위자(agent)의 집합체를 포함한다.
2. 개체들의 행태는 '기억' 또는 '되먹임'에 의해 영향을 받는다. 과거가 현재의 의사결정에 되먹임(feedback)되었다.
3. 객체들은 과거 이력에 따라 그들의 전략을 조정할 수 있다.
4. 복잡계는 일반적으로 '열려' 있다. 흥미로운 것은 대조적으로 우주는 닫혀 있다.

앞에서 언급한 복잡계가 "한정된 자원을 놓고 경쟁하는 상황"이라는 부분은 대부분의 복잡계 책에서 다루는 상황이다. 이 책이 특이한 부분은 이렇지 않은 경우에 대해서 연결, 즉 복잡계 네트워크 특징에 대해서 언급하는 부분이다. 즉, 자원이 많지 않은 집단에서의 네트워크는 집단 구성원 사이에 약간의 상호연결만 더해 줘도 성공적인 사람과 그렇지 못한 사람들 사이의 격차는 커지고 평균적인 성공률도 떨어진다고 한다. 예로 보면 후진국(60년대 한국, 멕시코 등)에서는 빈부 격차 확대, 독점 현상 발생하는 것을 살펴 볼 수 있다. 반대로는 자원이 풍부한 집단을 생각할 수 있다. 상호연결성이 낮으면 평균 성공율 높아지고, 대부분의 구성원이 성공하지만 상호연결성이 높으면 전체적인 공정성이 높아지고 성공율 격차가 작아진다.
선진국이라고 할 수 있는 유럽에서 이런 부분을 살펴 볼 수 있다.

7장 "교통 네트워크와 기업의 사다리"에서는 팀과 더글라스의 수레 바퀴에 비유하는 바퀴통-바퀴살 네트워크가 흥미로웠다. 이는 바퀴통에 해당하는 바깥 고리 위에서 바퀴살을 이용하여 두 점 사이 이동에 최단 이동 시간 계산하는 수학 이론이라고 할 수 있다. 여기서는 바퀴살, 즉 도로의 수 최적화 가능한 것에 대해 이야기한다.  흥미로운 것은 이 모델로 구한 답은 하나가 아닐 경우도 많다. 그렇다면, 어느것이 '정답'일까? 이 모델을 제안/적용하여 연구를 진행한 연구자들은 모두가 답이라는 의견이다.

9장에서는 앞에서 언급한 바퀴통-바퀴살 모델을 전쟁의 전략으로도 응용하고 있다. 비유로 늑대로 부터 양 때를 보호하는 개의 입장에서의 전략을 설명하고 있다. 이는 외부의 바퀴통에서 안의 바퀴통으로 가는 바퀴살의 숫자에 따라 다른 전략을 쓰는 것이 핵심이다. 우선 크게 공세적 방어와 수세적 방어로 나누어 이야기 한다. 공세적 방어는 개가 공격자를 공격함으로써 목표 대상을 방어하는 것이다. 이 것은 개, 양, 늑대의 수가 적을 수록 공격이 최선의 방어라는 측면이다. 늑대가 소수라면 추적하여 공격하는 것이 최선의 전략이라는 것이다. 수세적 방어라는 것은 보호 대상에 바싹 붙어서 방어하는 것이다. 보디가드가 VIP를 보호하는 방식과 유사하다 볼 수 있다. 이와 같이 적응적 전략이 유요할 수 있겠다.

앞에서 언급한 것처럼 복잡계의 정의, 사례 그리고 복잡계 네트워크까지 그리고, 자원의 다양성과 같은 상황에 따른 설명까지 폭넓은 시야를 제공하는 것이 이 책의 장점이다.

 

참고문헌

[1] 닐 존슨, "복잡하지만 단순하게 - 복잡한 세상에도 패턴은 있다", 한국복잡계학회 (옮긴이), 바다출판사 2020-02-24

들어가며...

Rust언어를 들어 보기는 했지만, 그나마 최근에 Linux 6.1에서 채용하기 시작한다는 기사[1]를 보고 다시 보기 시작했다. 최근에는 새롭게 시작한 프로젝트와 관련한 Open Source가 Rust를 채용하고 있어서 더 관심을 가지게 되었다. 최근에 살펴본 TIOBE Index[2]에서 보면 20위에 진입했다. 올해 말, 내년까지는 조금 씩은 보게 될 것이라 생각되니 익숙해 져보자는 생각에 이 것 저 것 뒤져 보다가, 바이블이라고 하는 The book[3]도 찾아 보고 읽어 보았다. 총 20장까지 있는데 현재는 10장 정도까지 어렵게 읽은 상태이다. 부족하지만, 기억나는 것을 정리하고 우선 멈추려고 한다. 이 후에, 정말 필요할 때 더 읽어 보려고 한다.

 

변수, 스코프 그리고 소유 

Hello World 프로그램을 보고 몇 가지 예제를 보고 가장 먼저 눈에 띄는 것은 mutable, immutable 개념이다. Rust에서는 변수를 만들면 값의 변경이 불가능한 immutable이 된다. 상수(constant)와는 다르다. 다시 같은 이름으로 선언할 수 있기 때문이다. 변경하기 위해서는 let mut x = 1;과 같이 mutable로 만들어야 한다. 쉐도우잉이라는 개념도 있는데 이는 Python등과 유사한 것 같다. 이는 같은 이름의 변수를 다시 선언해서 사용하는 것이다. 즉, let x = 1; let x = x +1;과 같이 사용한다는 것이다.


그 다음에 새로웠던 것이 소유권(Ownership)이다. Rust가 메모리 관리에 우수하다고 해서 Java 처럼 가비지 컬렉터가 있는가 했다. 하지만, 다른 방법으로 이 부분을 강화 했는데 그 중 하나가 소유권이라는 것이다. 이 것이 C나 다른 언어에서 알고 있는 스코프(Scope)과 관련이 있다. 즉, 변수의 Visibility와 관련된 것으로 같은 레벨이나 그 하위에서 보이는 것이라 알고 있을 것이다. 그런데, Rust에서는 Heap에 관리하는 변수의 경우 얕은 복사(Shallow Copy)의 경우는 같은 스코프라고 하더라도 유효하지 않을 수 있다.

 

또한 함수의 인자로 전달된 변수의 인자의 소유권이 넘어가 다시 복귀하게 되더라도 유효하지 않을 수 있다. 좀 더 상세히 이야기 하면, 메소드가 인자를 단순히 읽기만 하여 함수 처리 후 복귀했을 때 유효하기도 하다 (&self). 혹은 함수 내부에서 변형시키기도 하다(&mut self). 여전히 복귀 후에 사용이 가능하다. 아니면 소유권을 호출하는 함수에 넘겨 함수가 소비하고 함수 호출 이후에는 유효하지 않게 하기도 (self)한다. 즉, 인자를 어떻게 사용할지 결정론적으로 정하게 되는 것이다. 

 

Android와 Rust

Google도 Rust를 지원하는 큰 기업 중에 하나이고, Android에도 적용한다고 한다[4]. 이 부분도 관심과 시간을 가지고 살펴 볼 부분이다. Android에 Sandboxing이 도입되고 있음에도 메모리 관련 관리에 어려움이 있는 것[5]으로 보인다. 2019년도 부터 채용되고 있는 것으로 보아 조금이라도 적용되는 부분이 증가하지 않을까 생각된다. 

 

정리하며...

여전히 성능적 측면의 우려와 학습 곡선이 가파르다는 비판도 있는 것으로 보이지만, 2022년도에 Linux 커널에 도입되는 것을 보았을 때에는 추이를 계속 지켜봐야할 부분으로 보인다. 한국에서도 채용이 되고 있고 사용자 모임[5]이 있다. Discord도 상당히 활발해 보인다.

 

참고 내용

[1] Linus Torvalds: Rust will go into Linux 6.1, https://www.zdnet.com/article/linus-torvalds-rust-will-go-into-linux-6-1/?taid=6329bce71c8e3300010028ae&utm_campaign=trueAnthem%3A%20Trending%20Content&utm_medium=trueAnthem&utm_source=twitter

[2] TIOBE Index for November 2022, https://www.tiobe.com/tiobe-index/

[3] 러스트 공식 안내서 "The Rust Programming Language", https://rinthel.github.io/rust-lang-book-ko/ch00-00-introduction.html

[4] Android Rust 소개, https://source.android.com/docs/setup/build/rust/building-rust-modules/overview?hl=ko 

[5] Rust in Android Platform, https://security.googleblog.com/2021/04/rust-in-android-platform.html

[6] 한국 러스트 사용자 그룹, https://rust-kr.org/

 

정확한 연도가 기억이 나지 않는데, 강남의 러닝 스푼즈에서 OKR 과정을 듣고 페친이 된 분이 개설하신 성과 관리 워크샵을 들었다. 그 때도 CFR(Conversation, Feedback and Recognition)이었던 것 같은데 그 때 대표님이 교육생분과 했던 시연이 인상적으로 생각이 나고 참여한 사람들이 나에게 했던 칭찬 릴레이(?)로 느꼈던 그 때 감정이 기억이 난다. 이 때 부터 Personal OKR을 Bullet Journal의 형식에 적용해 사용해 왔었지만, 올해는 회사에서의 10개월 가량의 교육 과정으로 이 것과 업무 이외에는 다른 활동에 들인 에너지는 최소화될 수 밖에 없었다. 이러한 와중에 이 번 성과 관리 워크샵을 들은 후에 든 생각은, 이 과정을 선택한 것이 내년이 더 풍성할 수 밖에 없는 Good Start라고 이미 단정 지어도 될 것이라는 것이다. 이렇게 생각하는 이유는 다음 3가지 부분이다.
 
교육에서 무엇 보다도 가장 인상적이었던 부분은 Mission과 Vision에 대한 부분이다. 과정 중에 Mission과 Vision을 North Star와 North Pole에 비유해주신 부분이 너무 와 닿았다. 앞에서 언급한데로 올해는 내가 하고 싶었던 목표와 과정 측면에서는 모두 만족스러운 한해였지만 거기에 너무 함몰되었던 한해이기는 하다. 즉, 내가 가려는 방향은 잊고 내 목적지에 함몰하고 있다는 것을 깨닳게 한 것도 이 부분이다. 이런 상황에서는 아주 쉽게 길을 잃고 그 주변을 맴돌거나, 더 잘 못되면 잘못된 방향으로 길을 걸을 수도 있을 것 같다. 그러니, 기존에 잊고 있던 내가 잠시 잊고 있던 Mission/Vision 그리고 Goal, 즉 Objective와 느슨해 진 연결을 정비할 때가 된 것이다. 이러한 깨닳음이 지금의 나를 관통하고 지나가고 있다.

두 번째는 과정 중 MBO와 OKR에 대한 관점에 대한 들은 이야기는 기존의 나의 관점을 깨뜨렸기 때문이다. 얼마 전 후배와 식당에서 식사를 타기 위해 줄을 서 있으면서 한 잡담 중 했던 이야기가 생각난다. 자기 배우자와 자기가 너무 달라 힘들다는 이야기를 하면서 이런 저런 잡담을 할 때였다. 이 때 후배에게 했던 이야기를 짧게 줄이면  "정말 두 사람이 완전히 다르면 서로 관심도 없었을 것이다. 두 사람이 대부분 비슷하고 약간 다른 몇가지 때문에 다르게 보이는 것이다."라는 이야기이다. 즉, MBO와 OKR도 성과 관리라는 측면에서 보면 공통점이 많고, OKR이 성과 관리를 Agile하게 접근하는 것이라는 설명은 너무 인상적이었다. 결과적으로는 개인적으로 뿐 아니라, 회사 업무에서도 상위 목표들과 우리들의 Mission/Vision을 Align하는 것 그리고 구성원들을 여기에 더 참여시켜야 겠다는 Action Item으로 만들게 되었던 순간이었다.

세 번째는 상대를 인정하는 부분에 대한 것이다. 최근에 회사에서는 코칭 강의에서도 소개 받고, 기존에도 여러 번 들었던 이너 게임 책을 읽고 있다. 이와 더불이 같이 복잡계 공부하는 분 통해 알게된 동기 면담 과정도 참여했었다. 이 두가지와 성과 관린 워크샵에서도 약간 다르지만 비슷하게 들린 부분이 대화 상대방에 대한 태도에 대한 것이다. 물론 이너 게임은 나 자신에 대한 것이지만 나를 객관화 한다면, 혹은 이 이너 게임을 코칭의 개념으로 생각해 본다면 그 태도가 유사하다는 생각이다. 이 부분을 실행한다는 부분은 매우 어려운 점이라고 생각된다. 회사에서도 실재로 매우 격하게 느끼고 있던 부분이다. 그래도, 내가 실행해보고 싶은 부분이기도 하다. 내년에 내가 이 부분에 대해서 책에서 이야기 하는 것들을 발견할 수 있을 지 걱정되면서도 기대되는 부분이다. 

 

2022년이 2주 가량 남아 있는데 너무 큰 숙제가 남았는지도 모르겠다. 하지만, 그것이 힘들더라도 즐거울 것이라는 것은 의심의 여지가 별로 없다. 과정에 마지막에 느꼈던 것 처럼 동기(Motivation)이 뿜뿜일 것이라고 생각되기 때문이다.

'Objectives & Key Results' 카테고리의 다른 글

OKR 실수 (그리고 고치는 방법)  (0) 2020.10.09
퍼스널 OKR  (0) 2020.10.09
OKR의 기술, 속편  (0) 2020.08.02
퍼스널 OKR(Personal OKRs), 그리고 3년 후  (0) 2020.07.25
Objectives and Key Results (OKR)  (0) 2020.01.02

복잡계 3인방 오프라인 모임을 가졌다. 무엇보다도 린다 라이징의 이야기가 나와서 반가웠다. 그러고는, YouTube에서 다니엘 커너만의 "생각에 대한 생각(Thinking, fast and slow)"에 대한 그녀의 발표 [1, 2]를 들었다. 무엇보다도 그녀의 문제 해결 접근법이 매우 인상적이었다.

 

1. 문제를 정의한다. 크게 이야기 해보고, 종이 위에 써본다.

2. 데이터가 충분한가?
3. 해결하기 위해 최소한의 시간을 투자한다. (1번과 2번의 내용을 조정하기 위해서 사용하기도 한다) 10분이 넘지 않게 한다.

4. 적절한 해결 방안이 나오지 않는다면, 그 일에서 손을 놓는다. 아마도 다음과 같은 일을 할 수도 있다.

    - 다른 작업을 한다.

    - 서거나, 앉거나, 스트레칭을 한다.

    - 짧은 휴식(bio break)을 취한다.

    - 긴 휴식을 취한다. (운동, 식사, 다른 용무, 수면)
5. 인사이트가 없다면, 위 단계를 반복한다.
6. 시스템 1은 항상 옳지는 않다. 시스템 2가 최종 결정을 하게 한다.

 

아마도 이미 많은 사람들이 사용하는 방법일 것이다. 특히, 4번의 경우는 이미 알려진 아이디어를 찾아내는 방법이라 할 수 있다. 그녀의 발표에도 있는 스티브 잡스의 "Let's go for a walk"라는 인용에서도 대가들의 이 도구 사용에 대해서 슬쩍 살펴 볼 수 있을 것이다. 송 나라 시대의 구양수의 시상을 생각하는 세 가지 장소인, 침상, 마상, 측상과 연결 되기도 한다. 누군가가 놀리고 웃을지도 모르지만, 어려운 문제를 만나게 되면 나도 사용하던 방법들이기도 하다.

 

참고

[1] Linda Rising, "Thinking, fast and slow" slides, https://agile2018.sched.com/event/EU9Z/thinking-fast-and-slow-so-what-can-we-do-about-it-linda-rising

[2] GOTO conference, Linda Rising, "Thinking, fast and slow", https://youtu.be/XjbTLIqnq-o

[3] Microsoft Research, Daniel Kanhmen, "Thinking, fast and slow", https://youtu.be/C-4MM8sd3BE

 

 

 

'Technical Leadership' 카테고리의 다른 글

다니엘 핑크: 후회의 재발견  (0) 2023.02.25
ChatGPT에 대한 짧은 생각  (0) 2023.02.16
소프트웨어 엔지니어를 위한 책 추천  (3) 2022.04.15
로버트 마틴 vs. 마틴 파울러  (0) 2022.03.15
나의 책장.  (0) 2021.12.12

Waydroid는 Linux 기반의 기기에 Android를 Container로 동작케 한다. 리눅스만 설치 되며 쉬운데, 사실 리눅스 설치가 어렵다는 생각이 들었다. 여기서는 포인트와 참고할만한 싸이트를 정리해 두자.

 

1. Ubuntu 설정

Ubuntu는 현재(2022년 4월) Focal과 Hirsute를 지원한다고 한다. 우선은 설치를 해야 하고, 나는 외장 저장소(혹은 Micro SD를 메모리 형태로 가능)에 설치하는 방법을 정리해 둔다.

 

아래는 추천하지 않는 방법

  1. ISO를 받아 USB로 부탕하여 시도하는 버전: lxc 등 설치가 되지 않고, binder에도 문제가 있어 권하지 않음.
  2. Virtual Machine: 렌더링 성능이 나오지 않아 매우 느림 비추천.
  3. WSL은 시도해 보지 않았지만, 아직 이슈가 많은 듯 (waydroid.io 참고하여 시도해볼지 확인할 것)

 

외장 메모리를 이용하여 Ubuntu 설치하기 위해, ISO로 만든 부팅 USB를 이용하여 부팅을 한다.

Terminal에서 gparted를 이용해서 외장 저장소(메모리 상관없음)를 사용하여 storage와 swap을 잡는다. [1]을 참조하면 된다.

 

관련된 몇가지 이슈가 있었는데 다음 링크를 참조하면 좋겠다.

  1. 검은 화면으로 부팅이 안되는 경우: [2]
  2. UEFI관련 이슈: 다시 설치할 때 부팅이 안되거나 아니면, Ubuntu 삭제시 참고 필요 내용 [3]

 

설치는 되었는데, Ubuntu 부팅을 하지 못하는 경우는 설치 장소를 못 찾는 경우이므로 USB로 외부 저장소를 잡아 볼 수있다. Wifi 안되는 경우도 있었는데, 이 부분은 커널 빌드가 필요하다고 하나, 시도 하지 않았다.

2. Waydroid 설정

Waydroid 설치[4]를 위한 관련 package (curl, lxc, ptyhon3, ca-certificates)를 설치한다.

Ubuntu 버전 (hirsute)를 찾아 아래에서 (bullseye)를 바꾸어 실행한다.

export DISTRO="bullseye" && \
sudo curl -# --proto '=https' --tlsv1.2 -Sf https://repo.waydro.id/waydroid.gpg --output /usr/share/keyrings/waydroid.gpg && \
echo "deb [signed-by=/usr/share/keyrings/waydroid.gpg] https://repo.waydro.id/ $DISTRO main" > ~/waydroid.list && \
sudo mv ~/waydroid.list /etc/apt/sources.list.d/waydroid.list && \
sudo apt update

설치, init 그리고 container를 실행한다.

 

3. App store

F-droid와Aurora가 가능하다고 한다. apk를 받아서 설치한다[5].

waydroid app install xyz.apk

 

4. 총평

Waydroid는 아직 불안하지만, 여러 앱이 동작한다는 부분에서는 충분히 멋지다. 특히, AOSP를 Open Source화 한 LeanageOS의 버전이 올라갈 수록 흥미로운 일일 것으로 보인다.

 

참고내용

[1] [4-2] 외장하드 SSD에 Ubuntu 16.04.1 LTS 설치하기, https://developer-thislee.tistory.com/12

[2] 우분투 USB 설치 블랙스크린 해결, https://arca.live/b/programmers/29170509

[3] 윈도우 EFI 파티션 마운트 및 수정하기, https://blog.djjproject.com/389

[4] Ubuntu/Debian Based Install Instructions, https://docs.waydro.id/usage/install-on-desktops#ubuntu-debian-based-install-instructions

[5] Install and Run Android Applications, https://docs.waydro.id/usage/install-and-run-android-applications

 

 

 

 

+ Recent posts