오픈미션

오늘도 개발 회고를 쓰려고 마음 먹은 아무개.. 하지만 정리를 대충 해놓는 바람에 개발이 완료 되어ㅛ을 때 아무것도 남지 않게 되었다

깃은 개발 이력과 코드 상태를 관리해준다 나의 생각은 어떻게 코드와 연결해서 생각하지? 나의 생각의 이력과 상태를 관리해줄 수 있믄 툴이 필요해

나의 기록을 ai를 이용해 개발일지 주제를 추천받거나 회고/일지 초안을 작성할 수 있습니다.

뭘 공부 해야하지? 지금 당장 필요한 공부는?

  • 인텔리제이 플러그인 제작 방법
  • Gradle은 뭐지?
  • kotlin 문법 공부
  • 자바 swing

공부하자

🍒 CodeCherry IntelliJ Plugin 공식 문서 로드맵


🧩 1️⃣ 개발 환경 세팅

플러그인을 처음 만들 때 필요한 SDK, Gradle, JDK 설정 관련 문서

주제설명공식 문서 링크
Getting StartedIntelliJ SDK 설치부터 runIde 실행까지Getting Started
Using Gradle for Plugin DevelopmentGradle 빌드 스크립트 설정 (build.gradle.kts)Gradle Plugin Guide
Plugin Project Structure플러그인 프로젝트 디렉토리 구조와 파일 역할Project Structure

⚙️ 2️⃣ 플러그인 구조 & 동작

플러그인이 IDE에 “어떻게 등록되고” “어디서 실행되는지”를 이해하는 문서

주제설명공식 문서 링크
Plugin Configuration File (plugin.xml)플러그인 이름, 버전, 액션 등록, 권한 등 설정plugin.xml
Actions, Menus and ToolbarsIDE 메뉴/우클릭 메뉴에 액션 추가하는 방법Action System
Components & ServicesIDE와 플러그인 간 데이터 저장, 서비스 관리Services
Persisting State of Components로컬 파일로 사용자 설정이나 데이터 저장하는 법Persisting State

🪟 3️⃣ UI & 사용자 인터페이스

CodeCherry의 핵심: 감정/노트 입력 다이얼로그를 띄우고 저장하는 UI 구성법

주제설명공식 문서 링크
User Interface ComponentsSwing 기반의 UI (JPanel, DialogWrapper 등)UI Components
DialogWrapper플러그인 다이얼로그 만드는 JetBrains 기본 클래스DialogWrapper Doc
UI DSL (Modern Kotlin Style)Kotlin DSL로 더 깔끔한 다이얼로그 만드는 방법UI DSL
NotificationsIDE 우측 하단 알림창 띄우기Notifications

🧠 4️⃣ 코드 접근 & Git 연동

선택된 코드, 파일 이름, Git 커밋 정보 등을 얻는 API

주제설명공식 문서 링크
Working with PSI (Program Structure Interface)파일, 클래스, 코드 블록에 접근하는 APIPSI Guide
Editor Basics코드 선택, 커서, 라인 정보 등 가져오는 법Editor API
VCS Integration (Git)Git 커밋, diff, 변경 파일 가져오기VCS API

🚀 5️⃣ 빌드 & 배포

완성된 플러그인을 테스트 IDE에서 실행하거나 JetBrains Marketplace에 배포할 때

주제설명공식 문서 링크
Running the Plugin./gradlew runIde 실행 시 내부 동작Run Plugin
DebuggingIDE Attach Debugging 설정 방법Debug Plugin
Publishing PluginMarketplace 등록 & 버전 관리Publishing Guide

🧩 6️⃣ JetBrains 공식 샘플 저장소

실제 동작하는 예시 플러그인을 보면서 구조 익히기

주제예시 설명링크
Sample Code PluginsJetBrains 공식 예시 플러그인 모음intellij-sdk-code-samples
Editor Basics Example선택한 코드 조작 예시/editor_basics/
Settings Example로컬 저장 기능 예시/settings/
Tool Window ExampleIDE 사이드바 UI 예시/tool_window/

🧱 여리용 추천 학습 순서

1️⃣ Gradle + plugin.xml 구조 익히기
2️⃣ DialogWrapper 기반 UI 만들기 (지금 코드처럼)
3️⃣ 선택된 코드 정보 가져오기 (Editor API)
4️⃣ Git Diff 정보 읽어오기
5️⃣ 로컬/서버 저장 기능 연결하기
6️⃣ Notifications로 사용자 피드백 표시
7️⃣ 최종 빌드 & runIde 실행


질문 모음

  1. SDK는 뭐야?
  2. Kotlin 문법 공부
  3. Swing?
  4. 어떻게 코틀린과 스윙이 호환이 되지?

레퍼런스