랭킹이라가는건 뭘까 단순한 줄 세우기인가어떤 기술을 사용하면 효율적일까?사실 랭킹은 생각보다 쉽다.정확히 말하면 쉽게 생각할 수록 쉽게 만들 수 있는거라 생각한다.랭킹은 RDB로 하는것이 좋을까? 아니면 nosql로 하는것이 좋을까?정답은 없다고 생각한다.어떤 기술을 사용해야 한다는것은 없다고 생각한다.nosql중에는 레디스를 활용해서 데이터를 저장한다.결국 RDB랑 레디스와 비교를 하는것이 중요하다고 생각이 든다.어떤것이 더 랭킹 시스템에 어울릴수 있는지 생각할 수 있을거 같다.나는 랭킹 시스템을 레디스로 만들었는데 그 이유는 낮은 오버헤드와 읽기 성능이 좋다는 것을 높게 평가하였다.레디스는 다양한 자료구조를 지원하는데 그 중에서도 Zset을 이용하게 되었다. Zset은 레디스가 가지고 있는 낮은 오버..
사실 카프카에 대해 잘 모르겠다. 아직..카프카가 고가용성이라고는 하지만 이게 개발자인 나에게 엄청나게 와닿지는 않았다.나야 프로듀서에서 컨슈머로 데이터만 잘 전달만 하는게 목적이기 때문이라 생각이든다.그렇다고 해서 저 부분이 중요하지 않는다는건 아니다.내가 말하고 싶은건 개발자인나에게 저것보다는 어떻게 사용할 수 있는냐가 더 중요하지 않나 생각이든다.그래서 그 부분에 초점을 맞춰서 공부를 했던거 같다.프로듀서의 개념토픽의 개념파티션키의 개념컨슈머의 개념배치 리스너 오프셋 개념..등등 여러가지 개념들을 그 초점에 맞추면서 공부를 하였다.저 개념들을 100% 전부 이해한건 아니지만 이제 시작이라 생각이 든다. 하나하나 전부 이해한것은 아니지만적어도 커다란 맥락에서 저러한 개념들을 왜 사용하는지 확실하게 이..
생각보다 이벤트에 대해 많은 고민을 하지 않았던거 같다.단순히 커멘드가 뭔지 이벤트가 뭔지 거기에 초점을 맞췄던거 같다.과연 내 프로젝트에 어떻게 이벤트를 적용할지 단순하게 생각했던거 같다.내가 생각한건주문 -> 쿠폰결제 -> 포인트결제 -> 재고좋아요 -> 집계 이렇게 생각을 했었다.이렇게 생각해도 크게 문제 될거 까지는 없지만 뭐랄까 어떤 흐름에서 어떻게 흘러가는지 그게 블로그글에 잘 드러내지 않은점이 아쉬움에 남는거 같다.그래도 잘한점은 커멘드와 이벤트를 어떻게 분리하고 고민한점은 나름 잘했던거 같다.나는 다음과 같이 커멘드와 이벤트를 분리하였다.커멘드는 특정 도메인이 타 도메인에게 메시지를 전달할것인가이벤트는 특정 도메인이 타 도메인에서 동작하는 행동을 알 수 있을까 였다.이런 기준으로 생각하니 ..
이번엔 조회 성능을 개선하기 위해 이것저것 적용해본거 같다.인덱스도 적용해보고반 정규화도 해보고캐싱도 해봤다.인덱스를 사용하면서 쿼리 플랜을 사용하고 그게 어떤지 분석까지 해보았다.다만 글에서는 그러한 부분들이 보이지 않아서 조금 아쉽다는 느낌이 들었다.단순히 사진만 찍어서 올렸었는데 모르는 사람들이 봐서는 그래서... 어쩌자는 거지?라는 반응이 나올 수 도 있을거 같다라는 생각이 든다.물론 k6를 통해 얼마나 향상이 되었는지도 테스트 해보고 그걸 AI로 분석까지는 했다.하지만 세세하게 진행하지 못한점이 좀 아쉽다는느낌이 든다.또한, 인덱스를 건다고 해서 단순히 성능이 기하급수적으로 올라가는건 아니었다. 오히려 잘못 사용하면 성능이 떨어질 수도 있다.인덱스는 흔히들 책에서 쉽게 내용을 찾을 수 있는 정보..
원래 정해진 형식때로 작성했었는데 생각해보니 그럴 필요까지는 없을거 같다는 생각이 든다.아무튼이번엔 DDD에 대해 학습을 하였다. 대략적으로 도메인에 대해 학습할 수 있었던 시간이었던거 같다.저번주 화욜인가 수욜인가 멘토링을 끝나고 도메인이 어떤건지 고민을 해보았고그것을 같은 팀원분들께 공개 한적이 있었다.방금 확인했는데 수욜날 멘토링을 했었군요 암튼제가 어제 멘토링 끝나고 고민해봤는데요..도메인은 '재료'로 비유할 수 있을 거 같아요.예를 들어, 계란국을 요리한다고 했을때,계란,물이 도메인이라는 생각이 들었어요.도메인에서 서로 통신 하면 안된다는건재료의 순수성을 해치면 안된다는 걸로 이해가 되어집니다.이를 잘 알 수 있는 방법으로 계란과물을 합쳤을때 새로운 단어인 A로 바꿀 수 있다면A라는 도메인으로 ..
🧠 이번 주에 새로 배운 것다이어그램을 그리는 방법에 대해 배웠던거 같습니다. 요구사항 정의서시퀀스클래스erd등등erd같은 경우 회사 다닐때도 많이 그려봤지만 FK를 신경쓰면서 그린것은 이번에는 처음인듯하다.💭 이런 고민이 있었어요특히 시퀀스 같은 경우는 처음에는 어떻게 그릴지 고민이 많았습니다.어떻게 시작을 해야 할지 뭘 시작을 해야할지..전혀 알 수가 없었고무엇보다 다른 사람이 그린 시퀀스도 읽기가 쉽지가 않았습니다.그래서 어떻게 하면 시퀀스를 잘 읽힐 수 있을지 고민을 많이 했던거 같습니다. 💡 앞으로 실무에 써먹을 수 있을 것 같은 포인트포인트라.. 아직 구현 측면이 아니라서이거는 실무에 쓸수 있다 없다를 말하기는 어려울거 같습니다.왜냐하면, 설계는 선택이라고 생각하기 때문에 나의 생각을 어..
🧠 이번 주에 새로 배운 것 1. 리뷰 포인트를 재대로 작성을 해야 한다라는것을 배웠습니다. 💭 이런 고민이 있었어요1. 리뷰 포인트에 대해 어떻게 작성을 하면 좋을지 고민을 했던거 같습니다. 1.1 변명이긴하지만, 나중에 pr을 올리고 리뷰 포인트를 작성하려다보니 내가 어떤 포인트에서 고민을 했었는지 전혀 생각이 나지 않더라구요.🤔 아쉬웠던 점 & 다음 주에 해보고 싶은 것1. 리뷰 포인트 작성이 아쉬웠습니다.2. 궁금증이 생기는것이 있으면 코드는 어디든 메모를 해두고 pr을 올릴때 옮겨 적는 방식으로 나의 궁금증을 코치님께 전달드릴 예정입니다.3. 팀원들이랑 자주 소통을 하면서 어떻게 하면 더 좋은 설계 혹은 코드를 작성할 수 있을지 고민을 해보고 거기서 나온 포인트들을 리뷰 포인트로 작성할 ..