전체 글
[Spring Boot] Long 타입 PK는 Redis Sorted Set의 score로 사용할 수 없다. (with. TSID)
📕 목차1. Introcution2. How to Resolve?3. Lexicographical Sorting4. Consideration1. Introduction 📌 As-is빠른 저장 및 조회를 위해 Redis에 채팅 이력을 저장하여 관리하고 있는 상황.이 때, 채팅 아이디의 시간 기반 정렬(Time based sequence), 고유성(Unique)과 높은 동시성(High Concurrency)을 보장하기 위해 TSID를 사용하기로 결정했었다. 그리고 이 값들은 처음에 Hash로 바로바로 캐싱을 했었으나, 다음과 같은 문제로 Sorted Set을 사용하기로 결정했었다.채팅 조회의 경우 범위 탐색이 빈번하게 발생함.해시 자체는 고유성을 보장하지만, 저장 순서가 보장되지는 않음. (id가 뒤늦게..
[Spring Boot] 도메인 비즈니스 규칙과 멀티 모듈 아키텍처 설계
💡 DDD를 제대로 공부해본 적 없는 학부생 수준의 조잡한 포스팅일 뿐이니 참고만 해주세요!참고로 DDD를 다루는 레퍼런스들이 대부분이 너무 어려운 개념으로 설명을 하는 게 마음에 안 들어서, 나름대로 쉬운 언어를 선택하려고 노력은 했으나, 그 과정에서 오류가 있을 수 있습니다.📕 목차1. Introduction2. Responsibility of Lower-level Modules3. Architecture Improvment4. Reflection and Future Direction1. Introduction 📌 As-is [Spring Boot] 프로젝트 멀티 모듈화 고찰💡 해당 포스트는 필자의 빈약한 이해 지식을 기반으로 한 프로젝트 멀티 모듈화입니다.개발이 진행됨에 따라 추후 지속적으로..
[PM 회고록] PM과 개발자 사이: 학부생 프로젝트에서 마주친 위기와 성장의 기록 (with Agile)
📕 목차1. Introduction2. Communication3. Motivation4. Architecture Assessment5. Conclusion1. Introduction 📌 Motive올 한 해, 학부생 프로젝트의 PM(이자 백엔드이자, 이것저것 개발자인..)을 맡으면서, 프로젝트 시작 전에 소프트웨어 공학 시간에 배운 애자일 방법론을 적용하자고 팀원들을 설득했었다.사전 준비를 철저히 하기 위해, 애자일에 대해 정말 많은 공부를 하고 관련 글들을 참조했고, 심지어 교수님과 현직 개발자 분들께 자문을 구하기도 했다.그러나, 그럼에도 불구하고 수많은 우여곡절이 있었다. 그 중에서 가장 굵직한 스토리에 대해서는 한 명이라도 도움이 될 수 있도록 꼭 적어놓고 싶었다. (미리 이야기하지만, 수치..
[Spring Boot] 도메인 검증(Validation)의 계층별 책임과 구현 전략
📝 DDD 찍먹해봤다가 온갖 물음표들이 머릿속에 휘몰아 치는 중이라, 정리해둘 겸 작성한 포스팅입니다. 정답은 저도 모르겠습니다.📕 목차1. Introduction2. Is validation in both the controller and domain layers redundant?3. When and where should we validate within the domain layer1. Introduction 📌 the reason for writing this postDDD 찍먹..진짜 재밌었고, 새로운 시야가 보이게 된 거 같아서 좋긴 한데.못 보던 것들을 갑자기 마주하게 되니, 온갖 혼란과 기존 코드의 더러움이 거슬려서 미칠 것 같은 상태...그렇다고 죄다 리팩토링할 시간적 여유가 없으..