
API 서버 학습 : 모니터링
왜 모니터링이 필요했나요? 서비스를 개발중, 보다 면밀한 병목지점 파악 및 가시성을 위해 모니터링이 필요하다고 느꼈다. 캐시를 적용했지만, 여전히 커넥션풀 타임아웃이 발생해서 성능이나 요청 패턴을 실시간으로 확인할 필요가 있다. 또한, 추가적으로 성능 개선을 할 부분들을 하나씩 짚고 넘어가기에 좋다고 생각했다. 기존에 했던 코드 개선 & ...

왜 모니터링이 필요했나요? 서비스를 개발중, 보다 면밀한 병목지점 파악 및 가시성을 위해 모니터링이 필요하다고 느꼈다. 캐시를 적용했지만, 여전히 커넥션풀 타임아웃이 발생해서 성능이나 요청 패턴을 실시간으로 확인할 필요가 있다. 또한, 추가적으로 성능 개선을 할 부분들을 하나씩 짚고 넘어가기에 좋다고 생각했다. 기존에 했던 코드 개선 & ...

응답 캐싱 레디스를 사용해서 캐싱을 추가헀다. #redis.py from redis.asyncio import Redis class RedisConstants: CACHE_KEY_POST_ALL = "posts:all" CACHE_TTL_POSTS = 60 redis = Redis.from_url( "redis://lo...

부하테스트 Locust를 써서 현재의 “기본 게시판”이 얼마나 부하를 견디는지 보고, 이후에 붙일 것들을 생각해봐야 한다. 우선 현재의 엔드포인트들을 한 번 확인해본다: import random from locust import HttpUser, between, task USERS = [ {"username": "user1", "pas...

FastAPI로 만드는 게시판 프로젝트: 구현 과정과 앞으로의 확장 계획 기존에 AB180에서 인턴을 하며 Airflow와 Snowflake, Message Queue, AWS 등등 다양한 분야에 대해 Hands-on을 할 기회가 있었지만, 막상 API서버에 대한 작업은 적었다. 그래서 이번에는 기본 백엔드 API서버에 대해 학습을 해보기로 하며, 단...

데이터 저장과 질의를 위한 다양한 범용 데이터 모델

신뢰할 수 있고 확장 가능하며 유지보수하기 쉬운 애플리케이션

들어가며 최근 몇 주 동안 Airflow를 사용하며 가장 익숙해지고자 노력했던 부분이 로그와 에러 핸들링이었습니다. 특히, 이번 주에 Airflow DAG를 수정하는 작업을 하며 DAG와 Task의 상태를 모니터링하고, 발생하는 문제를 빠르게 파악하기 위해 로그를 적극적으로 활용했습니다. 따라서, 이번 TIL에서는 Airflow의 로그 관리와 외부...

들어가며 지난 2주간 업무를 배우며 밀접하게 사용해온 기술 중 하나는 Snowflake입니다. Snowflake에 대한 학습을 하고 싶었기에 공부하며 주제를 찾아보던 와중, 데이터 최적화 전략에 대해 살펴보면 좋을 것 같다는 생각이 들었습니다. 전통적인 RDBMS에서의 최적화 전략과 어느 부분이 맞닿아 있고, 어떤 부분에서 차이가 있는지에 포커스를...

들어가며 기존에 테스트 코드 작성 경험이 많지 않았습니다. 기존에 Java의 JUnit과 Node.js의 Jest를 조금씩 사용해봤지만, 잘 이해하고 사용한 것 같다는 느낌이 들지 않았습니다. 이번에 회사에서 작업을 하며 단위 테스트를 작성할 필요가 있었는데 폭풍검색과 기존 코드 컨텍스트를 보며 작성은 했지만 보다 잘 다루고 싶다는 생각이 들어 Py...

들어가며 AB180에 입사 이후, 처음 주어진 태스크는 API 버전 업그레이드 입니다. 작업하는 레포지토리에서 코드가 실제로 어떻게 배포되어있고, 작동하는지 감이 잡히지 않았습니다. 아키텍처를 보면 ECS에 배포되어 있는 것으로 나와있어 이에 대해 정리하면 도움이 될 것 같아 학습 주제로 선정했습니다. Amazon ECS Amazon ECS는 ...