.NET용 CLI 프레임워크 라이브러리 Cocona 리포지토리를 아카이브하며 프로젝트를 사실상 종료하게 된 배경과 대안 라이브러리를 소개합니다.
URL: https://www.misuzilla.org/Blog/2025/12/14/CoconaHasBeenArchived
Title: Cocona를 아카이브했습니다 - 프로젝트, 미스지라。
Created at: 2025-12-14
.NET용 CLI 프레임워크 라이브러리인 Cocona를 공개해 왔는데, 오늘 리포지토리를 아카이브했습니다. 즉, 사실상의 라이브러리 프로젝트 종료입니다.
GitHub - .NET 콘솔 애플리케이션을 위한 마이크로 프레임워크. Cocona는 .NET에서 콘솔 애플리케이션을 쉽고 빠르게 만들 수 있게 해줍니다.
이 리포지토리의 Star 수는 3.5k Stars였기 때문에 개인적으로는 Star 수만 놓고 보면 상당한 편이었습니다. 또한 제가 원하던 기능을 갖추고 있었고, “쓰고 있어요”라는 이야기도 들었어서 아깝고/죄송한 마음이 가득하지만, 그와는 별개로 건강하지 못한 상태가 계속되어 왔기 때문에 일단 마침표를 찍기로 했습니다.
하고 싶은 일은 이것저것 있었으니, 언젠가 변덕으로 Unarchive할지도 모르겠습니다만.
Cysharp에서 Source Generator 기반의 ConsoleAppFramework라는 CLI 라이브러리가 출시되어 있으니, 앞으로 새로 앱을 만들거나 할 때는 이쪽을 추천합니다.
아카이브하기로 한 배경은 단순해서, 동기(모티베이션)를 유지하지 못해 업데이트를 할 수 없게 되었다는 점입니다. 그 결과 Issue나 Pull request를 오랫동안 방치한 상태가 되어, 불성실함의 극치 같은 상태가 되어 있었습니다.
한 번 쌓이기 시작한 Issue나 Pull request가 “숙성”되면, 더욱 열어보고 싶지 않게 되는 부정적 루프가 돌기 마련이라, 뚜껑을 닫아둔 채로 점점 더 숙성되어 갔습니다. 하지만 마음 한구석에는 어떻게든 해야 한다는 생각도 있어서, 무한히 잔가시가 박혀 있는 듯한 느낌으로 이것 또한 감정에 악영향을 주는 상태가 장기간 계속되었습니다.
그래서 아무 액션도 하지 않은 채로 두는 것 역시 모든 면에서 좋지 않다고 판단해, 과감히 아카이브하게 되었습니다.
애초에 왜 모티베이션을 잃었는가에 대한 이야기도 있는데, 이것도 꽤 단순합니다. 제 자신을 위해 만든 것 같은 물건이었지만, 사용할 기회가 없었다는 점입니다.
앞서 쓴 대로 Cysharp에서는 CLI 프레임워크로 ConsoleAppFramework를 제공하고 있는데, Cysharp는 제 고용주이기도 합니다.
그러면 Cysharp에서 일을 하는 동안 Cocona를 사용하기가 어렵습니다. “어렵다”라고 해도 쓰지 말라고 들은 것은 아니어서, 개인적으로 제가 멋대로 신경 쓰고 있는 형태이긴 합니다만, Cysharp의 라이브러리를 널리 알릴 필요가 있다는 관점에서 꼬임이 생기는 것은 실제로 바람직하지 않다고 생각합니다. 비슷한 것이 난립하는 대기업이라면 또 모르겠지만요. (예를 들어 “Cysharp에서는 ConsoleAppFramework라는 라이브러리를 제공하고 있는데, 개인적으로 Cocona라는 것도 만들었고 이쪽도 편리하고 추천이에요!”라고 말하기는 역시 쉽지 않습니다.)
그런 이유로 제가 쓰고 싶어지는 상황에서는 쓰지 못했고, 그렇다고 취미로 만드는 도구에 CLI 도구는 없었습니다(애초에 그렇게 진지하게 커맨드라인을 처리할 필요가 없었다). 그래서 쓸 일이 없었던 것입니다.
또한 이것은 완전히 취미 프로젝트였기 때문에, 업무 시간에 개발되는 ConsoleAppFramework에 비해, 취미 시간을 들여 사용하지도 않는 라이브러리를 유지보수해야 한다는 현실을 정면으로 보게 된 점도 꽤 마음을 쓰이게 했습니다. (특히 ConsoleAppFramework는 대규모로 다시 쓰여 v5에서 AOT 세이프나 성능 등이 확 바뀌었기 때문에, 거기에 따라잡으려면 여유 시간을 대량으로 써야 합니다.)
ConsoleAppFramework 쪽이 먼저였기 때문에, 결국 아주 가까운 곳에서 개발되고 같은 영역을 커버하는 라이브러리와 정면으로 부딪치게 된 것이 애초에 잘못이었다고밖에는 말할 수 없겠네요. 어쩌면 될 대로 된 결말일지도 모릅니다.
이 라이브러리를 발견하고, 채택해 주신 분들께 진심으로 감사드립니다. 감사합니다.
오픈 소스 라이브러리를 개인이 계속 유지보수하는 분들은 대단합니다….