Community

CLion과 오픈 소스 커뮤니티: 함께 성장하는 여정

Read this post in other languages:

CLion은 처음부터 전 세계 C 및 C++ 개발자들의 요구에 맞춰 발전해 왔습니다. JetBrains의 크로스 플랫폼 IDE는 개발을 간소화하고 생산성을 높이며 C++로 더욱 즐겁게 작업할 수 있도록 제작되었습니다.

CLion이 이제 오픈소스 개발을 포함한 비상업적 용도로 무료 제공됩니다. 이를 계기로 커뮤니티와의 협력을 한층 더 발전시키게 되어 기쁩니다. OSS 프로젝트에 기여하거나 자체 프로젝트를 시작하려 한다면 지금이 더할 나위 없이 좋은 기회입니다.

강력한 디버거, 리버스 엔지니어링 도구, 유명한 파일 관리자, 전 세계에서 사용되는 라이브러리들까지 CLion으로 만들어진 오픈 소스 프로젝트들을 아래에서 확인해보세요. 개발자가 올바른 도구만 있으면 무엇을 할 수 있는지 보여주는 멋진 사례입니다.

JSON for Modern C++

제작자: Niels Lohmann

기술 스택: 헤더 전용 C++11 이상, CMake

사용된 JetBrains 도구: CLion

대학 프로젝트 중에 만들어진 JSON for Modern C++는 원래 분석 데이터를 기록하기 위한 보조 파일로 시작했지만, 이후 GitHub에서 4만 5천여 개에 가까운 별점을 얻어 가장 인기 있는 C++ 라이브러리 중 하나로 성장했습니다.

“…우리는 서버로 분석 정보를 전송해야 했습니다. 처음에는 단순하게 printf 문으로 필요한 변수를 JSON 객체에 넣었죠. 그런데 로깅이 점점 복잡해지면서 JSON 관련 함수를 모두 하나의 헤더 파일로 옮기게 되었습니다. 그렇게 시작된 코드가 결국 C++용 독립형 JSON 라이브러리로 발전한 거예요.”

이 라이브러리는 JSON 구문 분석 및 직렬화를 위한 직관적인 C++ 스타일 인터페이스를 제공하며 게임 개발부터 항공우주 산업에 이르기까지 다양한 분야에서 폭넓게 사용되고 있습니다.

“오픈 소스 프로젝트를 유지 관리하고 기여하는 제 입장에서는 프로젝트에 쏟을 수 있는 시간이 한정돼 있어요. CLion은 테스트 실행, Git 통합, Clang-Tidy 경고를 손쉽게 제공해 주기 때문에 그 시간을 최대한 효율적으로 활용할 수 있습니다.”

향후 계획:

  • 수동 릴리스 프로세스 자동화
  • 성능 최적화 및 아키텍처 정리
  • 다음 주요 릴리스인 3.0.0 버전을 위한 로드맵 계획

Midnight Commander

관리자: Yury Zaytsev

기술 스택: C, Autotools, POSIX, ncurses

사용된 JetBrains 도구: CLion, PyCharm

Midnight Commander(mc)는 오랜 역사를 지닌 클래식한 터미널 파일 관리자입니다. 1990년대 초반의 Norton Commander에서 영감을 받아 시작된 이후, 시각적인 인터페이스와 터미널 중심 설계, 확장 가능성 덕분에 Unix 커뮤니티에서 널리 사용되고 사랑받는 도구가 되었습니다.

2015년부터 프로젝트를 유지 관리해 온 Yury는 어린 시절에 인상 깊었던 경험을 이렇게 회상합니다.

“다섯 살 때 처음 Norton Commander의 파란 패널 화면을 보고 완전히 매료됐던 기억이 아직도 생생해요. 몇 년 후 다시 Unix 시스템을 접하게 되었고, 그때 가장 먼저 설치한 프로그램이 Midnight Commander였습니다. 그 마법 같은 느낌이 다시 살아났고, 그 일을 계기로 이 프로젝트에 기여하게 되었습니다.”

이중 패널 인터페이스를 통해 다양한 세대의 사용자들이 Unix 시스템과 더 효율적으로 상호 작용할 수 있었습니다. 어려움도 있지만 수십 년이 지난 지금도 개발은 계속되고 있습니다. 그리고 JetBrains 도구는 방대한 기존 코드 베이스를 관리하는 데 큰 도움이 되고 있습니다.

“CLion 덕분에 제 코드 작성 방식이 완전히 달라졌어요. 리팩터링과 이름 변경 도구, 코드 탐색 기능, 매크로 확장 지원 같은 기능은 수십 년 된 대규모 코드 베이스를 관리하는 데 정말 없어서는 안 될 도구입니다.”

