트레일헤드 개발자 초급 코스 목차를 기준으로 작성 해 놓았으며,
노션으로 따로 정리해 사이트가 있지만 여기에서도 백업을 위해 정리
1. Salesforce 개발 시작하기
1) 개발 준비하기
(1) Salesforce Platform 개발
개발자들이 Salesforce Platform을 중요하게 여기는 이유
- 애플리케이션 개발의 속도와 효율성 향상
- 사용자 ID 및 인증, 데이터 보안 및 권한 부여 등을 관리하기 위한 기본 도구와 서비스 가용성
- 고객 데이터를 기반으로 사용자 정의 솔루션을 구축하는 기능

- 최적화된 Salesforce 프로그래밍 언어인 Apex를 사용하여 데이터 모델을 생성하고 백엔드 코드를 작성해 Salesforce 멀티테넌트 아키텍처에서 실행되도록 한다.
- Salesforce는 모든 기능을 갖춘 CRUD(생성, 읽기, 업데이트, 삭제) 데이터 UI를 자동으로 생성하고,
- JavaScript 및 Lightning 웹 구성 요소를 사용하여 맞춤형 프론트엔드 기능을 구축할 수 있다.
(2) 개발 도구
🖥️ Salesforce에서 애플리케이션 개발 도구
- ‘조직’ 이라고도 하는 Salesforce 개발 환경 (Org)
- 애플리케이션 개발 라이프사이클을 관리하는 Salesforce 명령줄 인터페이스(CLI)
- Salesforce CLI는 Salesforce Platform을 사용하기 위한 명령줄 도구.
- Salesforce CLI를 사용하면 개발 및 테스트를 위한 환경을 쉽게 만들 수 있으며,
- 조직과 버전 관리 시스템 간에 소스 코드를 동기화하고 유닛 테스트를 실행하는 명령도 있다.
- Salesforce 확장팩(확장형)의 확장 기능과 함께 설치된 Visual Studio Code(VS Code)
- Salesforce 지원 코드 편집기
- Salesforce 확장팩에는 Salesforce CLI를 활용해 개발을 간소화하는 기능이 포함되어 있다.
Trailhead Playground 조직 비밀번호 재설정

🖥️ CLI(명령줄 인터페이스) 설치하기
- CLI의 전체 설치 지침에 대한 내용은 Salesforce CLI 설정 가이드를 참조
- Salesforce CLI를 설치
- 명령줄에서sf update 명령을 실행하여 CLI가 최신 버전이고 제대로 설치되었는지 확인
🖥️ Visual Studio Code 및 Salesforce 확장팩 설치

Salesforce Extension Pack Install
새 Salesforce 프로젝트 만들기

Ctrl + Shift + P 명령어 단축키 누르고
SFDX : Create Project
SFDX : Create Project with Mainfest
- Mainfest는 pull/push 작업
- SFDX: 소스를 조직에 배포 및 SFDX: 조직에서 소스 검색을 허용

2) 클릭으로 데이터 모델 만들기
다운 받은 House.csv 파일 Custom Object from Spreadsheet(스프레드시트의 사용자 정의 개체) 만들기

( 데이터 넣는 과정 더 구체적으로 작성하기
- 수동, 자동 어떤 기능 있는지 구분해서 쓰고 설명 필요
- 다양한 사례들을 넣어서 실습 필요, 필드 별로 원화나, 여러 타입들 넣어서 시도하기.
)



import 된 오브젝트들을 확인할 수 있다.
(3) 로컬에서 메타데이터 가져오기
관리자 UI에서 수행한 모든 구성은 XML 형식의 데이터로 검색하여 버전 관리에서 확인할 수 있다.
XML 형식의 데이터는 메타데이터라고도 함
Salesforce Platform은 메타데이터 API를 제공하여 개발, 테스트 및 프로덕션 환경 간에 다양한 유형의 메타데이터를 검색하고 배포할 수 있도록 한다.
메타데이터 API
- Salesforce CLI 및 Salesforce 확장 기능에서 내부적으로 사용하는 것이다.
- Salesforce의 메타데이터에 액세스하려면 메타데이터 API를 호출해야 한다. 이를 통해 구성 파일을 사용하여 한 조직에서 다른 조직으로 Salesforce 메타데이터를 검색하고 배포할 수 있다.

