티스토리 뷰
1. Apex – 클래스 구분
- Apex에서 클래스를 구분하는 기본 구문은 다음과 같다.
2. Apex – 데이터 유형
- 1) 기본 유형 ( Integer, Double, Long, Date, Datetime, String, Boolean )
- 2) 그 외
- Apex에서는 모든 변수가 기본적으로 null로 초기화된다.
- Apex에서 문자열은 항상 기본 값 유형으로 구분된다.
3. Apex – 컬렉션 유형
- 1) List ( 목록 )
- List는 기존 배열과 동일하게 작동되는 정렬된 요소의 모음이다.
- Apex에서 배열과 list는 동의어이며, 서로 교환하여 사용할 수 있다.
- 즉, String [ ] myStrings = new List<String> ( );가 된다는 말이다.
- List에 값을 추가하기 위해서는 myStrings.add('String1');를 사용한다.
- 또한 SOQL 쿼리의 출력물이 list이기에 List<Account> myAccounts = [SELECT Id, Name FROM Account];도 가능하다.
- 배열과 마찬가지로 list 또한 인덱스번호가 0번부터 시작한다.
- Ex. List<String> groceries = new List<String>{'Tea','Sugar','Honey','Milk'};
- Ex. arr.add(1, 'Milk');처럼 인덱스 번호를 지정해서 저장할 수 있다.
- 2) Set ( 세트 )
- Set은 값의 중복을 포함하지 않으며, 값을 순서 없이 저장하는 컬렉션 유형이다.
- 값이 항상 고유하기 때문에 Set은 일반적으로 ID값을 저장하는데 사용한다.
- 다음과 같이 SOQL의 Where절에서 Set가 사용될 수 있다.
- Set<ID> accountIds = new
- Set<ID>{'001d000000BOaHSAA1','001d000000BOaHTAA1'};
- List<Account> accounts = [
- SELECT Name FROM Account WHERE Id IN : accountIds ];
- 3) Map ( 지도 )
- Map은 Key-Value의 쌍으로 값을 저장하는 컬렉션 유형이다.
- 각 Key는 단일 값에 매핑된다.
- Map은 Key로 Value를 빨리 찾아야 할 때 유용한 컬렉션이다.
4. Apex – trigger ( 트리거 )
- SQL Server의 트리거와 마찬가지로 Apex 데이터베이스 트리거는 Salesforce의 레코드에 대한 이벤트 전후의 프로그래밍 로직을 실행한다.
- 트리거를 정의할 때, ( 삽입 전/후, 업데이트 전/후, 삭제 전/후, 삭제 취소 후 ) 이벤트 중 둘 이상을 지정할 수 있다.
- 트리거의 기본 문법은 다음과 같다.
- trigger TriggerName on ObjectName (trigger_events) {
- // code_block
- } // trigger
- Apex 트리거는 한번에 최대 200개의 레코드를 수신할 수 있다.
5. 비동기 프로그래밍의 장점
- 매우 많은 수의 레코드를 처리할 수 있다.
- 외부 웹 서비스의 콜 아웃을 만들 수 있다.
- 일부 처리를 비동기식 호출로 오프로드하여, 더 좋고 빠른 사용자 경험을 할 수 있다.
- Apex에서는 @future을 메소드에 추가함으로써, 동기식을 비동기식으로 변경할 수 있다.
6. Queueable Apex의 장점
- 1) 변수가 기본이 아닌 유형을 지원
- : sObject 또는 사용자 정의 Apex 유형과 같은 기본이 아닌 데이터 유형의 매개변수를 허용한다.
- 2) 모니터링
- : 작업을 제출하면 작업을 식별하고 진행사항을 모니터링하는데 사용할 수 있는 jobId가 반환된다.
- 3) 작업연결
- : 실행중인 작업에서 2번째 작업을 시작하여 한 작업을 다른 작업에 연결할 수 있다.
- : 연결작업은 순차 처리에 유용하다.
7. Debug Log ( 디버그 로그 )
- 다음과 같은 로깅 레벨을 지정해 줄 수 있다.
- NONE / ERROR / WARN / INFO / DEBUG / FINE / FINER / FINEST
- 각 디버그 로그는 20MB 이하여야 한다.
- 각 Org는 1000MB의 디버그를 유지할 수 있으며, 가장 오래된 로그를 덮어 쓴다.
8. 체크 포인트 설정
- 체크 포인트는 코드 라인에 대한 많은 세부 실행 정보를 표시한다는 점에서 중단점과 유사하다.
- 체크 포인트가 있는 라인에서는 실행이 멈춰지지 않는다.
9. Flow Resource
- Flow Resource는 이메일 템플릿 또는 수식의 병합 필드와 유사한 자리 표시자이다.
- Ex. Hi, {!$User.FirstName} -> Hi, GilDong처럼 이메일을 보낼 때, 수동으로 값을 입력하는 것이 아닌 Flow Resource를 통해 사용자의 실제 이름을 표시할 수 있다.
- Flow Builder에서 사용할 수 있는 기본적인 종류의 Flow Resource는 다음과 같다.
- 1) Constant( 상수 )는 세율과 같은 고정적인 값을 나타낸다.
- 2) Choice / Picklist Choice Set / Record Choice Set은 화면 구성 요소의 옵션을 나타낸다.
- 3) Formula( 수식 )은 수식 필드와 유사하게 계산된 값을 나타낸다.
- 4) Text Template은 서식이 지정된 일부 텍스트를 나타낸다.
- 5) Variable은 Flow Resource에서 변경될 수 있는 값을 나타낸다.
- 2번의 경우, 선택 리소스를 사용하여 각 옵션의 레이블과 값을 명시적으로 나타낸다.
- 반면, 선택 Set(집합)을 사용하면 필터링된 레코드 목록 또는 Org의 picklist 필드 값을 사용하여 선택 항목을 생성한다.
10. Variable ( 변수 )
- 특정한 조건에 따라 값이 다를 수 있는 경우 Variable을 사용한다.
- Variable의 값은 Flow가 작동하는 레코드에 따라서 달라지거나 Flow의 일부 로직 결과에 따라서 달라질 수 있다.
- Salesforce Record의 필드 값을 직접 참조할 수 없기에, 필드 값은 Variable을 통해 Flow에 저장해야 한다.
- Variable이 저장할 수 있는 데이터의 유형은 다음과 같다.
- : Text / Record / Number / Currency / Boolean / Date / Date-Time / Picklist / Multi-Select Picklist / Apex-Defined
- 기본적으로 변수는 선택한 데이터 유형과 호환되는 하나의 값을 저장한다.
- 그러나 하나의 변수에 여러 값을 저장해야 하는 경우에는 Variable을 만들 때 Allow multiple values(여러 값 허용) 확인란을 사용하여 저장할 수 있다.
- Allow multiple values를 선택하는 경우 Collection Variable이 된다.
11. Screen Components ( 화면 구성요소 )
- 1) Input
- : 사용자에게 정보를 요청하는 표준 구성 요소가 포함된다.
- 2) Display
- : 사용자에게 정보를 표시하는 표준 구성 요소가 포함된다.
- 3) Custom
- : 사용자 또는 다른 사람이 만든 구성 요소가 포함된다.
12. Common Data Type
- 1) Integer ( 정수 )
- 2) Decimal ( 소수 )
- 3) String ( 문자열 – ‘’를 사용하여 텍스트를 주변 코드와 구분 )
- 4) Boolean ( True / False )
- 5) ID( Salesforce ID – 18자의 Salesforce record Id )
13. Comparison Operators ( 비교 연산자 )
- 1) < : 미만
- 2) <= : 같거나 보다 작다.
- 3) == : 동일하다.
- 4) !=, <> : 동일하지 않다.
- 5) > : 보다 크다.
- 6) >= : 같거나 보다 크다.
14. Logical Operator ( 논리 연산자 )
- 1) || : 또는 ( OR )
- 2) && : 그리고 ( AND )
15. sObject ( Salesforce Object )
- sObject는 Org의 Salesforce Object에 해당하는 Apex 데이터 유형이다.
- sObject는 하나의 변수에 여러 값을 보유하는 복합 데이터 유형이다.
- Account, Contact, Opportunity와 같은 Salesforce Object의 단일 데이터 레코드를 보유한다.
- sObject에는 문자열, 날짜, 정수, Boolean과 같은 다양한 데이터 유형을 지닐 수 있다.