Offcanvas
Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.
Offcanvas
1111Some text as placeholder. In real life you can have the elements you have chosen. Like, text, images, lists, etc.

파이썬

"기업 수요가 가장 많은 프로그래밍 언어는 자바"

기업이 가장 원하는 프로그래밍 언어 기술은 자바, 파이썬, SQL인 것으로 나타났다. 고, 타입스크립트에 대한 수요가 커지고 있지만 아직 상위 3개 언어에는 크게 미치지 못했다. 이는 지난 10일 공개된 '해커랭크 2023 개발자 스킬 리포트(2023 HackerRank Developer Skills Report)'의 주요 내용이다. 기업과 개발자를 위한 기술 문제 해결 플랫폼인 '해커랭크 워크(HackerRank Work)'를 통해 수집한 정보를 분석해, 기업과 개발자에게 가장 수요가 많은 소프트웨어 엔지니어링 스킬과 프로그램 언어 순위를 매겼다.  상위 5개 언어는 자바, 파이썬, SQL, C++, 자바스크립트 순이었다. 배시(Bash), C#, 고, 타입스크립트, R이 뒤를 이었지만 상위 5개 언어와는 차이가 컸다. 이중 수요가 가장 빠르게 증가하는 언어는 타입스크립트와 고였다. 고는 2021년 대비 2022년에 301% 수요가 늘었고, 타입스크립트는 392%였다. 스위프트와 루비에 대한 수요는 다소 줄어든 것으로 나타났다. 스위프트는 2021년 대비 80%에 그쳤고 루비는 66%였다. 특정 언어에 대한 기업의 수요를 수치화하기 위해 해커랭크는 해커랭크 워크 테스트 결과를 분석했다. 기술 수요는 특정 라이브러리 문제를 이용한 해커랭크 워크 테스트의 수를 기반으로 측정했다. 개발자 선호도는 여러 언어 중 해커랭크 워크에 제출한 언어와 그 숙련도를 기준으로 삼았다. 해커랭크 커뮤니티 데이터 역시 참고했다. 그밖에 이번 보고서의 주요 내용은 다음과 같다.   2022년에 R과 스칼라는 개발자층이 오히려 줄었다. 2021~2022년에 성장세를 보인 기술은 2023년에도 계속 성장할 전망이다. 자바, 파이썬, SQL 등이 여기에 해당한다. REST API 기술에 대한 수요가 179% 늘었다. 쿠버네티스 컨테이너 오케스트레이션 기술에 대한 수요가 늘면서 도커 스킬에 대한 수요는 줄었다. 기업과 개발자 모두 머신러닝과 데이터 과학 ...

자바 파이썬 SQL 2022.11.15

"1.25배 더 빨라졌다" 파이썬 3.11의 주목할 신기능

파이썬 프로그래밍 언어의 새 버전은 연 단위로 나오는데, 상반기에는 기능 잠금(feature-locked) 상태의 베타가, 하반기에는 최종 버전이 출시된다. 최신 버전은 얼마 전에 나온 파이썬 3.11이다. 개발자는 프로덕션과 무관한 환경에서 최신 버전을 실험하면서 다른 프로그램과 잘 작동하는지, 그리고 코드에서 성능 향상 효과를 얻을 수 있을지 파악하는 것이 좋다. 여기서는 파이썬 3.11에서 가장 중요한 새로운 기능과 이러한 기능이 파이썬 개발자에게 무엇을 의미하는지 살펴보자.    속도 개선  파이썬 3.11의 많은 부분에 개별적인 성능 개선이 이뤄졌지만 가장 큰 부분은 적응형 인터프리터의 특화다. 객체의 형식이 거의 변경되지 않는다는 점에 착안해서 이제 인터프리터는 실행 중인 코드를 분석해 일반 바이트코드에서 형식별 바이트코드로 대체를 시도한다. 예를 들어 더하기, 빼기 등 이진 연산을 정수, 부동소수점, 문자열을 위한 특화된 버전으로 대체할 수 있다.  파이썬 3.11에서는 파이썬 함수 호출에 필요한 오버헤드도 줄었다. 함수 호출을 위한 스택 프레임이 더 효율적으로 설계되면서 메모리 사용량이 줄었다. 또한 재귀 호출은 꼬리 최적화는 되지 않지만(어차피 파이썬에서 꼬리 최적화는 불가능하다고 볼 수 있음) 이전 버전에 비해 효율성이 개선됐다. 파이썬 인터프리터 자체의 시작 속도가 더 빨라졌고 파이썬 런타임에 필요한 코어 모듈의 저장과 로드 효율성이 좋아졌다.  공식 파이썬 벤치마크에 따르면 파이썬 3.11은 파이썬 3.10보다 약 1.25배 더 빠르게 실행된다. 참고로 이 속도 향상은 종합적인 수치다. 훨씬 더 빠르게 실행되는 부분도 있지만 많은 부분이 약간 빨라지거나 거의 비슷하다. 어쨌든 이와 같은 개선에서 가장 좋은 부분은 별도 작업이 필요 없다는 점이다. 파이썬 프로그램에서 파이썬 3.11의 속도 개선 효과를 얻기 위해 따로 코드를 변경할 필요가 없다.    향상된 오류 정보&nbs...

파이썬 파이썬 3.11 Python 2022.10.27

"수십 년째 굳건하게" C 언어가 왕좌 지키는 이유

