본문 바로가기

전체 글68

실전 레디스 - 하야시 쇼고 책 후기 책 이름: 실전 레디스가격: 40,5000원(10% 세일)쪽수: 700쪽 가량출판일: 2024-05-17출판사: 한빛 미디어 책을 고른 이유 이 책을 고른 이유는 사내 도서관에서 레디스 관련 서적을 찾다가 보여서 골랐다. 나름 최신이기도하고 목차도 마음에 들어서 골랐던 것 같다. 전체 후기깃허브에 정리한 내용: https://github.com/kkminseok/Book/tree/main/data/redis/%EC%8B%A4%EC%A0%84_%EB%A0%88%EB%94%94%EC%8A%A4 Book/redis/실전_레디스 at main · kkminseok/Book내가 읽은 개발서적 종합 정리 및 요약. Contribute to kkminseok/Book development by creating an .. 2025. 6. 9.
주니어 백엔드 개발자가 반드시 알아야 할 실무 지식 서평(2025.04~) 책 정보도메인 주도 개발 시작하기 저자2025년 4월28일 발행 따끈따근한 책1장 들어가며초보 개발자가 흔히 저지르는 실수 예시를 이야기하며 성능, 외부 연동, 보안 등 반드시 알아야할 여러 주제의 기초적인 내용을 다룰 것임을 암시하고 있다.2장 느려진 서비스, 어디부터 봐야 할까처리량과 응답시간에 대한 개념 설명을 진행하고 있다. 성능저하가 발생시 체크해봐야할 부분이 크게 보자면 위 2개이기 때문이다.응답시간 기준, 대체적으로 DB연동과 외부 API 연동에서 많은 시간을 잡아먹는다.때문에 이부분을 중점적으로 확인한다한다. 그래서 외부 API 연동 시간을 줄이는 가상 쓰레드같은 개념들이 나온걸까? 생각하게 된다.처리량 기준, TPS를 확인하여 성능 개선을 해나가야한다.동시에 처리할 수 있는 요청 수를 증.. 2025. 5. 20.
STOMP란? 개요팀에서 채팅을 구현해야한다는 요구사항이 있었습니다.처음엔 네이티브 웹소켓을 사용할까 했지만, 팀 인원이 많지 않아 복잡한 관리 포인트는 최소화하고, 가능한 부분은 외부에 위임하고 싶었습니다.그러던 중 STOMP라는 프로토콜을 알게 되었고, 이에 대해 학습하고 기록해 두기 위해 이 글을 작성합니다.STOMPSTOMP는 HTTP를 모델로 한 프레임 기반 프로토콜COMMANDheader1:value1header2:value2Body^@위와 같은 구조를 가집니다.Client는 SEND나 SUBSCRIBE COMMAND를 통하여 메시지의 내용과 수신자를 설명하는 헤더와 함께 메시지를 보내거나 구독이 가능합니다. destination에 적혀있는 정보를 통해서 브로커가 연결된 다른 클라이언트에 메세지를 보내거나 .. 2025. 5. 12.
Spring-Boot-Docker-compose의 실무 활용법(1) 개요Spring Boot 3.1버전 이상부터 Docker compose에 대한 통합을 지원한다.공식문서문제상황개발을 진행하다보니 여러 개발자가 특정 애플리케이션에 종속된 써드파티 앱들(kafka, redis, 등)을 로컬에서 각자 띄우고 있었고, 각자 띄우다보니 개발자마다 설정값도 다르고 이를 적어도 개발환경에서는 맞춰주는게 어떨까 생각했다.테스트 환경, 운영환경에서는 외부에 설치된 앱들을 사용할 것이고 개발환경에서 이를 통합하여 맞추면 각자 개발하면서 추가하면 좋을 설정값들 및 빼야할 값들을 추가로 공부하고 적용하고 팀원들끼리 공유하여 서로가 더 발전하고 프러덕트의 생산성 유지보수성을 늘릴 수 있을거라 생각했다.적용법의존성을 추가해준다.runtimeOnly 'org.springframework.boot.. 2025. 4. 18.
Kafka-KIP848에 대하여 및 테스트(KRaft) 개요회사에서 Kafka 클러스터링 구성을 진행하다보니 KIP-848에 대해서 알게 되었다.나름 Kafka동작방식에 있어서 획기적인 아이디어를 적용하였으니 한 번 알아보면 좋을 것 같아서 좀 찾아보았다.KIP848KIP-848은 Kafka의 새로운 Consumer Rebalance Protocol을 도입기존 리밸런싱 방식의 문제점1.모든 Consumer들이 Coordinator에게 Join 요청Coordinator가 모든 Consumer의 metadata 수집리더 Consumer(보통 첫 번째 consumer)가 전체 assignment를 계산Coordinator가 각 Consumer에게 할당모든 Consumer가 Join 완료되어야만 리밸런스가 가능느린 Consumer 하나 때문에 전체 Group이 지연.. 2025. 4. 16.
[Spring-Kafka] Consumer 역직렬화 동적 구성 개요이번에 회사에서 Kafka구축 및 Spring Boot와 통합을 진행하면서 의문이 든게 있다.Kafka Consumer에서 역직렬화를 수행할 때 객체를 자동으로 변환해줄 수 없는가?에 대한 의문이였다.무슨 의미인지 먼저 살펴보겠다.문제 상황Spring-Boot-Kafka 공식 샘플 예제를 받아오면 다음과 같이 코드가 구성되어있다.public record Foo2(String foo) {}public record Bar2(String bar) {}데이터를 주고받을 Record(공식 문서에서는 Class)를 정의해준다.그리고 예제용으로 데이터를 주고받는걸 손쉽게 하기위해 컨트롤러를 작성해준다.@RestController@RequiredArgsConstructorpublic class ProducerCon.. 2025. 4. 11.