java 10

[Java] 프로그램 시작 끝 수행 시간 출력하기

자바에서 프로그램의 시작 및 종료 시간을 출력하고 실행 시간을 계산하는 방법은 사용하는 자바 버전에 따라 크게 두 가지로 나뉩니다. 개발자이시므로 최신 프로젝트에 적합한 Modern Java (Java 8+) 방식과 레거시 코드에서 주로 쓰이는 System.currentTimeMillis() 방식을 구분하여 설명해 드리겠습니다.1. Modern Java (권장: Java 8 이상)Java 8부터 도입된 java.time 패키지를 사용하는 것이 가장 정확하고 코드 가독성이 좋습니다. 날짜 출력에는 LocalDateTime, 시간 차이 계산에는 Duration이나 ChronoUnit을 사용합니다.​import java.time.LocalDateTime;import java.time.format.DateTim..

프로그램/Java 2025.12.02

[Java] 프로그램 루프(Loop) 내에서 스래드 슬립(sleep)을 얼마를 주면 되고 주는 이유는?

프로그램 반복 루프 내에서 Thread.sleep()을 주는 시간은 루프의 목적에 따라 달라집니다. 단순히 정해진 값은 없으며, 반응성(Latency)과 CPU 자원(Resource) 사이의 균형을 맞춰야 합니다.엔지니어로서의 배경을 고려하여 시나리오별 권장 값과 그 이유를 정리해 드립니다.1. 시나리오별 권장 시간시나리오권장 시간설명초고속 대기 (Spin-wait)0ms ~ 1ms즉각적인 반응이 필요할 때(예: 게임 루프, 초단타 매매). 단, sleep(0)은 OS 스케줄러에 따라 동작이 다를 수 있어 sleep(1)이 더 안전합니다 ​.일반적인 폴링 (Polling)100ms ~ 500msDB나 파일 변경 감지 등. 100ms는 사람이 '즉시'라고 느끼는 한계 시간이므로, UX에 영향 없이 자원을 ..

프로그램/Java 2025.11.28

[Java] HttpsURLConnection에서 한글 깨짐 현상 해결 방법

Java로 HTTPS 요청을 보내다 보면, JSON이나 텍스트 데이터를 주고받을 때 한글이 깨지는 문제를 종종 경험하게 됩니다. 저도 초기에 API를 연동하면서 "홍길동"이라는 문자열이 서버에 도착했을 때 ì´ˆê¸°ì „처럼 깨지는 걸 보고 당황했던 기억이 납니다.그렇다면 이 현상은 왜 생기며, 어떻게 해결할 수 있을까요? 한글 깨짐 원인은?가장 큰 이유는 인코딩 설정 누락입니다.Java에서는 기본적으로 ISO-8859-1 인코딩을 사용하는 경우가 있기 때문에, 명시적으로 UTF-8을 지정하지 않으면 한글이 깨질 수 있습니다.또한 서버와 클라이언트 간의 통신에서는 요청(Request)과 응답(Response) 모두에서 인코딩이 중요합니다. 하나라도 빠지면 문제가 발생합니다. 해결 방법 ①: Conten..

프로그램/Java 2025.05.20

[Java] HttpsURLConnection을 사용할 때 한글이 깨지는 현상

Java에서 HttpsURLConnection 을 사용할 때 한글이 깨지는 현상은 주로 요청(Request) 또는 응답(Response)에서 인코딩 설정이 올바르지 않을 때 발생합니다. ✅ 원인: 인코딩 설정 누락서버에 데이터를 보낼 때 (OutputStream) → UTF-8로 인코딩하지 않으면 한글이 깨짐서버에서 응답 받을 때 (InputStreamReader) → UTF-8로 디코딩하지 않으면 한글이 깨짐또한 Content-Type 헤더에 charset=utf-8 설정이 빠져있으면, 서버가 잘못된 문자셋으로 해석할 수 있음✅ 해결 방법아래 코드를 참고해서 인코딩 관련 설정을 추가URL url = new URL("https://example.com/api");HttpsURLConnection co..

프로그램/Java 2025.05.20

[Java]Java에서 ArrayList<String> 타입을 병합, Merge 하는 방법