‘C 언어’는 지난 1972년 개발된 이후 지금까지 전 세계에서 널리 사용되고 있으며, 소프트웨어 시대의 핵심적인 기본 구성요소로 군림하고 있다. 하지만 지난 수십 년 동안 새로운 언어가 많이 등장했다. 그중에는 노골적으로 C 언어의 아성에 도전한 언어도 있었고, 인기를 끌면서 C 언어를 조금씩 갉아먹은 언어도 있었다. C 언어와 C++, 자바, C#, 러스트, 파이썬 그리고 ‘쌩신입’인 카본과 C 언어를 비교해 살펴본다.   C vs. C++ C 언어의 가장 흔한 비교 대상은 C++다. 이름에서 알 수 있는 것처럼 C++는 C 언어의 확장판으로 개발됐다. C++의 구문 및 접근 방식은 C와 유사하지만 이는 네임 스페이스, 템플릿, 예외 처리, 자동 메모리 관리 등 C에서는 기본 제공하지 않는 매우 유용한 기능을 지원한다. 데이터베이스나 머신러닝 시스템 등 최상급 성능을 요하는 프로젝트는 C++의 이러한 기능을 사용해 작성되는 경우가 많다. 또한 C++는 C보다 훨씬 더 적극적인 확장 중이다. 곧 출시될 C++ 23은 모듈, 코루틴, 더 빠른 컴파일, 모듈화된 표준 라이브러리 등 많은 기능을 제공할 예정이다. 반면에 C 표준의 최신 버전(C2x)은 추가 기능이 거의 없으며, 하위 호환성 유지에 주안점을 두고 있다.  문제는 C++의 모든 장점이 동시에 단점으로 작용하기도 한다는 것인데, 이 단점이 크다. C++의 기능을 많이 사용할수록 복잡성이 증가하며, 결과를 통제하기가 어려워진다. C++의 특정 부분만 제한적으로 사용하면 최악의 문제는 대부분 피할 수 있다. 이러한 복잡성을 원천적으로 차단하기도 한다. 예를 들면 리눅스 커널(Linux Kernel) 개발팀은 C++를 기피하며, 대부분의 리눅스는 여전히 C로 작성된다(현재 러스트를 향후 커널 추가를 위한 언어로 보고 있긴 하다).  물론 C++가 고수준 기능을 풍부히 갖추고 있는 이유는 분명하다. 하지만 현재와 미래의 프로젝트 및 프로젝트팀에 미니멀리즘이 더 적합하다면 C...

C 언어 C++ 파이썬 2022.10.04

딥러닝 프레임워크 ‘3파전’··· '텐서플로우 vs 파이토치 vs JAX' 비교

오늘날 딥러닝 연구 및 개발을 주도하는 3가지 프레임워크가 있다. 각각 사용 편의성, 기능 및 성숙도, 엄청난 확장성으로 유명하다. 어떤 프레임워크를 사용해야 할까?  시리, 알렉사, 실시간 번역 앱, 로봇, 자율주행차 등에 들어가는 ‘딥러닝’은 크고 작은 방식으로 삶을 매일 변화시키고 있다. 대부분의 딥러닝 애플리케이션은 텐서플로우, 파이토치, JAX 중 하나를 이용해 작성된다. 그렇다면 개발자 입장에서 기술을 만들 때 어떤 딥러닝 프레임워크를 선택해야 할까?      ‘텐서플로우’의 장점 1970년대와 1980년대에는 ‘IBM 제품을 샀다고 해고된 사람은 아무도 없다(Nobody ever got fired forbuying an IBM)’라는 말은 진리로 통했다. 이제 이 표현을 ‘딥러닝에 텐서플로우를 사용했다고 해고된 사람은 아무도 없다’라고 바꿔 말할 수 있겠다. 하지만 IBM이 1990년대에 들어서면서 도태한것 처럼 공개된 지 7년이 지난 텐서플로우는 지금에도 여전히 경쟁력이 있을까? 확실히 그렇다. 텐서플로우는 그동안 가만히 있지 않았다. 텐서플로우 1.x는 파이썬과 매우 다른 방식으로 정적 그래프를 작성하는 게 전부였지만, 텐서플로우 2.x는 ‘즉시 실행’ 모드를 사용한 모델 빌드가 가능해지면서 좀 더 파이토치 같은 느낌이 났다. 아울러 하이 레벨(high level)에서 텐서플로우는 더 쉬운 개발을 위해 케라스(Keras)를 제공하고, 로우 레벨에서는 속도를 위해 컴파일러를 최적화하는 XLA(Accelerated Linear Algebra)를 제공한다. XLA는 GPU 성능을 향상시키며, 대규모 모델 학습에 뛰어난 성능을 제공하는 구글의 TPU(Tensor Processing Units)를 활용하는 방법이기도 하다. 성숙한 플랫폼에서 잘 정의되고 반복 가능한 방식으로 모델을 제공해야 한다면 ‘텐서플로우 서빙(TensorFlow Serving)’을 이용하면 좋다. 웹, 스마트폰 등 저전력 컴퓨팅 또는 ...

딥러닝 머신러닝 인공지능 2022.09.01

"막을 수 없는 기세" 파이썬, 개발언어 인기지수 또 1위

