반응형

전체 글 90

[2023년 2월 회고] 소스코드 처럼 업무도 모듈화가 되려면... / 오, 나의 Python

안녕하세요. 글쓰는 개발자 입니다. 1월 회고를 2월 중순에 쓰는 바람에 금방 2월 회고를 쓰는 것 같아 시간이 더 빨리 가는 것 처럼 느껴집니다. 1월이 지난 1년 7개월을 돌아보면서 후련하면서 아쉽기도 하고 또 어떤 것을 새롭게 시작해야 할까 고민했던 시간이라면, 2월은 무언가 시작해야 했던 시간이었습니다. 신규 프로젝트를 설계하고 그 과정에서 약간의 깨달음도 있었습니다. 소스 코드는 인터페이스만 바라보지만 사람은 그 너머를 볼 수 있었기 때문에동료들과 원활한 소통도 가능했구나 하는 그런 것들 말이지요. 신규 프로젝트 아키텍처 설계 필요 기술 자료 조사 MLOps 의 ML Engine 쪽을 맡으면서 학습 Metric, 시스템 Log를 수집하는 Pipeline 아키텍처 설계를 마쳤습니다. 생각만큼 쉬운..

[Solved!] m1 macOS tensorflow error / tensorflow.python.framework.errors_impl.NotFoundError: Graph execution error:

m1 macbook에 anaconda를 설치하고 tensorflow 사용 중 발생한 에러를 기록합니다. 1. 환경 - python version : 3.8 - 가상환경 : conda - 설치 과정 conda env list # 가상환경 목록 확인 conda create --name tf python=3.8 # tf라는 이름의 가상환경을 생성하고 python 3.8 사용 conda activate tf # conda 환경 진입 # M1 chip tensorflow 설치 conda install -c apple tensorflow-deps # tensorflow dependencies 설치 python -m pip install tensorflow-macos python -m pip install tenso..

solved! windows python pre-commit error

Windows 환경에서 적용 불가 에러 해결 야심차게 Pre-commit을 잘 적용했고 동료들이 잘 썼지만 변수가 하나 있었습니다. 바로 Windows PC를 사용하는 환경에서는 pre-commit을 제대로 수행 할 수 없었습니다. 원인은 Python PATH 문제 였으며, 해결 방법으로 아래 처럼 pytest 수행 시 entry: 부분에 python path를 직접 넣는 방법이 있었습니다. ... - id: pytest name: pytest entry: C:\\Users\\sobor\\anaconda3\\envs\\venv\\python.exe -m pytest -s ... 하지만 이것은 아니라는 생각이 들었습니다. 각자 local 환경의 python PATH 를 위와 같이 입력하고, .pre-com..

Backend 2023.02.16

python pre-commit Git Hook / flake8 / pytest / PEP8, python pre-commit python path error

안녕하세요. 글쓰는 개발자 입니다. 원활한 협업을 위해 필요한 pre-commit 적용기를 소개합니다. 프로젝트를 리딩하면서 제가 꼭 하고 싶었던 코드 리뷰를 도입하고 실제로 활발히 진행 중입니다. 그런데 로직보다 PEP8에 맞지 않는 code convention check에 많은 시간이 소요된다는 것을 알게 되었습니다. 그래서 예전부터 적용해야겠다고 생각한 Git Hook 을 사용하여 pre-commit을 적용하였고 코드 리뷰 시, 조금 더 코드 구조와 로직에 집중할 수 있게되었습니다. 그럼 python backend (FastAPI) 환경에 어떻게 pre-commit을 적용했는 지 소개하겠습니다. 2023. 2. 16(목) 추가 내용 : 3. Windows 환경에서 적용 불가 에러 해결 (아래 링크)..

Backend 2023.02.15

Docker 환경에서 postgreSQL 설치, backup, restore 하기

안녕하세요. 글쓰는 개발자 입니다. "GNU GPL 2 license"여서 상업용으로 사용할 경우 "소스코드 공개 의무"가 있는 MariaDB 대신 쓸 수 있는 PostgreSQL을 Docker 를 활용해 설치하고 백업 및 복구 방법까지 소개합니다. 본래 docker compose로 작성하는 것이 가장 간편하지만 전체 인프라가 MSA로 구성 될 예정이고 최종적으로 kubenetes 로 관리 할 예정이기에 이런 방식이 굳이 필요하지는 않지만, 사내 docker network 교육 세미나를 위해 단계별로 작업한 내용을 공유합니다. 목차 1. 개발 환경 2. postgreSQL Docker Container 실행 3. DB 생성 4. postgres backup 5. postgres restore 6. doc..

Backend 2023.02.15

