프로그래밍 12

Salesforce Apex Trigger

Salesforce Apex Trigger Salesforce Apex Trigger는 Salesforce 플랫폼에서 레코드가 삽입, 업데이트, 삭제 또는 복원될 때 사용자 지정 작업을 수행할 수 있는 코드 조각입니다. Trigger는 비즈니스 프로세스를 자동화하고 데이터 유효성 검사 규칙을 시행하며 특정 이벤트가 Salesforce 플랫폼에서 발생할 때 사용자 정의 로직을 실행하는 데 일반적으로 사용됩니다. 다음은 Salesforce Apex Trigger에 관한 주요 내용입니다. 1. Trigger Event: - Trigger는 삽입 전, 업데이트 전, 삭제 전, 삽입 후, 업데이트 후, 삭제 후, 복원 후와 같은 다양한 이벤트 전후에 실행되도록 정의할 수 있습니다. 2. Trigger Contex..

Database Index(MariaDB) 사용

1. 인덱스란 인덱스(Index)는 테이블의 검색 속도를 향상시키기 위해 사용되는 자료구조로, 특정 컬럼(또는 컬럼의 조합)의 값을 미리 정렬하여 데이터베이스의 검색 작업을 최적화하는 역할을 합니다. 일반적으로 데이터베이스 테이블에는 많은 레코드(행)들이 저장되어 있고, 이러한 레코드들을 검색하거나 필터링하는 작업은 데이터베이스의 성능에 영향을 미칩니다. 특히 큰 테이블에서 전체 레코드를 스캔하여 검색하거나 조건에 맞는 레코드를 찾는 것은 많은 시간과 자원을 소비하게 됩니다. 이런 문제를 해결하기 위해 인덱스는 특정 컬럼에 대해 미리 정렬된 데이터 구조로 생성됩니다. 이렇게 인덱스가 생성되면, 데이터베이스가 레코드를 검색할 때 모든 레코드를 순차적으로 검색하는 것이 아니라, 인덱스를 사용하여 검색 범위를..

프로그래밍 2023.08.01

INNER JOIN, LEFT JOIN, RIGHT JOIN 설명

INNER JOIN, LEFT JOIN, RIGHT JOIN 설명 데이터베이스의 조인은 둘 이상의 테이블에서 데이터를 결합하는 방법을 말합니다. 이를 통해 데이터베이스에서 복수의 테이블을 사용하여 더 복잡한 질의를 실행하거나 데이터를 효율적으로 관리할 수 있습니다. 여기서는 INNER JOIN, LEFT JOIN, RIGHT JOIN, 그리고 FULL OUTER JOIN에 대한 간단한 예제를 제공하겠습니다. 1. JOIN 종류 2. 유의사항 1. JOIN 종류 다음과 같은 두 개의 테이블이 있다고 가정해봅시다. 고객 테이블 (Customers) | CustomerID | CustomerName | Country | |------------|--------------|---------| | 1 | John..

프로그래밍 2023.08.01

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..