Feb 13BFF (Backend For Front. aka Aggregator)BFF는 왜 사용할까? 마이크로 서비스 아키텍처로 구현된 이커머스는 여러 도메인 앱으로 구성되어 있다. 도메인의 예로는 회원, 장바구니, 주문, 상품, 쿠폰 등이 있다. 그리고 각 MSA는 프론트엔드에서 사용할 수 있도록 API를 제공한다. 그런데 이 API는 화면에 노출되어야하는 데이터에 최적화되어있지 않은 경우가 많다. 불필요한 …Bff5 min readBff5 min read
Published in 29CM TEAM·May 13, 2021PostgreSQL Autovacuum 장애 대응기 (1)29CM에서는 Amazon RDS for PostgreSQL를 사용하고 있습니다. 최근에 경험한 PostgreSQL Autovacuum 장애와 Vaccum 최적화 방법에 대해서 설명하고자 합니다. 배경지식 본론에 앞서 필요한 배경지식인 PostgreSQL의 MVCC 개념과 Autovacuum에 대해서 설명하고자 합니다. MVCC Pos …Postgresql12 min readPostgresql12 min read
Jun 8, 2020이커머스에서 검색엔진이 필요한 이유29CM에서는 ElasticSearch를 활용하여 검색 서비스를 운영하고 있습니다. 이번 글에서는 29CM 검색 서비스를 통해 “이커머스 상품 검색엔진의 역할”에 대해서 살펴보고자 합니다. 상품 검색 시스템을 처음 접한다면 검색 엔진의 필요성을 느끼지 못할 수도 있습니다. 일반적인 패턴처럼 RDB에 질의하면 된다 …Backend4 min readBackend4 min read
Published in 29CM TEAM·May 17, 2020테스트 자동화 도입 여정기29CM 백엔드 셀은 Pytest를 활용하여 자동화된 테스트 환경을 운영하고 있습니다. 팀에서 유닛 테스트를 작성한지 2년이 되어가네요. ✌️😊✌️ 이번 글에서는 “테스트 자동화”라는 개발 문화를 팀에 도입하면서 시도한 경험을 공유하고자 합니다. 테스트 코드 이해하기 + 환경 셋팅하기 🛠 테스트 코드를 도입할 때, 가장 먼저 필요했던 것은 “테스트 코드"의 의미 …Tdd6 min readTdd6 min read
Published in 29CM TEAM·May 10, 2020CacheOps — ORM에 Redis Cache 쉽게 적용하기29CM 백엔드 서버는 Django으로 구성되어있습니다. 이 글에서는 Django ORM Cache인 Cacheops를 도입하면서 분석한 자료를 공유드리고자 합니다. Cacheops란? Django ORM Redis Cache 도입이 용이하고, 쉽게 데이터를 동기화할 수 있도록 도와주는 파이썬 라이브러리입니다. Cacheops 적용하기 cacheops 패키지를 …Django7 min readDjango7 min read