본문 바로가기

java3

[Java] List, Set, Map 구현체들 Java로 개발을 할 때 가장 많이 쓰이는 자료구조는 List, Set과 Map이며 이들은 모두 interface로 여러 구현체들을 제공한다. 하지만 대부분 관성적으로 ArrayList, HashSet, HashMap을 주로 사용한다. 각 자료 구조의 대표적인 기능은 구현체마다 모두 동일하기 단순히 자료를 담는 역할로써 단순히 위 구현체들을 쓰는건 크게 문제가 되지 않지만, 각 구현체는 엄연히 다른 기능을 한다. 이번 포스팅에서는 java.util 에서 기본적으로 제공해주는 List, Set, Map의 구현체들을 몇가지를 살펴보도록 하겠다. List List는 중복을 허용하는 데이터를 담는 역할을 한다. ArrayList ArrayList는 클래스 명에서도 나타내듯 List 내부에 Array를 두고, 이.. 2023. 1. 6.
BigDecimal이 소수를 다루는 방법 정산 시스템과 같은 정확한 숫자 계산을 다뤄야하는 시스템에서는 Java의 숫자를 다루는 가장 기본적인 타입인 Long이나 Double을 사용하는게 아니라 BigDecimal을 사용하라고 권고한다. 이 포스팅에서는 왜 BigDecimal을 사용해야하는지에 대해알아보기 위해 먼저 컴퓨터에서 실수를 표현하는 방식에 대해 알아보고, BigDecimal은 어떻게 정확한 계산을 처리할 수 있는지에 대해 알아보도록 하겠다. 소수점 방식 - 부동 소수점 (floating point) 먼저 컴퓨터에서 2진수로 실수를 표현하는 방식에 대해 알아보도록 하겠다. 그 방식은 크게 고정 소수점(fixed point)과 부동 소수점(floating)으로 나눠볼 수 있는데, 프로그래밍 언어에서 일반적으로 사용되는 방식인 부동 소수점.. 2022. 12. 8.
Servlet Filter의 response의 PrintWriter를 close 해야할까? Spring으로 웹개발을 하다보면 Security 등의 이유로 Servlet Filter를 사용할 때가 있다. 코드를 예로 들면 아래와 같다. import javax.servlet.Filter import javax.servlet.FilterChain import javax.servlet.ServletRequest import javax.servlet.ServletResponse import javax.servlet.http.HttpServletRequest class MyFilter : Filter { override fun doFilter(request: ServletRequest, response: ServletResponse, chain: FilterChain) { request as HttpSe.. 2021. 2. 24.