일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- git
- github actions
- 프로그래머스 월간 코드 챌린지
- heroku
- 스코페2021
- 브랜디
- PostgreSQL
- 애드센스
- github
- Python
- 파이썬
- c#
- 프로그래머스 코딩테스트 연습
- terraform
- Spring Boot
- 바이오데이터 엔지니어
- 디자인 패턴
- selenium
- Firefox
- WPF
- Word Cloud
- 프로그래머스 월간 코드 챌린지 시즌1
- pycharm
- 프로그래머스 코딩테스트 연습문제
- PostgreSQL 설치 시 에러
- 스프링 부트와 AWS로 혼자 구현하는 웹 서비스
- Codeforces
- FastAPI
- 클린 코드
- 프로그래머스 코딩 테스트 연습
- Today
- Total
목록Python (14)
프로그래밍 연습하기
WSL로 파이썬 셀레니움을 사용하려던 중 다음과 같은 에러를 봤습니다. selenium.common.exceptions.InvalidArgumentException: Message: binary is not a Firefox executable 분명히 정확한 위치의 파이어폭스 바이너리 경로를 넣어줬는데 에러가 나서 감을 못 잡고 있었는데, 한참 찾다 다음과 같은 방법으로 해결할 수 있었습니다. options = Options() options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') geckodriver_path = "/snap/bin/geckodriver" # specify the path to your g..
Alembic의 alembic.ini 파일에 이런 식으로 DB 주소를 적는데요. sqlalchemy.url = postgresql://user:password@localhost:5432/database_name 저는 환경변수에 저장된 DB 주소를 불러오고 싶었는데, ini 파일이라서 환경변수를 사용할 수가 없었습니다. 그래서 방법을 찾아 본 결과 alembic init을 한 디렉토리에 있는 env.py 파일에서 다음과 같은 코드를 입력하는 방법이 있었습니다. config.set_main_option("sqlalchemy.url", os.getenv("DATABASE_URL", "postgresql://user:password@localhost:5432/database_name")) 설정 단계에서 환경 변..
FastAPI 앱을 만들어서 배포해보는 프로젝트를 하는데, Gunicorn 로그 포맷이 바뀌지 않는 문제가 있었습니다. 그래서 여러 방법으로 바꿔보려고 했는데, 여전히 성과가 없어 인터넷을 더 찾아보니 다음과 같은 이슈를 찾을 수 있었습니다. https://github.com/encode/uvicorn/issues/527 Honor gunicorn access log format · Issue #527 · encode/uvicorn When running under gunicorn, --access-logformat isn't honored. There was some discussion of this in #389, but I didn't see an open issue for it. github.co..
이번에는 FastAPI를 이용하여 간단하게 DB를 사용하는 앱을 만들고 테스트까지 작성해봤습니다. 단순히 API만 작성하고 프론트엔드 부분은 작성하지 않았습니다. 코드량이 많아서 블로그에 다 올리는 것은 힘들 것 같고, GitHub 저장소를 참고하시는게 좋을 것 같습니다. 테스트를 실행해볼 때는 환경변수 TEST 키를 생성하여 값을 TEST로 설정해줘야 config.py에서 설정한 테스트용 데이터베이스를 사용합니다. Github에 올리고 처음에 생성한 Heroku 앱과 연동하여 배포를 할 수 있습니다. Deployment method에서 GitHub를 클릭하고 저장소를 선택하면 됩니다. 이렇게 기초적인 배포까지는 완료되었습니다. 여기에서 완료를 해도 되고, 추가적으로 배포 전 테스트를 적용해볼 수 있습니..
안녕하세요. 간단한 백엔드 프로젝트를 해보려고 합니다. 심도있고 화려한 프로젝트라기 보다는 다양한 기술 스택을 간단하게 사용해보는 프로젝트로 계획하고 있습니다. 단계별로 나누어서 다른 스택으로 교체한다던지, 내용을 더 추가할 수도 있을 것 같습니다. 사용할 스택은 다음과 같습니다. Heroku, Terraform, Github Action, FastAPI를 사용할 예정입니다. FastAPI로 백엔드까지만 만들고 Terraform으로 Heroku 서버를 관리하면서 Github Action으로 테스트 후 Heroku에 배포하려고 합니다. Python을 다룰 때는 Pycharm을 사용했고, Terraform 코드(HCL)은 Visual Studio를 사용해서 작성했습니다. 먼저 시작하기 위해서는 Github ..
Pycharm을 사용해서 파이썬 코드를 작성하는데 전에 뜨지 않았던 Unexpected Argument라는 경고가 떴습니다. Sqlalchemy의 테이블을 정의하고 사용하는 부분이었습니다. Mixin 클래스를 만들어서 다중 상속 했더니 Argument를 예측하는 부분에서 문제가 생기는 것 같습니다. class Mixin(object): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) 이렇게 Mixin 클래스에 __init__을 정의해주어서 해결할 수 있었습니다. 참고 https://stackoverflow.com/questions/59606289/unexpected-argument-warning-on-mixin-with-pyt..
저는 파이썬 프로젝트를 할 때 Pycharm을 이용해서 프로젝트마다 Venv를 설정하여 사용합니다. 예전에는 그냥 VSCode를 이용했는데, Github에 올리려니까 의존성 관리를 위해 Venv를 사용하게 되었습니다. 그런데 VSCode로 하려니깐 제가 미숙한 탓에 설정이 제대로 안되고 계속 바뀌는 것 같아서 더 간단하게 관리할 수 있는 Pycharm을 사용 중입니다. 그런데 이번에 프로젝트를 하면서 새로운 패키지가 필요해서 Pycharm terminal에서 pip를 이용해서 설치를 했는데 설치가 안되었다고 뜨더라구요. 그래서 pip -V 를 입력해서 버전과 경로를 확인해봤는데 Venv를 통해 만들어진 환경이 아니라 기존 파이썬 환경이었습니다. Venv를 사용 중이니깐 Venv 파이썬과 pip가 먼저 실..
파이썬 웹 프레임워크 FastAPI를 사용해서 간단한 프로젝트를 진행 중 입니다. 처음에 계획했던 기능을 어느정도 만들어서 일단 실제로 배포해보고 계속 발전시켜나가려고 합니다. 처음에는 AWS를 이용해보려고 했는데, 이미 Free Tier로 사용하는 것이 있어서 Heroku(헤로쿠)를 사용하여 무료로 올릴 수 있었습니다. Heroku를 이용해보는 튜토리얼들이 잘 되있어서 저는 간단하게 제가 겪었던 문제와 해결 방법만 정리해보려고 합니다. Heroku에서는 기본적으로 파이썬 버전을 따로 지정해주지 않으면 3.9버전으로 돌아갑니다. 그런데 저는 3.7버전에서 개발을 하고 requirements를 작성해서 그런지 의존성 설치 하면서 에러가 떠서 runtime.txt 를 작성해서 3.7.10 버전으로 설정하였습..
FastAPI를 사용해서 웹 애플리케이션 프로젝트를 하는 중인데, 테스트를 하려는데 에러가 자꾸 나서 제대로 하지 못했었습니다. 발생한 에러는 Pycharm Run으로 pytest를 이용한 테스트 중에 app = FastAPI() app.mount("/static", StaticFiles(directory='static'), name="static") templates = Jinja2Templates(directory='templates') 이 부분에서 StaticFiles에서 static directiory를 찾지 못하는 에러와 templates directiory도 마찬가지로 찾지 못하는 에러였습니다. 그런데 직접 Pycharm 터미널에서 (venv) C:\Users\USER_NAME\PycharmP..
파이썬 Collections 에 defaultdict라는 것이 있습니다. 어디선가 몇 번 본 기억은 있는데 그냥 별 생각 없이 지나쳤었는데, 얼마 전 관련 글을 좀 보니까 상당히 편리한 Container 임을 알게 되었습니다. 예를 들어 어떤 문자열에서 알파벳의 수를 셀 때 일반 dict() 의 경우 알파벳들을 먼저 키로 등록 해두던가 아니면 문자열을 돌면서 먼저 해당 알파벳이 키로 있는지 없는지 확인하고 없으면 값을 1로 해주고 있는 경우 값을 1 추가해주는 그런 번거로운 방식을 써야되는데 my_dict = dict() my_string = "abc" for s in my_string: if my_dict.get(s): my_dict[s] += 1 else: my_dict[s] = 1 defaultdi..