binaryflavor

Passion for learning and adopting new technologies with a focus on finding the right tool for the job.

FastAPI 에서 Request Body 를 로깅하는 방법
FastAPI

FastAPI 에서 Request Body 를 로깅하는 방법

의외로 운영에 매우 필요한 기능인데, 깔끔한 핸들링 방법을 못찾는다. 내가 원하는 요구사항은 이랬다. 절대로 API 로직이 있는 View코드 안에 로깅을 위한 코드가 1줄도 들어가선 안된다.모든 함수마다 반복해서 적용해야 하는 것은 안된다.Middleware로 처리되었으면 좋겠다. (사실 이게 제일 어려운 포인트)아무리 찾아봤지만, 뾰족하게 생각나는 방법은 없었다. starlette의 Request body를 까는

M1 바이너리가 제공되지 않는 테라폼 프로바이더 빌드해서 쓰기 (hashicorp/template)
golang

M1 바이너리가 제공되지 않는 테라폼 프로바이더 빌드해서 쓰기 (hashicorp/template)

terraform init 실패한다.테라폼을 m1 맥북으로 사용할 때 가끔, arm64 다윈 커널용 바이너리가 없어서 terraform init 에 실패하는 경우가 있다. 내가 최근에 겪은 hashicorp/template 의 경우로 해결하는 짧은 경험을 공유하고자 한다. What is the "Provider"?Home - Plugin Development - Terraform by HashiCorpLearn about developing plugins that connect Terraform

Docker 이미지로 AWS Lambda 만들기 (Boilerplate 포함)
AWS

Docker 이미지로 AWS Lambda 만들기 (Boilerplate 포함)

