task-centric vs. asset-centric workflow
dagster의 교육과정을 살펴보고 있다가 task-centric과 asset-centric이라는 단어를 보게되었다.
예를 든 초컬릿 칩 쿠키를 만드는 과정에서 task중심은 [재료모으기, 재료섞기, 초컬릿칩 추가하기, 굽기]로 Task를 기술하고, 재료나 중간가공품(쿠키 도우와 같은)은 별도로 표시(주석정도?)하는 방식이고, asset은 [주재표, 부재료, 중간가공품]과 같이 재품의 각 상태를 주요하게 기술하고, 각 상태를 전이시키는 task는 주석 정도로 표시하는 방식이다.
이 얼마나 명확한 방법인가 싶어, 이제까지 이런 생각을 못했다니 싶다.
참고로 Data engineering에는 asset중심이 더 유리하다 한다.
- data lineage측면. (이걸 혈통이라고 번역하면 좀 이상하기는 한데. 적절하기도 하다.)에 대한 파악이 용이하다고 한다. 일리가 있다.
- asset의 재활용 측면.
- asset의 freshness측면. (이걸 선도라고 번역하면.) 데이터가 얼마나 신선한가? 의미있는 부분이다.
- debugging측면.
dagster를 보다가 보니까 dbt를 자연스럽게 보게 된다.
Console + 인식
![]() |
|---|
| pamac를 실행했는데, 왜 Chrome을? |
아침에 jq라는 녀석을 한 번 해 보려고 pamac에서 jq를 설치하려 했더니 Chrome을 갱신하고 있다.
Manjaro를 사용 한 지 거의 1년이 다 되어 가지만 아직도 apt에 비해 익숙하지 않은건 사실이고, apt에 비해 더 가벼운 느낌이라는 것도 사실이다.
왜 더 가벼운 느낌일까?
Manjaro를 처음 사용하기 시작하면서, pamac와 pacman에 대해 구분하지 않고 대충 구글링해서 나오는 것을 기계적으로 입력하던 버릇은 apt에서 기인 한 것이라 생각된다.
이 부분을 잘 살펴보면, 인식, 인지 그리고 내가 지금 하려고 하는 것을 향한 돌진에 그것이 걸림돌이 되지 않는다면 아무런 상관이 없는 Console에 뿌려지는 단어들이라는 생각이다.
Rust + String
![]() |
|---|
| Rust에서 문자를 파라미터로 넘기는 모습을 봐라 |
새해들어서 어떻게든 호기심을 유지하려고 한 해 동안 모아두었던 링크들을 정리하고, 하나씩 해 보고 있다.
Rust의 경우. 첫 번쩨 빌드하기 위한 소스의 구조를 toml에 기술해줘야 한다는 것은.. 뭔 그럴수 있다고 치자.
그 다음 파라미터를 좀 보면서 문자열을 넘기는 부분을 보다 아연실색한다.
그리고 좋다고 생각한다.
형식은 언제나 익숙해지기 마련이다. 생각을 잘 하면 매우 유용 할 것이고, 가변적인 상황을 전부 상정해서 어떻게 하려면.. 아마 방법이든 패턴이든 라이브러리든 있을 것으로 생각된다.
2025년 살펴 볼 목록들 (시작)
2024년 프로젝트 진행하느라 링크만 남겨뒀던 것들을 주워모아 본다.
지인
바닐라 프론트: 이병옥 대표가 드디어 릴리즈 했다.
ETL or Data Process
아래 4개가 도출되었음
airflow - 아직까지는 가장 범용적 a platform created by the community to programmatically author, schedule and monitor workflows
Prefect Cloud 버전을 테스트중. local은 찾아보고 있음.
Mage 홈페이지에 AI틱한 문구를 띄우고 있지만.
dagster - data pipeline oneline solution? “Data engineering doesn’t need to be a drag"라는데?
luigi - build complex pipelines of batch jobs 간단한 깃헙 페이지?
jekyll + podman = 매번 할 때마다 느끼는 것이지만.
![]() |
|---|
| 이번에 주석 처리 한 것 |
매번 시스템을 바꾸거나하면서 jekyll을 재설치해야 하는 경우. 거의 몇 달이거나 1년만에 하는 경우가 많다보니 잊는다.
이번에 노트북을 새로 밀면서 거의 1년만에 다시 올리려고 보니 이미지를 빌드하는 과정에서 오류를 내 뱉는다.
무얼까? podman으로 바꿔서 안 되는 것일까?
jekyll이미지를 다시찾아보다가 마땅찬으니 build script를 다시 읽어보고, 별 거 없으니, Gemfile을 유심히 본다.
음… 오류메시지를 다시 본다.
mini_racer
얼마간의 시간이 지났으니 이번에는 저 녀석이 나가떨어졌나보다. 하면서 주석처리하고 다시 빌드하니 먹는다.
우리의 인식은 얼마나 오래 되었나?
한 두 주 전이었나? OwnTone이라는 Server를 발견하고는 무척이나 흥미로워했었다.
그리고 이케아에서 쉼포니스크 스피커를 할인하는 것을 보고 그 녀석을 들었다 놨다 사고 싶어 어쩔줄을 몰라하고 있었다.
그러다 문득 쉼포니스크가 AirPlay지원 이라면 AirPlay를 구성하는 서버도 있을 법 한데?
shairport-sync라고 아주 깔끔한 녀석이 이미 잘 나와있고 라즈베리파이3+B 정도면 아주 훌륭하게 작동한다.
![]() |
|---|
| Image Desc. |
WiFi형태의 네트워크 플레이어만 보면 어쩌던지 연결 해 보고 싶어하는 취미를 가진 사람으로서 이미 그 정신이 MPD에 머물러 있는 나는 이미 얼마나 옛날사람인가 싶다.
PCI passthrough
HASS를 올려 놓은 proxmox에서 블루투스장치가 필요해서 알아보니 PCI passthrough가 필요한 모양이다만.
과연 내가 사용하고 있는 자치에서 이게 된다는 건지 안된다는 건지 조사가 필요하다.
-
Blacklist Driver
Proxmox VE에서 PCI 패스스루를 설정할 때, 특정 장치에 대해 기본적으로 로드되는 커널 드라이버를 차단(블랙리스트)하는 것이 필요할 수 있습니다. 이는 해당 장치를 vfio-pci 모듈에 바인딩하기 위해 필요합니다. 블랙리스트를 설정하지 않으면, 기본 드라이버가 장치를 사용하게 되어 PCI 패스스루가 제대로 작동하지 않을 수 있습니다. -
OVMF
OVMF(Open Virtual Machine Firmware)는 UEFI(Unified Extensible Firmware Interface) 펌웨어의 가상화된 구현입니다. 이는 가상 머신(VM)에서 UEFI를 사용할 수 있도록 합니다. UEFI는 기존의 BIOS를 대체하는 최신 펌웨어 인터페이스로, 하드웨어 초기화, 운영 체제 로드 및 시스템 서비스를 관리합니다. OVMF는 특히 KVM/QEMU와 같은 가상화 플랫폼에서 사용됩니다.
acquiring lock * for container
![]() |
|---|
| 아침에 봤더니 이모양이다. |
ERRO[0000] Refreshing container 51761aec6dfe3ef8bd04b4bbff9625956787b37fbe248d654703462ca7a9ad4e: acquiring lock 2 for container 51761aec6dfe3ef8bd04b4bbff9625956787b37fbe248d654703462ca7a9ad4e: file exists
문제가 무엇인지 찾아본다.
- Github에서 누간가 질문한 글에서 유추하기를 Podman의 경우 root가 아닌 계정으로 작동하기 때문에 발생하는 것으로 보인다.
- loginctl이라는 녀석이 유용해 보인다.
GPT에게 질문해본다.
loginctl enable-linger 명령은 사용자가 시스템에 로그아웃한 후에도 그 사용자의 서비스가 계속 실행될 수 있도록 설정합니다. 이는 특히 rootless(비루트) Podman과 같은 도구를 사용할 때 유용합니다. 사용자가 로그아웃할 때 systemd가 사용자 세션과 관련된 리소스를 정리하지 않도록 하여 Podman 프로세스가 중단되지 않게 합니다.
setbool + httpd_can_network_connect
![]() |
|---|
| Nginx-Proxy 설정에 문제가 생긴다. |
처음에는 뭐가 문제인지 몰랐다. (이전에 사용하던 conf 파일을 집어넣었는데 말이다.)
$ getsebool -a | grep httpd_can_network
httpd_can_network_connect --> off
이 모든것이 SELinux에 대한 경험이 부족한 것에서 비롯되는 것이 아닌가 한다.
![]() |
|---|
| 그리고 모든 것은 로그에서 출발한다. |
Podman + iptable
![]() |
|---|
| Podman에서 Run했을때 마주한 에러 |
이런저런 사정으로 서버 전체를 다시구성하고 있는데, 뭔가 Ubuntu보다는 Rocky가 나은거 같아서 이번에도 선택을 했더니 알 수 없는 메시지를 뿌린다.
ERRO[0000] Starting some container dependencies
ERRO[0000] "netavark: code: 3, msg: modprobe: ERROR: could not insert 'ip_tables': Operation not permitted\niptables v1.8.10 (legacy): can't initialize iptables table `nat': Table does not exist (do you need to insmod?)\nPerhaps iptables or your kernel needs to be upgraded.\n"
Error: starting some containers: internal libpod error
좀 읽어보면 iptable에 insert를 못했다는 이야기인데.. 이제까지 환경설정하면서 처음 만나는 상황이 아닌가 싶다.







