프로의 개발일지
Preview Image

매개변수(Parameter)와 인자(Argument)의 차이

흔히 프로그래밍을 할 때, 매개변수(Parameter)와 인자(Argument)라는 용어를 자주 접하게 됩니다. 두 용어 모두 함수와 관련된 개념이지만, 많은 개발자들이 혼용해서 사용하거나 정확한 차이를 모르는 경우가 많습니다. 따라서 두 용어의 차이를 간략하게 정리해보고자 이번 포스팅을 작성합니다. 1. 매개변수(Parameter) 매개변수는 ...

Preview Image

[Redis] KEYS 대신 SCAN을 써야 하는 이유

Redis를 사용하다 보면 특정 패턴의 키를 찾아야 하는 상황이 자주 발생합니다. 예를 들어 user:* 형태의 모든 사용자 키를 찾거나, session:* 패턴의 세션 키들을 정리해야 할 때가 있죠. 이럴 때 가장 먼저 떠오르는 명령어가 바로 KEYS입니다. 하지만, 프로덕션 환경에서 KEYS 명령어를 사용하면 서비스 장애로 이어질 수 있습니다. ...

Preview Image

[Database] 인덱스(Index) 동작 원리와 장단점

1. 인덱스(Index)란? 인덱스는 데이터베이스 테이블의 조회 속도를 향상시키기 위한 자료구조입니다. 예를 들어, 백과사전의 목차나 색인을 떠올리면 이해하기 쉽습니다. 백과사전에서 특정 내용을 찾을 때, 모든 페이지를 처음부터 읽는 것보다 목차나 색인을 통해 해당 페이지로 바로 이동하는 것이 훨씬 빠릅니다. 데이터베이스 인덱스도 이와 같은 ...

Preview Image

[Spring Data Redis] @Indexed 어노테이션 사용 주의 사항과 문제 해결 방법

Spring Data Redis는 엔터티를 Redis에 매핑할 때, 일반적으로 @Id로 지정된 키를 기준으로만 findById()와 같은 JPA 스타일의 CRUD 메서드를 지원합니다. 그러나 개발을 하다 보면 종종 findByEmail()과 같이 특정 필드를 조건으로 조회가 필요할 때가 있습니다. 이때 유용하게 활용할 수 있는 기능이 바로 @Index...