향후 계획:

  • 이벤트 루프로 마이그레이션
  • 유지 관리 편의성을 높이기 위해 지속적으로 인프라 리팩터링 및 현대화
  • 확장성을 위해 가벼운 스크립트 엔진 내장

ImHex

제작자: Nikolaij Sägesser

기술 스택: C++, Qt, LLVM, 맞춤형 스크립트 언어

사용한 JetBrains 도구: CLion, Rider, WebStorm

ImHex는 프로그래밍 언어 설계와 바이너리 데이터 구조를 탐구하기 위한 사이드 프로젝트로 시작되었습니다. 제작자 Nikolaij Sägesser는 데이터 타입을 정의하고 이를 바이너리 데이터상에 덮어씌울 수 있는 맞춤형 언어를 직접 만들어냈습니다. 이러한 정의를 시각화하기 위한 도구로 시작된 것이 역엔지니어링 개발자를 위한 강력한 크로스 플랫폼인 헥사 에디터로 발전했습니다.

“이 프로젝트는 학사 논문을 준비하면서 시작했어요. 개인적으로도 이런 도구가 꼭 필요했고, 제 주변 친구들도 기존 도구에 정말 많은 불만을 갖고 있었죠. 그래서 계속 밀어붙일 동기가 생겼습니다.”

현재 ImHex는 맞춤형 스크립팅, 서식 정의, 실시간 분석, 바이너리 시각화 등 다양한 기능을 세련된 크로스 플랫폼 GUI에서 모두 제공합니다.

“주로 CLion을 사용하고 있는데 정말 훌륭해요. GCC와 Clang을 모든 플랫폼에서 사용할 수 있다는 점, 특히 대부분 MSVC를 요구하는 Windows에서도 가능하다는 점은 정말 혁신적입니다. CLion 덕분에 오픈 소스 툴체인, 디버거, 빌드 설정을 어디서든 그대로 사용할 수 있어요. 그리고 작동도 잘 됩니다.”

향후 계획:

  • 실행을 위해 VM을 사용하도록 맞춤형 프로그래밍 언어를 다시 작성
  • 바이너리 형식에 대한 지원 확대
  • UI/UX를 개선하고 더 많은 시각화 도구 추가

x64dbg

제작자: Duncan Ogilvie

기술 스택: C++, Qt, CMake (현 cmkr), 맞춤형 플러그인 시스템

사용한 JetBrains 도구: CLion

x64dbg는 역엔지니어링 개발자 사이에서 잘 알려진 디버거로, 특히 이용 가능한 디버그 도구가 오랫 동안 뒤처져 있던 Windows에서 인정받고 있습니다. Duncan은 고등학교 졸업 프로젝트로 이 작업을 시작했으며, OllyDbg에서 영감을 받았습니다.

“그때만 해도 64비트 디버그 도구 중에 쓸 만한 게 없었어요. 그래서 무작정 그냥 만들기 시작했죠. 😅”

현재 x64dbg는 전 세계적으로 400만 건 이상의 다운로드를 기록하고 있으며, 인디 해커부터 연구 기관, 심지어 바티칸까지 다양한 사용자층에서 활용되고 있습니다. 최근에는 cmkr을 통해 CMake로 마이그레이션되어 개발 및 기여 과정이 한층 더 간편해졌습니다.

“예전에는 10단계를 넘는 복잡한 빌드 과정을 거쳐야 했는데, 이제는 CLion에서 폴더를 열고 ‘빌드’ 버튼만 누르면 끝이에요. CMake 및 디버그 설정도 간단한 UI에서 할 수 있어서, 더 이상 JSON 파일을 작업하지 않아도 됩니다.”

x64dbg는 오랫동안 명성을 쌓아왔고 여전히 진화 중입니다. 기능 개발은 한정된 시간으로 인해 다소 느려졌지만, 다음과 같은 핵심 작업이 활발히 진행되고 있습니다.

  • 최신 C++ 지원을 위한 Visual Studio 2022 컴파일러로의 전환
  • Windows 타입 지원 및 AVX-512 지원 통합
  • UI 구성 요소를 재사용 가능한 크로스 플랫폼 라이브러리로 추출

이러한 프로젝트와 그 뒤에서 기여한 개발자들은 오픈 소스의 진정한 정신을 보여줍니다. 바로, 어려운 문제를 해결하고, 지식을 공유하며, 전 세계가 사용하는 도구를 함께 만들어가는 것입니다. JetBrains는 이러한 작업의 중요성을 이해하기에 그 노력을 기쁘게 지원하고 있습니다.

지금 무료 라이선스를 받아, 자신감 있고 빠르며 편안한 환경에서 여러분의 다음 프로젝트를 시작해 보세요.

게시물 원문 작성자

Lena Morozova

Lena Morozova

image description

Discover more