[2023년 1월 회고] 1년 7개월, AI 계약 관리 시스템 완성

안녕하세요, 글쓰는 개발자 입니다. 올해 목표 중 하나로 '매주 회고를 작성하는 것'과 과감히 타협하고 '매월 회고를 작성하는 것' 으로 방향을 틀었으나, 벌써 2월 중순이 되어서야 1월 회고를 쓰게 되었습니다. 이번 달 회고는 늦지 않도록 노력해야 할 것 같습니다. 올 1월 회고는 저에게 특별한 의미를 가집니다. 사실상 지난 1년 7개월의 회고라고 봐도 무방합니다. 제가 1년 7개월 동안 개발한 'AI 계약관리 시스템' 이 그랜드 오픈 하였고 오늘 이 시점으로 1개월 동안 사용자들이 잘 쓰고 있는 모습을 보니 감개무량 합니다. 그래서 1월 회고만 예외로 'AI 계약관리 시스템' 프로젝트 회고를 겸하려 합니다. '내가 하는 게 맞나?' 일을 미루거나 하기 싫다는 의미가 아닙니다. 이 프로젝트를 시작했을 ..

[Error] SCRAM authentication requires libpq version 10 or above 해결 / M1 Mac

안녕하세요. 글쓰는 개발자 입니다. 최근 기존 제품의 MSA 화 및 재 개발을 위해 설계를 마치고 그 중 Machine Learning 을 담당하는 Server 를 구축하던 중 발생한 Error 와 해결 과정을 간단히 소개하겠습니다. 요약 1. 에러 : FastAPI Server 를 Container로 띄우는 과정에서 발생 psycopg2.OperationalError: SCRAM authentication requires libpq version 10 or above 2. 원인 : m1 based macOS Computer 에서 발생하는 'libpg' error 3. 해결 방법 : Dockerfile 최상단 FROM 영역 '--platform=linux/amd64' 추가 # pull official b..

Django 실전 운용 - 2. Django project 생성

본 시리즈는 Python과 Django Backend 개발 경험이 있으신 분들을 대상으로 작성되었습니다. 안녕하세요. 글쓰는 개발자 입니다. 다수의 다양한 Project를 수주 받는 SI회사에서 Project 초기 세팅 비용 최소화 및 회사 차원의 기술 축적을 위해 수행한 Project Base 구축 과정을 시리즈로 소개합니다. 1. Project Base 구축 필요성 (요구 기능과 필요한 기술) 2. Django project 생성 3. Django, mariaDB, Redis with Docker Compose (예정) 4. settings.py 개발 환경, 운영 환경 분리 (예정) 5. Logging (예정) 6. Error Log 관리자 email 전송 (예정) 7. Django, Celery, ..

Backend/Django 2022.12.25

Django 실전 운용 - 1. Project Base 구축 필요성 (요구 사항과 필요한 기술)

본 시리즈는 Python과 Django Backend 개발 경험이 있으신 분들을 대상으로 작성되었습니다. 안녕하세요. 글쓰는 개발자 입니다. 다수의 다양한 Project를 수주 받는 SI회사에서 Project 초기 세팅 비용 최소화 및 회사 차원의 기술 축적을 위해 수행한 Project Base 구축 과정을 시리즈로 소개합니다. 시리즈의 첫 번 째로 제가 어떠한 동기부여로 이 목표를 달성했으며, 무엇을 이루고자 했는지 소개하겠습니다. 1. Project Base 구축 필요성 (요구 기능과 필요한 기술) 2. Django project 생성 3. Django, mariaDB, Redis with Docker Compose (예정) 4. settings.py 개발 환경, 운영 환경 분리 (예정) 5. Log..

Backend/Django 2022.12.23

Python Class Decorator 인자 값 전달 (Django, DRF, 권한 검증)

안녕하세요. 글쓰는 개발자 입니다. Python Decorator 에 관해 찾아보던 중 대부분의 자료가 가장 기본적인 case (인자를 전달하지 않는 함수형 Decorator) 만을 다루기에 다음과 같이 제가 필요로 하는 기능을 만족하는 Decorator 를 소개하고자 합니다. 1. Decorator 가 인자를 받아 올 수 있어야 함 2. Decorator 에 의해 wrapping 되는 method 의 인자로 받아 올 수 있어야 함 Decorator에 대한 Code Sample 만 소개하는 것 보다는 실무에서 제가 '어떤 상황에서 어떤 문제를 해결하기 위해 사용 했는지', 문제를 정의 하고 설계 및 구현에 이르기 까지의 과정을 간단히 소개하며 작성 했습니다. 구현 속에 Decorator 기능을 포함 시켰..

Python 2022.11.22
반응형