목록전체 글 (45)
구름위키
개발자 커뮤니티에서 아래와 같은 글을 보았다.https://mvineetsharma.medium.com/11-kafka-design-patterns-for-every-backend-engineer-f053bdadd99e 11 Kafka Design Patterns for Every Backend EngineerBrief intro, detailed explainer for each pattern, Mermaid diagrams, small code snippets.mvineetsharma.medium.com한 개발자가 작성한 글로, Apache Kafka를 사용할 때 필요한 11가지 핵심 패턴이라는 내용이었다.일반적으로는 Kafka를 Pub/Sub 저장소로 사용한다. 하지만 효과적으로 사용하기 위해서는 ..
어느 날, 우연히 아래 글을 접하게 되었다.https://news.hada.io/topic?id=32156 Canva는 어떻게 수억 건의 사용자 세션을 빠르고 안전하게 유지할까? | GeekNewsCanva는 초당 수십만 건의 요청이 쏟아지는 수억 명의 사용자 세션을 검증하면서, 배포 때마다 게이트웨이 수백 개가 MySQL에서 100만 건 이상의 취소 기록을 읽는 병목을 해결함 최근 12시간의 기록news.hada.io유명한 웹 문서 편집 사이트인 Canva에서 대규모 세션을 처리하는 방법에 대한 내용이었다.평소 대규모 트래픽 처리에 관심을 갖고 안정적인 서비스 운영에 관심을 갖고 있는 나에게 이런 글은 항상 흥미롭다.이 글을 읽고 배운 점과 느낀 점에 대해 이야기해보려고 한다. Canva는 무슨 문제를..
기획과 개발 사이의 불일치를 마주하다. Igniter 팀에서 Fooding 프로젝트를 진행하고 있다. 우리는 기획이 나오면 동시에 디자인과 프론트, 백엔드가 모두 개발을 진행한다. 그렇기에 빠른 개발과 진행이 된다는 장점이 있지만 기획이 중간에 수정되거나 변경되면 진행하던 개발에 차질이 생긴다는 문제가 생긴다. 실제로 기획을 토대로 개발이 진행되는 도중, UX적인 측면에 의해 추가적으로 필요한 API 응답이 생기거나 수정되는 경우는 굉장히 자주 발생하게 되었고, 심한 경우에는 아예 방향이 바뀌어 완전히 새로운 기능을 만들어야 하는 경우도 있었다. 이러다보니 프론트엔드에서 API와 화면을 연결할 때 서로 맞지 않아 난감한 상황을 많이 겪게 되었다. 기획이 변경되면 당연히 이 변경 사항이 API 명세에도 적..
배경SNS를 만드는 프로젝트를 진행하며 조회수를 배치 함수로 주기적 업데이트하는 로직을 만들었다. 이 때, Redis에 특정 게시물에 업데이트 될 조회수를 미리 저장해두고 한 번에 업데이트를 하도록 만들었다. INCR 자료구조를 사용해 post:view:{postId}에 대해 값을 1씩 증가하게 만들고, 배치 함수로 업데이트할 때 값을 지우는 방식으로 구현했다.의문근데 이렇게 되었을 때, 추후 서비스가 커지고 게시글과 트래픽이 많아지면 키가 지나치게 많아질 수 있다는 생각이 들었다.postId가 10,000번에서 30,000번인 게시글들에 사용자가 동시에 3명씩 요청이 들어왔다고 칠 때, 동시에 약 60,000의 요청이 들어왔고 이 요청은 모두 Redis로 흘러갔을 것이다.이 때, post가 20,000..
이제 개발자는 개발할 때 AI가 없으면 효율이 떨어진다고 말할 정도로 큰 영향을 주고 있다. 나도 이제 개발할 때 AI부터 실행하고 본다. 나의 개발 스타일에 적합한 Skill과 에이전트 팀, 그리고 서브 에이전트들이 있어 개발하는데 속도도 빠르고 내가 원하는 결과물과 유사하게 나오는데 직접 개발할 때보다 비교도 안될 수준으로 빠르다. 초창기에 개발은 역시 Claude를 사용해야 한다는 말이 많았지만 이후 2년 이상이 지났고, 지금은 Codex도 개발을 잘한다는 말을 한다. 마침 Claude Pro 요금제도 슬슬 토큰이 부족해지는 김에 다시 한 번 알아볼 겸 두 AI를 비교해보았다. 본문에 앞서 지금부터 하는 이야기는 100% 주관적인 경험과 이야기이다. 사람마다 개발 스타일도 다르고 프롬프팅 스타일도 ..
백엔드 개발을 좀 해본 사람들이라면 인덱스라는 많이 들었을 것이다. ( 여기서 말하는 인덱스는 배열에서 순서를 말하는 인덱스가 아니라 DB에서의 인덱스이다. )DB를 최적화 할 때 인덱스를 적용한다고 하는데, 처음에는 그게 뭔가 싶다. 찾아보면 "목차와 같은 역할을 하며..." 이러는데, 목차라는 개념과 DB의 개념이 잘 혼재되지는 않는다. 이번엔 그래서 인덱스에 대해 알아보고 이를 적용해 RDB를 최적화하는 방법을 알아보고자 한다. 인덱스란? 인덱스는 쉽게 말해 책 뒤에 있는 색인과 같은 역할을 하는 것이라고 보면 된다. 특정 칼럼의 값을 미리 정렬해 저장해두어, 전체 테이블을 읽지 않고 원하는 행을 빠르게 찾을 수 있도록 하는 방법이다.도서관 데이터베이스에 10,000개의 책에 대한 정보가 있다고 할..
