반응형 개발/JAVA27 JAVA 14 - Record Class Record Class란?Java 14에서 Record 클래스가 도입되었다.Record는 Java에서 불변(immutable) 데이터 클래스를 간단하게 만들기 위한 새로운 클래스 유형안데, 객체를 정의할 때 필요한 반복적인 코드 (예: 생성자, getter, equals(), hashCode(), toString() 메서드 등)를 자동으로 생성줘서 간단하게 사용가능하다.클래스 이름 앞에 record 키워드를 붙이기만 하면 된다.public record Person(String name, int age) {}name과 age라는 두개의 속성을 갖는 불변 객체이며, Java compiler 는 record 선언 시 아래 항목들을 생성한다.기본 생성자가 자동으로 생성되지 X. Record는 모든 필드를 생성자.. 2025. 2. 3. [JAVA] Jackson 직렬화, 역직렬화 Jackson을 통한 직렬화&역직렬화Java 객체를 JSON 문자열로 변환하거나 객체로 복원하는 것으로 Jackson에서는 ObjectMapper 클래스를 사용하여 객체를 직렬화한다.사용예제는 아래 포스팅 참고..https://ynzu-dev.tistory.com/entry/JAVA-VO%EB%A5%BC-JSON-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A1%9C-%EB%B3%80%ED%99%98-java-class-to-json [JAVA] VO를 JSON 데이터로 변환 (java class to json, vo to json)먼저 아래 포스팅을 보고 필요한 라이브러리를 추가하자! [JAVA] JSON 데이터를 VO로 파싱, 변환하는 방법 (json to java class) 먼저 jac.. 2025. 2. 3. [JAVA] 직렬화(Serialized), 역직렬화(Deserialization) 개념직렬화 (Serialization)객체를 바이트 스트림으로 변환하여 디스크에 저장하거나 네트워크를 통해 전송할 수 있도록 처리. 직렬화된 객체는 그 상태를 유지하면서 외부 시스템에 전달되거나 저장역직렬화 (Deserialization): 직렬화된 바이트 스트림을 읽어서 원래의 객체로 복원 언제 사용되나?네트워크 전송: 객체를 네트워크를 통해 전송할 때객체를 바이트 스트림으로 직렬화, 수신한 쪽에서는 이를 역직렬화하여 객체 복원파일 저장: 객체의 상태를 파일에 저장 후 사용할 때 복원세션 관리: 웹 애플리케이션에서는 세션 객체를 저장할 때 객체를 직렬화하여 서버 메모리나 파일에 저장하고, 필요한 시점에 역직렬화하여 사용캐싱: 객체를 캐시에 저장하고 나중에 다시 가져오기 위해 직렬화하여 저장 Java에서.. 2025. 2. 3. [JAVA] 접근제한자가 private인 메소드를 호출하는 방법 주문번호를 매개변수로 갖는 Order 클래스의 canCancel 메소드가 private로 선언되어 있을 때 이 메소드를 외부에서 호출하는 방법은 아래와 같다. Order order = new Order(); Method method = order.getClass().getDeclaredMethod("canCancel", Order.class); method.setAccessible(true); boolean result = (boolean)method.invoke(order, "주문번호"); 2022. 10. 13. [JAVA] 배치(bat), 쉘(sh) 실행하기 command 창에서만 실행하던 배치 혹은 쉘스크립트 파일을 자바에서 실행해야할 일이 생겨 아래와 같이 작성하였다. result값이 0이면 실행 성공한 것! public boolean runXXXX(String xxxx) { boolean result = false; String filePath = "파일 path"; super.logger.debug("file path : " + filePath); File file = new File(filePath); try { if(file.exists()){ CommandLine cmdLine = CommandLine.parse(filePath+" "+req_id); DefaultExecutor executor = new DefaultExecutor(); try.. 2022. 5. 18. [JAVA] KeyStore에 Root 인증서 등록하기(SSLHandshakeException, PKIXException) 신뢰할 수 있는 기관에서 발급받은 ssl인증서가 아니거나 보편적으로 신뢰할 수 있는 기관이지만 JAVA에서 신뢰하지 못하는 경우 HTTPS통신을 하게 될 때 SSLHandshakeException 혹은 PKIXException 에러가 밸생한다. (해당 exception이 발생한건 TLS버전이 다르다거나.. 다른 이유가 원인일 수도 있지만 본 포스팅에서는 신뢰하지 않는 Root인증서일때에 대해 작성하겠다!) 이 경우 SSL인증서의 상위 인증기관을 JAVA의 keystore에 추가해주어야 한다. 자바의 keystore의경로는 JAVA_HOME/ib/security/cacerts 이다. 방법1. 명령어 이용 keytool -importcert -keystore "cacerts 경로" -storepass "저장.. 2022. 5. 18. [JAVA] Runnable 과 Thread의 차이 위 예제 소스에 있는 Runnable이란 간단하게 말해서 Thread를 인터페이스화한 것인데, Java에서는 다중 상속이 불가능하므로 Thread를 상속 받지 못하는 경우 extends Thread가 아닌 implements로 Runnable로 처리 할 수 있다. extends Thread public class ThreadTest extends Thread { public void run() { System.out.println("thread"); } } ThreadTest threadTest = new ThreadTest(); threadTest.start(); implements Runnable public class ThreadTest implements Runnable { public void .. 2022. 5. 16. [JAVA] 비동기 처리 방법 - Thread JAVA에서 비동기 처리를 위해 스레드를 사용할 수 있다. 다른 서버로 요청을 보낼 때 비동기 방식을 사용한다면 아래와 같이 작성하면 된다. public void request() { Thread thread = new Thread(new Runnable() { @Override public void run() { //코드 작성 } }); thread.start(); } 하지만 병렬작업 처리량이 많아지면 성능이 저하되는데, 이를 막기 위해서 스레드 풀을 사용해야 한다. 스레드풀은 스레드 개수를 미리 정해 놓고, 작업 큐에 들어오는 요청을 미리 생성해 놓은 스레드들에게 할당하는 방식이다. JDK 1.5부터는 java.util.concurrent Package에 ExecutorService 인터페이스와 Ex.. 2022. 4. 27. 이전 1 2 3 4 다음 728x90 반응형