Skip to content

2024 08 07

오늘의 계획

  • WSL1 문제를 회피하기 위해 codespace 를 사용하기로 결심함.
  • 따라서 내가 원하는 환경을 재현하려면 .devcontainer 를 작성할 필요가 있다. 작성하자.
  • omz 기본으로 활성화. 이미 설치는 되어 있던데?
  • rye, rust 등 설치
  • Elixir 언어에 대한 영감을 얻었다. 적어둘데가 여기밖에 없다. OffTopic 이지만. 일단 메모해두자.

Elixir 메모

  • 새 언어 나올 때 마다 python binding 부터 찾아보는 습관이 들었다. 찾아보니 진득하게 읽어보진 않았지만, message-passing architecture 인점을 이용해서 stdin/out 으로 메세지를 주고 받는 식으로 해결 하는 듯
    • https://medium.com/stuart-engineering/how-we-use-python-within-elixir-486eb4d266f9
    • https://elixirforum.com/t/best-way-to-get-elixir-to-work-with-python/19400/5
    • https://curiosum.com/blog/borrowing-libs-from-python-in-elixir
  • 웹 프레임워크로 https://www.phoenixframework.org/ 가 유명한듯. 여기서 시작해야 하나?
    • LiveView 는 별도의 프로젝트가 아니고 phoenix 의 기능인듯
      • SPA 도구랑은 안녕... 이고
      • Tailwind CSS 같은건 여전히 쓸 수 있고
      • 'LiveView는 자바스크립트 Hooks라는 기능을 제공하여 LiveView가 관리하는 DOM 요소에 대해 자바스크립트를 사용할 수 있도록 합니다' 라는걸 보니 JS 의존을 아예 없애는건 아닌 듯
      • 그래도 주요 비즈니스 로직을 한쪽에서 다 가져갈 수 있으니 좋아하는 사람이 생기는게 이해가 감
  • https://dev.to/logrocket/comparing-elixir-with-rust-and-go-13k7 좋아보임. 정독을 위해 킵.
  • 막대한 동시성이 장점인 언어라고 했는데... 그렇다면 gateway 로 쓸 수 있지 않을까...!
    • kong 같은건 쉽게 찾아지지 않았음
    • 그냥 kong 쓰는게...? 남들 쓰는데 이유가 있겠지
    • https://accenture.github.io/reactive-interaction-gateway/ 요거 한번 들여다 보자

진행

알고보니 omz 는 이미 설치가 되어 있었다. 기본 쉘이 bash 로 되어 있었을 뿐. chsh -s $(which zsh) 해서 당장의 필요를 해결함. 다음 인스턴스에서도 이 설정이 유지될지는 모르겠다.

다음 인스턴스에서도 omz 를 쓰고 싶어서, GPT 가 안내하는대로 devcontainer.json 을 작성함. 인스턴스 띄운 동안 과금되니 문서를 진득하게 읽을 시간이 없다. 작성한게 맞아 떨어지는지 확인하려면 일부러 인스턴스를 폐기해야 하는데 오늘은 내키지 않아서 패스. 다음에 문제되면 해결하자. rye, rustup 설치도 같은 이유로 오늘은 포기. 1회성으로 설치해서 쓰자.

codespace 용 devcontainer 이미지 그대-로 ci 에서도 쓸 수 있을 것 같아서 GPT 에게 이리저리 물어봤으나 도중에 고장남. 불가능한 과업인듯 하다. 욕심 내지 말고 setup-action 들로 해결하자.

rye 설치. https://rye.astral.sh/guide/installation/#add-shims-to-path 까지 따라해야 했다. (omz 공통 사항인듯)

cargo 없이 rye sync 하니, maturin 빌드에서 싪패한다. cargo 찾는거 보니 이정도면 친절한 도구임.

make run 했더니 fastapi 쪽 변경 때문에 실패함. 디펜던시 정정

commit 해보니 기본 editor 가 vscode... git config --global core.editor "vim" 해줌.

GIT_EDITOR 환경변수 때문에 소용 없었음. 이 문제 약간 불편할 뿐 큰 문제 아니다. 오늘은 넘김.

결과

https://containers.dev/ 문서를 찾음.

셋업은 잘 끝났고, 원하는 동작도 확인 했다. 여전히 make run 을 종료하려면 ctrl C 를 두번해야 한다. 다음 목표는 이걸 해결하는 것으로 삼으면 될 것 같음.