1. Page 응답을 커스텀한 이유기본적으로 Spring Data JPA는 페이지네이션된 데이터를 반환할 때 Page 객체를 제공합니다. 하지만 Page 객체는 많은 메타데이터를 포함하고 있어 클라이언트가 필요로 하지 않는 정보까지 응답에 포함됩니다. 클라이언트가 필요한 정보만 가볍게 전달하기 위해 PageResponse라는 커스텀 DTO를 만들어 원하는 정보만 담도록 직렬화해서 사용하였습니다. 주요 목적응답 구조 간소화: 필요한 데이터와 페이지 메타데이터만 포함하여 클라이언트가 쉽게 이해하고 파싱할 수 있도록 만듭니다.불필요한 데이터 제거: 응답 크기를 줄이고 성능을 개선합니다.일관성 있는 응답 제공: 모든 페이지 응답이 동일한 구조를 가짐으로써, 클라이언트는 일관된 API 경험을 얻게 됩니다. 2. ..
Hot Deal이라는 프로젝트를 진행하면서 어떻게 하면 데이터의 무결성을 보장할 수 있을지 고민해보았습니다. 가격이나 재고와 같은 특정 값을 다룰 때는 이 값들이 항상 올바른 범위를 가지도록 하는 것이 중요합니다. 그렇지 않으면 잘못된 값이 비즈니스 로직에 흘러들어가 시스템 전체에 오류를 일으킬 수 있기 때문입니다. 이러한 문제를 해결하기 위해 구체적인 자료형을 생성해 보았습니다. Java의 기본 자료형이 아닌, 값 자체에 대한 제약 조건을 포함하는 Price와 Quantity 클래스를 만들어 활용했습니다. 이로써 코드 중복을 줄이고, 생성과 동시에 유효성 검증을 통해 데이터 무결성을 보장할 수 있습니다. 1. 왜 기본 자료형이 아닌 구체적인 자료형을 선택했을까?가격(Price)과 재고(Quantity)..
아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재 05] JdbcPagingItemReader로 DB내용을 읽고, JdbcBatchItemWriter로 DB에 쓰기 devocean.sk.com원본: [SpringBatch 연재 05] JdbcPagingItemReader로 DB내용을 읽고, JdbcBatchItemWriter로 DB에 쓰기 지난 시간에는 FlatFileItemReader와 FlatFileItemWrite를 이용하여 Batch Job을 실행해 보았습니다. 이번 시간에는 Jdbc를 활용해서 데이터베이스를 이용한 Batch Jo..
CS 면접 준비할 때 가장 유명한 책이라 읽고 정리해 보았습니다.핵심 내용을 마인드맵 서비스로 시각화해 보았습니다. 크게 5가지 목차로 구성되어있습니다.1. 디자인 패턴2. 네트워크3. 운영체제4. 데이터 베이스5. 자료구조 1장과 2장: 디자인 패턴과 네트워크디자인 패턴 내용은 기록을 따로 하지 않아서 남아 있는 내용이 많지 않네요.'디자인 패턴 종류'에 대해 검색하면 찾을 수 있는 내용으로 구성되어 있었고, 특히 간단한 코드로 구현되어 있어 이해하기 쉬웠습니다. 3장: 운영체제양이 많아 일부를 생략하여 표현했습니다. 4장: 데이터 베이스 5장: 자료구조 여기에서 나온 모든 키워드들을 전부 이해하고 술술 말할 수 있다면 정말 좋겠죠? 읽기 전에는 책이 얇아서 별로 기대를 하지 않았는데,생각보다 많..
4회차는 Spring Batch의 FlatFileItemReader/Writer에 대해 공부했습니다. 스터디 진행 전 교안을 공부하며 정리한 내용은 이곳에서 볼 수 있습니다. [4회차] FlatFileItemReader로 단순 파일 읽고, FlatFileItemWriter로 파일에 쓰기아래 글은 한국 스프링 사용자 모임(KSUG)에서 진행된 스프링 배치 스터디 내용을 정리한 게시글입니다.DEVOCEAN에 연재 중인 KIDO님의 글을 참고하여 실습한 내용을 기록했습니다. [SpringBatch 연재yeseul-dev.tistory.com 스터디가 진행 되는 시간에 나눴던 얘기들을 조금 정리해 보겠습니다. Spring Batch 5는 Job이 여러개가 존재한다면 실행시에 어떤 Job을 실행할 것인지 명시 ..
현재 홈서버의 자원이 한정적이어서 최대한 효율적으로 사용할 수 있도록 설정을 최적화했습니다.테스트용 자원 할당량이니 참고해주세요. 1. Helm 차트 준비Helm은 쿠버네티스 애플리케이션을 손쉽게 배포하고 관리할 수 있도록 해주는 도구로, Redis와 같은 복잡한 애플리케이션도 빠르게 배포할 수 있습니다. 우선, Redis Helm 차트를 사용하기 위해 저장소를 추가하고 업데이트합니다.helm repo add bitnami https://charts.bitnami.com/bitnamihelm repo update 2. redis-values.yaml 파일 구성Redis 설치 시 다양한 커스텀 설정을 추가하기 위해 redis-values.yaml 파일을 작성합니다. architecture: standalo..
홈서버에서 그라파나를 통해 Kafka 모니터링을 설정하면서 겪은 문제 해결 과정을 공유합니다. 기본적으로 리소스가 제한된 환경에서 작업하기 때문에 메모리와 CPU 사용량을 제어하고, Kafka와 Prometheus Exporter 간 연결 설정에서 SASL 인증을 추가하는 방법을 다룹니다. 1. Prometheus-Kafka-Exporter 설치exporter 설치 후 연결이 지속적으로 실패하는 문제가 발생했는데,원인을 분석해보니 Kafka SASL 인증 설정 누락과 Kafka 서버 주소를 자동으로 찾지 못하는 두 가지 문제가 있었습니다. 따라서 아래와 같이 인증 정보와 Kafka 서버 주소를 명시적으로 설정하여 Helm으로 설치를 진행했습니다.# 해당 명령어로 어떤 value 들을 설정할 수 있는지 볼..
내 블로그 - 관리자 홈 전환 |
Q
Q
|
---|---|
새 글 쓰기 |
W
W
|
글 수정 (권한 있는 경우) |
E
E
|
---|---|
댓글 영역으로 이동 |
C
C
|
이 페이지의 URL 복사 |
S
S
|
---|---|
맨 위로 이동 |
T
T
|
티스토리 홈 이동 |
H
H
|
단축키 안내 |
Shift + /
⇧ + /
|
* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.