본문 바로가기

[Python] 파이썬 웹 프레임워크 입맛대로 골라보기 (Django, Flask, FastAPI 비교) 업무를 진행하다보면 좀 더 효율적으로 빠르게 작업하거나 결과를 확인할 수 있는 툴을 만들고자 하는 니즈가 자주 있었다. 그 덕분에 백엔드 개발자가 아님에도 불구하고 웹 프레임워크를 경험할 일이 꽤나 빈번하게 발생했다. 주로 demo를 만들어야 할 때는 Django를, 간단한 기능을 만들 때는 Flask를 사용하게 되었는데, 최근 FastAPI도 많이 사용되는 것을 보고 한번 써봤더니 가장 쉽게 구축할 수 있었다. 이왕 이렇게 다양하게 쓰게 된다면, 각각 어떤 장단점이 있는건지 제대로 알고 필요에 따라 적절하게 선택해서 사용해 봐야겠다는 생각이 들었다. 따라서 이번 글에서는 아래 순서대로 Python 웹 프레임워크들에 대해 살펴보고자 한다. (1) 대표 프레임워크(Django, Flask, FastAPI)..
[CPython 파헤치기] 사실 Python은 C로 구성되어 있다 - CPython 구성 요소 살펴보기 해당 글은 도서 CPython 파헤치기 1-4장을 기반으로 작성되었습니다. Python은 아래 2023년 stack overflow survey의 결과에서도 보여주고 있듯이 많은 개발자들에게 사랑받고 있는 언어 중 하나이다. 실제로 업무에서나 다른 개발 작업을 할 때 내가 가장 주 언어로 사용하고 있는 것이 Python인데, 정작 이렇게 많이 사용하고 있으면서 내부 구조를 어떻게 구성되어 있는지 알지 못해 매번 궁금했었다. 그래서 이번 글에서는 CPython 파헤치기 관련 첫번째 글로, C로 구성되어 있는 Python의 전반적인 내부 구조와 문법에 대해 살펴보고자 한다. C로 구성되어 있는 Python 우리가 일반적으로 이용하고 있는, 공식 사이트 python.org에서 다운로드 받는 python은 C로..
[OSSCA] python-mysql-replication - 오픈소스는 어떻게 테스트를 진행하고 있을까? 개발을 하다보면 기능 구현에 집중하느라 정작 테스트 확인은 간과하게 되는 경우가 많았다. 이 정도면 괜찮겠지..! 하고 넘기면 며칠 뒤의 나에게 고통을 선사하게 되는 악순환을 겪게 되었다. 특히 오픈소스는 누구나 기여할 수 있다는 부분으로 인해 테스트가 더 중요하게 여겨질 것이라고 생각이 들었다. 그래서 이번 글에서는 python-mysql-replication 오픈소스에서 어떻게 테스트를 구현했는지 살펴보고자 한다. 또한 2023 오픈소스 컨트리뷰션을 통해 기존 테스트 구현 방식을 직접 개선한 부분에 대해서도 담아볼 예정이다. 지난 글 다시 보기 python-mysql-replication - 개념 이해하기 python-mysql-replication - RandEvent 구현하기 python-mysq..
[OSSCA] python-mysql-replication - UserVarEvent 구현하기 이전 2023 오픈소스 컨트리뷰션 python-mysql-replication RandEvent 기여 활동 글에 이어 두번째 기여 작업이었던 UserVarEvent에 대해 이야기해보고자 한다. (이전 RandEvent 구현 내용은 https://heehehe-ds.tistory.com/204에서 확인할 수 있다.) [OSSCA] python-mysql-replication - RandEvent 구현하기2023 오픈소스 컨트리뷰션 python-mysql-replication 첫번째 기여 활동으로 진행한 RandEvent 구현 과정에 대해 살펴보고자 한다. (python-mysql-replication 설명은 이전 글 참고 : https://heehehe-ds.tistory.com/203) [OSSCA]he..
[OSSCA] python-mysql-replication - RandEvent 구현하기 2023 오픈소스 컨트리뷰션 python-mysql-replication 첫번째 기여 활동으로 진행한 RandEvent 구현 과정에 대해 살펴보고자 한다. (python-mysql-replication 설명은 이전 글 참고 : https://heehehe-ds.tistory.com/203) [OSSCA] python-mysql-replication이란? 지난 7월부터 2023 오픈소스 컨트리뷰션 아카데미라는 활동을 통해 오픈소스에 직접 기여하는 활동을 진행하게 되었다. 2023 오픈소스 컨트리뷰션 아카데미 Open Source Contribution Academy www.contribution.a heehehe-ds.tistory.com Event란? 먼저 Event는 이전 글에서 언급했던 바와 같이 p..
[OSSCA] python-mysql-replication - 개념 이해하기 지난 7월부터 2023 오픈소스 컨트리뷰션 아카데미라는 활동을 통해 오픈소스에 직접 기여하는 활동을 진행하게 되었다. 2023 오픈소스 컨트리뷰션 아카데미 Open Source Contribution Academy www.contribution.ac 오픈소스라면 그저 사용할 줄 밖에 몰랐던 사람인데.. 아직도 내가 스타 2000개 넘는 repo에 PR을 올리고 merge 시켰다는 사실이 믿기지 않는다..!! 총 20가지 이상의 프로젝트 중 python-mysql-replication이라는 오픈소스 프로젝트에 함께 참여했는데, 이번 글에서는 먼저 해당 오픈소스가 어떤 것인지 다뤄보고자 한다. Python-mysql-replication 이 왜 필요할까? 먼저 python-mysql-replication (..
[Github] 효율적인 개발 프로세스 구축을 위한 필수템, Github Actions 매일 특정 사이트를 크롤링해서 데이터를 추출하거나, 수정사항이 있을 때마다 배포를 하는 등 특정 시간마다 주기적으로 실행시켜야 하는 작업들이 있을 수 있다. 이런 과정을 자동으로 할 수 있게 도와주는 CI/CD 툴들이 이전에도 Jenkins나 전설의 cronjob 등으로 존재했지만, 2018년 github에서 제공하는 Github Actions가 나오면서 판이 뒤바뀌기 시작했다. 이번 글에서는 따로 툴을 구축할 필요도 없이 repository와의 뛰어난 연동성을 지닌 Github Actions에 대해 살펴보고자 한다. CI/CD 란?CI/CD는 Continuous Integration & Continuous Delivery / Deployment의 약자로, 지속적으로 통합 및 배포하는 과정을 말한다. 테..
[Docker] Docker란 무엇인가? "어라 제 서버에서는 잘 돌아갔는데.. 왜 xx님 서버에서는 안될까요?😲" 웹 애플리케이션 등을 개발하다 보면 흔히 마주쳤던 상황이다. 분명 작업하던 서버에서는 문제 없이 잘 돌아갔는데 왜 다른 서버에서는 매번 환경 설정 문제가 발생할까? 그래서 존재하게 된 것이 바로 Docker, 도커라는 친구이다. 이렇게 고래가 컨테이너 박스를 등에 이고 바다를 떠다니는 모습이 로고인데, Docker의 역할을 알고 나니 정말 잘 표현했다는 생각이 든다. Docker란 무엇일까? (a.k.a 밀키트 조리) Docker는 chatGPT 친구가 말해주듯이, 특정 애플리케이션을 어느 머신에서나 똑같이 구현할 수 있도록 도와주는 "컨테이너(container) 기반의 오픈소스 가상화 플랫폼"이다. 어느 머신(서버)에서나 con..