본문 바로가기

전체 글418

python-snappy 설치하기 단순하게 pip install python-snappy를 실행하면 snappy.h 파일이 없다는 에러 메시지가 나온다. mac silicon 기준으로 일단 brew로 snappy를 설치해주자. $> brew install snappy 이 후 이제 이 snappy를 wrapping하는 python-snappy를 설치해야 한다. silicon의 경우 CPPFLAG 옵션을 통해 library와 헤더파일 경로를 명시해주어야 한다. 아래와 같이 명시해 주자. $> CPPFLAGS="-I/opt/homebrew/include -L/opt/homebrew/lib" pip install python-snappy 설치가 잘 되는 것을 확인할 수가 있다. 2023. 12. 15.
anaconda에서 pipenv 그리고 다시 pyenv로... anaconda을 그다지 추천하지 않는 방법이라 pipenv를 써보기로 결정했다. 일단 anaconda의 단점으로 너무나 큰 패키지 파일.. 그리고 conda install 시, anaconda에 패키징 되어 있는 패키지만 설치가 된다는 단점.. 요런 것들이 사용자로 하여금 약~~~간 찝찝함을 주었다. 게다가 pipenv는 python에서 공식으로 지원해주는 패키지 툴이라길래 믿음이 갔다. pipenv에는 lock 파일이 있어서, 보다 명확한 패키지 dependency를 보장한다. 단순 requirements.txt로도 해당 패키지의 의존패키지까지 dependency를 보장해주지는 않는다고 들었는데, pipenv는 해당 문제를 개선할 수 있어 보였다. $> brew install pipenv 위 명령을 .. 2023. 12. 14.
눈물의 pyenv .... 맥을 arm64로 변경하고 나서부터인가.. 갑자기 pyenv intall 이 동작이 되지 않았다!!! ~/.pyenv 폴더를 지우고, brew로 pyenv를 다시 깔아 봤으나 pyenv install로 파이썬을 설치하려고 하면 아래와 같은 에러가 발생!! Traceback (most recent call last): File "", line 1, in File "/Users/machizhov/.pyenv/versions/3.8.6/lib/python3.8/curses/__init__.py", line 13, in from _curses import * ModuleNotFoundError: No module named '_curses' 분명 mac에서 python 실행 후 from _curses impor.. 2023. 12. 14.
삼성 개발자 컨퍼런스 2023 원래는 15일에 배민에서 개최하는 컨퍼런스를 신청했지만 너무나도 쉽게 떨어진 바람에 다른 컨퍼런스는 머가 없나 찾아보다가 삼성 개발자 컨퍼런스를 다녀오게 되었다. 거의 5년만에 컨퍼런스인 것 같다. 그리고 솔직히 삼성은 소프트웨어 회사가 아니라고 생각하고 있어서... 요런 컨퍼런스를 꾸준히 하고 있는 줄은 상상도 못했다. DevOps Acceleration : 엔터프라이즈에서 동작하는 DevOps 모델 - 송주영 - 엔터프라이즈 회사에서는 왜 DevOps가 잘 안될까란 주제를 가지고 이야기를 시작한다. - 100명 이상이 존재하는 회사를 엔터프라이즈 회사라고 하며, 엔터프라이즈 회사에서의 서비스는 복잡하고 팀간 단절이 존재한다. - 잘못된 결정을 내리고 잘못된 결과를 도출하지만 그게 잘못된 건지를 모르고.. 2023. 12. 10.
pyflink 시작하기 회사 시스템을 flink로 변경해야 하는 이슈가 있어서 겸사겸사 pyflink를 사용해 보기로 했다. 아래는 flink docker file로 안내되어 있는 flink homepage https://nightlies.apache.org/flink/flink-docs-release-1.18/docs/deployment/resource-providers/standalone/docker/#using-flink-python-on-docker Docker Docker Setup # Getting Started # This Getting Started section guides you through the local setup (on one machine, but in separate containers) of a.. 2023. 11. 22.
k8s deployment에 sidecar 적용해보기 대부분의 pod는 1 pod = 1 container가 기본이나 동작 방식이나 응용 방식에 따라서 1pod안에 여러 개의 container를 두는 경우가 있다. 이러한 경우를 sidecar라고 하며 아래의 구조와 같다. 그냥 nginx를 별도 pod로 띄우고 micro service를 하면 되지 않을까?? 라는 생각을 잠시 하였으나, web application의 경우 nginx와 통신하기 위해서는 cross domain 문제도 설정해야 하는 이슈 등이 있기 때문에 일단 간편하게 위와 같은 방식으로 사용했다. sidecar를 설정하기 위해서는 아래와 같이 deployment.yaml을 작성해 주면 된다. apiVersion: apps/v1 kind: Deployment metadata: name: pro.. 2023. 9. 25.
E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. 2년 전에 마지막으로 빌드했던 docker file을 빌드하려고 했더니 아래와 같은 에러가 발생했다. E: The repository 'http://security.debian.org/debian-security stretch/updates Release' does not have a Release file. debian에서 저장소 repo가 업데이트 되었고, 이전 저장소는 삭제가 되어 발생한 에러였다. 아래와 같이 해당 위치에 있는 list 파일에서 저장소 url을 수정해 주자. /etc/apt/sources.list 기존 deb http://deb.debian.org/debian stretch main deb-src http://deb.debian.org/debian stretch main deb h.. 2023. 9. 11.
pytorch lightning으로 코드 변경하기 기존 pytorch로 작성한 모델을 pytorch lightning으로 변경하는 코드를 작성했다. pytorch lightning으로 변경 후의 코드는 훨씬 깔끔하고 가독성이 있어서 좋았다. 일단 아래의 pytorch 코드가 변경 전의 코드이다. def train(config): device = "cuda" if torch.cuda.is_available() else "cpu" print(f"Using {device} device") model = NeuralNetwork(config['input_size'], config['hidden1'], config['hidden2'], len(config['labels']), config['dropout']).to(device) criterion = nn.Cro.. 2023. 2. 19.
kfp image policy 정의하기 2022.12.29 - [machine learning] - Kubeflow pipeline 작성 및 pvc에 저장하기 kfp로 pipeline을 작성하고 실행하다 보면 image tag가 같은 경우 새로 이미지를 pull 받지 않고 기존 컨테이너를 활용하는 것을 확인 할 수가 있다. 해당 기능이 어떤 점에서는 편할 수 있지만 동작 시 혼란을 야기할 수 있기 때문에 kfp 정의 시 image policy를 정의해 주도록 하자. def train_op(): op = dsl.ContainerOp( name='Test', image='test:test01' ) op.set_image_pull_policy("IfNotPresent") return op.apply(onprem.mount_pvc(pvc_name='.. 2023. 1. 16.