‘막을 수 없는 기세의’ 파이썬이 다시 한번 티오베(Tiobe) 그리고 Pypl(PopularitY of Programming Language) 지수에서 모두 1위를 차지했다.   파이썬이 티오베 지수에서 처음으로 1위를 차지한 지 1년가량이 지났지만 이 프로그래밍 언어는 개발자 사이에서 계속 높은 점수를 받고 있다. 최근 발표된 2022년 8월 순위에서 파이썬은 지난달보다 2%P 상승한 15.2%로 역대 최고 기록을 경신하며 가장 인기 있는 프로그래밍 언어 1위에 올랐다. 파이썬은 지난 2021년 10월 처음으로 티오베 지수에서 1위를 차지했으며, 자바와 C를 제외하고 유일하게 1위 자리를 지킨 언어가 됐다. 티오베는 이와 관련해 “파이썬의 기세를 막을 수 없다”라고 언급했다.  한편 티오베 지수는 구글, 빙, 야후, 빙, 위키피디아 등의 검색 엔진에서 검색된 수치를 기반으로 하며, 전 세계에서 해당 언어를 사용하는 소프트웨어 엔지니어, 교육과정, 소프트웨어 개발업체 수도 순위 산정에 반영한다. 이어 “요즘 파이썬이 사용되지 않는 프로그래밍 분야를 찾기 힘들다. 유일한 예외는 (안전이 중요한) 임베디드 시스템이다. 파이썬이 동적으로 입력되고 너무 느리기 때문이다”라고 티오베는 언급했다. 반면에 C와 C++은 임베디드 시스템에 활용되고 있다고 덧붙였다. 이 밖에 8월 티오베 지수에서 러스트는 22위를 기록해 20위권에 근접했으며, 최근 C++의 후계자로 언급되고 있는 카본(Carbon)은 192위로 지수에 진입했다. 8월 티오베 지수의 톱 10은 다음과 같다.  1. 파이썬(15.42%) 2. C(14.59%) 3. 자바(12.4%) 4. C++(10.17%) 5. C#(5.59%) 6. 비주얼 베이직(4.99%) 7. 자바스크립트(2.33%) 8. 어셈블리(2.17%) 9. SQL(1.7%) 10. PHP(1.39%) 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYP...

프로그래밍 언어 개발 언어 파이썬 2022.08.10

파이썬 앱 구성을 더 쉽게⋯TOML의 이해와 기본 활용

소프트웨어 개발에서 흥미로운 반전은 가장 간단한 의사 결정이 때로는 가장 어려운 의사 결정이 되기도 한다는 것이다. 예를 들면 애플리케이션이나 서비스에 사용할 구성 파일 형식을 선택하는 것이 있다. JSON과 YAML, 2가지가 떠오를 것이다. 그러나 이해하기 쉽고 데이터 구조로 파싱하기도 비교적 쉬운 구성 파일 형식이 필요하다면 TOML도 고려할 필요가 있다.   TOML(Tom’s Obvious Minimal Language)은 구성 데이터 저장을 목적으로 만들어졌으며 JSON을 비롯한 다른 형식에는 없는 여러 기능을 지원한다. 예를 들어 JSON은 인라인 주석을 지원하지 않지만 TOML에서는 파이썬에서 하듯이 해시 기호를 앞에 붙이는 간단한 방법으로 주석을 넣을 수 있다. 그렇게 보면 파이썬 자체의 구성 표준이 TOML 쪽으로 기울고 있다는 점도 별로 놀라운 일은 아니다(pip에서 패키지 빌드를 위해 사용되는 pyproject.toml 참조).   TOML 형식의 기본 사항  TOML 형식 파일은 키-값 쌍으로 구성되며 키는 문자열이고 값은 여러 형식 중 하나일 수 있다. 마이크로소프트 윈도우의 .ini 파일과 비슷한 면도 있지만 더 폭넓은 데이터 형식을 지원한다. 예를 들면 다음과 같다.    name = "string" integer = 3 float-value = 3.14159 boolean_value = true "quoted ünicode key" = true # this is a comment data = "OK" # a comment after a key/value 키는 항상 문자열로 해석된다. 값은 문자열, 정수, 실수, 부울, 다양한 날짜-시간 값, 그리고 배열과 인라인 테이블이라는 2가지 특수한 종류의 값이 될 수 있다. 해시 기호 뒤부터 그 라인의 끝까지는 모두 주석이다. 단, 키 또는 값 문자열 자체에 포함되는 해시 기호는 해당되지 않는다.    TOML의 배열&nb...

TOML 파이썬 2022.08.03

R스튜디오, 포싯(Posit)으로 사명 바꿔…파이썬˙VS코드에 집중

