“PyCharm은 다른 IDE에 비해 독특한 기능 세트를 갖추고 있습니다. 가장 중요한 기능은 안정적이고 포괄적인 리팩터링입니다. PyCharm의 또 다른 고유한 기능은 고급 실행 구성을 지원한다는 것입니다. 저는 PyCharm의 '조종실 같은 느낌'도 마음에 듭니다. 작업에 필요한 모든 도구에 빠르게 접근할 수 있는 중앙화된 공간이기 때문입니다.”
— Moritz Renftle, 데이터 과학자, Scieneers GmbH
저는 데이터베이스 및 데이터 과학에 중점을 두고 콘스탄츠 대학교와 KIT(Karlsruhe Institute of Technology)에서 컴퓨터 과학을 전공했습니다. 2022년에 Scieneers에 합류했고 이후로 다양한 부문의 기업에서 데이터 솔루션을 개발 및 배포하는 일을 했습니다. 이러한 일을 해내려면 데이터 분석, 맞춤형 모델 개발, 최신 머신러닝 기술 습득, 클라우드에서 데이터 파이프라인 배포와 같은 부분에서 광범위한 전문성이 요구됩니다.
Scieneers는 고객 팀의 역량을 강화하거나 저희 팀이 완전한 데이터 제품을 설계 및 개발하고 실무에 적용하는 서비스를 제공합니다. 비즈니스와 연구 부문의 고객 외에도 당사는 비영리 부문에서도 다양한 프로젝트를 지원합니다. https://www.scieneers.de를 방문하시면 당사의 다양한 활동을 확인할 수 있습니다.
우선, 저는 PyCharm의 '조종석 같은 느낌'이 좋습니다. 작업에 필요한 모든 도구에 빠르게 액세스할 수 있는 중앙화된 공간이기 때문이죠. 여기에는 코드 에디터, 버전 관리 시스템, 터미널, 그리고 데이터베이스 브라우저가 모두 구비되어 있습니다. 별도의 애플리케이션에서 이러한 도구를 사용할 때와 비교해 PyCharm는 마찰 없이 작동하고 컨텍스트를 전환할 때 들어가는 '정신적 에너지'가 더 적습니다.
PyCharm은 다른 IDE에 비해 독특한 기능 세트를 갖추고 있습니다. 가장 중요한 기능은 안정적이고 포괄적인 리팩터링입니다. 다른 도구에 비해 PyCharm은 이러한 리팩터링을 매우 안정적으로 실행하고 기존 코드가 문제 없이 작동하도록 해줍니다.
PyCharm의 또 다른 고유한 기능은 고급 실행 구성을 지원한다는 것입니다. 예를 들어, 원격 시스템에서 기본 애플리케이션을 실행하기 전에 'Before launch'(실행 전) 작업으로 로컬에서 Python 스크립트를 실행하는 실행 구성을 쉽게 설정할 수 있습니다.
PyCharm의 원격 SSH 인터프리터도 마음에 들어요. SSH 인터프리터는 네트워크 설정과 기타 요인에 따라 설정하기가 다소 어려울 수 있지만 일단 실행한 후에는 매우 안정적으로 작동합니다. 또한, 원격 시스템에서 코드를 디버그할 수 있다는 점도 마음에 듭니다. 예를 들어, 로컬에서 테스트할 수 없는 특정 GPU를 탑재한 원격 시스템에서 머신러닝 모델을 학습시킬 때 특히 유용하죠. PyCharm에서 SSH를 통해 원격 Jupyter Notebook을 실행하기도 쉽습니다. 마지막으로, PyCharm에서는 정확히 어떤 원격 시스템에서 어떤 디렉터리를 업로드할지 지정하여 실수로 다른 고객에서 코드를 업로드하는 일을 막을 수 있어요.
PyCharm은 다음과 같은 도움을 주었습니다.
PyCharm에서 Jupyter Notebook을 사용하면서 다음과 같은 몇 가지 특징이 눈에 띄었습니다.
ML 파이프라인의 전처리 단계에서 버그를 발견한 일은 저희 모델에 엄청난 가치를 지닙니다. 이 이슈를 디버그하기 위해 ML 파이프라인을 실행한 원격 GPU 시스템에서 PyCharm의 디버거를 사용했습니다. 버그가 외부 라이브러리가 아니라 자체 코드에 있다는 확신이 있었기 때문에 디버그 중에 PyCharm의 'Step into my code'(내 코드까지 스텝인투)라는 기능을 사용하고 중간에 라이브러리 코드를 호출하지는 않았습니다. 중단점을 설정하고 중간 데이터 프레임을 플롯 처리하여 문제를 효과적으로 추적하고 해결할 수 있었습니다.
PyCharm을 사용하면 배포 환경과 동일한 하드웨어가 있는 시스템에서 ML 모델을 원격으로 실행하여 ML 모델을 확장하고 현실적으로 테스트할 수 있습니다.
기회가 생기면 꼭 사용해 보려고 합니다. 로컬 ML 모델이나 AI 코드 완성 기능을 위한 자체 호스팅 모델을 사용할 수 있다면 정말 좋을 것 같아요.