프로그래밍/Java 8

Java Mybatis Alias 사용법

Mybatis Alias 사용법 마이바티스(MyBatis)에서 알리아스(Alias)는 매핑 구성 파일(XML 파일)에서 사용되는 간단한 이름 또는 닉네임을 의미합니다. 이를 사용하여 Java 클래스의 풀 패키지 이름을 대신하여 간결하고 읽기 쉬운 코드를 작성할 수 있습니다. 1. mapper.xml 에서 Alias 사용하기 일반적으로 MyBatis를 사용하면, 데이터베이스 테이블과 매핑되는 Java 클래스를 생성하게 됩니다. 이 때, 클래스의 풀 패키지 이름을 매핑 파일에 직접 사용할 수 있지만, 그 클래스의 알리아스를 지정하여 코드를 더 간결하게 만들 수 있습니다. 알리아스는 주로 XML 매핑 파일과 결과 매핑에서 사용됩니다. 예를 들어, XML 매핑 파일에서 SQL을 정의하거나 매개변수를 설정할 때 ..

Java Mybatis foreach 사용법

Java Mybatis foreach 사용법 MyBatis에서 foreach를 사용하여 반복문을 처리하는 방법을 알아보겠습니다. 1. 인터페이스 작성 2. mapper 작성 3. mapper 호출 foreach를 사용하면 컬렉션의 요소를 반복하여 동적 SQL 문을 생성할 수 있습니다. 이는 일반적으로 SQL 쿼리의 IN 절에서 많이 사용됩니다. 예를 들어, UserMapper 인터페이스에 사용자 목록을 조회하는 메서드가 있다고 가정해 봅시다. public interface UserMapper { List getUsersByIds(List userIds); } 다음은 UserMapper.xml에서 foreach를 사용하여 동적 SQL 문을 생성하는 예제입니다. SELECT * FROM users WHERE..

Java Stream(parallelStream)

parallelStream parallelStream은 여러 스레드에서 병렬로 데이터를 처리하는 데 사용할 수 있는 스트림 유형입니다. 컬렉션, 배열, I/O 채널 또는 스트림 작업을 지원하는 기타 데이터 원본에서 병렬 스트림을 만들 수 있습니다. ParallelStream을 생성하려면 stream 메서드 대신 parallelStream 메서드를 사용할 수 있습니다. 다음은 숫자 목록에서 병렬 스트림을 만드는 방법의 예입니다. List numbers = Arrays.asList(1, 2, 3, 4, 5); numbers.parallelStream().forEach(x -> System.out.println(x)); 이 코드는 숫자 목록에서 병렬 스트림을 만들고 forEach 메서드를 사용하여 스트림의 각..

Java Stream(map, filter, redute, sorted, collect)

Java Stream API는 Java 8에 도입된 새로운 기능으로 데이터 컬렉션 작업에 대한 접근 방식을 제공합니다. 스트림은 병렬 또는 순차적으로 처리할 수 있는 일련의 요소입니다. Stream API의 주요 기능은 다음과 같습니다. 스트림 작업은 느리게 수행됩니다. 즉, 필요할 때만 실행됩니다. 이를 통해 최적화가 가능하고 성능이 향상될 수 있습니다. 스트림 작업은 한 작업의 출력이 다음 작업의 입력으로 사용되는 파이프라인에서 함께 연결될 수 있습니다. 이를 통해 복잡한 데이터 처리 파이프라인을 생성할 수 있습니다. 스트림을 병렬로 처리할 수 있습니다. 즉, 동시에 처리할 수 있는 여러 부분으로 분할할 수 있습니다. 이렇게 하면 대규모 데이터 컬렉션으로 작업할 때 성능이 향상될 수 있습니다. Str..

Java Collection(HashSet, TreeSet, LinkedHashSet)

Java의 Set은 고유한 요소의 모음이며 중복을 허용하지 않습니다. Set은 HashSet, TreeSet 및 LinkedHashSet을 포함하여 Java의 여러 클래스에 의해 구현됩니다. Set 인터페이스의 일부 메서드는 다음과 같습니다. add(요소): 새 요소를 추가합니다. remove(element): 지정된 요소를 제거합니다. contains(element): 지정된 요소가 포함되어 있으면 true를 반환합니다. isEmpty(): Set이 비어 있으면 true를 반환합니다. 즉, 요소가 포함되어 있지 않습니다. size(): 요소 수를 반환합니다. iterator(): 요소를 반복하는 데 사용할 수 있는 Iterator를 반환합니다. clear(): Set에서 모든 요소를 제거합니다. Has..

Java Collection(HashMap, TreeMap, LinkedHashMap)

Map 인터페이스는 Java Collection Framework의 일부이며 각 키가 고유하고 해당 값을 검색하는 데 사용할 수 있는 키-값 쌍을 저장하는 데이터 구조입니다. Map 인터페이스의 사용방법 중 일부는 다음과 같습니다. put(key, value): 맵에 새 키-값 쌍을 추가하거나 기존 키와 연결된 값을 업데이트합니다. get(key): 주어진 키와 관련된 값을 검색합니다. remove(key): 맵에서 지정된 키를 가진 키-값 쌍을 제거합니다. containsKey(key): 맵에 지정된 키가 있는 키-값 쌍이 포함되어 있으면 true를 반환합니다. isEmpty(): 맵이 비어 있으면 true를 반환합니다. 즉, 키-값 쌍이 포함되어 있지 않습니다. size(): 맵에서 키-값 쌍의 수를..

Java Collection(ArrayList, LinkedList, Vector)

Java에서 java.util.List 인터페이스는 Java Collection Framework의 일부이며 정렬된 요소 모음을 나타냅니다. 목록은 중복을 허용하고 조작할 수 있는 정의된 순서를 가집니다. 요소는 인덱스로 액세스할 수 있으며 목록 크기는 요소가 추가되거나 제거될 때 동적으로 변경될 수 있습니다. 다음을 포함하여 List 인터페이스의 여러 구현이 있습니다. ArrayList: 배열을 사용하여 요소를 저장하고 기본 작업(get 및 set)에 대해 일정한 시간 성능을 제공하는 구현입니다. LinkedList: 이중 연결 목록을 사용하여 요소를 저장하고 기본 작업(추가 및 제거)에 대해 일정한 시간 성능을 제공하는 구현입니다. Vector: 배열을 사용하고 동기화되는 구현(스레드 안전). Arr..

Java 비동기 프로그래밍

자바 비동기 프로그래밍은 병렬적으로 작업을 수행하면서 프로그램의 성능을 향상시키는 기술입니다. Future, CompletableFuture, Callable & ExecutorService 등의 클래스를 사용하여 비동기 작업을 구현할 수 있습니다. 이러한 기술을 사용하면 빠르고 효율적인 프로그래밍을 구현할 수 있으며, 동시에 다양한 작업을 수행할 수 있어 프로그램의 성능을 향상시킬 수 있습니다. Future, CompletableFuture, Callable & ExecutorService에 대해 간단히 알아보겠습니다. 비동기 프로그래밍을 위한 API Future Java에서 Future는 미래에 완료될 결과를 나타내는 객체입니다. Future 객체는 비동기 태스크가 완료될 때까지 기다릴 수 있습니다...