R스튜디오가 회사 이름을 ‘포싯(Posit)’으로 변경한다. 27일(현지 시각) 美 워싱턴 D.C.에서 열린 연례 사용자 컨퍼런스에서 R스튜디오는 R을 넘어 파이썬 및 비주얼 스튜디오 코드 사용자까지 포함하기 위해 사명을 바꾼다고 발표했다.  R스튜디오는 지난 몇 년 동안 자사 제품이 R과 파이썬 모두를 지원하는 ‘이중 언어’라고 강조해 왔다. 하지만 ‘R스튜디오’라는 브랜드로 인해 파이썬 사용자가 자사 제품을 고려하도록 설득하는 게 어려웠다는 설명이다. R스튜디오의 수석 과학자 해들리 위컴은 “사명 때문에 제한을 받는다고 느꼈다”라고 말했다.    그러나 R스튜디오 설립자 겸 CEO J.J. 알레르는 “소셜 미디어 등에서 주장하는 것과는 달리, 사명 변경이 R 관련 제품 개발을 중지하거나 파이썬이 데이터 과학에서 R을 대체한다는 것을 의미하지는 않는다”라고 언급했다. 위컴은 “R에서 파이썬으로 전환하는 게 아니다”라면서, “R 코드 작성을 멈추지 않을 것”이라고 전했다.  알레르는 그 대신 관련 상용 제품의 수익을 통해 오픈소스 소프트웨어에 안정적으로 자금을 조달할 수 있는 모델을 찾았다고 밝혔다. 또한 “데이터 과학 관행에 폭넓게 영향을 미칠 기회가 있다고 생각한다”라고 덧붙였다.  알레르에 따르면 내부 엔지니어의 약 40%가 풀타임으로 오픈소스 소프트웨어에 전념하고 있다. 오픈소스 개발 작업에 참여하지만 풀타임으로는 일하지 않는 직원을 제외하면 인력 규모는 총 43명이다. 2020년 R스튜디오는 공익법인으로 개편했다고 발표했다. 따라서 의사결정을 내릴 때 주주 가치 극대화에 초점을 맞추는 대신, 광범위한 사용자 커뮤니티의 요구를 고려할 수 있게 됐다.  현재 내부 엔지니어의 90%가 R을 다루고 있지만 알레르는 약 3년 후에는 (그 비율이) 약 75% 수준일 것이라고 추정했다. 하지만 단기적으로는 R과 관련한 개발 작업의 대부분을 유지할 예정이다. 단, 더 이상 첫 번째 제품인 ‘R...

R스튜디오 포싯 데이터 과학 2022.07.29

"파이썬 웹 개발의 미래" ASGI의 개념과 활용 방법

오래전부터 파이썬 웹 애플리케이션은 웹 서버와 통신할 때 웹 서버 게이트웨이 인터페이스(WSGI) 표준을 따랐다. WSGI는 2003년에 처음 도입돼 2010년에 업데이트됐으며 파이썬 버전 2.2에서는 네이티브 기능을 이용해 쉽게 구현할 수 있게 됐다. 결과적으로 WSGI는 모든 주요 파이썬 웹 프레임워크에 빠르게 도입돼 파이썬을 사용한 웹 개발의 초석이 됐다.   시계를 다시 현재로 돌려보자. 파이썬 2는 폐기됐고(한참 늦었지만), 파이썬에는 이제 네트워크 호출과 같은 비동기 작업을 처리하기 위한 기본 구문이 있다. WSGI 및 기타 기본적으로 동기 동작을 전제하는 표준은 비동기의 성능이나 효율성이 떨어진다. 이는 곧 WSGI가 웹소켓과 같은 고급 프로토콜을 효과적으로 처리하지 못한다는 것을 의미한다. 그래서 나온 것인 ASGI, 즉 비동기 서버 게이트웨이 인터페이스다. ASGI는 WSGI와 마찬가지로 파이썬 웹 애플리케이션과 웹 서버 간의 공통적인 인터페이스를 기술한다. WSGI와 다른 점은 애플리케이션당 여러 개의 비동기 이벤트를 허용한다는 것이다. 또한 ASGI는 동기 앱과 비동기 앱을 모두 지원한다. ASGI를 사용해 새로운 비동기 웹 앱을 구축하는 것뿐만 아니라 오래된 동기 WSGI 웹 앱을 ASGI로 마이그레이션할 수도 있다.   WSGI의 작동 방식 WSGI는 보통 application 또는  app이라는 이름의 파이썬 함수를 웹 서버에 드러낸다. 이 함수는 다음의 두 매개변수를 받는다.   environ : 웹 서버가 제공한 환경 변수와 현재 요청에 대한 정보가 포함된 사전 start_response : 클라이언트로 HTTP 응답을 보내는 작업을 시작하는 데 사용하는 함수 함수가 반환하는 데이터가 응답 본문을 구성한다. 간단한 application 함수는 다음과 같은 형태다.   def application(environ, start_response): &n...

ASGI 파이썬 WSGI 2022.07.18

‘편리한’ 파이썬과 ‘빠른’ 러스트를 결합하는 법

