Python
-
pyenv + poetry 조합으로 다양한 python 버전 개발환경 구성Python 2022. 6. 26. 14:24
오랜만에 글을 쓰게 됐네요. 다른 언어도 마찬가지이겠지만 파이썬으로 개발을 할 때 두 가지 경우가 있습니다. 1. 처음부터 프로젝트를 시작하거나 2. 이미 진행되고 있는 프로젝트에 참여하거나 첫 번째 경우라면 poetry init 명령어를 통해 현재 설치돼있는 파이썬 버전으로 시작해도 되지만 기존 프로젝트에 참여하게 된다면 해당 프로젝트가 어떤 파이썬 버전으로 개발됐는지에 따라 나의 개발환경도 맞춰주어야 합니다. 버전에 따라 https://python.org 에서 맞는 버전을 다운로드하여 설치해도 되지만 엄청 귀찮은 일이 될 것입니다. 당장 여러분의 터미널 화면에서 python 또는 python3라고 쳐보세요. 설치된 환경에 맞는 파이썬 버전이 실행될 것입니다. 간단하게 원하는 파이썬 버전을 설치하고 실..
-
파이썬으로 웹 크롤링 쉽게하기Python 2021. 11. 2. 23:41
말은 쉽게 하기라고 했지만 쉽지 않을 수 있습니다. 오늘 크롤링을 도전해볼 페이지는 네이버 랭킹뉴스입니다. 언론사별로 조회수가 많은 기사 순위를 보여줍니다. 이것을 크롤링해서 이렇게 저렇게 지지고 볶아보면 어떤 인사이트를 얻을 수 있지 않을까요? 아마도 현재 가장 언급이 많이 되는 이슈와 사람들의 관심을 알 수 있겠죠. 일단 크롤링으로 랭킹뉴스를 다 수집해보고 분석은 이후에 해보도록 합니다. 크롤링 환경 구성 우선 크롤링을 하기 위해 적절한 환경이 구성되어야 합니다. Python이 설치되어있어야 하는 것은 당연하고 여기에서 사용할 라이브러리는 다음과 같습니다. Requests Beautiful Soup pip install 로 설치하거나 poetry로 설치하면 됩니다. poetry 사용법은 다음 글을 참..
-
Apache Airflow, ETL Workflow 개념Python 2021. 9. 8. 23:43
ETL Workflow 개념 ETL(Extract, Transform, Load)에 관해 들어보신 적 있나요? 쉽게 큰 조직에서 데이터를 정제하는데 쓰는 방법을 말합니다. 조직이 크다는 의미는 다시 말해 데이터의 소스가 한군데가 아니라는 뜻입니다. ETL은 여러 곳에 퍼져있는 정제되지 않은 데이터를 추출(Extract)하고 용도에 맞게 변형(Transform)하고 그렇게 정제된 데이터를 한곳에 로드(Load)하는 프로세스를 의미합니다. Apache Airflow Apache Airflow는 위에서 설명한 ETL 워크플로우를 편리하게 해주는 도구이며 파이썬으로 작성됐습니다. 공식 홈페이지 설명에 따르면 "에어플로우는 워크플로우를 프로그래밍적으로 작성하고 스케줄링하고 모니터링하는 플랫폼입니다." 라고 소개합..
-
FastAPI(Python)과 Svelte로 무작정 웹 개발하기(기초) - 3Web 2021. 8. 20. 22:29
FastAPI(Python)과 Svelte로 무작정 웹 개발하기(기초) - 2 FastAPI(Python)과 Svelte로 무작정 웹 개발하기(기초) - 1 여러분이 아는 서비스 중 파이썬으로 개발된 서비스가 얼마나 될까요? 대표적으로 Instagram이 Django로 개발됐다고 알려졌죠. 그 외에 Reddit, Spotif mattpy.tistory.com 지난 글에서 Svelte와 FastAPI를 조합하는 방법을 간단하게 알아봤습니다. 이번에는 rollup.config.js를 수정해서 좀 더 편한 개발환경을 만들고 백엔드(FastAPI)와 프론트엔드(Svelte) 작업을 통해 간단한 글쓰기 기능을 하나 만들어 보겠습니다. 핫 리로딩(Hot Reloading) 사용하기 프론트엔드를 개발하게 되면 내가 ..
-
FastAPI(Python)과 Svelte로 무작정 웹 개발하기(기초) - 2Web 2021. 7. 28. 22:40
FastAPI(Python)과 Svelte로 무작정 웹 개발하기(기초) - 1 여러분이 아는 서비스 중 파이썬으로 개발된 서비스가 얼마나 될까요? 대표적으로 Instagram이 Django로 개발됐다고 알려졌죠. 그 외에 Reddit, Spotify, Dropbox, Quora 등 많은 유명한 해외 서비스가 파이썬 mattpy.tistory.com 전편에 이어 개발환경 설정이 완료됐다면 이번 편에서는 FastAPI에 관해 다뤄보도록 하겠습니다. 지난 편에 폴더 구조를 보셨나요? pyproject.toml 파일이 존재하는 경로에 main.py라는 파일을 만들고 아래와 같은 코드를 작성해보도록 하겠습니다. from fastapi import FastAPI app = FastAPI() @app.get("/")..
-
FastAPI(Python)과 Svelte로 무작정 웹 개발하기(기초) - 1Web 2021. 7. 26. 23:17
여러분이 아는 서비스 중 파이썬으로 개발된 서비스가 얼마나 될까요? 대표적으로 Instagram이 Django로 개발됐다고 알려졌죠. 그 외에 Reddit, Spotify, Dropbox, Quora 등 많은 유명한 해외 서비스가 파이썬으로 작성됐습니다. 물론 서비스의 규모가 커지면서 파이썬 한 가지 언어로만 서비스를 구성하지는 않습니다. 그러나 메인 언어가 파이썬이라는 것이 중요하죠. 생산성이 좋다는 이유로 초기 제품을 개발할 때 파이썬을 많이 사용하곤 합니다. 메인 서비스 외에도 많은 분야에서 파이썬이 활용되고 있다는 점은 다들 아실 겁니다. 그렇다면 파이썬으로 어떻게 서버를 개발할 것인가에 관해 답하기 위해 이번 글에서는 파이썬으로 작성된 FastAPI라는 웹 프레임워크로 블로그를 만들어 볼 겁니다..
-
Poetry로 Python 개발환경 만들기Python 2021. 7. 18. 22:18
개발 중 제일 어렵다는 개발환경 만들기. 대부분의 언어는 패키지 매니저가 존재합니다. 기본 내장 라이브러리 외에 사용자 라이브러리를 써야 할 일이 많기 때문이죠. 오늘은 파이썬의 패키지 매니저 Poetry에 관해 소개하려고 합니다. Poetry 공식 홈페이지: https://python-poetry.org/ Poetry - Python dependency management and packaging made easy Dependency resolver Poetry comes with an exhaustive dependency resolver, which will always find a solution if it exists. And get a detailed explanation if no solut..
-
Django의 settings.py와 KMS(Key Management Service)에 관해Python 2020. 2. 16. 16:12
많은 Python개발자들이 웹서비스를 개발한다면 아마 웬만하면 Django를 우선적으로 고려하지 않을까 싶네요. 이번에 하고 싶은 이야기는 Django의 settings.py의 설정 값들에 관한 보안 처리입니다. 그동안 다양한 방법으로 비밀스러운(?) 값들을 보관하고 사용하다 최근에 KMS로 다 교체하였습니다. 그러므로 오늘 주제는 KMS를 활용한 settings.py 설정 값의 암호화 settings.py에 관해 수 년 간 Django를 통해 엔터프라이즈 급 서비스를 개발하고 운영하고 있습니다. 그 동안 서비스를 유지&보수하면서 느낀 것들이 많았어요. 처음 서비스 개발을 시작할 때 알았으면 좋았을 것들 말이죠. 그중 하나가 Python 소스코드 레이아웃입니다. 보통 처음 하시는 분들은 django-ad..