2020년 말, AWS Lambda의 새로운 기능으로 컨테이너 이미지 지원이 발표되었다. 기존 lambda 의 프로비저닝에 비해 얻을 수 있는 이점을 요약하자면 다음과 같다. - 최대 10GB 크기의 컨테이너 이미지로 패키징 및 배포할 수 있는 기능 제공 - Dependencies 관리 및 설치의 용이성 - 다른 linux distro 의 이미지에서도 사용 가능함. (다만,

Github Actions 의 crontab 스케쥴링 기능으로 외주 프로젝트의 Certbot SSL 인증서 재발급 자동화하기
Automation

Github Actions 의 crontab 스케쥴링 기능으로 외주 프로젝트의 Certbot SSL 인증서 재발급 자동화하기

Github Actions 에서의 crontab 스케쥴링?Github Actions은 crontab scheduling 을 지원한다. 적당히 간단한 job 을 주기적으로 돌리고 싶을 때, aws 에서 cron event 로 lambda 를 트리거하는 방법을 선택할 수도 있겠다. 하지만 이는 lambda 를 위한 추가적인 구현 수정이 필요하고 aws를 잘 모르는 개발자라면 이유모를 비용 청구에 대한 두려움이 있을

AWS S3, Cloudfront, Route53과 github Actions으로 정적 웹페이지 배포, 호스팅 자동화하기
AWS

AWS S3, Cloudfront, Route53과 github Actions으로 정적 웹페이지 배포, 호스팅 자동화하기

들어가기 전에예전에 잠깐 창업에 발을 살짝 들였을 때, 팀 사이트를 오늘 소개한 방법으로 배포한 적이 있다. 새로운 블로그를 최근에 만들었는데, 이 페이지를 배포할 방법으로 netlify 같은 서비스도 고민했지만, 그냥 깔끔하게 내가 다 만들어버리고 블로그 포스팅도 하자는 생각으로 다시 시도하면서 정리하게 되었다. 이 포스트에서는 vue, react 의 Client side application 뿐만

애자일하게 졸프하기; 1학기
Story

애자일하게 졸프하기; 1학기

프로젝트 시작하기컴퓨터공학과 학생이라면 누구나 4학년에 프로젝트를 의무적으로 하게된다. 갖은 풍파(?)를 견뎌내고 29살에 4학년을 다니고 있는 나로서는 꽤나 큰 고민거리였다. 졸업 프로젝트를 남들처럼 대충대충 CRUD 어플리케이션만 만들기엔 내 시간이 너무 아까웠다. 그렇다고 어마어마한 시간을 쏟아부어 내가 만족할만한 퀄리티의 소프트웨어를 내기엔 부담이 컸다. 나는 스타트업에서 개발자로 일하고 있으며, 코로나라는 특수한 상황으로

AWS Elastic Beanstalk Amazon Linux2 환경에서의 로그 커스터마이징 (Amazon Cloudwatch & EB Web Console)
AWS

AWS Elastic Beanstalk Amazon Linux2 환경에서의 로그 커스터마이징 (Amazon Cloudwatch & EB Web Console)

지난 블로깅을 통해 Amazon Linux 1 환경의 Elastic Beanstalk 어플리케이션을 새로운 Amazon Linux2 환경으로 마이그레이션 하는 과정을 소개하였다. 이번 포스팅에서는 Elastic Beanstalk 웹 콘솔과 Amazon Cloudwatch 를 통해서 내가 원하는 로그를 볼 수 있는 기능을 소개하려고 한다. 우리의 API 서버인 sachiel 은 모니터링을 위해 API 호출과 exception 로그를 분리해서 저장하고

elastic beanstalk Amazon Linux2 python 환경 마이그레이션 후기
AWS

elastic beanstalk Amazon Linux2 python 환경 마이그레이션 후기

HBsmith 는 메인 백엔드 API 서버와 백오피스 어플리케이션을 aws 의 elastic beanstalk 서비스를 이용하여 배포하고 있다. 2011년에 출시된 서비스인 만큼 많은 레퍼런스와 자료들이 존재하고 있으며, 모든 조직/서비스가 항상 컨테이너라는 기술이 항상 답이 될 수 없기 때문에 아직도 많이 사용되고 있는 서비스이다. 우리는 “Amazon Linux 2018.03 v2.9.20

DRF (django restframework)에서 HMAC Authentication 구현하기
python

DRF (django restframework)에서 HMAC Authentication 구현하기

Introduction내가 관리하는 API 서버는 다양한 타입의 클라이언트들로 오는 요청을 처리하고 있다. 기본적인 oauth 인증을 이용하는 웹 어플리케이션 뿐만 아니라, Windows server application, aws lambda 등 많은 어플리케이션이 HMAC 인증을 사용하고 있다. DRF (django Rest Framework)의 Permission Class 로 구현되지 않고, view 로직에 signature 검증 로직이 있는 상태다. 즉, 아무

aws MFA OTP를 잃어버렸을 때 (Google Authenticator) - DevOps엔지니어가 한 스프린트 업무를 통째로 날릴뻔한 썰
AWS

aws MFA OTP를 잃어버렸을 때 (Google Authenticator) - DevOps엔지니어가 한 스프린트 업무를 통째로 날릴뻔한 썰

새 아이폰을 구매하고 기존 아이폰에서 마이그레이션했다. 나는 마이그레이션을 하면, Google Authenticator 앱 정보가 그대로 넘어올 거라 생각했다. 사실 아무 생각도 안하고 쓰던 아이폰을 초기화했다. 😅 매일 aws 웹콘솔을 접속하는 나에게 MFA OTP를 잃어버린 사고는 매우 치명적이었다. 이걸 당장 복구하지 않는다면, 업무에 큰 차질을 빚을 수 있었다. 급한 마음에 aws 로그인 화면에서

Infrastructure as Code 를 읽고나서 (1)
Infrastructure

Infrastructure as Code 를 읽고나서 (1)

대규모 인프라 운영에 사람의 수작업을 최소화하려면 결국 자동화만이 해답이다. 자동화는 곧 스크립트나 소프트웨어의 영역이라는 점에서 클라우드 인프라 운영자라면 어쩔 수 없이 개발 세계를 기웃거릴 수 밖에 없게 된다. 계발 세계의 초기 진입 장벽을 고려하려면 개발자가 인프라 운영을 배우는 게 더 나아보이기도 한다. 어쨌든 인프라 운영자는 자동화를 위한 최소한의 개발 능력과

파이썬의 모든 변수는 객체(Object) : C와의 차이점은?
python

파이썬의 모든 변수는 객체(Object) : C와의 차이점은?

2019년에 작성한 글입니다. (https://www.binaryflavor.com/3) 파이썬은 파이썬만의 배우기 쉬운 문법때문에 잘 다루기 쉽다는 오해를 받습니다. 공식 문서를 꼼꼼히 살펴보면 파이썬의 구현을 잘 설명되어 있는데, 꽤 복잡한 구조로 구현이 되어 있음을 확인할 수 있습니다. 시간이 허락한다면 꼭 공식 문서를 읽어보시기 바랍니다. C vs Python (Cpython)/* C code */ int