[Redis] Redis 캐시 무효화란 ?
개발공부/Redis2025. 8. 26. 21:20[Redis] Redis 캐시 무효화란 ?

프로젝트를 진행하다 보면 캐시에 저장된 데이터가 실제 DB와 다른 값을 반환하는 문제를 겪을 수 있습니다.저 역시 최근 Redis를 사용하면서, 데이터 변경이 발생했음에도 불구하고 잘못된 캐시가 계속 반환되는 상황을 발견했습니다. 원인을 확인해보니, 캐시 무효화 키 설계가 부정확하여 실제 데이터가 수정되더라도 Redis에 저장된 기존 캐시가 삭제되지 않고 남아 있었습니다. 이번 글에서는 캐시 무효화가 무엇인지, 키 설계 시 지켜야 할 컨벤션은 무엇인지 알아보겠습니다 ! 🗑️ 캐시 무효화(Cache Invalidation)란 ?캐시는 애플리케이션 성능을 높이기 위해 자주 조회되는 데이터를 메모리(Redis 등)에 저장해 두고 재사용하는 기법입니다. 하지만 실제 데이터(DB)가 변경되었는데 캐시가 그대로..

[Java, 자바] final 필드, final 메소드, final 클래스의 차이
프로그래밍/Java2025. 8. 26. 20:28[Java, 자바] final 필드, final 메소드, final 클래스의 차이

오늘은 final 키워드에 대해 자세히 알아보겠습니다.그동안 final = 상수라는 생각만 가지고 있었는데, 이번에 조금 더 공부할 기회가 생겨서 final이 필드, 메소드, 클래스에 적용되었을 때 각각 어떤 차이가 있는지 정리해보겠습니다 ! 🤔 final이란?final 키워드는 '변경을 제한한다'는 의미를 가지며, 변수(필드), 메소드, 클래스에 적용할 수 있습니다.선언한 위치에 따라 특징이 달라지므로 하나씩 살펴보겠습니다. ✅ final 필드 (final field)final 필드는 한번 초기화하면 더 이상 값을 변경할 수 없는 변수입니다.우리가 흔히 알고 있는 “상수” 역할을 합니다.final int number = 10;// number = 20; // 컴파일 오류 발생상수는 모든 객체에서 공통..

[홈서버] 맥미니로 홈 서버 구축하기1(고정 IP, 방화벽, 포트 포워딩, 화면 공유)
설정2025. 6. 12. 23:19[홈서버] 맥미니로 홈 서버 구축하기1(고정 IP, 방화벽, 포트 포워딩, 화면 공유)

🙋🏻 홈서버를 만들게된 이유는 ?요즘 회사 업무 이외로 멋쟁이 프론트 개발자와 서비스를 구축하고 있다. 아키텍쳐 제작 중 운영해야 될 서버가 생각보다 많다고 느껴져 지갑이 텅텅 비기 전에 자체 서버를 구축하기로 마음먹었다 ! 호스팅 서버를 통해 운영하고 있는 작은 사이트도 있기 때문에 장기적으로 봤을 때 비용 면에서 확실히 좋아 보였다 ! AWS, Google 등 다양한 클라우드 서버의 선택지도 있었지만 프리티어로 사용한다 해도 언제 요금이 빠져나갈지 몰라 불안에 떨기 싫었다. 그럼 맥 미니를 선택한 이유는 ?앱등이인 나는 맥 포기 못해.....가 가장 큰 이유였다. 홈서버 구축을 생각한 뒤 라즈베리파이, 미니 PC, 노트북 등 수 많은 블로그 포스팅 글과 커뮤니티 통해 조사해 봤지만 어느 하나 특출..

[Spring] Spring에서 이벤트 발행과 구독
프로그래밍/Java2025. 5. 22. 21:27[Spring] Spring에서 이벤트 발행과 구독

❓이벤트(Event)와 Spring Boot 이벤트의 이해먼저 프로그래밍에서 이벤트란, 애플리케이션 내에서 발생시킬 수 있는 어떤한 사건이나 상태 변경 등을 의미한다. 애플리케이션에는 어떠한 이벤트를 발생시키는 주체와 정해진이벤트의 발생을 탐지해 동작을 처리하는 주체가 존재할 수 있다. Spring Boot는 이벤트 처리를 위해 ApplicationEvent 클래스와 ApplicationEventPublisher 인터페이스를 제공한다.Spring에서 발생하는 모든 이벤트는 ApplicationEvent 클래스를 상속하여 정의되며, 이벤트를 발생시킬 때 전달되고, ApplicationEventPublisher는 이벤트를 발생시키고 이벤트를 구독하는 리스너에게 전달하는 역할을 합니다. Spring Conte..