다른 방법으로 CLI를 사용하여 메타데이터를 가져올 수도 있다. 예를 들어, 터미널에서 명령을 실행하면 아래에 나열된 다른 모든 메타데이터 항목을 가져올 수 있다.
sf project retrieve start --metadata CustomApplication:Dreamhouse CustomTab:House__c "Layout:House__c-House Layout"
| 메타데이터 유형 | 구성 요소 이름 | 터미널에서 실행 |
| 사용자 정의 애플리케이션 | Dreamhouse | CustomApplication:Dreamhouse |
| 사용자 정의 탭 | House__c | CustomTab:House__c |
| 레이아웃 | House__c-House Layout | Layout:House__c-House Layout |
3) Apex에서 비즈니스 로직 작성하기
(1) Apex 개요 및 클래스 생성, 배포
Apex란?
- Salseforce에서 자체 개발한 개발 언어, 강타입(Strongly typed)의 객체 지향 프로그래밍 언어
- Salesforce 멀티테넌트 아키텍처에서 실행되도록 최적화되어 있다.
- Apex는 개발자가 복잡한 백엔드 비즈니스 프로세스를 자동화할 수 있도록 지원하며, Java 바이트코드로 컴파일된다.
Apex는 SQL과 유사한 SOQL(Salesforce Object Query Language)을 제공하여 쿼리를 실행하고
DML(Data Manipulation Language) 문을 사용해 이전에 만든 개체로 데이터베이스 작업을 수행할 수 있다.
Apex 클래스 생성하기

public with sharing class HouseService {
@AuraEnabled(cacheable=true)
public static List<House__c> getRecords() {
try {
// Create a list of House records from a SOQL query
List<House__c> lstHouses = [
SELECT
Id,
Name,
Address__c,
State__c,
City__c,
Zip__c
FROM House__c
WITH USER_MODE // 쿼리가 현재 사용자의 권한을 기반으로 데이터를 조회하도록 한다.
ORDER BY CreatedDate // CreatedDate 필드 기준으로 정렬
LIMIT 10 // 조회할 레코드의 수를 최대 10개로 제한
];
return lstHouses;
}
// Code to handle exception
catch (Exception e) {
throw new AuraHandledException(e.getMessage());
}
}
}

SFDX: Deploy Source to Org(SFDX: 조직에 원본 배포) 를 선택
Apex 클래스가 조직에 성공적으로 배포되었다는 확인 메시지가 표시된다. 코드를 배포하면 서버에서도 컴파일 된다.
🖥️ 테스트할 익명 스크립트 만들기
- 익명 스크립트는 메타데이터에는 저장되지 않으면서 컴파일하고 실행할 수 있는 Apex 코드

