San's Devlog

요람에서 무덤까지, 고객 경험 중심의 포인트 시스템 기획

리워드 포인트 시스템 시리즈 1부 : 최종적 일관성과 유저경험을 고려한 주문&결제 아키텍쳐 2부 : 요람에서 무덤까지, 고객 경험 중심의 포인트 시스템 기획 개요 만족스러운 고객 경험을 위해 어떤 기준으로 기획을 진행했는지 설명합니다 내부 구성원을 설득하기 위해 어떤 전략을 사용했는지 설명합니다. 배경 이전...

최종적 일관성과 유저경험을 고려한 주문&결제 아키텍쳐

리워드 포인트 시스템 시리즈 1부 : 최종적 일관성과 유저경험을 고려한 주문&결제 아키텍쳐 2부 : 요람에서 무덤까지, 고객 경험 중심의 포인트 시스템 기획 개요 외부의 기프티콘 발급 서버와 통신하여 기프티콘을 주문-결제하는 서비스의 아키텍쳐를 설명합니다 안정적으로 최종적 일관성(eventual consistency)...

EntityListeners를 이용한 엔티티 변경 로그 수집

개요 상황 저희 서비스는 데이터 수집을 위해 특정 엔티티의 변경 이력을 로그 테이블에 저장하고 있습니다. 기존에는 ‘로그 수집 로직’을 모든 ‘엔티티 변경 로직’에 붙이는 방식으로 처리하고 있었습니다. 그러나 이 방식은 엔티티 변경 로직이 변경 혹은 추가될 경우 로그 수집 로직을 명시적으로 작성하지 않으면...

오늘은 개발자가 된다고 말했다

오늘도 개발자가 안 된다고 말했다 최근 ‘오늘도 개발자가 안 된다고 말했다’라는 비개발자가 개발자와 어떻게 하면 원활하게 소통할 수 있을지에 대해 설명한 책을 인상 깊게 읽었습니다. 책에서는 협업에 긍정적인 개발자 유형뿐만 아니라 ‘냉소적이고 딱딱한 말투’, ‘영어로 된 낯선 개발 용어를 늘어놓는’ 등의 부정적인 타입의 개발자도 함께 소개합니다. 저...

CQRS를 이용한 매칭 쿼리 최적화

들어가기에 앞서 이 글은 제가 재직 중인 회사 ‘이지태스크’의 동료에게 공유한 글입니다. 이지태스크는 고객의 업무요청서를 토대로 프리랜서를 매칭하는 플랫폼으로 언젠가 서비스가 성장할 경우 CQRS 적용이 필수적이라 판단되어 저의 학습 내용을 정리 및 공유하였습니다. 개요 현재 이지태스크는 고객의 업무 요청에 맞는 프리랜서 목록을 추출하기 위해...

매달 100원으로 로그 시각화하기

개요 저희 회사는 AWS CloudWatch를 통해 로그를 수집하고, 중요도에 따라 Slack으로 알림을 받고 있습니다. 또한 향후 모니터링 시스템 도입에 대비해 CloudWatch 로그를 주기적으로 AWS S3에 저장하고 있습니다. 다만, 비용 절감을 위해 별도로 로그를 정제 및 시각화하고 있지는 않았습니다. 이로 인해 과거의 로그를 조회하거나 ...

지속가능한 소프트웨어를 지탱하는 조건

개요 개발자라면 누구나 기술부채 때문에 고통받은 경험이 있을 것 같습니다. 저 또한 다양한 기술부채를 겪었고 그 과정에서 어떻게 하면 생산성을 유지하면서 지속 가능한 소프트웨어를 만들어갈 수 있을지에 대해 고민해왔습니다. 그 덕분에 여러 방법론을 학습하고 실제로 적용해볼 수 있는 기회를 얻었습니다. 이번 글을 계기로 지속가능한 소프트웨어를 지탱하는 ...

에자일을 에자일하게 도입하다

개요 최근 PM 담당자가 없는 프로젝트에 참여하였으나 소통 부족과 역할 혼선으로 인해 일정 지연이 발생하였습니다. 이를 해결하고자 자발적으로 PM 역할을 맡아 팀의 문제를 진단하고 협업 구조를 재정비했습니다. 특히 점진적으로 에자일 방법론을 도입하고, 간트 차트와 칸반 보드 등 시각화 도구를 적극 활용하였습니다. 그 결과 스프린트와 리뷰 프로세...

업무요청 기능 리팩토링

배경 업무요청은 이지태스크의 핵심 서비스인 ‘온라인 업무보조’를 사용하기 위한 첫 단계로 고객의 요구사항을 다루는 중요한 로직입니다. 그러나 그 중요도와 별개로 상당한 기술부채가 쌓여 있어 서비스를 개선하기 어려웠으며 작은 변경도 장애로 이어질 수 있는 상황이었습니다. 마침 최근 업무요청 관련 기능추가 프로젝트에 참여한 것을 계기로 짬을 내어 리...