본문 바로가기
728x90

분류 전체보기60

[JavaScript] 자바스크립트에서의 객체 비교 방법 (=== vs ==) 개요자바스크립트를 사용하다 보면 객체를 비교하는 상황을 자주 마주하게 된다. 그때마다 ===와 ==를 사용하면서 혼란스러울 때가 많았다. 겉보기에는 똑같아 보이지만 두 연산자의 작동 방식이 다르기 때문이다. 특히 객체 비교에서 이 차이는 더욱 두드러지게 나타난다. 그래서 이 개념을 정리하고, 다른 개발자들과 공유하고자 한다.  ===와 ==의 차이점 자바스크립트에서 ==는 느슨한 동등 비교, ===는 엄격한 동등 비교라고 부른다. 차이점은 ==는 비교할 때 데이터 타입을 자동으로 변환해 동등 여부를 판단하지만, ===는 타입 변환 없이 값과 타입이 모두 일치해야 true를 반환한다.console.log(2 == '2'); // true, 타입 변환 발생console.log(2 === '2'); // f.. 2024. 9. 23.
[Java] UUID를 이용한 고유 식별자 생성 개요개발 프로젝트에서 데이터베이스의 각 레코드를 고유하게 식별해야 하는 경우가 많다. 일반적으로는 자동 증가하는 숫자형 ID를 사용하는 경우가 많지만, 분산 시스템이나 여러 서비스가 동시에 데이터베이스에 접근하는 환경에서는 고유성이 보장되는 UUID(Universally Unique Identifier)가 더 적합한 경우가 많다. 이번 프로젝트에서도 여러 서버에서 고유한 식별자를 생성해야 했기에, UUID를 사용하는 방법을 찾아보게 되었다.  UUID란 무엇인가? UUID는 Universally Unique Identifier의 약자로, 전 세계적으로 고유한 식별자를 생성하는 데 사용된다. UUID는 128비트 길이의 숫자로 이루어져 있으며, 36자리의 문자열로 표현된다. 아래는 UUID의 일반적인 형식.. 2024. 9. 22.
[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.