오픈미션
오늘도 개발 회고를 쓰려고 마음 먹은 아무개.. 하지만 정리를 대충 해놓는 바람에 개발이 완료 되어ㅛ을 때 아무것도 남지 않게 되었다
깃은 개발 이력과 코드 상태를 관리해준다 나의 생각은 어떻게 코드와 연결해서 생각하지? 나의 생각의 이력과 상태를 관리해줄 수 있믄 툴이 필요해
나의 기록을 ai를 이용해 개발일지 주제를 추천받거나 회고/일지 초안을 작성할 수 있습니다.
뭘 공부 해야하지? 지금 당장 필요한 공부는?
- 인텔리제이 플러그인 제작 방법
- Gradle은 뭐지?
- kotlin 문법 공부
- 자바 swing
공부하자
🍒 CodeCherry IntelliJ Plugin 공식 문서 로드맵
🧩 1️⃣ 개발 환경 세팅
플러그인을 처음 만들 때 필요한 SDK, Gradle, JDK 설정 관련 문서
| 주제 | 설명 | 공식 문서 링크 |
|---|---|---|
| Getting Started | IntelliJ SDK 설치부터 runIde 실행까지 | Getting Started |
| Using Gradle for Plugin Development | Gradle 빌드 스크립트 설정 (build.gradle.kts) | Gradle Plugin Guide |
| Plugin Project Structure | 플러그인 프로젝트 디렉토리 구조와 파일 역할 | Project Structure |
⚙️ 2️⃣ 플러그인 구조 & 동작
플러그인이 IDE에 “어떻게 등록되고” “어디서 실행되는지”를 이해하는 문서
| 주제 | 설명 | 공식 문서 링크 |
|---|---|---|
Plugin Configuration File (plugin.xml) | 플러그인 이름, 버전, 액션 등록, 권한 등 설정 | plugin.xml |
| Actions, Menus and Toolbars | IDE 메뉴/우클릭 메뉴에 액션 추가하는 방법 | Action System |
| Components & Services | IDE와 플러그인 간 데이터 저장, 서비스 관리 | Services |
| Persisting State of Components | 로컬 파일로 사용자 설정이나 데이터 저장하는 법 | Persisting State |
🪟 3️⃣ UI & 사용자 인터페이스
CodeCherry의 핵심: 감정/노트 입력 다이얼로그를 띄우고 저장하는 UI 구성법
| 주제 | 설명 | 공식 문서 링크 |
|---|---|---|
| User Interface Components | Swing 기반의 UI (JPanel, DialogWrapper 등) | UI Components |
| DialogWrapper | 플러그인 다이얼로그 만드는 JetBrains 기본 클래스 | DialogWrapper Doc |
| UI DSL (Modern Kotlin Style) | Kotlin DSL로 더 깔끔한 다이얼로그 만드는 방법 | UI DSL |
| Notifications | IDE 우측 하단 알림창 띄우기 | Notifications |
🧠 4️⃣ 코드 접근 & Git 연동
선택된 코드, 파일 이름, Git 커밋 정보 등을 얻는 API
| 주제 | 설명 | 공식 문서 링크 |
|---|---|---|
| Working with PSI (Program Structure Interface) | 파일, 클래스, 코드 블록에 접근하는 API | PSI Guide |
| Editor Basics | 코드 선택, 커서, 라인 정보 등 가져오는 법 | Editor API |
| VCS Integration (Git) | Git 커밋, diff, 변경 파일 가져오기 | VCS API |
🚀 5️⃣ 빌드 & 배포
완성된 플러그인을 테스트 IDE에서 실행하거나 JetBrains Marketplace에 배포할 때
| 주제 | 설명 | 공식 문서 링크 |
|---|---|---|
| Running the Plugin | ./gradlew runIde 실행 시 내부 동작 | Run Plugin |
| Debugging | IDE Attach Debugging 설정 방법 | Debug Plugin |
| Publishing Plugin | Marketplace 등록 & 버전 관리 | Publishing Guide |
🧩 6️⃣ JetBrains 공식 샘플 저장소
실제 동작하는 예시 플러그인을 보면서 구조 익히기
| 주제 | 예시 설명 | 링크 |
|---|---|---|
| Sample Code Plugins | JetBrains 공식 예시 플러그인 모음 | intellij-sdk-code-samples |
| Editor Basics Example | 선택한 코드 조작 예시 | /editor_basics/ |
| Settings Example | 로컬 저장 기능 예시 | /settings/ |
| Tool Window Example | IDE 사이드바 UI 예시 | /tool_window/ |
🧱 여리용 추천 학습 순서
1️⃣ Gradle + plugin.xml 구조 익히기
2️⃣ DialogWrapper 기반 UI 만들기 (지금 코드처럼)
3️⃣ 선택된 코드 정보 가져오기 (Editor API)
4️⃣ Git Diff 정보 읽어오기
5️⃣ 로컬/서버 저장 기능 연결하기
6️⃣ Notifications로 사용자 피드백 표시
7️⃣ 최종 빌드 & runIde 실행
질문 모음
- SDK는 뭐야?
- Kotlin 문법 공부
- Swing?
- 어떻게 코틀린과 스윙이 호환이 되지?