Java(56)
-
Java 19
레코드 패턴 매칭(프리뷰)기존에는 instanceof를 통해 해당 객체인지 확인 후, 형변환을 통해 객체를 사용해야 했습니다.record Point(int x, int y) {}public void test(Object o) { if (o instanceof Point) { Point p = (Point) o; ... }}하지만 레코드 패턴 매칭을 통해 형변환 로직을 제거하고 record의 구성요소를 직접 추출해서 사용할 수 있습니다.public void test1(Object o) { if (o instanceof Point p) { int sum = p.x + p.y; ... }}public void test2(Object o) ..
2025.05.14 -
Java 18
Java API CharsetJava API의 기본 Charset이 UTF-8로 지정되었습니다.간단한 웹 서버를 제공하는 커맨드라인 툴 제공정적 파일만 제공하는 간단한 웹 서버를 시작할 수 있는 새로운 커맨드라인 툴을 제공합니다.참고로 우리가 일반적으로 사용하고 있는 Apache, Nginx과 같이 실무에 사용할 수 있는 수준의 서버는 아닙니다.해당 서버는 테스트, 개발 및 디버깅 용으로 사용할 수 있습니다.jwebserver -p 9000@Snippet 어노테이션 추가Java Document 주석/** */에 @Snippet 어노테이션이 추가되었습니다.finally 구문 deprecatejava의 에러핸들링을 위한 try ~ catch ~ finally 구문이 있습니다.try { ...} cat..
2025.05.07 -
@Async 사용법
@Async 사용법 @EnableAsync @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } } @Service public class MessageService { @Async public void print(String message) { System.out.println(message); } } @RequiredArgsConstructor @RestController public class MessageController { private final MessageService messa..
2023.07.31 -
Stream 사용시 주의사항
Stream 재사용 문제 IntStream stream = IntStream.of(1, 2, 3); stream.forEach(x -> System.out.println(x)); //첫번째 stream 사용 stream.forEach(x -> System.out.println(x)); //두번째 stream 사용 stream은 오직 한번만 소비할 수 있기 때문에 두 번째 사용할 경우 IllegalStateException이 발생할 수 있습니다. Stream의 동작 순서 Arrays.stream(new String[] {"c", "python", "java"}) .filter(word -> { System.out.println("filter method : " + word); return word.leng..
2023.07.05 -
JPA
JPA의 개념 JPA는 자바에서 ORM 기술 표준으로 사용되는 인터페이스의 모음입니다. 즉, 실제적으로 구현된 것이 아니라 구현된 클래스와 매핑을 해주기 위해 사용되는 프레임워크입니다. ORM(Object Relational Mapping) ORM이란 우리가 일반적으로 알고 있는 어플리케이션 Class와 RDB의 테이블을 매핑한단느 뜻이며 기술적으로는 어플리케이션의 객체를 RDB 테이블에 자동으로 영속화해주는 것입니다. ORM의 장점 SQL 문이 아닌 Method를 통해 DB를 조작할 수 있어 개발자는 객체 모델을 이용하여 비즈니스 로직을 구성하는데만 집중 Query와 같이 필요한 선언문, 할당 등의 부수적인 코드가 줄어들어 각종 객체에 대한 코드를 별도로 작성하여 코드의 가독성을 높임 객체지항적인 코드..
2023.01.22 -
Java Serialize
직렬화(Serialize)란 Serialize란 Java에서 사용되는 Object 혹은 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 byte 형태로 데이터를 변환하는 기술을 의미합니다. 직렬화 하는 방법 java.io.ObjectOutputStream을 사용해서 직렬화를 진행합니다. 역직렬화(Deserialize)란 Deserialzie란 byte 형태로 변환된 데이터를 원래대로 Java의 Object나 데이터로 변환하는 기술을 의미합니다. 역직렬화 조건 직렬화와 역직렬화를 진행하는 시스템이 서로 다를 수 있음 직렬화 대상 객체는 동일한 serialVersionUID를 가지고 있어야함 직렬화 단점 직렬화하고 있는 시스템과 역직렬화를 진행하는 시스템의 모델에 차이가 있을 경우에 Exception이 ..
2022.11.27