“PyCharm은 지원되는 기능 측면에서 텍스트 편집기와 비교할 때 엄청난 이점을 가지고 있습니다. Python 개발과 관련하여 PyCharm은 원격 디버깅, 코드 품질 검사, 그리고 Docker 및 Kubernetes와 같은 타사 소프트웨어 통합 등의 기능에서 확실히 두드러진 우위를 나타냅니다.”
— Swapnil Kulkarni, OpenStack의 적극적 기술 기여자
저는 12년 이상 소프트웨어를 개발한 경험이 있습니다. OpenStack 커뮤니티에서 컨테이너 팀과 협력하기 시작한 것은 4년 이상 되었고 Kolla 프로젝트에서 OpenStack의 전체 컨테이너화된 배포와 같이 OpenStack의 컨테이너 생태계를 활용하기 위한 여러 사용 사례를 다뤘습니다. 그 밖에 OpenStack 요구 사항 팀에서 핵심 검토자로도 활동하고 있습니다.
OpenStack은 오픈 소스 클라우드 운영 체제로 시작되었으며 NASA와 Rackspace가 첫 기여자로 나섰습니다. 이 운영 체제는 오픈 소스 프라이빗 클라우드를 찾던 기업에게 절실히 필요했던 대체 플랫폼으로 제시되었습니다. 처음에는 Compute(Nova) 및 Object Storage(Swift) 구성 요소만 가지고 있었지만 이후 250곳 이상의 기술 파트너가 합류하고 개발자들이 능동적으로 참여하면서 경쟁력 있는 프라이빗 클라우드 배포 도구로서 역할할 수 있는 다양한 기능이 부가되었습니다.
OpenStack은 187개 이상의 국가에서 운영되며 모든 대륙에 개발자 커뮤니티와 운영자 기반을 가지고 있습니다. 한 자릿수 노드를 가진 소규모 개발 그룹이 있는가 하면 가장 큰 CERN 연구실과 같이 수천 개의 노드를 가진 대규모 그룹까지 다양한 사용자 기반이 존재합니다.
OpenStack 에코 시스템의 다양한 프로젝트, 이니셔티브 및 이벤트는 OpenStack 재단에서 관리합니다. 소스 코드는 OpenDev 저장소에서 관리되는 소스 코드로부터 Github에서 미러링되며 모든 부분이 Gerrit에서 검토됩니다. 모든 적극적 기여자가 참여하는 커뮤니티 전체의 공개 선출 과정을 거쳐 구성된 기술 위원회에서 프로젝트 및 커뮤니티와 관련된 기술적 결정을 내립니다.
생태계에서 200개 이상의 프로젝트가 활발하게 추진되고 있습니다. 프로젝트는 컴퓨팅, 스토리지, 네트워킹, QA, 배포, 보안, AI/ML 등과 같은 여러 스트림으로 분류할 수 있습니다. 매주 수천 건의 리뷰가 접수되고 있는 만큼 커뮤니티는 Vexhost와 같은 회사에서 제공하는 인프라에 의존하여 지속적인 통합과 서비스 작업을 수행합니다.
각 OpenStack 프로젝트에는 자체 핵심 팀이 있습니다. 규모는 기여자와 들어오는 프로젝트 리뷰의 수에 따라 다릅니다. 약 5명의 소규모 핵심 팀이 될 수도 있고 대규모 프로젝트 그룹의 경우 50명 이상이 팀을 이룰 수도 있습니다. 각 프로젝트 그룹은 커뮤니티 전체의 목표를 공유하는 더 넓은 스트림의 일부입니다. 개발 팀 외에도 OpenStack 배포와 관련하여 서로 협력하고 요구 사항 및 문제에 중점을 두는 운영자 그룹과 같은 특수 관심 그룹이 있습니다. OpenStack 사용자로부터 피드백을 받기 위한 사용자 위원회와 사용자, 개발자, 운영자 및 재단 이사회 구성원 간의 촉매제 역할을 하는 기술 위원회가 있습니다.
전체 OpenStack 코드베이스의 95% 이상이 Python으로 되어 있습니다. 웹 개발과 관련된 요구 사항은 모두 Django 프레임워크로 해결합니다.
우선, Python은 빠른 개발에 적합합니다. Python으로 새로운 기능을 개발하는 것이 주변에 있는 다른 언어로 개발하는 것보다 훨씬 더 빠릅니다.... 네, 이것이 유일한 것은 아니지만 요점은 전달성입니다. OpenStack은 매우 빠른 개발 모델을 가지고 있고 풍부한 기술적 기능과 강력한 라이브러리를 가진 언어를 요구하는 하위 시스템과 함께 작동해야 하는 경우도 종종 있습니다. 이러한 언어는 객체 지향적이고 동적으로 형식이 지정되어야 합니다. Python은 이러한 요구를 100% 충족합니다. 또한 깔끔하고 읽기 쉬우며 이해하기 쉽다는 것이 우리가 이 언어에 그토록 열광하는 이유입니다.
OpenStack 팀에는 여러 가지 Python 개발 스트림이 있습니다. 각 모듈에 대한 API, 스케줄링 알고리즘, 하이퍼바이저 및 스토리지 하위 시스템과 같은 다양한 하드웨어 구성 요소에 대한 기본 호출을 제공하는 구성 요소가 있습니다. Python은 Django 프레임워크를 사용한 웹 대시보드 개발의 다양한 요구 사항을 해결하는 데도 사용됩니다.
OpenStack과 같은 거대한 프로젝트로 작업하려면 여러 내부 프로젝트와 외부 지원 구성 요소에 통합 지점이 필요합니다. 이를 위해 단일 및 교차 프로젝트 디버깅, Git/Gerrit과의 통합, 요구 사항 관리, 실시간 디버깅이 필요하며 Vagrant, Docker, Ansible 및 Kubernetes와 같은 통합을 사용해야 하는 등 해결해야 하는 주요 과제가 산재해 있습니다. 이러한 요구 사항에 사용할 수 있는 통합 지점 또는 플러그인이 있는 PyCharm과 같은 도구는 개발자가 많은 문제를 극복하는 데 확실히 도움이 됩니다.
PyCharm은 지원되는 기능 측면에서 텍스트 에디터와 비교할 때 엄청난 이점을 가지고 있습니다. Python 개발과 관련하여 PyCharm은 원격 디버깅, 코드 품질 검사, 그리고 Docker 및 Kubernetes와 같은 타사 소프트웨어 통합 등의 기능에서 확실히 두드러진 우위를 나타냅니다. 우리 팀 내에서 PyCharm과 함께 가장 많이 사용되는 기능은 원격 디버깅과 Docker 통합입니다.
PyCharm은 대부분의 사용자에게 매우 잘 작동하며 프로젝트 전반의 코드 스타일 준수와 버전 관리를 지원합니다. 또한 많은 개발자들이 빠른 수정을 매우 유용하다고 생각하며 작은 버그를 수정하고 코드 서식을 다시 지정할 때 많은 시간이 절약됩니다. 또한 디버깅 지원을 통해 개발 팀이 개발한 기능을 보다 쉽게 검증할 수 있습니다. Gerrit 플러그인을 사용하여 IDE 자체에서 코드 검토를 관리할 수도 있습니다.
저는 OpenStack 내의 여러 컨테이너화 프로젝트에 기여하고 있습니다. 우선 Docker 통합을 지원하는 IDE를 사용하면 훨씬 더 쉽게 작업할 수 있습니다. 또한 아직 컨테이너화되지 않은 프로젝트의 컨테이너에 대해 몇 가지 추가적인 테스트를 수행하는 데도 도움이 됩니다.
예, 저는 항상 친구나 동료에게 PyCharm뿐만 아니라 해당 요구 사항에 따라 JetBrains 제품 전체를 사용하도록 추천합니다. 앞서 언급했듯이 초보자이든 노련한 개발자이든 지능형 코드 에디터, 스마트 코드 탐색, Git, Docker와 같은 지원 도구와의 통합 지원 등의 기능이 도움을 줍니다. 개발자는 해당 활동을 수행하는 데 필요한 지원을 제공하고 개발에 집중할 수 있게 해주는 신뢰할 수 있는 도구를 가지고 있습니다.
Swapnil Kulkarni, OpenStack의 적극적 기술 기여자
Matt Lucas, RoadBotics 제품 총괄
저희가 부분적으로 WebStorm으로 전환한 이유는 많은 프리미엄 기능이 처음부터 포함되어 있다는 점 때문이었습니다. 이로 인해 추가적인 타사 제품에 대한 의존도를 낮추면서도 일에 바로 착수 할 수 있게 되었습니다. 그뿐 아니라 소프트웨어 라이선스가 한 곳에 있어, 개발 도구에 대한 접근 관리가 한결 간편해 졌습니다.
Garth Gilmour, 학습 책임자, Instil
2020년 3월에 사회적 거리두기 제한이 도입되었을 때, 가상 서비스의 일부로 학생들과 온라인으로 소통할 수 있는 도구가 필요해지면서 자연히 Space를 선택하게 되었습니다.
Ben Asher, Autodesk iOS 개발자
Kotlin Multiplatform을 사용하면 엔지니어가 하나의 플랫폼에서 새로운 기능을 빌드하고 테스트할 수 있어요. 그러고 나서 다른 플랫폼에서는 데이터 모델과 비즈니스 로직을 해당 플랫폼의 UI에 연결하고 대부분의 기초 작업을 재사용할 수 있죠. 이제 저희는 공유 코드베이스에서 작업하면서 여러 플랫폼에서 더 많은 협업을 수행해요.