라이브러리를 활용하면 파이썬(Python)의 ‘편리함’과 러스트(Rust)의 ‘속도’를 결합할 수 있다. 대표적으로 PyO3 프로젝트와 C파이썬(cpython)을 이용하면 된다.  파이썬과 러스트는 서로 특징이 완전히 다른 언어처럼 보일 수 있다. 런타임 위에서 실행되는 파이썬은 개발자에게 유연하고 편리한 프로그래밍 환경을 제공하지만 실행 성능 측면에서는 아쉬운 점이 있다. 러스트는 속도와 메모리 안정성을 제공하지만 메모리 작업을 처리하는 과정에서 많은 수고가 필요하다.  두 언어는 사실 경쟁하는 관계가 아니다. 대신 부족한 부분을 메꿔가면 동시에 사용할 수 있다. 러스트에 파이썬의 사용 편의성을, 파이썬에 러스트의 속도와 안정성을 더할 수 있는 셈이다.  단, 두 언어의 장점을 통해 최적의 결과를 얻고 싶다면, 두 언어에 어느 정도 익숙해야 한다. 또 각 언어가 가진 철학이 많이 다르기 때문에, 둘 중 어느 것을 기본 언어로 설정할지 결정해야 한다.    PyO3로 파이썬에서 러스트 호출하기 파이썬이 기본 언어라면 러스트를 통합하는 과정은 개념적으로 파이썬을 C 언어와 통합하는 것과 동일한 방식으로 이뤄진다. C 언어로 작성된 파이썬의 기본 구현은 C 언어 또는 C와 호환되는 ABI에서 작성된 확장자를 쓴다. 러스트로 작성된 확장자도 동일한 ABI를 활용하기 자동으로 작동되는 것은 아니지만 비슷하게 진행된다. 이때 파이썬 C API에 러스트 함수 바인딩을 제공하도록 설계된 크레이트(Crate, 러스트용 코드 패키지)를 사용해야 한다.  파이썬에서 러스트 바인딩 만들기 파이썬에서 러스트 바인딩을 생성할 때는 대표적으로 PyO3를 쓴다. 러스트에서 파이썬 모듈을 작성하거나 파이썬 런타임을 러스트 바이너리에 포함하는 데 사용할 수 있다.  PyO3는 ‘마트린(Maturin)’을 활용한다. 이는 파이썬 패키징 및 바인딩으로 러스트 크레이트를 작성하는 도구다. 파이썬 가상 환경에 설치하면 마트...

파이썬 러스트 사이썬 2022.07.08

스노우플레이크, “파이썬 기능 강화로 데이터 과학자 공략”

클라우드 기반 데이터 웨어하우스 업체 스노우플레이크(Snowflake)가 데이터 과학자를 잡기 위한 노력에 한창이다. 14일 열린 연례 스노우플레이크 서밋 행사에서 발표된 소식을 보면 주로 파이썬이나 데이터 액세스와 관련된 기능이 주를 이뤘다. 데이터 과학자가 관심을 둘 만한 기능이다. 아직 비공개 프리뷰 단계나 개발 단계의 수준이지만, 이런 서비스를 보강되면 앞으로 테라데이터(Teradata), 구글 빅쿼리(BigQuery), 아마존 레드시프트(Redshift)같은 서비스와 경쟁이 본격화될 것으로 예상된다.    새로 업데이트된 서비스엔 먼저 스노우파크(Snowpark)가 있다. 지난해 출시된 스노우파크는 데이터 프레임의 기능을 제공하는 개발 도구로, 개발자가 선호하는 툴을 스노우플레이크의 가상 웨어하우스 컴퓨팅 엔진에 서버리스 방식으로 설치할 수 있게 도와준다. 앞으로 스노우파크에선 파이썬 기능도 쉽게 이용할 수 있다.  파이썬이 추가되면서 스노우플레이크는 머신러닝을 위한 애플리케이션 개발 속도를 높일 수 있다고 보고 있다. 스노우플레이크의 제품 담당 수석 부사장인 크리스티안 클라이너맨은 “파이썬은 스노우플레이크 고객이 가장 많이 요청한 기능”이라고 강조했다.  업계 애널리스트는 데이터 과학자가 파이썬을 가장 선호하고 있다는 점에서 파이썬 관련 기능이 많아지고 있는 것은 자연스러운 현상이라고 보고 있다. 컨스텔레이션 리서치(Constellation Research)의 수석 애널리스트 덕 헨쉔은 “스노우플레이크는 늦은 감이 있다”라며 “테라데이터, 구글 빅쿼리, 버티카(Vertica)와 같은 경쟁 서비스에선 이미 파이썬을 지원한다”라고 지적했다. 스트림릿(Streamlit)이라는 도구도 스노우파크에서 통합 지원한다. 스트림릿은 오픈소스 앱 프레임워크로, 파이썬을 이용해 데이터를 시각화하고 변경하고 공유할 때 사용된다. 보통 머신러닝 개발자나 데이터 과학자 및 엔지니어들이 이용하는 기술이며 지난 3월 스노우플레이크가...

스노우플레이크 머신러닝 데이터과학 2022.06.17

데이터가 서말이라도 '쉬워야' 꿴다…전천후 멀티툴 '파이썬'이 뜬다

