2022111337 이예빈
https://tech.kakao.com/2023/03/02/python-and-rust/
파이썬과 러스트
안녕하세요, 추천팀 제이입니다. 저는 팀 내 프로젝트에 새롭게 러스트(Rust)를 도입하는 과정에서 동일한 애플리케이션을 파이썬(Python)과 러스트로 각각 개발하여, 비교 및 분석하는 과정을 경
tech.kakao.com
1. 성능
#메모리 사용량
메모리 사용량은 파이썬이 러스트 보다 4.5배 정도 더 사용했다.
#작업 처리 속도
러스트가 파이썬보다 작업을 1.9배 정도 빠르게 처리했다.
#CPU 사용량
파이썬의 CPU 사용량은 러스트보다 최대 3배, 평균 2배 정도 높았다.
결과적으로 같은 조건에서 러스트 결과물이 파이썬 결과물보다 메시지 처리량과 처리 속도가 높다고 할 수 있다. 러스트 언어의 고성능 라이브러리를 사용하면, 적은 노력으로도 파이썬 대비 높은 성능을 꾀할 수 있을 것으로 보인다.
2. 학습 비용
#러스트
러스트는 소유권, 수명 같은 생소한 개념과 열거형, 매크로 및 트레이트 같은 기능을 모두 학습해야 구현이 가능하기 때문에 학습 비용이 많이 든다.
#파이썬
파이썬은 문법이 쉽고 간결하며 프로그래밍 언어를 모르는 사람도 금방 배우기 좋은 언어이기 때문에 학습 비용이 만이 들지 않는다.
보통 하나의 언어에 능통하다면 다른 언어를 쉽게 익히는 편이지만, 파이썬과 러스트는 컴파일, 메모리 관리 그리고 동적/정적 타입까지 서로 다른 확연한 차이점 때문에, 파이썬에 능숙하더라도 러스트에 익숙해지는 데 상당한 시간이 필요하다.러스트를 잘 다루는 개발자를 구하기 힘들 수 있고, 구현 이후에도 팀의 소수 인원이 애플리케이션을 유지보수할 가능성이 높으며, 상황이 여의치 않을 때는 학습 시간을 작업 시간에 온전히 포함해야 하는 경우도 있기 때문이다.
3. 생산성
#러스트
러스트는 긴 컴파일 시간을 가지고 있는 언어이고, 파이썬은 컴파일이 필요 없는 언어기 때문에 패키지 다운로드와 빌드 시간을 포함한 도커 이미지 빌드 시간을 비교하면, 러스트는 대략 340초 수준이고, 파이썬의 경우 대략 100초 수준이다..
#파이썬
파이썬은 애플리케이션을 빠르게 구현해서 프로토타입을 통해 구현 가능성을 증명하는 데 장점이 있다. 언어의 문법이 쉬우며, 다양한 레퍼런스가 있고 관련 패키지만 설치되어 있으면 어느 플랫폼에서도 테스트할 수 있기 때문이다. 개인적으로는 다양한 상황에서 프로그램을 구현할 때, 파이썬을 사용하면 개발 생산성이 굉장히 높다.
4. 타입 시스템
#러스트
러스트는 강타입의 현대 언어답게 타입 시스템을 보조하는 기능이 많다. 컴파일러의 강력한 타입 추론 기능은 프로그램 구현 과정에서 타입에 관련된 개발 시간을 상당히 줄여주었다. 그리고 러스트는 이종 유니언 타입인 열거형 타입, 불변성과 참조에 따라 나뉘는 다양한 타입 및 그것을 지원하는 타입 변환 등이 전체 타입 시스템을 보조하고 있어, 타입을 사용하기 매우 편리했다.
#파이썬
파이썬의 타입 검사는 외부 정적 검사 도구를 사용해 수행된다. 하지만 파이썬 외부 라이브러리를 사용하는 경우에, 타입 검사를 패키지에 제대로 구현하지 않은 경우가 많아 구현 과정에서 종종 불편한 경우가 있다. 타입 정보가 없는 라이브러리에서 만들어진 데이터는 타입 검사가 무시되는 Any 타입을 가진다. 이 Any 타입 데이터에서 파생되는 데이터 또한 불투명한 타입을 가지게 되고, 전체 프로젝트에서 타입 검사 정확도를 낮추는 원인이 된다.
5. 오류 처리 방식
#러스트
러스트에는 예외가 없고 Result라는 enum 타입으로 오류를 표현하는데, 발생할 수 있는 모든 오류에 대해 어떻게 처리할지 명시하지 않으면 컴파일이 실패한다. 따라서 발생할 수 있는 오류에 대해 대응할 전략과 코드가 항상 구현되어 있어야 한다.
#파이썬
파이썬은 예외를 발생시키는 방식으로 오류를 처리한다. 발생한 예외는 사용자가 직접 처리할 수도 있고, 처리를 구현하지 않는 경우에는 파이썬이 예외를 출력하고 프로그램을 종료시킨다.
'SWUFORCE > 기술 스터디' 카테고리의 다른 글
[기술스터디] ‘물’ 공급망 타깃 사이버공격 대응, 우리나라는 어떻게 하고 있나 - 보안뉴스 (1) | 2023.05.16 |
---|---|
[기술스터디] ‘인공지능의 대부’, 이제 인공지능을 걱정하다 - The Science Times (0) | 2023.05.08 |
[기술스터디] 국가과학기술연구회 - 데이터 댐의 든든한 수문, 사이버 보안 기술 (0) | 2023.05.02 |
[기술보고서] 삼성 SDS- 클라우드 시대에 더욱 중요해진 보안 (0) | 2023.04.03 |
[기술보고서] 삼성 SDS 인사이트 - ChatGPT로 보는 AI 챗봇의 한계와 미래 (0) | 2023.03.20 |