2023 Q3 Review

번아웃이 심하게 오기도 했고, 지난 분기에 비해서는 이렇다할 큼지막한 이벤트도 별로 없다. 그나마 떠올릴 만한 것이라면, Rust 기반으로 CLI 도구를 만들기 시작했다는 것 정도겠고, 한 번 제대로 미쳐서 Vim 스티커를 600장 정도 주문제작해서 여기저기 뿌리고 다니고, 프롬프트 엔지니어링에 꽂혔다는 것 말고는 없을 것이다. 이번 분기는 비교적 지루하게 보냈다.

Timeline

  • 2023-07-23 - vim 스티커를 주문 제작해서 뿌리기 시작했다.
  • 2023-07-26 - aka 님을 독촉해서 zenn.dev1 에 트렌드로 올라간 글들을 자동으로 포스팅하는 봇을 만들었다.
  • 2023-08-12 ~ 2023-08-13 – 파이콘 2023 참가
    • 스폰서 부스를 돌아다니면서, 열린 공간을 돌아다니면서 Vim 스티커를 뿌리고 다녔다. 스폰서 부스에서 굿즈를 받아가는게 일반적인건데, “일반 참가자가 스폰서 부스에 굿즈를 뿌리는건 어떨까”라는 역발상에서 해본건데 나름 재밌었다.
    • Balpan CLI 0.1 버전을 릴리즈하면서 파이콘 1일차 라이트닝토크에서 소개했다.(발표자료)
      • 하필이면 라이트닝토크하는 시기에 발표하고자 했던 것도 나름대로의 이유는 있었다. Docker가 소개되기 시작했던 시기가 언제였는지 기억하는 사람이 얼마나 있을까?
      • 이미 알고 있는 사람도 많이 있겠지만, Docker는 PyCon US 2013에 소개가 되었다. Balpan CLI도 내가 의도한 만큼의 퀄리티로 만들어진 상태는 아니지만, 시작은 미약하나 끝은 창대하리라 라는 자기암시를 하고 싶었다. 어떻게 보면 상징적인 퍼포먼스를 하고 싶었다고 볼 수도 있겠다.
  • 2023-09-19 – 생일을 좀 조용하게 보내고 싶었어서 프로필에 적어놓은 생일 일부러 다 바꿔놓고, 소중한 사람들 한명 한명 찾아가서 시간을 보냈다. 잊혀지면서 지내는 삶에 좀 더 익숙해질 필요가 있다는 자각이 있었다.
  • 2023-09-30 – mastodon.nvim v0.2 출시
    • 2022년 12월 25일, 그러니까 딱 크리스마스를 기점으로 reddit에 홍보를 돌리고 트위터에도 홍보를 돌리고 hackernews에도 홍보를 돌리고 홍보를 위해서 수단과 방법을 다 동원했었지만 그렇게 큰 주목을 받지는 못했었다.
    • 추석 연휴이기도 하니, 중간중간에 영감이 떠올랐던 것들을 정리해서 겸사겸사 묵은 이슈들을 쳐냈고, 더 이상 쳐낼 수 있는건 없겠다는 판단이 들어 v0.2 릴리즈를 출시했다.
    • 홍보를 하기에는 telescope.nvim을 연결한다던가 nvim-cmp를 연결한다던가 좀 더 작업이 필요하다. UX를 좀 더 대폭적으로 손을 봐야 한다.

Highlights

Prompt engineering 삼매경

프롬프트 엔지니어링에 재미가 들리기 시작했다. 사실 인공지능 스터디를 옛날에도 몇번 해본적은 있었는데, 당장 쓸 일이 없는 블랙박스인 것 같다는 생각에 공부를 하다 말았던 적이 수십번은 있었던 것 같다. 그런데, 왜 프롬프트 엔지니어링에 재미가 들렸냐면, Neovim에서 OpenAI API를 응용할 수 있기 때문이다.

OpenAI API를 응용할 수 있는 가능성은 여기에서도 약간이나마 희망을 맛볼 수 있었는데, Neovim 생태계에도 OpenAI API를 응용하는 여러가지 플러그인도 있었다. 그 중에서 그나마 UX가 괜찮은 것이 NeoAI 였는데, 유지보수는 잘 안되고 있긴 해도 기본적으로 제공하는 기능 자체가 UI/UX가 괜찮은 편이었고, 내가 직접 프롬프트를 넣어서 원하는대로 커스터마이징이 가능했던 것이 큰 장점이었다.

Neovim에서 어떻게 프롬프트를 넣는지는 이미 dotfiles에도 공개가 되어 있다. 다듬을 여지가 많이 필요하지만, 아직까지는 만족하면서 쓰고 있다.