파이썬은 R을 넘어서지는 못했을 수 있다. 하지만 사용 편의성과 이에 힘입은 인기 덕에 머지않아 데이터 과학 분야의 주류가 될 조짐이 보인다.   넷플릭스의 제품 혁신 및 개인화 담당 본부장 크리스틴 도이그는 “(넷플릭스에 데이터 과학 팀이 생긴) 초기에 회사에는 한 종류의 데이터 과학자들만 있었다. 그러나 이제 회사의 모든 영역에 침투하고 있다”라고 말했다.  이는 넷플릭스에만 해당하는 일이 아니다. 모든 업종에 걸친 기업들이 맞춤형 서비스를 만들고, 매력적인 사용자 경험을 제공하며 가격을 최적화하는 등의 목적을 달성하려 데이터 과학을 도입했다. 이 과정에서 데이터 과학의 활용은 프로덕트 매니지먼트, 마케팅 및 다른 영역까지 확대됐다.  데이터 과학의 이러한 확산은 데이터 분석에 사용하는 언어가 R에서 파이썬으로 점차 바뀌고 있는 이유이기도 하다. 다변화된 용도에 따라 기업이 다양한 인재를 모집하게 됐고, 파이썬의 대중성은 낮은 진입 장벽이라는 큰 이점을 제공한다.  R 대신 파이썬? 과거에는 데이터 과학을 하려면 R이 필수였다. R 프로젝트 웹사이트에 나와 있는 대로 R은 “데이터 조작, 추산 및 시각화를 위한 통합 소프트웨어 스위트”다. 즉 프로그래밍 언어가 아니라 이를 포함하는 소프트웨어 패키지다. R은 통계 및 수치 분석에 특화된 본질에 충실해 왔고, 여전히 데이터 과학을 하는 통계학자들 사이에서 유용하게 쓰이고 있다. 그러나 최근 데이터 과학의 활용 영역이 확장됨에 따라 이러한 강점은 한계로 작용하고 있다. 파이썬 기반 데이터 과학 플랫폼 ‘아나콘다(Anaconda)’의 제품 담당 부매니저 시탈 칼버기는 “물론 데이터 과학자들이 일반 프로그래머보다 더 통계에 치중된 업무를 하는 것은 사실이다”라며 “제품의 성과를 표시 및 예측하고, A/B 테스팅 등의 디자인 작업을 지원하며 계산 작업을 최적화하는 복잡한 통계 관련 알고리즘을 개발하는 것이 주요 업무다”라고 말했다. 하지만 요즘 데이터 과학자들이 프로그래...

파이썬 R언어 데이터과학 2022.06.02

"개발 언어 지배자는 여전히 자바스크립트와 파이썬"

개발자의 언어 선호도에서 자바스크립트와 파이썬의 강세가 계속되고 있다. 러스트의 상승세도 만만치 않은 것으로 나타났다. 이는 지난 4일 공개된 '개발자 현황 22번째 에디션(State of the Developer Nation, 22nd Edition)'의 주요 내용이다. 이 보고서는 시장조사업체 슬래시데이터(SlashData)가 2021년 12월부터 올해 2월까지 전 세계 166개국 2만 명 이상의 개발자를 설문한 결과다.   보고서를 보면, 자바스크립트는 가장 선호하는 언어로 선정됐다. 슬래시데이터는 이 조사를 1년에 2~3번 정도 진행하는데, 자바스크립트는 최근 12번의 조사에서 연속으로 1위를 차지했다. 전 세계적으로 약 1,750만 명이 사용하고 있고, 자바스크립트 커뮤니티 역시 수년간 지속해서 성장하고 있다. 2위는 파이썬이었다. 2년 전 자바를 앞지른 이후 선두권을 계속 유지하고 있다. 전 세계 사용자 수는 1,570만 명으로, 불과 6개월 사이에 330만 명이나 늘어났다.   상승세를 보면 러스트가 눈에 띈다. 지난 2년 사이 사용자 수가 거의 4배 늘었다. 2020년 1분기 60만 명이었는데, 2022년 1분기에는 220만 명이 됐다. 러스트 파운데이션의 상임이사 레베카 럼블은 "보안과 메모리 안전성 등의 장점 때문에 러스트 사용자가 크게 늘었다. 메인터이너와 컨트리뷰터 커뮤니티가 포괄적이고 협력적인 것도 장점이다. 또한 러스트 개발자에 대한 수요가 계속해서 늘고 있으므로 직업적 전망에서도 좋은 언어다"라고 말했다. 보고서는 러스트가 주로 IoT 프로젝트는 물론 증강, 가상현실 개발에서도 널리 사용되고 있다고 분석했다.   이밖에 보고서의 주요 내용은 다음과 같다.   자바는 강력하고 안정적으로 성장하고 있다. 2021년 이후 거의 500만 명의 개발자가 자바 커뮤니티에 합류했다. PHP는 지난 6개월간 꾸준히 성장해 2021년 3분기에서 2022년 1분기 사이에 60만 명이 증가했다. PHP는 웹 ...

자바스크립트 파이썬 러스트 2022.05.20

"왜 안 되는 걸까?" 파이썬에서 기대할 수 없는 4가지 기능 개선

파이썬에는 높은 편의성과 다양하고 강력한 라이브러리, 친절한 사용자 커뮤니티 등 좋은 점이 많지만 몇 가지 부족한 부분도 여전히 있다. 파이썬 작업을 수월하게 해줄 수 있는, 다른 언어에 있는 여러 기능을 적어도 당분간은 파이썬에서 기대할 수 없다. 개발자가 자주 요청하지만 현재 파이썬의 계획표에는 없는 4가지 기능을 소개한다. 이중 적어도 2개는 추가될 가능성이 없고, 다른 2개는 최소 몇 년 동안 계획이 없다. 이와 같은 기능이 왜 추가되지 않는지, 또는 미래의 파이썬에 추가되기 위해 무엇이 필요한지 살펴보자.     가능성 없음 : 정적 형식의 컴파일된 파이썬 버전 정적 형식 지정을 사용해 네이티브 기계 코드로 컴파일되는 파이썬을 꿈꾸는 개발자가 있다. 따지고 보면 유연한 형식 지정은 파이썬이 가진 느린 속도의 원인 중 큰 부분을 차지하는데, 정적 형식 지정을 사용하면 그 문제에 마침표를 찍을 수 있다. 또한 정적 형식 지정은 프로그래머에게 코드의 동작에 관한 강한 보장을 제공한다. 파이썬에는 형식 힌트가 있지만 형식 힌트의 용도는 린팅 툴을 통해 편집 시 정적 분석의 편의성을 높이는 데 있다. 런타임에 형식 힌트를 사용하는 것은 서드파티 프로젝트(예를 들어 pydantic)뿐이다. 파이썬 런타임 자체는 형식 힌트를 사용하지 않는다. 형식 힌트에 대한 PEP(파이썬 향상 제안) 484의 명확한 목표 중 하나는 형식 힌트를 영구적으로 옵션화하는 것이다. “파이썬은 앞으로도 동적 형식 지정 언어로 남을 것이며 파이썬 저작자는 형식 힌트를 (관례상으로도) 의무화할 생각이 전혀 없다.” 꼭 정적 형식 지정 파이썬을 원하는 개발자라면 사이썬(Cython) 또는 마이픽(mypyc)을 선택할 수 있지만 이 두 프로젝트에도 타협점은 있다. 사이썬의 경우 가장 큰 성능 향상은 순수 C 형식과 구조를 사용하고 파이썬 런타임 사용을 줄이는 데서 온다. 간단히 말해 파이썬의 동적 특성을 희생하지 않으면서 파이썬 컴파일 속도를 더 빠르게 하기는 어렵다....

