본문 바로가기
728x90

javatil3

[Java] Stream API의 효율적인 사용법과 주의할 점 개요 최근 프로젝트에서 다수의 데이터를 효율적으로 처리할 방법을 고민하다가 Java Stream API를 접하게 되었다. 반복문으로 데이터를 처리하던 기존의 방식에 비해 코드가 간결해지고 가독성도 높아져서 많은 도움이 되었다. 하지만, Stream API를 처음 사용하다 보면 실수를 할 수 있는 부분도 많고, 성능 이슈가 발생할 수 있는 점들이 있다. 그래서 이번 포스팅에서는 Java Stream API를 어떻게 효율적으로 사용할 수 있는지, 그리고 주의할 점들을 정리해 보려고 한다.  Java Stream API란 무엇인가? Stream API는 자바 8에서 도입된 기능으로, 컬렉션 데이터(리스트, 맵 등)를 선언적 방식으로 처리할 수 있도록 돕는다. 스트림을 사용하면 루프 없이도 데이터를 필터링, 매.. 2024. 9. 25.
자바에서 불변 객체(Immutable Object) 만들기 개요최근 프로젝트에서 멀티스레드 환경에서 동시성 문제를 해결하는 방법을 고민하던 중, 불변 객체(Immutable Object)를 사용하는 것이 코드 안정성에 큰 도움이 된다는 점을 깨달았다. 여러 스레드가 동일한 객체를 참조할 때, 객체의 상태가 변하지 않으면 추가적인 동기화 처리가 필요 없기 때문이다. 그래서 이번 글에서는 자바에서 불변 객체를 만드는 방법과 그 장점을 소개하려 한다.  불변 객체란 무엇인가? 불변 객체란, 한 번 생성된 후 내부 상태가 절대 변경되지 않는 객체를 말한다. 즉, 객체가 생성된 이후에 그 속성들은 수정할 수 없다. 대표적으로 자바의 String 클래스가 불변 객체로 설계되어 있다. 불변 객체는 주로 멀티스레드 환경에서 동시성 문제를 해결하는 데 매우 유용하다.  불변 객.. 2024. 9. 25.
[Java] BigDecimal을 이용한 정확한 소수 계산 개요개발을 하다 보면 소수 계산이 필요한 경우가 자주 있다. 처음에는 double이나 float 같은 기본 자료형을 사용했었는데, 이러한 자료형은 금액대가 커질수록 오차가 나는 것을 체감할 수 있다. 가격 계산이나 금액과 관련된 도메인을 다룰 때, 이러한 오차는 치명적일 수 있으므로 자바에서 제공하는 BigDecimal이라는 클래스를 사용하고 있는데 이 클래스가 기존에 사용하던 클래스와 어떤 부분이 다른지 정리하고자 한다.  BigDecimal의 필요성 자바의 double과 float는 부동소수점 연산을 사용해 실수를 처리한다. 이는 빠른 계산을 가능하게 하지만, 미세한 소수점 이하 자리에서 오차가 발생할 수 있다. 특히 금융 관련 애플리케이션에서는 이런 작은 오차도 큰 문제가 될 수 있다. 따라서 정확.. 2024. 9. 22.