프롬프트를 넣으면서 느끼는 점이 있다면, 생각하거나 쥐어짜내기 귀찮은 것을 LLM에다가 외주를 줄 수 있다는 점이다. 심지어 시급도 저렴하다. 한번 프롬프트를 넣는데 10센트도 안된다. 적당한 멘트를 뽑아내고, 적당한 이름을 생각해보고, 고민하는데 드는 시간이 10분에서 30분까지 갈때가 있는데 GPT4 와 핑퐁하면 5분 안에 끝날때도 많다. 야매로 프롬프트를 넣을때도 적당히 괜찮은 퀄리티의 응답을 받을 수 있는데, 제대로 프롬프트를 넣으면 어떨까 싶은 생각을 자주 하고 있다.

물론, ChatGPT가 정확한 답을 내놓지는 않을때가 많다는 것은 알고 있다. 아무리 포맷을 명확하게 지정해주더라도 100% 내가 원하는 것을 내놓지 않을때도 굉장히 많다. 나같은 경우에는 정확한 대답을 원한다기 보다는 접근 방식, 혹은 대략적인 그림을 원하는 것이었기 때문에, 정확도에는 크게 기대하지 않았고 어떻게 흐름을 유지하고 어디에 포커스를 둘지를 생각하면서 프롬프트를 넣기 때문에 만족하면서 써왔던 것 같다.

프롬프트 엔지니어링을 진지하게 공부하려고 고민 중이었기에, DAIR AI에서 만든 프롬프트 엔지니어링 가이드도 하루 30분 할당량을 두고 읽고 있다.

뒤늦게 피부 관리

얼굴까고 스트리밍 해야한다고 생각하니 억지로 한다는 생각으로 하다말고를 반복했던 피부관리에 동기부여가 강하게 생겼다.

9월 중순부터 스트리밍을 진지하게 생각해보기 시작했던 것 같다. 사실 훨씬 이전부터 버튜버로 활동하려고 생각만 계속 하고 있었다. Asahi lina 라는 훌륭한 레퍼런스도 있고, 정상적인 개발 스트리머 중에는 ThePrimeagen, TJ Devries 같은 사람들도 있어서 틈틈이 보면서 연구중이기도 하다. 당장 실천하기에는 기술적으로 고려해야할 사항이 많았기 때문에 계속 미루고 있다. 요즘은 이세돌의 고세구도 자주 챙겨보고 있다

그렇지만, 세팅하는데 병목이 있다고 해서 계속 미루기만 할 수는 없을 노릇이다. 계속 미루다가 그냥 영영 안할바에는 차라리 빨간약2을 먼저 복용하고, 파일럿 방송을 조금씩 오픈하면서 방송에 대한 감을 잡는걸 병행해야겠다는 판단이 들었다. twitch

모든 것을 한번에 준비하려고 해서는 안된다고 생각한다. 모든 문제는 부분적으로 쪼갤 수 있고 부분적으로 해결할 수 있다면 당장 해결할 수 있는 것부터 해결하는 것이 최종적으로는 목표에 도달할 수 있는 확률이 더 높아진다고 생각한다.

Books

이번 분기에는 번아웃이 좀 심하게 와서 책을 제대로 읽지는 못했다. 지난 분기보다는 2배 정도는 읽어야지 하는 각오는 있었지만, 동기부여가 되는 흐름을 만들어내지 못해서 읽었다고 할 수 있는거라고 해봐야 3권 정도가 고작이다.

