본문 바로가기

java

(6)
Java: MAC Address 조회하기 예제 IP 구하는 메서드 구현 public static String getIpAddress(HttpServletRequest request) { String ipAddress = ""; try{ if (ipAddress == null || ipAddress.isEmpty() || "unknown".equalsIgnoreCase(ipAddress)) { return ipAddress = request.getRemoteAddr(); } }catch (Exception e){ e.printStackTrace(); }finally { return ipAddr..
[JAVA] ConcurrentHashMap 에 대해서 ConcurrentHashMap은 Java에서 멀티스레드 환경에서 안전하게 사용될 수 있도록 설계된 해시맵 구현체입니다. 다음은 ConcurrentHashMap의 주요 특징입니다:동시성 제공:ConcurrentHashMap은 멀티스레드 환경에서 여러 스레드가 동시에 데이터를 읽고 수정할 수 있도록 설계되었습니다.내부적으로 분할 잠금(Shard Locking) 메커니즘을 사용하여 성능을 최적화합니다. 이는 맵이 여러 개의 세그먼트(segment) 로 나뉘어 각 세그먼트에 대해 개별적으로 잠금을 걸기 때문에, 여러 스레드가 동시에 다른 세그먼트를 수정할 수 있습니다.잠금 수준 최적화:HashTable처럼 전체 맵에 대해 잠금을 걸지 않고, 데이터의 특정 버킷(bucket) 단위에만 잠금을 걸기 때문에 동시성..
Spring Boot 3와 WebClient: 비동기식 HTTP 요청을 쉽게 구현하기 WebClient Spring Boot 3에서 WebClient는 비동기 및 동기식 HTTP 요청을 수행하기 위해 사용되는, 강력하고 유연한 HTTP 클라이언트입니다. WebClient는 Spring 5에서 처음 도입되었으며, Spring Boot 2.x 및 3.x에서도 계속해서 사용되고 있습니다. 이는 Spring의 기존 RestTemplate을 대체하는 역할을 수행하며, 비동기식 API 호출을 더욱 간편하게 구현할 수 있도록 합니다.  주요 특징 비동기 및 동기식 요청WebClient는 비동기식과 동기식 요청을 모두 지원합니다.반응형 프로그래밍 지원WebClient는 Reactor 라이브러리를 기반으로 하여, 반응형 스트림을 활용한 비동기 프로그래밍을 지원합니다.플러그인 아키텍처요청 및 응답을 변환하..
Spring Boot 2.x.x에서 3.x.x로 업그레이드 후 Redis에 Java 객체 저장 문제 발생 문제: Spring Boot 2.x.x에서 3.x.x로 업그레이드 후 Redis에 Java 객체 저장 문제 발생Spring Boot를 2.x.x 버전에서 3.x.x 버전으로 업그레이드하면서 AuthUser 객체의 직렬화 및 역직렬화 과정에서 문제가 발생했습니다.  업그레이드 이전에는 이러한 이슈가 없었으나, 새 버전에서는 AuthUser 객체를 Redis에 저장하고 불러오는 과정에서 역직렬화를 할 수 없다는 오류가 발생했습니다.  해결 방법: Jackson Mix-In과 ObjectMapper 설정 이 문제를 해결하기 위해, Jackson 라이브러리의 Mix-In 기능을 활용했습니다. Mix-In을 사용하면 기존 클래스를 수정하지 않고도 직렬화 및 역직렬화 규칙을 적용할 수 있습니다. AuthUser 클..
65279 아스키코드가 나와서 문자열 비교 안됨 ?! 😅 아래와 같은 String 이 두 개가 있다고 가정한 후 String a = "hello"; String b = "hello"; a.equals(b) 결과가 false 일 수 있다 ? 사실 나도 처음 겪는 일이라 ;;;; false 일 수 있다.... 아래처럼 문자열을 문자로 하나씩 보면 for( int i = 0; i < a.length(); i++ ){ System.out.println( (int)a.charAt(i) ) } 65279 의 값을 볼 수 있는데, 이게 문제다 문제 아래처럼 해결하기를 ! trim 도 안먹음 ,,, if(a.charAt(0) == 65279){ a= a.substring(1); }
java 에서 data → excel 파일 Java 에서 생성한 Data를 Excel 로 만들어서 내보내려고 한다. POI를 이용하기 때문에 pom.xml 에 아래 코드를 추가해 주었다 org.apache.poi poi 4.1.2 아래 코드를 실행 결과 Style이 적용이 안되어서 적용을 시켜보아야겠다. public void ExcelDownload(List list){ // Workbook 생성 Workbook xlsWb = new HSSFWorkbook(); // Excel 2007 이전 버전 Workbook xlsxWb = new XSSFWorkbook(); // Excel 2007 이상 // *** Sheet------------------------------------------------- // Sheet 생성 Sheet sheet1..