attached to post

<Android Studio Plugin> 빌드 속도 증가로 모듈 분리의 필요성을 느끼게 되었고, 모듈을 분리하기 전에 패키지 단위로 분리해야 했습니다. 패키지를 기능(feature) 단위로 분리하기로 합의되어 진행 중이었지만, 반복적인 작업이 계속되며 업무 효율성이 저하되고 있다는 것을 느꼈습니다. 이 문제를 개선하기 위해 프로젝트 구조에 맞는 패키지를 생성해 주는 Intellij 기반 플러그인을 개발하기로 결심했고, 개발 완료 후에는 스토어에 배포하였습니다. ## 준비 1. https://github.com/JetBrains/intellij-platform-plugin-template 에 들어가서 “Use this template”을 눌러줍니다. 2. “gradle.properites” 파일을 수정합니다. (Readme 참고) 3. “Plugin.xml”을 파일을 수정합니다. (Readme 참고) 4. https://plugins.jetbrains.com/docs/intellij/welcome.html 문서를 참고해서 제작합니다. ## 키 생성 방법 https://plugins.jetbrains.com/docs/intellij/plugin-signing.html?from=IJPluginTemplate#generate-private-key - 링크를 참고하면 "CERTIFICATE_CHAIN”, “PRIVATE_KEY”, “PRIVATE_KEY_PASSWORD”, “PUBLISH_TOKEN” 를 생성하는 방법이 나와 있습니다. - 여기서 주의해야 하는 점은 “CERTIFICATE_CHAIN”, “PRIVATE_KEY”, “PUBLISH_TOKEN” 파일 있는 값을 복사하면 파일을 못 읽어 오는 오류가 계속 발생합니다. 그럴 경우 BASE64로 인코딩하면 문제없이 사이닝을 할 수 있습니다. - 키는 외부 저장소에 절대로 노출하면 안 됩니다. 깃헙 예제에서는 Intellij 환경 변수 또는 파일로 설정하는 방법으로 알려줬지만 저는 따로 “private.properties”라는 파일을 생성해서 키값을 설정했습니다. 이럴 경우에는 github action script도 수정해야 합니다. ## 스토어 배포시 주의 사항 1. 플러그인에 대한 설명을 명료하게 나타내야 합니다. (이건 플러그인 앱입니다. [X] / 이 플러그인으로 ~를 할 수 있으며 ~를 할 수 있습니다.[O] ) 2. 영어가 아닌 한국어 설명이 있는 경우 영어가 먼저 나와야 합니다. https://plugins.jetbrains.com/docs/marketplace/best-practices-for-listing.html 해당 링크에 들어가면 스토어 업로드 시 Best Practices를 보실 수 있습니다. ## Github Action으로 배포 방법 - master branch에 코드를 push를 하면 자동으로 action이 돌면서 release에 plugin 파일이 draft로 생성이 됩니다. - draft된 release를 버전에 맞춰서 수정하게 되면 store에 업로드되는 action이 실행됩니다. ## 후기 플러그인을 개발하여 패키지 및 파일 생성 시간을 단축할 수 있었습니다. 최소 30초에서 최대 1분까지의 시간 단축 효과를 얻을 수 있었습니다. (5명이면 최대 5분!!!) Intellij 기반 IDE를 사용하는 분 중에서 동일한 고민을 하고 계신다면, 꼭 제작해 보시기를 추천해 드립니다.

댓글 1