[회고] 2025년 1분기 회고
기록2025. 3. 19. 01:52[회고] 2025년 1분기 회고

2025년 들어 기술블로그 글을 많이 올리지 못했다. 이유는 내가 작성한 글을 돌아볼 때마다 게시글의 내용이 알차지 못하고, 정리 정돈이 되어있지 않다고 느껴졌다.글을 썼다 지우고 썼다 지우고, 임시저장 되어있는 글이 수두룩하다.어떻게 정리해야 가독성이 좋고, 어떤 레퍼런스를 참고해서 공부를 해야되는지 다른 분들의 기술블로그를 보면서 기록하는 방법에 대해 열심히 공부하고 있다.이 회고글도 임시저장 목록에 그대로 쌓일지, 등록할지는 잘 모르겠다~ ☀️ 2025년기획과 설계의 결과물 1월6년간 이어오던 느릿느릿한 ASP로 만든 사이트를 걷어내고 리팩토링하기 위해 8월부터 몇 달간 기획과 설계를 했다. 운영중인 서비스라 유지보수하면서 기획하고, 다른 사이트도 운영하고 이런 저런 상황에 기획과 설계의 속도가 빠..

[Kafka, 카프카] Kafka Shell Sciprt 명령어
개발공부/Kafka2025. 1. 6. 21:28[Kafka, 카프카] Kafka Shell Sciprt 명령어

Kafka topic을 조작하는 Shell Script인 Kafka-topics.sh, Kafka-configs.sh 등의 명령어를 정리해보겠습니다 !당장 학습하며 자주 사용하는 명령어 위주로 작성할 예정이지만 Kafka를 계속 공부하면서 지속적으로 업데이트할 예정입니다 ! Kafka-topics.sh 명령어topic 생성하기(기본 옵션)bin/kafka-topics.sh --create --bootstrap-server my-kafka:9092 --topic hello.kafkahello.kafka는 생성하고 싶은 topic 이름my-kafka는 Kafka브로커의 호스트이름 또는 도메인 이름topic 생성하기(옵션 추가)bin/kafka-topics.sh --create --bootstrap-serv..

[CS]캐시, 캐싱이란 ?
IT이론/네트워크2024. 12. 31. 17:51[CS]캐시, 캐싱이란 ?

프로젝트에 데이터를 캐시로 관리하던 중 Redis 캐시에 대해 글을 작성하기 전 캐시와 캐싱에 대해 한번 정리하면 좋을 것 같아 빠르게 정리하고 넘어가려고 합니다 !❓ 캐시와 캐싱이란 ?먼저 캐시와 캐싱에 대해 알아봅시다 !캐시동일한 데이터에 반복해서 접근해야 하거나 많은 연산이 필요할 때, 결과를 빠르게 이용하고자 성능이 좋은 혹은 가까운 곳에 저장하는 것입니다. 즉, 캐시는 컴퓨터의 성능을 향상 시키기 위해 사용되는 메모리를 말합니다. 주기억장치와 CPU 사이에 위치하고, 자주 사용하는 데이터를 기억합니다.캐싱이 캐시 영역으로 데이터를 가져와서 접근하는 방식이며, 해당 영역을 사용하는 것을 캐싱이라고 합니다.서버의 관점에서 봤을 때 캐싱은 DB로 접근하여 가져오는 자주 사용하는 데이터를 캐시 저장소에..

[Kafka, 카프카] Kafka의 내부 구조와 데이터 파이프라인으로 적합한 이유
개발공부/Kafka2024. 12. 30. 12:15[Kafka, 카프카] Kafka의 내부 구조와 데이터 파이프라인으로 적합한 이유

Kafka의 내부 구조기존에 1:1 매칭으로 개발하고 운영하던 데이터 파이프라인은 커플링으로 인해 한쪽의 이슈가 다른 한쪽의 애플리케이션에 영향을 미치곤 했지만, 카프카는 이러한 의존도를 타파하였습니다.이제 소스 애플리케이션에서 생성되는 데이터는 어느 타깃 애플리케이션으로 보낼 것인지 고민하지 않고 이단 Kafka로 넣으면 됩니다. Kafka 내부에 데이터가 저장되는 파티션의 동장은 FIFO방식으로 큐 자료구조와 유사합니다.큐에 데이터를 보내는 것이 프로듀서이고 큐에서 데이터를 가져가는 것이 컨슈머입니다.  Kafka가 데이터 파이프라인으로 적합한 이유높은 처리량동일한 양의 데이터를 보낼 때 네트워크 통신 횟수를 최소한으로 줄인다면 동일 시간 내에 더 많은 데이터를 전송할 수 있습니다. 많은 양의 데이터..

image