가이드
Capacitor에서 Capacitor+ Core 사용법
Capacitor+ (@capacitor-plus) 패키지 사용하기
Capacitor+는 자동화되어 항상 동기화되는 포크입니다 Capacitor 관리: Capgo. Capacitor 공식 패키지를 즉시 대체할 수 있으며, 다음과 같은 핵심적인 장점을 제공합니다: 커뮤니티 PR 및 버그 수정이 더 빠르게 반영됩니다.
Capacitor+가 존재하는 이유
Ionic 팀은 자체적인 우선순위와 릴리스 일정에 따라 Capacitor를 관리합니다. 이로 인해 버그 수정, 개선 사항, 신규 기능과 같은 커뮤니티 기여분이 병합되기까지 수개월 또는 수년이 걸릴 수 있으며, 아예 반영되지 못하는 경우도 있습니다.
Capacitor+는 다음과 같은 방식으로 이 문제를 해결합니다:
- Fork된 PR 병합 - 업스트림 대기열에 머물러 있는 가치 있는 PR들을 적극적으로 병합합니다
- 지속적인 동기화 - 업스트림 Capacitor의 모든 변경 사항을 자동으로 가져와 테스트하고 검증합니다
- 신속한 릴리스 - 변경 사항이 CI를 통과하면 npm의 다음 항목으로 자동 게시됩니다
@capacitor-plus범위 - 커뮤니티 중심 - 여러분의 기여는 중요하며 우선적으로 반영됩니다
- 보안 검토 완료 - 모든 변경 사항은 AI를 통해 보안 취약점, breaking changes 및 안정성 리스크를 분석합니다
사용 가능한 패키지
| 패키지 | 설명 |
|---|---|
@capacitor-plus/core |
코어 런타임 라이브러리 |
@capacitor-plus/cli |
CLI |
@capacitor-plus/android |
Android 런타임 |
@capacitor-plus/ios |
iOS 런타임 |
설치
새 프로젝트
새 프로젝트라면 공식 패키지 대신 Capacitor+ 패키지를 사용하세요:
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # for Android
npm install @capacitor-plus/ios # for iOS
그 다음 프로젝트를 초기화합니다:
npx cap init
npx cap add android
npx cap add ios
공식 Capacitor에서 마이그레이션
기존 프로젝트를 공식 Capacitor에서 Capacitor+로 마이그레이션하려면:
# Remove official packages
npm uninstall @capacitor/core @capacitor/cli @capacitor/android @capacitor/ios
# Install Capacitor+ packages
npm install @capacitor-plus/core @capacitor-plus/cli
npm install @capacitor-plus/android # if using Android
npm install @capacitor-plus/ios # if using iOS
Capacitor+는 동일한 API를 사용하는 drop-in replacement이므로, code 변경이 필요 없습니다. import 문도 그대로 유지됩니다:
// These imports work the same with Capacitor+
import { Capacitor } from '@capacitor/core';
import { registerPlugin } from '@capacitor/core';
작동 원리
┌─────────────────────┐ ┌──────────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ ionic-team/ │ │ CI/CD │ │ Claude Code │ │ npm publish │
│ capacitor │────▶│ Pipeline │────▶│ Security Review │────▶│ @capacitor-plus│
│ (upstream) │ │ (daily sync) │ │ (AI analysis) │ │ packages │
└─────────────────────┘ └──────────────────┘ └──────────────────┘ └─────────────────┘
- 일일 동기화: GitHub Action이 다음에서 최신 변경 사항을 가져옵니다:
ionic-team/capacitor - PR 생성: 변경 사항이 다음으로 pull request가 제안됩니다:
plus브랜치 - CI 검증: 전체 테스트 스위트 실행 (lint, 유닛 테스트, iOS 빌드, Android 빌드)
- Claude Code 리뷰: AI 기반 종합 보안 분석 항목:
- 보안 취약점 (injection, XSS 등)
- Breaking API 변경 사항
- 크래시 위험 및 안정성 이슈
- 데이터 무결성 및 개인정보 보호 문제
- 악성 code 패턴
- 자동 머지: CI 통과 및 Claude 승인 시에만 실행 (이슈 미감지 시)
- 자동 배포: npm에 새 버전이 다음 항목과 함께 게시되었습니다.
@capacitor-plus/*
보안 검토
모든 업스트림 동기화 시 다음 항목을 분석합니다:
| 체크 항목 | 설명 |
|---|---|
| 보안 | 커맨드 인젝션, XSS, 경로 탐색, 하드코딩된 비밀 키 등 |
| 주요 변경 사항 | 삭제/이름 변경된 API, 시그니처 변경, 설정 형식 변경 |
| 안정성 | 널 역참조, 처리되지 않은 예외, 레이스 컨디션, 메모리 누수 |
| 데이터 안전성 | 데이터 손실 시나리오, 개인정보 침해, 보안에 취약한 저장소 |
| Code 무결성 | 난독화된 code, 의심스러운 네트워크 호출, 백도어 |
문제가 감지되면 PR은 수동 검토 대상으로 플래그가 지정되며 자동 머지되지 않습니다.
PR을 머지하고 싶으신가요?
공식 Capacitor 레포지토리에서 PR이 멈춰 있나요? Capacitor+에 반영하는 방법은 다음과 같습니다:
- Issue 생성 플러그인의 Capacitor+ 레포지토리 업스트림 PR 링크 포함
- 또는 PR 직접 제출 로
plus브랜치 - 팀이 검토 및 CI를 실행하며, 통과 시 머지합니다
이렇게 하면 업스트림 릴리스 주기를 기다리지 않고도 작업 결과물을 즉시 공유하고 활용할 수 있습니다.
장점
- 정체된 PR 해결하기: 업스트림 반영을 기다리는 커뮤니티 수정 사항 및 기능이 머지됩니다
- 최신 상태 유지: CI를 통과한 업스트림 수정 사항을 즉시 반영합니다
- 보안 우선: 모든 변경 사항은 취약점 및 안정성 위험을 검토합니다
- 검증된 릴리스: CI 테스트와 AI 보안 리뷰를 모두 통과한 변경 사항만 게시됩니다
- 즉시 교체 가능한 대체제: Capacitor와 동일한 API를 사용하며, 패키지 스코프만 다릅니다
- 여러분의 의견을 들려주세요: 직접 PR을 제출하거나 특정 upstream PR의 머지를 요청할 수 있습니다
예시: Plugins와 Capacitor+ 함께 사용하기
모든 공식 Capacitor 플러그인은 Capacitor+와 완벽하게 호환됩니다:
import { Capacitor } from '@capacitor/core';
import { Camera, CameraResultType } from '@capacitor/camera';
import { Geolocation } from '@capacitor/geolocation';
// Everything works exactly the same
const platform = Capacitor.getPlatform();
const photo = await Camera.getPhoto({
resultType: CameraResultType.Uri
});
const position = await Geolocation.getCurrentPosition();
Capgo 플러그인 또한 Capacitor+와 완벽하게 작동합니다:
import { CapacitorUpdater } from '@capgo/capacitor-updater';
import { ScreenOrientation } from '@capgo/capacitor-screen-orientation';
// Use Capgo plugins with Capacitor+
await CapacitorUpdater.notifyAppReady();
await ScreenOrientation.lock({ orientation: 'portrait' });
끝입니다! 이제 커뮤니티 개선 사항이 더 빠르게 반영된 Capacitor의 빠른 업데이트 버전을 사용할 수 있습니다. 공식 릴리스 주기를 기다릴 필요 없이 버그 수정과 새로운 기능을 앱에 바로 적용하세요.
Capacitor+ (@capacitor-plus) 패키지 사용하기 계속하기
사용 중이라면 Capacitor+ (@capacitor-plus) 패키지 사용하기 네이티브 플러그인 작업을 계획하려면, 이를 다음 항목과 연결하세요: Capacitor+ Capacitor+의 구현 세부 사항에 대해서는, Capgo 플러그인 디렉토리 Capgo Plugin Directory의 제품 워크플로우에 맞춰, Capgo의 Capacitor 플러그인 Capgo의 Capacitor 플러그인 구현 상세 내용에 대해서는, 플러그인 추가 또는 업데이트 플러그인 추가 또는 업데이트 구현 상세 내용에 대해서는, Ionic Enterprise 플러그인 대안 Ionic Enterprise 플러그인 대안의 제품 워크플로우에 대해서는.