본문 바로가기
728x90

전체 글61

자바 객체의 equals()와 hashCode() 오버라이드 시 주의할 점 개요개발을 하다 보면 객체를 비교하는 상황이 자주 발생한다. 최근 프로젝트에서 HashSet을 사용해 중복을 제거하는 기능을 구현하면서, equals()와 hashCode()의 오버라이드가 제대로 이루어지지 않아 의도치 않은 결과를 경험했다. 이 문제를 해결하면서 객체 비교와 해시 테이블 기반 컬렉션(HashSet, HashMap 등)의 동작 원리를 이해하는 것이 중요하다는 것을 깨달았다. 이번 글에서는 자바에서 객체의 equals()와 hashCode()를 올바르게 오버라이드하는 방법과 그 과정에서 주의할 점을 중점적으로 설명하려 한다.  객체 비교에서 equals()와 hashCode()의 역할 자바에서 객체를 비교할 때 가장 기본적인 메서드가 equals()와 hashCode()다. equals().. 2024. 9. 22.
[Java] 향상된 try catch문: try-with-resources 개요최근 차세대 프로젝트에서 파일 입출력을 자주 다루게 되면서 자원 관리를 어떻게 최적화할지 고민하게 되었다. 기존의 try-catch-finally 구조를 사용해 자원을 닫는 코드를 작성했지만, 코드가 복잡해지고 실수할 가능성도 많았다. 코드 리뷰를 통해 자바 7에서 도입된 try-with-resources 문법을 알게 되었고, 자원 관리가 훨씬 간편해졌다. 이 글에서는 try-with-resources의 동작 방식과 이점에 대해 알아보고, 예제를 통해 쉽게 설명하려고 한다. 자바의 자원관리자바에서 파일, 데이터베이스 연결, 네트워크 소켓과 같은 자원은 프로세스가 사용한 후 반드시 명시적으로 해제해야 한다. 그렇지 않으면 메모리 누수와 같은 심각한 문제를 초래할 수 있다. 전통적으로는 try-catch.. 2024. 9. 21.
자바 StringBuilder와 StringBuffer는 뭐가 다를까? 개요최근 개발을 하며 문자열을 여러 개 이어붙일 일이 있었는데, 기존 코드를 보니 StringBuilder를 많이 사용하는것을 볼 수 있었다. 하지만 해당 프로젝트 외에 다른 프로젝트에서는 StringBuffer를 사용해서 문자열을 이어 붙였었는데 두 클래스간 어떤 차이가 있을지 궁금하여 비교해서 정리하려고 한다. StringBuilder와 StringBuffer일단 StringBuilder와 StringBuffer는 모두 문자열을 수정할 수 있는 가변 클래스이다. 둘 다 문자열을 효율적으로 처리할 수 있도록 설계되었으나, 사용 목적에 따라 선택해야 한다. 두 클래스의 대표적인 큰 차이는 아래와 같다. 동기화(Synchronization) 여부StringBuilder: 동기화되지 않은 클래스. 멀티스레드.. 2024. 9. 20.
제 컴퓨터에서는 되는데요??🙄 개요 최근 차세대 프로젝트를 진행하며 IE 호환을 지원하기 위해 gulp를 이용한 트랜스파일링을 적용하게 되었는데, 자바를 쓰며 자연스럽게 잊고 있었던 package.json을 마주하게 되었다🤬. 자바스크립트는 여러 모듈의 버전을 package.json 파일을 통해 관리하는데, 학부생 시절에는 어떤 방식으로 버전을 관리하는지 잘 알지못해 버전 충돌로 인해 많은 고생을 했었다. 오랜만에 마주한 김에 어떻게 package.json을 이용하여 버전을 관리하는지 정리해보려고 한다. Package.json 자바스크립트라는 언어를 사용해 보았으면 누구나 한 번쯤은 보았을 파일 이름이다. 간단히 정리하면 package.json은 자바스크립트 프로젝트에 관한 정보와, 패키지 매니저(npm, yarn)을 통해 설치한 모.. 2023. 6. 7.