파이썬 개발자 2022.05.10

“파이썬과 HTML의 결합” 아나콘다 ‘파이스크립트’ 공개

과학 계산용 파이썬 배포판을 개발하는 아나콘다(Anaconda)가 파이콘 US 2022(PyCon US 2022)에서 ‘파이스크립트(PyScript)’ 프로젝트를 발표했다. 업체에 따르면 파이스크립트는 사용자가 파이썬과 표준 HTML을 결합하여 브라우저에서 풍부한 파이썬 애플리케이션을 만들 수 있도록 지원하는 프레임워크다. 브라우저 내 단일-포함(single-include) 방식으로 HTML 페이지에서 자바스크립트만큼 쉽게 파이썬 스크립트를 실행할 수 있도록 한다.    기존에 파이썬은 HTML 및 자바스크립트를 반환하는 애플리케이션 서버로 실행해야만 자바스크립트 또는 웹 페이지와 상호작용할 수 있었다. 하지만 파이스크립트에는 서버 구성요소가 없다. 모든 것이 브라우저에서 직접 실행된다는 게 아나콘다 측 설명이다. 파이스크립트를 사용하면 파이썬 및 자바스크립트의 유용한 구성요소를 나란히 배포할 수 있다. 일례로 NYC 택시 데이터 데모인 파이스크립트는 판다스(Pandas)를 활용하여 데이터를 분석한 다음, 자바스크립트의 웹GL(WebGL)을 통해 데이터의 인터랙티브 3D 뷰를 생성한다.    파이스크립트는 인라인 파이썬 코드를 실행하기 위해 웹어셈블리에 C파이썬 런타임의 전체 포트를 사용한다. 파이썬 코드를 <py-script> 태그 안에 넣고, 해당 출력을 선택한 <div>에 배치할 수 있다. <py-repl> 태그는 코드를 입력하고 실행할 수 있는 REPL 블록을 삽입하며, <py-env> 태그는 필요한 패키지를 나열하기 위해 저장소의 requirements.txt 파일과 같은 기능을 한다.   또 파이스크립트 런타임은 아나콘다와 함께 번들로 제공되는 과학 계산용 라이브러리(예: 넘파이(NumPy), 판다스(Pandas), 사이킷런(Scikit-learn)) 등의 일반적인 파이썬 패키지를 활성화한다. 파이스크립트 저장소 데모는 이를 수행하는 다양한 방법을 제공한...

파이썬 파이스크립트 아나콘다 2022.05.04

파이썬, 티오베 지수 선정 2021년 '올해의 언어'

파이썬이 2년 연속으로 티오베 지수가 뽑은 2021년의 프로그래밍 언어로 선정되었다. 티오베 지수는 평점이나 선호도에 기반해 순위를 결정한다. 파이썬의 선호도는 2020년보다 1.86% 올라 2021년 연말 기준으로 티오베 인덱스 13.58%로 집계됐다. 아직 2001년 자바가 기록한 전체 최고 기록인 26.49%와는 거리가 있다. 티오베는 C#이 연중 내내 우세했지만 12월에 파이썬이 C#를 제쳤다고 밝혔다. 데이터 과학, 데브옵스, 웹 개발의 기본 요소가 된 파이썬은 현재도 티오베 순위 1위를 달리고 있다. 2021년 초에는 3위였다가 10월에 1위에 올랐다. 티오베 지수는 검색 엔진을 통해 전 세계의 숙련 엔지니어 수나 코스, 언어와 관련된 서드파티 업체를 기반으로 언어 인기도를 평가한다. 그 외 스위프트, 고, 러스트, 코틀린이 상승세에 있다고 발표했다. 2022년 1월 티오베 지수 상위 10개 언어는 다음과 같다. 1.    파이썬, 13.58% 2.    C, 12.44% 3.    자바, 10.66% 4.    C++, 8.29% 5.    C#, 5.68% 6.    비주얼 베이직, 4.74% 7.    자바스크립트, 2.09% 8.    어셈블리, 1.85% 9.    SQL, 1.8% 10.   스위프트, 1.41% 파이썬은 구글에서 언어 튜토리얼 검색 빈도를 분석하는 Pypl 프로그래밍 언어 선호도 지수에서도 1위를 차지했다. 2022년 Pypl 상위 10개 언어 순위는 다음과 같다. 1.    파이썬, 28.74% 2.    자바, 18.01% 3.    자바스크립트, 9.07% 4. ...

