Skip to main content

Lightning 웹 보안 시작하기

학습 목표

이 유닛을 완료하면 다음을 수행할 수 있습니다.

  • Lightning 웹 보안을 설명할 수 있습니다.
  • Lightning 웹 보안의 이점을 나열할 수 있습니다.

Lightning 웹 보안이란 무엇인가요?

관리자와 개발자가 조직에 새로운 기능을 추가할 때 조직 보안은 최우선 순위입니다. 사전 구축된 구성 요소(Salesforce 또는 AppExchange에서 제공)와 사용자 정의로 구축된 구성 요소 모두 위험을 초래하여 조직이 위험한 코드에 의해 손상될 수 있습니다. 

그러나 보안은 성능이나 기능 제한에 대한 결과를 초래해서는 안 됩니다. 따라서 Salesforce는 조직의 보안을 유지하기 위해 Lightning 웹 보안(LWS)을 만들었습니다. LWS는 새로운 Lightning 구성 요소 사용 사례를 통해 더욱 더 개선된 기능을 추가합니다. 하지만 LWS에 대해 자세히 알아보기 전에 이전 버전인 Lightning Locker를 간단히 살펴보겠습니다.

참고

참고

이 모듈로 작업할 때 Lightning 웹 구성 요소(Lightning Web Components)를 대문자로 표기하는 방식에 차이가 있을 수 있습니다. Salesforce에서는 Lightning 웹 구성 요소(Lightning Web Components) 프로그래밍 모델을 언급할 때 모든 단어를 대문자로 표시합니다. Salesforce에서는 구성 요소 자체를 Lightning 웹 구성 요소(Lightning web components)라고 할 경우 첫 단어만 대문자로 사용합니다.

Lightning Locker

이미 Lightning 구성 요소를 사용하고 있다면 Lightning Locker에 익숙하실 겁니다. Lightning Locker는 Lightning 구성 요소 네임스페이스를 자체 컨테이너에 격리하고 코딩 모범 사례를 적용하여 Lightning 웹 구성 요소 및 Aura 구성 요소를 안전하게 유지하는 표준이 되었습니다. 예를 들어 c-editor라는 구성 요소는 c 네임스페이스에서 가져왔으며 ltngmu 네임스페이스의 구성 요소와 격리되어 있습니다. 

Lightning Locker는 당분간 유지됩니다. Lightning 웹 구성 요소를 위한 LWS(GA)와 Aura를 위한 LWS(베타)는 사용자 정의 Lightning 웹 구성 요소나 Aura 구성 요소를 포함하고 있지 않은 조직에서 기본적으로 활성화됩니다. 이를 통해 2022년 봄에 발표한 LWS 아키텍처의 점진적인 롤아웃을 계속 진행할 수 있습니다. Lightning 웹 보안은 보안 및 성능 구성 요소의 미래이므로 LWS로 빠르게 이동할수록 조직이 더 안전하고 빨라집니다.

참고

참고 

이 모듈에서는 Lightning 웹 보안에 대해 살펴봅니다. Lightning Locker에 대해 자세히 알아보려면 리소스 섹션의 링크를 참조하세요. 

차세대 Lightning 웹 보안

Lightning 웹 보안은 Lightning 구성 요소를 위한 새로운 서비스입니다. Lightning 구성 요소를 사용하는 경우 Salesforce 페이지에는 다른 회사의 구성 요소가 포함될 수 있습니다. 또한 사용자 정의 구성 요소는 Salesforce에서 생성한 구성 요소 및 개발자가 개발하거나 사용하는 AppExchange의 앱과 혼합됩니다. 

정적 리소스에서 로드된 타사 라이브러리를 포함하여 사용 환경의 다양한 소스에서 여러 구성 요소를 사용하면 잠재적인 위협을 방지할 수 있습니다. 구성 요소의 악성 코드는 창, 문서 또는 요소와 같은 전역 개체에 액세스하여 해당 리소스 또는 데이터를 얻어 조직 전반에 걸쳐 피해를 줄 수 있습니다. 

JavaScript 샌드박스를 통한 보안

Lightning 웹 보안의 아키텍처는 네임스페이스 전용 JavaScript sandbox에서 각 구성 요소를 분리하여 사용자 환경에서 작동합니다. 한 구성 요소의 위험 코드는 네임스페이스 외부의 다른 구성 요소의 리소스에 액세스할 수 없습니다.

Lightning 웹 보안 사용 사례

Lightning Locker와 Lightning 웹 보안은 안전하지 않은 API의 동작을 차단하거나 수정하지만, LWS는 성능과 보안을 향상시키는 이러한 추가 사용 사례를 제공합니다.

크로스 네임스페이스 구성 요소 사용
Lightning 웹 구성 요소는 다른 네임스페이스에서 구성 요소 또는 모듈을 가져와 구성 또는 확장을 통해 사용할 수 있습니다. 구성 요소는 자체 네임스페이스 JavaScript sandbox에 투명하게 격리됩니다. 이 과정은 사용자 모르게 조용히 진행됩니다.

전역 개체와 상호 작용
Lightning Locker는 구성 요소를 격리하고 성능을 제한하며 일부 타사 라이브러리의 사용을 금지하는 보안 래퍼가 필요합니다. Lightning 웹 보안은 안전하지 않은 코드를 탐지하는 구성 요소의 동작을 차단하거나 수정하여 안전한 래퍼의 필요성을 제거합니다. 코드가 있는 sandbox에서 이 작업을 수행하므로 문제를 야기하지 않습니다. 이를 통해 구성 요소에서 타사 라이브러리를 사용할 수 있는 더 많은 자유와 유연성을 얻을 수 있습니다.

iFrame 컨텐츠 및 Identity Lightning 웹 보안에 액세스
Lightning Web 구성 요소가 iFrame 요소의 컨텐츠에 액세스할 수 있으므로 Lightning Locker에서 차단한 다른 웹 개발 기능을 사용할 수 있습니다.

성능 향상
안전한 래퍼가 없어도 네임스페이스 JavaScript sandbox의 코드는 더 빠르게 실행됩니다.

타사 JavaScript 라이브러리의 지원 향상
LWS에서 라이브러리는 자체 네임스페이스 JavaScript sandbox에서 실행되므로 전역 개체 조작과 같은 작업을 수행할 수 있습니다. 전역 개체에 대한 이러한 변경 사항은 다른 네임스페이스의 구성 요소에는 영향을 주지 않습니다.

JavaScript가 진화함에 따라 진화하는 Lightning 웹 보안
LWS는 브라우저 플랫폼과 함께 발전하는 최신 TC39 표준을 모델로 하고 있습니다. 즉, 기술이 변화함에 따라 시대에 뒤떨어지지 않습니다.

다음 유닛에서는 Lightning 웹 보안이 어떻게 작동하는지, LWS의 영향을 받는 구성 요소가 있는지, 조직에서 LWS를 활성화하는 방법을 자세히 살펴보겠습니다.

리소스

Salesforce 도움말에서 Trailhead 피드백을 공유하세요.

Trailhead에 관한 여러분의 의견에 귀 기울이겠습니다. 이제 Salesforce 도움말 사이트에서 언제든지 새로운 피드백 양식을 작성할 수 있습니다.

자세히 알아보기 의견 공유하기