TIL14 [Redis] SET 값 조회 및 삭제하기 개요프로젝트 개발에서 사용하는 Redis에서 SET 타입의 Key에 1000개가 넘는 값을 저장하는 케이스가 있었다. 기능 개발 후 디버깅 중 해당 Key 내부의 값에 특정 값이 포함되는지 확인할 일이 생겼는데, Redis cli 자체적으로는 제공하지 않는 기능이라 리눅스 기능을 활용하여 해결했던 내용을 기록한다. 목적 우리는 이번 포스트에서 Redis 에 저장된 Key 중 ELECTION 이라는 Key에 저장된 값들 중 0103456이라는 값을 포함한 값들을 찾고, 만약 존재한다면 그중 특정 값을 삭제하고자 한다. 해당 목적을 기억하고 포스트를 읽으면 좀 더 도움이 될 것 같다. Redis-cli 제공 기능 SMEMBERS 명령어 Redis 에서는 SET 타입의 Key에 어떤 value들이 있는지.. 2024. 9. 27. [Java] Stream API의 효율적인 사용법과 주의할 점 개요 최근 프로젝트에서 다수의 데이터를 효율적으로 처리할 방법을 고민하다가 Java Stream API를 접하게 되었다. 반복문으로 데이터를 처리하던 기존의 방식에 비해 코드가 간결해지고 가독성도 높아져서 많은 도움이 되었다. 하지만, Stream API를 처음 사용하다 보면 실수를 할 수 있는 부분도 많고, 성능 이슈가 발생할 수 있는 점들이 있다. 그래서 이번 포스팅에서는 Java Stream API를 어떻게 효율적으로 사용할 수 있는지, 그리고 주의할 점들을 정리해 보려고 한다. Java Stream API란 무엇인가? Stream API는 자바 8에서 도입된 기능으로, 컬렉션 데이터(리스트, 맵 등)를 선언적 방식으로 처리할 수 있도록 돕는다. 스트림을 사용하면 루프 없이도 데이터를 필터링, 매.. 2024. 9. 25. [Java] BigDecimal을 이용한 정확한 소수 계산 개요개발을 하다 보면 소수 계산이 필요한 경우가 자주 있다. 처음에는 double이나 float 같은 기본 자료형을 사용했었는데, 이러한 자료형은 금액대가 커질수록 오차가 나는 것을 체감할 수 있다. 가격 계산이나 금액과 관련된 도메인을 다룰 때, 이러한 오차는 치명적일 수 있으므로 자바에서 제공하는 BigDecimal이라는 클래스를 사용하고 있는데 이 클래스가 기존에 사용하던 클래스와 어떤 부분이 다른지 정리하고자 한다. BigDecimal의 필요성 자바의 double과 float는 부동소수점 연산을 사용해 실수를 처리한다. 이는 빠른 계산을 가능하게 하지만, 미세한 소수점 이하 자리에서 오차가 발생할 수 있다. 특히 금융 관련 애플리케이션에서는 이런 작은 오차도 큰 문제가 될 수 있다. 따라서 정확.. 2024. 9. 22. 자바 객체의 equals()와 hashCode() 오버라이드 시 주의할 점 개요개발을 하다 보면 객체를 비교하는 상황이 자주 발생한다. 최근 프로젝트에서 HashSet을 사용해 중복을 제거하는 기능을 구현하면서, equals()와 hashCode()의 오버라이드가 제대로 이루어지지 않아 의도치 않은 결과를 경험했다. 이 문제를 해결하면서 객체 비교와 해시 테이블 기반 컬렉션(HashSet, HashMap 등)의 동작 원리를 이해하는 것이 중요하다는 것을 깨달았다. 이번 글에서는 자바에서 객체의 equals()와 hashCode()를 올바르게 오버라이드하는 방법과 그 과정에서 주의할 점을 중점적으로 설명하려 한다. 객체 비교에서 equals()와 hashCode()의 역할 자바에서 객체를 비교할 때 가장 기본적인 메서드가 equals()와 hashCode()다. equals().. 2024. 9. 22. 이전 1 2 3 4 다음