Java에서 ArrayList 타입을 병합하는 방법은 여러 가지가 있습니다. 대표적인 방법 ✅ 1. addAll() 메서드 사용하기import java.util.ArrayList;import java.util.Arrays;public class ArrayListMergeExample { public static void main(String[] args) { ArrayList list1 = new ArrayList(Arrays.asList("A", "B", "C")); ArrayList list2 = new ArrayList(Arrays.asList("D", "E", "F")); list1.addAll(list2); // list1에 list2의 모든 요소 추가..

프로그램/Java 2025.05.15

HttpsURLConnection 사용 시 발생한 JSON parse error: invalid UTF-8 middle byte 0x3f 오류

HttpsURLConnection 사용 시 발생한 JSON parse error: invalid UTF-8 middle byte 0x??오류는 일반적으로 잘못된 인코딩 문제로 인해 발생합니다. 이 문제를 해결하려면:JSON 데이터를 UTF-8로 정확히 변환해야 합니다.OutputStreamWriter를 사용하여 명확한 인코딩 설정을 해야 합니다.서버가 기대하는 인코딩 형식을 확인해야 합니다.🔍 해결 방법코드를 아래와 같이 수정하면 UTF-8 문제를 방지할 수 있습니다.import java.io.*;import java.net.HttpURLConnection;import java.net.URL;import javax.net.ssl.HttpsURLConnection;public class RestApiCl..

프로그램/Java 2025.03.18

[Java] 국가별 TimeZone(시간대) 처리 방법

세계 각국의 시간대(TimeZone)를 고려하는 것은 국제적인 서비스 개발에서 필수적인 요소입니다. Java에서는 TimeZone과 ZonedDateTime을 활용하여 국가별 시간대를 정확하게 처리할 수 있습니다. 🌏🕒이 글에서는 Java에서 국가별 시간대(TimeZone) 처리 방법을 코드 예제와 함께 설명하겠습니다✅ 시스템 기본 TimeZone 가져오기Java에서는 TimeZone.getDefault()를 사용하여 현재 시스템의 기본 시간대를 가져올 수 있습니다.import java.util.TimeZone;public class DefaultTimeZoneExample { public static void main(String[] args) { TimeZone defaultZo..

프로그램/Java 2025.03.14

[Java] 소수점 자르기(반올림, 내림, 버림) 방법

Java에서 소수점 이하 자리수를 조정하는 것은 다양한 프로그램에서 필수적인 기능입니다. 예를 들어, 금융 계산에서 소수점 두 자리까지 표시하거나, 특정한 자리수까지만 반올림해야 할 때가 있습니다.Java에서는 Math 클래스와 BigDecimal 클래스를 활용하여 소수점 처리를 쉽게 할 수 있습니다. 이 글에서는 소수점 반올림, 올림, 내림, 버림 등 다양한 방법을 코드 예제와 함께 소개하겠습니다Math.round()로 반올림하기Math.round() 메서드는 가장 간단한 반올림 방법입니다.📌 소수점 첫째 자리에서 반올림하는 예제:public class RoundingExample { public static void main(String[] args) { double num = 3..

프로그램/Java 2025.03.14

[Java] Date 객체와 날짜 처리 방법

Java에서 날짜와 시간을 다루는 것은 개발에서 필수적인 요소 중 하나입니다. 예를 들어, 사용자의 가입일을 기록하거나, 특정 작업의 수행 시간을 측정할 때 날짜 처리가 필요합니다.하지만, Java의 날짜 처리는 여러 가지 방식이 존재하며, Date, Calendar, LocalDateTime 등 다양한 클래스가 존재합니다. 이번 글에서는 Date 객체를 중심으로 날짜 처리 방법을 살펴보고, 보다 현대적인 java.time 패키지 활용법도 간단히 소개하겠습니다. Date 객체 사용하기Java의 java.util.Date 클래스는 가장 기본적인 날짜 처리 클래스입니다. 하지만 Date 클래스는 내부적으로 UTC(협정 세계시)를 기반으로 하고 있으며, 시간대를 직접 설정할 수 없다는 단점이 있습니다.impo..

프로그램/Java 2025.03.13

[Java] HttpURLConnection으로 HTTP/HTTPS 연결 구현하기

JDK에 기본으로 포함된 HttpURLConnection 클래스만으로도 충분히 HTTP와 HTTPS 연결을 구현할 수 있다는 사실을 알고 계셨나요? 복잡한 외부 의존성 없이 순수 자바로 HTTP/HTTPS 연결을 구현하는 방법을 알아보겠습니다.  목차 1. [HttpURLConnection vs 외부 라이브러리](#httpurlconnection-vs-외부-라이브러리) 2. [HTTP GET 요청 구현 (파라미터 포함)](#http-get-요청-구현) 3. [HTTP POST 요청 구현 (JSON 데이터 전송)](#http-post-요청-구현) 4. [HTTPS 연결 시 자주 발생하는 문제와 해결법](#https-연결-시-자주-발생하는-문제와-해결법) 5. [타임아웃 설정과 성능 최적화](#타임아웃-설정..

프로그램/Java 2025.02.26