분류 전체보기845 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. Python aiohttp Mocking 하는 방법 일반적으로 파이썬을 사용하여 request를 보낼 때 requests모듈을 사용한다. 하지만 해당 모듈은 async/await 즉, 비동기에 대해 지원하지 않으므로 비동기 요청을 보내기 위해서는 aiohttp등의 라이브러리를 사용한다. aiohttp를 통해 get메소드로 요청을 보낼 때는 아래와 같은 형태로 사용한다. async def request_get(url: str, response_type: str = 'json'): async with ClientSession(headers=headers) as session: async with session.get(url) as response: return await response.json() 보통 Mocking할 때 사용하는것이 unittest의 mo.. 2019. 10. 30. TravisCI Github 연동하는 방법 기존 회사에서는 Bitbucker pipeline을 통해 CI를 진행했었다. 하지만 개인 프로젝트에서는 소스 저장소로 깃허브를 사용하고있고 TravisCI를 사용해보고 싶어서 그 과정에 대해 포스팅을 남긴다. TravisCI 회원 가입 먼저 아래의 주소로 들어가서 회원가입을 진행한다. https://travis-ci.org/auth Repository 연동 원하는 레포지토리를 연동한다. 나는 hfive라는 레포지토리를 연동했다. .travis.yml 작성 language: python python: - 3.7.4 branches: only: - master - develop services: - mysql before_install: - mysql -e 'CREATE USER hfive@local.. 2019. 10. 29. OSX PostgreSQL 정리 계속 도커로 띄워서 사용하다보니 로컬에서 띄우는 방법을 잊어버려서 정리하고자 이렇게 포스팅으로 남긴다. 현재 맥북을 사용하고 있기 때문에 OSX를 기준으로 설명한다. 설치 brew install postgres 초기 접속 psql postgres 실행 postgres -D /usr/local/var/postgres 계정 생성 create user 계정이름 with encrypted password '비밀번호' DB생성 시 Owner 명시 create database 디비명 owner 계정이름 encoding 'utf-8' 생성한 유저 Superuser 권한 주기 alter user 계정이름 with superuser 2019. 10. 22. Django Middleware로 특정 주소 Redirect 시키는 방법 현재 서버는 모든 요청이 API Gateway를 한번 거쳐서 들어오는 형태로 구성되어있다. 각 서비스별로 팀내에서 부를 용어를 통일하기위해 hide처럼 임의의 명칭을 부여했고, 모든 요청앞에 /hide/와 같은 형태로 prefix를 붙이기로 했다. 기존에는 /api/v1/로 시작하는 URL들의 집합체였는데, 모든 URL들에 prefix를 붙이자니 조금 번거로운 작업이 될 것으로 생각하여 Django의 Middleware에 훅을 거는 방식으로 진행하였다. 위 사진을 보면 어떠한 형태로 Django의 Request/Response가 처리되는지 한눈에 알 수 있을 것이다. 우리는 Request가 들어올 때 prefix를 붙여주는 작업을 진행해야하므로 Request Middleware를 생성하기로 했다. fro.. 2019. 10. 21. 이전 1 ··· 11 12 13 14 15 16 17 ··· 141 다음