플러그인(사용자가 원하는 기능을 추가하고 생성하여 쓸 수 있는 프로그램)
플러그인은 자바스크립트, html,css로 만들어졌지만 차이가 있다
플러그인 시스템은 보안을 신경써야하기 때문에
브라우저 api의 접근을 다르게 할 필요가 있었다
그래서
1. 피그마 파일 콘텐츠에 어떻게 접근하는거야?
2. 내 플러그인을 위한 유저인터페이스 어떻게 만드는 거야?
3. 어떻게 네트워크 요청을 할 수 있는거야?
sandbox 샌드박스
(브라우저 api(주고 받을 수 있는 통신이라 이해하면됨)를 노출하고
있지 않은 작은 자바스크립트 환경 )
성능을 위해 플러그인 코드가 샌드박스의 메인 스레드에서 실행되는
모델로 사용하기로 했어
물론 여기에도 작은 콘솔 api는 있지만
xmlHttprequest(서버와 상호작용할 때 사용하는 객체,서버로부터 xml 데이터 가져올 때 쓰임) 그리고 돔과 같은 것들은 샌드박스에서 직접 하지 못하게 했어
ui를 보여주거나 네트워크를 접근하기 위한 브라우저 api를
사용하려면 너는 요런 태그(<script>
안에 있는 <iframe>
)를 사용해야돼
간단히 보면 이 함수를 이용해서 작동되고 있어

이 <iframe>안에서 너는 html, 자바스크립트 그리고 브라우저 api 에도
접근할 수 있는겨.
메인 스레드(메인 실행구조, 동작구조)는 피그마의 "scene 씬"에 접근할 수 있어
(뭐뭐뭔소리야? -피그마 문서를 구성하는 계층의 계층이래. 옥히~) 하지만 브라우저 api는
접근할 수 없어
반대로 iframe 그 태그는 브라우저api에 접근할 수 있는데
피그마 씬에는 접근 못해
대신 이 둘, 메인 스레드와 iframe은 메세지를 주고 받으면서 소통할 수 있어

플러그인이 일 다 마쳤을 때
figma.closePlugin() 함수를 불러서 피그마한테 끝냈다고 말해줘.
그렇지 않으면 사용자는 너의 플러그인이 동작중이다~ 를 계속 보게
될거니까.
그리고 사용자는 플러그인이 동작하는 동안에
피그마가 나타내는 ui를 사용해서 언제든지 플러그인을 취소할 수 있어
이렇게 되면 피그마는 그 자체로 figma.closePlugin()함수 불러서 끝내겠지
출처 : https://www.figma.com/plugin-docs/how-plugins-run/
'읽어보면 좋은 글' 카테고리의 다른 글
자바 객체 생성가이드 (0) | 2023.09.15 |
---|---|
도커docker가 뭐고 왜쓰는지 궁금해서 찾아봄 (0) | 2023.01.17 |
(스크랩글)주니어 개발자에게 전하는 테스트할 때 기억할 10가지 (0) | 2022.05.25 |
(리액트)네이티브에서 리액트로 앱 전환하면서 겪은 고민들 by 라프텔 (0) | 2022.05.20 |