Apex는 Java와 유사한 구문을 사용하고 데이터베이스 저장 프로시저와 같이 작동하는 프로그래밍 언어
언어로서의 Apex
- 호스팅됨 - Apex는 서버인 Lightning Platform에서 저장, 컴파일 및 실행됩니다.
- 개체 지향 - Apex는 클래스, 인터페이스 및 상속을 지원합니다.
- 강력한 형식 - Apex는 컴파일 타임에 개체에 대한 참조의 유효성을 검사합니다.
- 다중 테넌트 인식 - Apex는 다중 테넌트 플랫폼에서 실행되므로 코드가 공유 리소스를 독점하는 것을 방지하는 제한을 적용하여 런어웨이 코드를 철저히 보호합니다.
- 데이터베이스와 통합 - 레코드에 간단하게 액세스하고 조작합니다. Apex는 레코드 및 해당 필드에 대한 직접 액세스를 제공하고 해당 레코드를 조작하기 위한 문 및 쿼리 언어를 제공합니다.
- 데이터 중심 - Apex는 데이터베이스에 대한 트랜잭션 액세스를 제공하여 작업을 롤백할 수 있도록 합니다.
- 사용 용이성 - Apex는 친숙한 Java 관용구를 기반으로 합니다.
- 테스트 용이성 - Apex는 유닛 테스트 생성, 실행 및 코드 검사에 대한 기본 제공 지원을 제공할 수 있습니다. Salesforce는 플랫폼 업그레이드 전에 모든 유닛 테스트를 실행하여 모든 사용자 정의 Apex 코드가 예상대로 작동하는지 확인할 수 있습니다.
- 버전 관리 - 사용자 정의 Apex 코드는 API의 다른 버전에 대해 저장할 수 있습니다.
Apex가 지원하는 언어 구성 중 일부
- 클래스, 인터페이스, 속성, 컬렉션 (목록, 맵, 세트)
- 개체 및 배열 표기법
- 표현식, 변수 및 상수
- 조건문(if-then-else) 및 제어 플로 문(for 루프 및 while 루프)
다른 개체 지향 프로그래밍 언어와 달리 Apex는 다음을 지원한다.
- Apex로서의 클라우드 개발은 클라우드에서 저장, 컴파일 및 실행됨
- 데이터베이스 시스템의 트리거와 유사한 트리거
- 데이터를 쿼리하고 검색하기 위해 직접 데이터베이스 호출 및 쿼리 언어를 만들 수 있는 Database 문
- 트랜잭션 및 롤백
- public 수정자보다 권한이 더 있는 global 액세스 수정자로, 네임스페이스와 애플리케이션 전반에 걸쳐 액세스를 허용함
- 사용자 정의 코드의 버전 관리
* Apex는 대소문자를 구분하지 않는 언어
변수 선언법
List<String> colors = new List<String>();
String[] colors = new List<String>();
Apex 클래스 저장
조직에서 EmailManager 클래스 저장
1. Your Name에서 Developer Console을 열거나 빠른 액세스 메뉴를 연다.
2. Developer Console에서 File | New | Apex Class 를 클릭하고 클래스 이름에 대해 EmailManager를 입력한 다음 OK를 클릭
3. 기본 클래스 본문을 EmailManager 클래스 예로 변경
- 이메일을 전송하고 Apex 클래스 라이브러리의 기본 제공 Messaging 메서드를 사용하는 EmailManager 클래스에는 공개 메서드 sendMail() 가 있고, 이 클래스에는 비공개 도우미 메서드 inspectResult() 가 있으며 이는 비공개이므로 외부에서 호출할 수 없지만 클래스 내에서만 사용된다. 이 도우미 메서드는 이메일 보내기 호출의 결과를 검사하고 sendMail()에서 호출 된다.
public class EmailManager {
// Public method
public void sendMail(String address, String subject, String body) {
// Create an email message object
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[] {address};
mail.setToAddresses(toAddresses);
mail.setSubject(subject);
mail.setPlainTextBody(body);
// Pass this email message to the built-in sendEmail method
// of the Messaging class
Messaging.SendEmailResult[] results = Messaging.sendEmail(
new Messaging.SingleEmailMessage[] { mail });
// Call a helper method to inspect the returned results
inspectResults(results);
}
// Helper method
private static Boolean inspectResults(Messaging.SendEmailResult[] results) {
Boolean sendResult = true;
// sendEmail returns a list of result objects.
// Iterate through the list to inspect results.
// In this class, the methods send only one email,
// so we should have only one result.
for (Messaging.SendEmailResult res : results) {
if (res.isSuccess()) {
System.debug('Email sent successfully');
}
else {
sendResult = false;
System.debug('The following errors occurred: ' + res.getErrors());
}
}
return sendResult;
}
}
4. File | Save 를 클릭하여 클래스를 저장한다.
이메일을 보내는 메서드 호출
1. Developer Console에서 Debug | Open Execute Anonymous Window 를 클릭
2. 열리는 창에서 다음을 입력. 'Your email address'를 이메일 주소로 변경
EmailManager em = new EmailManager();
em.sendMail('Your email address', 'Trailhead Tutorial', '123 body');
3. Execute를 클릭
디버그 로그 검사
Apex 메서드가 실행되면 호출이 디버그 로그에 기록된다. 또한 로그에 고유한 디버그 메시지를 작성할 수 있으므로 오류가 있는 경우 코드를 디버깅하는 데 도움이 된다. sendMail()에서 호출되는 inspectResults() 도우미 메서드는 System.debug() 메서드를 사용하여 로그에 메시지를 써서 이메일 보내기 작업이 성공했는지 또는 오류가 있었는지 여부를 나타내는 메서드
'Salesforce > trailhead' 카테고리의 다른 글
초보 개발자) 7. sObject 사용하기 / DML로 레코드 조작하기 (0) | 2025.01.14 |
---|---|
초보 개발자) 5. 유효성 검사 규칙 만들기 (0) | 2025.01.08 |
초보 개발자) 3. 수식 필드 사용 (0) | 2025.01.08 |
초보 개발자) 2.클릭으로 데이터 모델 만들기 (1) | 2025.01.07 |
초보 개발자) 1. 개발 준비하기 (0) | 2025.01.06 |