파이썬 스위프트 자바 2022.01.05

파이썬, 10월 티오베 지수·PyPL 모두 1위

파이썬이 10월 티오베 지수에서 선정한 프로그래밍 언어 인기 순위(Programming Language PopularitY)에서 1위를 차지했다. 20년 넘는 기간 동안 티오베 지수 1위를 차지한 언어는 파이썬을 포함해도 3개뿐이다. 지난주 발표된 10월 지수에서 파이썬은 2001년 이후 티오베 지수에서 줄곧 선두를 양분한 C와 자바에 이어 1위에 올랐다. 프로그래밍 언어 인기 순위는 구글, 빙, 야우, 위키피디아 등의 검색 엔진의 프로그래밍 언어 관련 검색 결과를 바탕으로 결정된다.   최근 파이썬의 상승세는 꾸준했다. 소프트웨어 품질 서비스 업체이기도 한 티오베는 파이썬 생태계가 건전하고, 사용하기 쉬우며 라이브러리가 풍부하고 편집-실행 주기가 빠르다고 평가했다. 동시에 “C와 자바가 양분하던 프로그래밍 언어 쌍두마차 시대는 끝났다”고 언급했다. 티오베는 향후 몇 개월간 C와 엎치락 뒤치락할 수는 있겠지만 결국 파이썬이 최고의 자리를 한동안 유지할 것이라고 내다봤다. 파이썬은 구글의 언어 자습서 검색 결과를 바탕으로 산출하는 PYPL(PopularitY of Programming Language) 지수에서도 1위를 차지했다. 2021년 10월 티오베 지수 선정 상위 10위 언어는 다음과 같다. 1. 파이썬 (11.27%) 2. C (11.16%) 3. 자바 (10.46%) 4. C++ (7.5%) 5. C# (5.26%) 6. 비주얼 베이직 (5.24%) 7. 자바스크립트 (2.19%) 8. SQL (2.17%) 9. PHP (2.1%) 10. 어셈블리 (2.06%) 또한, 2021년 10월 PYPL 지수 상위 10위 결과는 다음과 같다. 1. 파이썬 (29.66%) 2. 자바 (17.18%) 3. 자바스크립트 (8.81%) 4. C# (7.3%) 5. C/C++ (6.48%) 6. PHP (5.92%) 7. R (4.09%) 8. 오브젝티브-C (2.24%) 9. 타입스크립트 (1.91%) 10. 코틀린 (1.9%) editor@...

파이썬 프로그래밍언어 티오베 2021.10.13

파이썬 코드 프로파일링을 위한 6가지 유용한 라이브러리

모든 프로그래밍 언어에는 두 가지 속도가 있다. 개발 속도, 그리고 실행 속도다. 파이썬(Python)은 전통적으로 빠른 실행보다는 빠른 개발에 중점을 두는 언어다. 파이썬 코드는 대부분의 경우 충분히 빠르지만 가끔 그렇지 않을 때도 있다. 그럴 때는 속도가 떨어지는 위치와 이유를 파악해 조치를 취해야 한다.   소프트웨어 개발은 물론 엔지니어링 전반적으로 통용되는 격언으로 “추정하지 말고 측정하라”는 말이 있다. 소프트웨어에서 무엇이 잘못됐는지 추정하곤 하지만 결코 좋은 방법은 아니다. 애플리케이션 속도를 높이기 위해 가장 먼저 사용해야 하는 도구는 실제 프로그램 성능에 대한 통계다. 파이썬에는 애플리케이션을 프로파일링하고 속도가 느린 부분을 파악하는 데 사용할 수 있는 패키지가 풍부하다. 표준 라이브러리에 포함된 간단한 도구부터 실행 중인 애플리케이션에서 통계를 얻기 위한 복잡 정교한 프레임워크에 이르기까지 다양한 도구가 있다. 이번 기사에서는 가장 중요한 5가지 도구에 대해 살펴본다. 모두 크로스 플랫폼(cross-platform)이며 파이파이(PyPI) 또는 파이썬 표준 라이브러리에서 즉시 사용할 수 있다.  타임(Time), 타임잇(Timeit) 실행 속도가 몇 초 또는 몇 분 정도인 두 코드 스니펫 간의 시간을 프로파일링하는 것이 전부라면 스톱워치만 있어도 충분하다. 파이썬 표준 라이브러리에는 스톱워치 기능을 하는 두 가지 함수가 제공된다. 타임 모듈의 perf_counter 함수는 운영체제의 고분해능 타이머를 호출해 임의의 타임스탬프를 구한다. time.perf_counter를 작업 전후에 한 번씩 호출해 둘 사이의 차이를 구할 수 있다. 야단스럽지 않게, 낮은 오버헤드로 코드 시간을 측정하는 방법이다. 타임잇 모듈은 파이썬 코드에 대한 실제 벤치마킹과 비슷한 작업을 수행한다. timeit.timeit 함수는 코드 스니펫을 여러 번 실행하고(기본값은 100만 번), 소요된 총 시간을 측정한다. 타이트한 루프에서 단일 작...

파이썬 Python 타임잇 2021.08.02

IDG 설문조사

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.