Apex는 거버너 제한 실행 및 요구 사항 테스트를 통해 올바른 코딩 관행을 장려한다.
- Apex 코드가 제한을 초과하는 경우 관련 거버너는 처리할 수 없는 런타임 예외를 발생
- 거래당 Apex 한도, 거래당 인증된 관리 패키지 제한
- Lightning Platform Apex 제한
- 정적 Apex 제한
- 크기별 Apex 제한
- 기타 Apex 제한
- 이메일 한도, 푸시알림 제한 등
- 테스트 모범사례 (요구사항)
- 단위 테스트는 Apex 코드의 75% 이상을 다루어야 하며 모든 테스트가 성공적으로 완료되어야 한다.
- 모든 트리거에는 일부 테스트 적용 범위가 있어야 한다.
- 모든 클래스와 트리거는 성공적으로 컴파일되어야 한다.
4) Lightning 웹 구성 요소로 재사용 가능한 UI 구성 요소 구축하기
Lightning 웹 구성 요소 개요 및 생성,배포
Lightning 웹 구성 요소 개요
- Lightning 웹 구성 요소는 웹 구성 요소 표준을 사용하고 HTML과 최신 JavaScript로 구축된 사용자 정의 HTML 요소이다.
- Lightning 웹 구성 요소(LWC)는 브라우저에서 기본적으로 실행되며, 개발자는 기본으로 제공되는 사용자 인터페이스를 사용자 정의할 수 있다.
웹 구성 요소
- 웹 구성 요소
- 웹 구성요소는 재사용 가능한 사용자 정의 요소를 생성하고(나머지 코드와 기능이 캡슐화되어 있음) 웹 앱에서 활용할 수 있는 다양한 기술 모음이다.
- 캡슐화된 기능을 갖춘 다용도 사용자 정의 요소를 만들기 위해 함께 사용할 수 있는 세 가지 주요 기술로 구성
- 맞춤 요소
- 사용자 정의 요소와 해당 동작을 정의하여 사용자 인터페이스에서 원하는 대로 사용할 수 있는 JavaScript API 세트
- 섀도우 DOM
- 캡슐화된 "섀도우" DOM 트리를 요소(기본 문서 DOM과 별도로 렌더링됨)에 연결하고 관련 기능을 제어하기 위한 JavaScript API 세트
- HTML 템플릿
- <template>및 요소 <slot>를 사용하면 렌더링된 페이지에 표시되지 않는 마크업 템플릿을 작성할 수 있다.
🖥️ Lightning 웹 구성 요소 생성 및 배포하기
- Force-app/main/dault에서 lwc 폴더를 마우스 오른쪽 버튼으로 클릭하고 **SFDX: Create Lightning Web Component(SFDX: Lightning 웹 구성 요소 만들기)**를 선택
- Lightning 웹 구성 요소의 이름을 housingMap으로 지정하고 main/default/lwc 디렉터리를 선택
- HTML 파일, JavaScript 파일, 메타데이터 XML 파일, test.js 파일이 표시

🖥️ 다른 방법으로 lwc 생성하기
라이트닝 스튜디오: 빠르고 쉬운 Salesforce LWC 개발 도구

라이트닝 스튜디오는 Salesforce LWC 개발을 간소화하기 위해 설계된 Chrome 브라우저 확장 프로그램
확장프로그램 추가 시 작게 활성화 된 아이콘을 누르면 바로 스튜디오 프로그램으로 연결

트레일헤드 실습 코드 적용
housingMap.js-meta.xml 에서
<?xml version="1.0" encoding="UTF-8"?>
<LightningComponentBundle xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>59.0</apiVersion>
<isExposed>true</isExposed>
<targets>
<target>lightning__HomePage</target>
</targets>
</LightningComponentBundle>
<isExposed>true</isExposed> true로 설정하고,
<target>lightning__HomePage</target> 타겟 설정을 해야만

라이트닝페이지에서 Custom 부분을 뜬 것을 확인할 수 있고, 적용할 수 있다.
2. 빠른 시작: 샘플 앱 갤러리 둘러보기
1) 샘플 갤러리
Trailhead 샘플 앱은 Salesforce Platform의 다양한 개발자 기능에 대한 코드 예제를 제공한다. 샘플 앱은 최고의 최신 Salesforce 기술을 활용하는 데 도움이 되도록 제작되었다.
- Trailhead 샘플 앱은 각자의 GitHub 조직에 있다.
- github.com/trailheadapps으로 이동
2) 샘플 앱 도구에 대해 알아보기
(1) 샘플 앱 코드 리포지토리
LWC Recipes (LWC 레시피) 설치하기


'Salesforce > 정리' 카테고리의 다른 글
| 개발자 초급 정리 (3. 수식 필드, 4. Apex 기본 및 데이터베이스) (0) | 2024.09.06 |
|---|---|
| Apex Integration Services - Apex REST 및 SOAP 서비스를 사용하여 외부 앱과 통합하기 (트레일) (0) | 2024.08.26 |
| Experience Cloud 회원가입 부분 (CommunitiesSelfReg 추가) (0) | 2024.08.19 |
| Experiences Cloud 부분 (외부 회원가입) (0) | 2024.08.08 |
댓글