API 안정성 및 릴리스 유형
API 안정성
Koin 프로젝트는 버전 간 높은 수준의 호환성을 유지하기 위해 노력합니다. Kotzilla 팀과 모든 활동적인 관리자는 새로운 릴리스에서 도입된 변경 사항, 개선 사항 또는 최적화가 기존 애플리케이션을 손상시키지 않도록 보장하기 위해 노력합니다. 안정적이고 예측 가능한 업그레이드 경로는 사용자에게 매우 중요하며 API를 발전시킬 때 중단을 최소화하기 위해 노력합니다.
실험적 API - @KoinExperimentalAPI
귀중한 커뮤니티 피드백을 수집하면서 혁신을 촉진하기 위해 @KoinExperimentalAPI
어노테이션 (Annotation) 하에 새로운 기능과 API를 도입합니다. 이 지정은 다음을 나타냅니다.
- 활발한 개발 중: API는 여전히 설계 단계에 있으며 변경될 수 있습니다.
- 피드백 권장: 개발자가 이러한 기능을 테스트하고 경험을 공유하여 설계를 개선하고 개선하는 데 도움을 주시기 바랍니다.
- 잠재적인 호환성 파괴 변경: 이러한 API는 실험적이기 때문에 커뮤니티 의견을 기반으로 반복하면서 후속 릴리스에서 수정되거나 제거될 수 있습니다.
폐기 정책 - @Deprecated
API의 일부가 단계적으로 폐지될 때 원활한 전환을 보장하기 위해 Koin은 @Deprecated
어노테이션 (Annotation)을 사용하여 이러한 영역을 명확하게 표시합니다. 폐기 전략에는 다음이 포함됩니다.
명확한 경고: 폐기된 API에는 권장되는 대안 또는 폐기 이유를 나타내는 메시지가 함께 제공됩니다.
폐기 수준:
- Warning (경고): API가 여전히 사용 가능하지만 사용이 권장되지 않으며 가능한 한 빨리 대체해야 함을 나타냅니다.
- Error (오류): API가 더 이상 사용되지 않으며 컴파일되지 않아 중요한 변경 사항이 즉시 해결되도록 합니다.
이러한 접근 방식은 개발자가 구식 API에 의존하는 코드를 식별하고 업데이트하여 기술적 부채를 줄이고 더 깨끗하고 강력한 코드 기반을 위한 길을 열도록 돕습니다.
ReplaceWith
는 업데이트의 복잡성에 따라 API와 함께 제공될 수 있습니다.
내부 API - @KoinInternalAPI
Koin 프레임워크 내에서 내부적으로만 사용하기 위한 기능에 대해서는 @KoinInternalAPI
어노테이션 (Annotation)을 도입합니다. 이러한 API는 공개 계약의 일부가 아니며 다음 사항을 포함합니다.
- 내부 전용: Koin의 내부 메커니즘만을 위해 설계되었습니다.
- 변경될 수 있음: 사전 통지 없이 향후 릴리스에서 수정되거나 제거될 수 있습니다.
- 외부 사용 금지: 장기적인 호환성을 유지하기 위해 개발자는 애플리케이션 코드에서 이러한 API를 사용하지 않는 것이 좋습니다.
Kotlin의 @OptIn 어노테이션 (Annotation)으로 옵트인 (Opt-In)
Koin에서 실험적이고 폐기된 API를 사용하려면 옵트인 (Opt-In)이 필요하므로 개발자는 API의 상태와 잠재적인 위험을 완전히 인식할 수 있습니다.
Kotlin의 @OptIn
어노테이션 (Annotation)을 사용하면 코드가 실험적이거나 폐기 대상으로 표시된 API에 의존한다는 것을 명시적으로 인정합니다.
릴리스 유형
Koin은 각 릴리스의 성숙도와 의도된 사용을 나타내는 추가 접두사 식별자를 사용하여 시맨틱 버전 관리 (Semantic Versioning, SemVer)를 준수합니다. 사용하는 접두사는 다음과 같습니다.
- Release Candidate (RC): 이러한 릴리스는 안정적인 버전에 대한 기능 완료 후보입니다. 최종 테스트 및 개선을 거칩니다. RC 버전은 호환성이 높도록 설계되었지만 공식 릴리스 전에 최종 피드백에 따라 사소한 변경 사항이 발생할 수 있습니다.
- Alpha / Beta: 알파 및 베타 버전은 주로 테스트 및 피드백을 위해 제공됩니다. 종종 실험적인 기능이 포함되어 있으며 안정적인 API 보증을 완전히 준수하지 않을 수 있습니다. 개발자는 잠재적인 문제를 식별하고 향후 개선 사항을 안내하기 위해 비프로덕션 환경에서 이러한 릴리스를 사용해 보는 것이 좋습니다.