Coding345 파이썬 오픈소스 라이브러리 개발기 1. 개요 지금으로부터 약 3주 전, pythondi(https://pypi.org/project/pythondi/) 라는 라이브러리를 개발하여 pypi에 오픈소스로 배포하였다. 그 과정에 대해 간단하게나마 후기를 남긴다. 2. 뭐하는 라이브러리인데? pythondi는 무엇을 하는 라이브러리일까. 이에 대해 설명하기 위해서는 먼저 객체 지향 5대 원칙에 대해서 알아야한다. 이를 앞글자만 따서 SOLID라고 부르는데, 각 스펠링마다의 의미는 다음과 같다. (본 포스팅은 SOLID원칙에 대한 포스팅이 아니므로 간략하게만 설명한다) S: Single Responsibility Principle(단일 책임 원칙) O: Open Closed Principle(개방 폐쇄 원칙) L: Liskov Substituti.. 2019. 12. 6. readthedocs.org에 문서화하는 방법 1. readthedocs.org 가입readthedocs.org위 사이트로 들어가서 회원가입을 진행한다. 2. Sphinx 설치먼저 문서화할 파이썬 소스 폴더로 들어가서 docs라는 폴더를 하나 생성한다. pip3 install sphinx 그리고 위 명령어를 통해 sphinx를 설치한다. 그리고 아래의 명령어를 통해 설정을 시작한다. sphinx-quickstart 대충 뭐 이런식으로 여러가지 질문들이 나오는데 원하는대로 설정을 해주면, 최종적으로 위와 같은 화면을 볼 수 있다. make html 마지막으로 위 명령어를 내려주면 설정을 토대로 파일들이 생성된다. 3. 테마 설정 pip3 install sphinx-rtd-theme 위 명령어를 통해 테마를 설치한다. 기본적으로 설치되는 테마는 조금 직.. 2019. 11. 14. 파이썬 패키지 Pypi에 오픈소스 등록하는 방법 1. pypi 회원가입 https://pypi.org/ 위 사이트로 들어가서 회원가입을 진행한다. 2. setup.py 파일 생성setup.py 파일을 하나 생성하고 아래의 내용으로 채워넣는다. # encoding: utf-8 import setuptools with open("README.md", "r") as fh: long_description = fh.read() setuptools.setup( name="패키지 이름", version="버전", author="만든이", author_email="이메일주소", description="패키지 설명", long_description=long_description, long_description_content_type="text/markdown", ur.. 2019. 11. 12. Python Dependency Injection 오늘은 SOLID원칙 중 하나인 Inversion of Control(의존성 역전)에 대해 설명하겠다. 의존성 역전을 구현하려면 Dependency Injection라는 기법을 사용해야 한다. 관련 정보를 인터넷에 검색하면 대부분 자바의 스프링 프레임워크 예제가 나온다. 그만큼 스프링에서는 DI를 사용하는것이 일반적이며 널리 알려진 방법중에 하나이다. 하지만 파이썬에 관한 자료는 정말 찾기 힘들다. 인터넷에 공개되어있는 코드를 봐도 DI를 적용한 예제는 현재까지 본적이 없다. 그나마 몇가지 라이브러리들이 존재하긴 하는데, 실제로 내부에서 어떠한 형태로 돌아가는지 파악하기가 힘들어서 직접 구현해보고 그 과정을 이렇게 포스팅으로 남긴다. 먼저 다음과 같은 코드가 있다고 가정해보자. class Repo: de.. 2019. 11. 9. Github Actions와 Psycopg2 삽질기 오늘 Github Actions를 처음 접해봤다. 굳이 타 CI를 사용할필요 없이 깃허브 하나로 통합하여 관리하기 위해 기존 소스들을 이전하는 작업을 진행중이었는데, 이 작업과 병행하여 MySQL을 사용하던 소스를 PostgreSQL로 이전하는 작업도 겸하였다. 여기서 문제가 발생했는데, 바로 psycopg2 라이브러리 설치가 정상적으로 동작하지 않는 것이었다. 현재 나는 OSX를 사용하고 있었기에 인터넷에서 찾아보니 다음과 같은 방법으로 해결이 가능하다는 것을 발견했다. env LDFLAGS="-I/usr/local/opt/openssl/include -L/usr/local/opt/openssl/lib" pip install psycopg2 아마 Mojave로 버전이 올라오면서 경로등의 변경으로 인해 .. 2019. 10. 30. Github Actions 연동하는 방법 일반적으로 CI에는 TravisCI/CircleCI/Bitbucket Pipeline등 다양한 옵션들이 존재한다. 나는 소스 저장소로 깃허브를 사용하고 있는데, 2018년도에 Github Actions가 등장하면서 깃허브 자체적으로도 CI기능을 이용할 수 있다고 한다. 따라서 이렇게 간단하게나마 포스팅으로 정리한다. 먼저 아래의 사이트로 들어가서 Sign up for beta 버튼을 누른다. https://github.com/features/actions 그다음으로 액션을 적용할 레포지터리로 이동하면 위처럼 Actions 탭이 존재한다. 클릭하여 들어간다. 기본적으로 위처럼 다양한 템플릿을 제공해준다. 하지만 우리는 직접 원하는 것을 작성할 것이므로 오른쪽 상단에 있는 Set up a workflow y.. 2019. 10. 30. 이전 1 ··· 10 11 12 13 14 15 16 ··· 58 다음