Thoughts

  • from note-taking to note-making 라는 글을 읽으면서 간만에 노트 작성에 대해서 다시 한번 돌아보게 되었다.
    • 아티클 3줄 요약
      • 1) 노트 필기 방법론을 너무 과신하진 말것
      • 2) Note taking은 빠르게 캡쳐하고 나중에 참고하기 위한 것이라면, note making은 내가 이해한 버전으로 컨텐츠를 생산
      • 3) Note making은 수동적으로 수집할뿐인 마인드셋을 적극적으로 생산하는 쪽으로 바꾼다.
    • Note taking에 대한 생각
      • 지금까지 컨퍼런스의 여러 세션들을 들으면서, 어떻게 보면 굉장히 비효율적이라고 볼 수 있는 식으로 노트 작성을 해왔던 것 같다. 온사이트에서 참여하는 컨퍼런스는 슬라이드를 보면서 한 글자도 놓치지 않고 타이핑을 하려고 하거나, 연사자가 하는 말을 최대한 많이 타이핑하려고도 했었다. 하지만, 결국에는 의미없는 정보의 나열로 끝날때가 많았고, 인사이트를 건지긴 커녕 기억에도 남지 않는 경우가 많았다.
      • 생각해보면, 이러한 방식의 note taking은 여유를 두고 생각할 시간을 아예 없애버린다. 하나하나 놓치지 말아야 한다는 강박관념 때문에 전체적인 흐름을 파악하는데 있어서도 인지부하가 생긴다. 속사 스킬을 늘린다고 하더라도, 노트로 일일이 작성하는 행위는 어느 정도의 인지부하와 노트를 작성하는 양에 비례하는 시간이라는 비용을 필요로 한다. 흐름을 온전히 파악하는데 신경을 집중하면서 핵심 키워드만 메모해서 도식화해두는 쪽이 차라리 장기기억으로 남기도 쉬웠을 것이다.
    • Note making에 대한 생각
      • 위 아티클에서 언급하는 Note taking은 사실상 제텔카스텐(메모상자)3에서 언급하는 것과 동어반복이라고 볼 수 있다. 제텔카스텐을 구성하는데 있어서도 RoamResearch, Obsidian, Notion 등의 도구를 많이 사용하는데, 정보를 유기적으로 조작하기 위해 신경을 쓰는데서도 인지부하가 발생한다. 특히, 그래프의 형태로 조직하는 노트 작성 도구일수록 이러한 인지부하가 더 생기는 편이다.
      • 제텔카스텐이라던가, PARA 라던가 노트를 어떻게 작성하고, 어떻게 조직할 것인지에 대해 안내하는 책들은 충분히 훌륭한 가이드라인을 주고 있다고 생각한다. 이런 방법론을 익힌다는 것은, 어떠한 개념들을 잘 학습하고 기록하기 위해서 배우는 것인데, 학습을 더 잘하기 위해 학습하는, 어떻게 보면 주객이 전도된 상황을 마주했었다. 내가 여기에 매몰되어야 하는지는 의문이다.
      • 정보를 조직하는 행위는 그 자체만으로 인지부하를 일으킨다. 간단한 노트를 작성하면서 정보를 조직하는 행위에 크게 힘을 빼고 싶지도 않다. 정보를 조직해야 한다면, 빈도를 좀 낮게 하고 싶을 뿐이다. 제텔카스텐에서 언급하는 방법론이나 PARA 같은 방법론도 이를 해결해줄 수 있는 충분한 시스템인 것은 자명하지만, 개인적으로는 카테고리는 둘로 나눠도 충분하다고 생각한다.
        • 개인적으로는 카테고리를 이렇게 둘로 나눈다.
          • 하루마다 작성하는 일일 노트 – TIL 및 하루 일과를 전부 나열한 노트에 가깝다.
          • 하나의 주제에 대해 종합된 노트 – wikipedia 문서와 같은 포맷이라 생각하면 될 것 같다.
        • 일일 노트에는 그저 생각나는거 휘갈기기만 하고, 관련된 어떤 개념이 있다면 그걸 연결해서 나중에 찾아가서 반영하면 된다. 그저 휘갈기기만 하면 되는 것이기 때문에, 인지부하는 0에 수렴한다.
        • 특정 주제에 대한 노트는 1주 ~ 1달 정도 간격을 두고 일일 노트를 비롯해서 다른 연관된 노트를 엮는 식으로 작업한다. 노트를 엮는 구성을 문서가 노드이고 내부 링크가 간선으로 취급하는 그래프로서 생각하고 있다면, 더더욱 인지부하가 발생할 수 밖에 없다. 노트를 휘갈기는 행위와 엮는 행위 자체도 컨텍스트 스위칭이 일어나기 때문에 최대한 덜 빈번하게 하는 것을 원칙으로 했다.
      • 말하고자 하는 바는, 어떠한 시스템을 강박적으로 지키지 않더라도 해결하고자 하는 문제를 부분적으로 해결할 수 있다면, 나에게 자연스러운 흐름을 유지하고 개선하면 잘 알려진 방법론들을 통해서 이루고자 했던 목표를 이룰 수 있게 되지 않을까? 라는 것이다.
    • 인지부하를 최소화하고, 강박관념을 최대한 멀리하고, 자연스러운 흐름을 만드는 것이 좀 더 생산적인 활동을 하는데 있어서 중요하다고 생각한다.

Conclusion

8월 말부터 시작해서 번아웃이 좀 심하게 왔다. 밥을 먹는 것도, 씻는 것도, 몸뚱이를 움직이는 것도 모든 것이 그냥 귀찮기만 하다. 생명을 유지하면서 살아야 하는 이유가 무엇인지, 내 삶이 그렇게 가치가 있는 삶인지도 모르겠고 그냥 허무주의 그 자체의 삶을 살고 있다. 이런게 딱히 부정적이라는 생각은 들지는 않고, 그냥 받아들이고 있다. 세상에 고립되는 사람이 나뿐만이 아니라는 자각도 있고, 고립되는 것을 받아들일 줄 알아야 한다고 생각한다.

  1. 한국으로 치자면 velog 같은 개발자 전용 블로그 호스팅 서비스라고 생각하면 된다. 

  2. 매트릭스라는 영화에서 현실을 자각하게 해주는 약으로 등장하는데, 버튜버가 실물을 공개하는것을 은유적으로 표현할때 이런 워딩을 사용한다. 

  3. https://wikipedia.org/wiki/Zettelkasten