Offcanvas

���������������������������

'속도를 높이는' 병렬 처리를 위한 6가지 파이썬 라이브러리

파이썬(Python)은 편의성과 프로그래머 친화성으로 유명하지만 속도 측면에서는 크게 내세울 것이 없는 프로그래밍 언어다. 파이썬의 속도 제약은 기본 구현인 c파이썬(cPython)이 싱글 스레드라는 점에도 일부 기인한다. 즉, c파이썬은 한번에 2개 이상의 하드웨어 스레드를 사용하지 않는다.   파이썬에 내장된 threading 모듈을 사용해 속도를 높일 수 있지만, threading은 병렬성(parallelism)이 아니라 동시성(concurrency)을 제공할 뿐이다. CPU에 종속되지 않는 여러 작업을 실행하는 용도로는 효과적이지만 각각 전체 CPU를 요구하는 여러 작업의 속도를 높이는 데는 아무 효과가 없다. 그러나 파이썬에도 여러 CPU에 걸쳐 파이썬 워크로드를 실행하기 위한 본연의 방법이 포함돼 있다. multiprocessing 모듈은 각각 별도의 코어에서 여러 개의 파이썬 인터프리터를 구동하며 여러 코어에 걸쳐 작업을 분할하기 위한 프리미티브를 제공한다. 그러나 multiprocessing으로도 충분하지 않을 때가 있다. 여러 코어뿐만 아니라 여러 머신으로 작업을 분산해야 하는 경우도 있는데, 이런 경우 유용한 6개 파이썬 라이브러리와 프레임워크가 있다. 이번 기사에서 소개하는 파이썬 툴킷 6개는 모두 기존 파이썬 애플리케이션에서 여러 코어, 여러 머신으로 작업을 분산시킬 수 있다. 레이(Ray) 미국 캘리포니아 버클리 대학 연구팀이 개발한 레이는 다수의 분산 머신러닝 라이브러리를 보강한다. 레이의 원래 사용사례는 머신러닝이지만 그 외의 용도로도 사용할 수 있다. 레이를 사용하면 많은 파이썬 작업을 분할해 여러 시스템으로 분산할 수 있다. 레이의 구문은 최소화하기 때문에 기존 앱의 많은 부분을 재작업하지 않고도 병렬화가 가능하다. @ray.remote 데코레이터는 해당 함수를 레이 클러스터의 가용 노드 전반으로 분산할 수 있으며, 사용할 CPU 또는 GPU의 수를 나타내는 매개변수를 옵션으로 지정할 수 있다. 각 분산 함수의...

병렬처리 파이썬 라이브러리 Ray Dask Dispy Pandaral·lel Ipyparallel Joblib

2020.05.21

파이썬(Python)은 편의성과 프로그래머 친화성으로 유명하지만 속도 측면에서는 크게 내세울 것이 없는 프로그래밍 언어다. 파이썬의 속도 제약은 기본 구현인 c파이썬(cPython)이 싱글 스레드라는 점에도 일부 기인한다. 즉, c파이썬은 한번에 2개 이상의 하드웨어 스레드를 사용하지 않는다.   파이썬에 내장된 threading 모듈을 사용해 속도를 높일 수 있지만, threading은 병렬성(parallelism)이 아니라 동시성(concurrency)을 제공할 뿐이다. CPU에 종속되지 않는 여러 작업을 실행하는 용도로는 효과적이지만 각각 전체 CPU를 요구하는 여러 작업의 속도를 높이는 데는 아무 효과가 없다. 그러나 파이썬에도 여러 CPU에 걸쳐 파이썬 워크로드를 실행하기 위한 본연의 방법이 포함돼 있다. multiprocessing 모듈은 각각 별도의 코어에서 여러 개의 파이썬 인터프리터를 구동하며 여러 코어에 걸쳐 작업을 분할하기 위한 프리미티브를 제공한다. 그러나 multiprocessing으로도 충분하지 않을 때가 있다. 여러 코어뿐만 아니라 여러 머신으로 작업을 분산해야 하는 경우도 있는데, 이런 경우 유용한 6개 파이썬 라이브러리와 프레임워크가 있다. 이번 기사에서 소개하는 파이썬 툴킷 6개는 모두 기존 파이썬 애플리케이션에서 여러 코어, 여러 머신으로 작업을 분산시킬 수 있다. 레이(Ray) 미국 캘리포니아 버클리 대학 연구팀이 개발한 레이는 다수의 분산 머신러닝 라이브러리를 보강한다. 레이의 원래 사용사례는 머신러닝이지만 그 외의 용도로도 사용할 수 있다. 레이를 사용하면 많은 파이썬 작업을 분할해 여러 시스템으로 분산할 수 있다. 레이의 구문은 최소화하기 때문에 기존 앱의 많은 부분을 재작업하지 않고도 병렬화가 가능하다. @ray.remote 데코레이터는 해당 함수를 레이 클러스터의 가용 노드 전반으로 분산할 수 있으며, 사용할 CPU 또는 GPU의 수를 나타내는 매개변수를 옵션으로 지정할 수 있다. 각 분산 함수의...

2020.05.21

"AI로 파이썬 코드 완성"··· 카이트, 자바스크립트 지원

머신러닝 모델을 기반으로 코드 자동 완성 기능을 제공하는 카이트(Kite)가 자바스크립트를 학습한 머신러닝 모델을 애드온으로 추가했다. 주요 코드 편집기 및 IDE와 통합할 수 있다. 카이트 개발팀이 5월 12일 AI 기반 파이썬용 코드 자동 완성 툴, 카이트(Kite)에 자바스크립트 지원을 추가했다고 발표했다. 이밖에 고급 기능을 추가한 카이트 유료 버전도 함께 선보였다.   카이트는 파이썬과 자바스크립트 코드 각각으로 구축한 머신러닝 모델을 사용해 사용자가 입력하려는 코드를 예측하여 자동 완성 기능을 제공한다. 이는 정적 코드뿐만 아니라 코드로부터 얻은 추상구문트리(Abstract Syntax Tree)를 학습한다. 또한 사용자와 다른 개발자가 유사한 상황에서 작성했던 코드를 기반으로 맥락을 파악해 예측을 제안한다. 카이트는 초창기 파이썬만 지원했지만 카이트 개발팀은 지원 언어를 확대할 계획이라고 밝힌 바 있다. 그리고 자바스크립트가 바로 그 첫 번째 언어다. 이번에 추가된 카이트 머신러닝 모델은 자바스크립트 기반 프레임워크인 리액트(React), 뷰(Vue), 앵귤러(Angular), 노드.js(Node.js)를 포함해 주로 사용되는 자바스크립트 패키지에서 수집된 동작 데이터세트를 기반으로 한다.  비주얼 스튜디오 코드(Visual Studio Code) 및 아톰(Atom)을 포함한 대부분의 주요 개발 환경과 통합해 사용할 수 있다. 해당 툴은 로컬로 설치되며 클라우드 연결이 필요 없다. 모든 예측 기능이 자체 시스템에서 이뤄지고 제공된다.  카이트는 기본적으로 개인적 용도는 물론 상업적 용도에도 무료로 사용할 수 있다. 새로 출시된 유료 버전인 카이트 프로(Kite Pro)는 몇 가지 고급 기능이 추가됐다. 주요 추가 기능에는 데이터 딕셔너리(data in dictionaries), 앨리어스 가져오기(import aliases), 코드 스니펫(code snippets)을 포함한 딥러닝 기반으로 생성된 한 줄(sin...

자바스크립트 자동코드완성 비주얼스튜디오코드 리액트 앵귤러 딥러닝 머신러닝 파이썬 아톰 인공지능 AI 코드 카이트

2020.05.14

머신러닝 모델을 기반으로 코드 자동 완성 기능을 제공하는 카이트(Kite)가 자바스크립트를 학습한 머신러닝 모델을 애드온으로 추가했다. 주요 코드 편집기 및 IDE와 통합할 수 있다. 카이트 개발팀이 5월 12일 AI 기반 파이썬용 코드 자동 완성 툴, 카이트(Kite)에 자바스크립트 지원을 추가했다고 발표했다. 이밖에 고급 기능을 추가한 카이트 유료 버전도 함께 선보였다.   카이트는 파이썬과 자바스크립트 코드 각각으로 구축한 머신러닝 모델을 사용해 사용자가 입력하려는 코드를 예측하여 자동 완성 기능을 제공한다. 이는 정적 코드뿐만 아니라 코드로부터 얻은 추상구문트리(Abstract Syntax Tree)를 학습한다. 또한 사용자와 다른 개발자가 유사한 상황에서 작성했던 코드를 기반으로 맥락을 파악해 예측을 제안한다. 카이트는 초창기 파이썬만 지원했지만 카이트 개발팀은 지원 언어를 확대할 계획이라고 밝힌 바 있다. 그리고 자바스크립트가 바로 그 첫 번째 언어다. 이번에 추가된 카이트 머신러닝 모델은 자바스크립트 기반 프레임워크인 리액트(React), 뷰(Vue), 앵귤러(Angular), 노드.js(Node.js)를 포함해 주로 사용되는 자바스크립트 패키지에서 수집된 동작 데이터세트를 기반으로 한다.  비주얼 스튜디오 코드(Visual Studio Code) 및 아톰(Atom)을 포함한 대부분의 주요 개발 환경과 통합해 사용할 수 있다. 해당 툴은 로컬로 설치되며 클라우드 연결이 필요 없다. 모든 예측 기능이 자체 시스템에서 이뤄지고 제공된다.  카이트는 기본적으로 개인적 용도는 물론 상업적 용도에도 무료로 사용할 수 있다. 새로 출시된 유료 버전인 카이트 프로(Kite Pro)는 몇 가지 고급 기능이 추가됐다. 주요 추가 기능에는 데이터 딕셔너리(data in dictionaries), 앨리어스 가져오기(import aliases), 코드 스니펫(code snippets)을 포함한 딥러닝 기반으로 생성된 한 줄(sin...

2020.05.14

심리·통계·파이썬··· '융합' 역량 갖춘 9년차 머신러닝 전문가 이야기

머신러닝은 현재 IT 업계에서 가장 수요가 많은 기술이다. 개인화 소프트웨어 및 서비스 제공업체 세일쓰루(Sailthru)의 수석 머신러닝 엔지니어 카일 햄린과 머신러닝 경력에 관해 이야기를 나눴다. 인공지능의 하위개념이자 패턴과 추론을 통해 시스템이 특정 작업을 수행하도록 하는 통계학적 모델 및 알고리즘인 머신러닝은 오늘날 기술 구직 시장에서 가장 수요가 많은 기술에 속한다.  머신러닝 엔지니어라는 직업 전망이 밝은 것은 어쩌면 너무나도 당연한 일이다. 온라인 교육 플랫폼 스터디닷컴(Study.com)에 따르면, 머신러닝 엔지니어는 습득한 지식을 응용해 시스템과 기계를 개발할 수 있는 고급 전문가다. 머신러닝 엔지니어의 주요 업무는 기계가 특정 작업을 수행하도록 프로그래밍하는 차원을 넘어서 구체적인 지시를 내리지 않아도 알아서 행동하게 하는 프로그램을 만드는 것이라고 스터디닷컴은 설명했다.  예를 들면 자율주행차나 특정 개인의 관심사를 파악할 수 있는 프로그램을 개발하는 것 등이 머신러닝 엔지니어의 업무에 포함된다. 스터디닷컴은 “맞춤형 뉴스 피드부터 맞춤형 웹 검색에 이르기까지 머신러닝 엔지니어는 수많은 개인들의 일상생활과 기술 사용 방식에 일조하고 있다”라고 말했다.    머신러닝 엔지니어가 갖춰야 할 직무 역량에는 컴퓨터 프로그래밍(C++ 또는 자바와 같은 특정 언어에 대한 지식 포함), 수학, 데이터 애널리틱스, 데이터 마이닝, 클라우드 애플리케이션 지식, 원활한 의사소통 능력 등이 있다. 링크드인 선정 2019년 가장 유망한 직업 순위(Most Promising Jobs listing for 2019)에 따르면 머신러닝 엔지니어는 15위를 차지했다. 해당 순위는 링크드인 회원 정보와 채용 및 연봉 데이터를 바탕으로 연봉, 구인 건수, 전년 대비 구인 건수 증가율 등을 분석한 결과다.  이밖에 구인구직 사이트 인디드(Indeed)에 따르면, 2018년과 2019년 사이 직무 설명에 ‘A...

빅데이터 데이터엔지니어링 데이터애널리틱스 데이터레이크 데이터과학 딥러닝 머신러닝 파이썬 자동화 인공지능 사이버보안 데이터웨어하우스 머신러닝엔지니어

2020.04.29

머신러닝은 현재 IT 업계에서 가장 수요가 많은 기술이다. 개인화 소프트웨어 및 서비스 제공업체 세일쓰루(Sailthru)의 수석 머신러닝 엔지니어 카일 햄린과 머신러닝 경력에 관해 이야기를 나눴다. 인공지능의 하위개념이자 패턴과 추론을 통해 시스템이 특정 작업을 수행하도록 하는 통계학적 모델 및 알고리즘인 머신러닝은 오늘날 기술 구직 시장에서 가장 수요가 많은 기술에 속한다.  머신러닝 엔지니어라는 직업 전망이 밝은 것은 어쩌면 너무나도 당연한 일이다. 온라인 교육 플랫폼 스터디닷컴(Study.com)에 따르면, 머신러닝 엔지니어는 습득한 지식을 응용해 시스템과 기계를 개발할 수 있는 고급 전문가다. 머신러닝 엔지니어의 주요 업무는 기계가 특정 작업을 수행하도록 프로그래밍하는 차원을 넘어서 구체적인 지시를 내리지 않아도 알아서 행동하게 하는 프로그램을 만드는 것이라고 스터디닷컴은 설명했다.  예를 들면 자율주행차나 특정 개인의 관심사를 파악할 수 있는 프로그램을 개발하는 것 등이 머신러닝 엔지니어의 업무에 포함된다. 스터디닷컴은 “맞춤형 뉴스 피드부터 맞춤형 웹 검색에 이르기까지 머신러닝 엔지니어는 수많은 개인들의 일상생활과 기술 사용 방식에 일조하고 있다”라고 말했다.    머신러닝 엔지니어가 갖춰야 할 직무 역량에는 컴퓨터 프로그래밍(C++ 또는 자바와 같은 특정 언어에 대한 지식 포함), 수학, 데이터 애널리틱스, 데이터 마이닝, 클라우드 애플리케이션 지식, 원활한 의사소통 능력 등이 있다. 링크드인 선정 2019년 가장 유망한 직업 순위(Most Promising Jobs listing for 2019)에 따르면 머신러닝 엔지니어는 15위를 차지했다. 해당 순위는 링크드인 회원 정보와 채용 및 연봉 데이터를 바탕으로 연봉, 구인 건수, 전년 대비 구인 건수 증가율 등을 분석한 결과다.  이밖에 구인구직 사이트 인디드(Indeed)에 따르면, 2018년과 2019년 사이 직무 설명에 ‘A...

2020.04.29

“구글 고(Go) 언어 사용처, 여전히 기술 회사에 치중”

고 디벨로퍼 2019 서베이(Go Developer 2019 Survey)에 따르면 고 언어 사용자의 대부분이 기술 회사에서 일하고 있으며, 고 언어를 계속 사용할 의향을 가지고 있었다. 구글이 개발한 프로그래밍 언어 고(Go), 즉 고랭(Golang)이 금융, 미디어 같은 다른 산업 분야에서도 사용되긴 하지만 여전히 기술 산업에서 주로 사용되는 것으로 나타났다.    고 디벨로퍼 2019 서베이가 4월 20일 공개됐다. 응답자의 43%가 기술 분야에서 일하고 있었으며, 이어서 금융 서비스(12%), 미디어/게임(9%), 소매/소비재(7%) 순이었다.  보고서에 의하면 응답자의 86%가 소속팀에서 고 언어를 잘 사용하고 있으며, 89%는 다음 프로젝트에서도 고 언어를 사용할 것이라고 답했다. 59%는 고 언어가 자사의 성공에 중요한 역할을 하고 있다고 말했다.  이밖에 다른 설문조사 결과는 다음과 같다.  • 고 언어가 주로 사용되는 분야는 웹 개발(66%), 데이터베이스(45%), 네트워크 프로그래밍(42%)이다.  • 고 언어는 API/RPC 서비스를 구축(71%)하거나 CLI 프로그램을 개발(62%)하는 데 주로 사용된다.  • 고 언어 사용을 더 확대하지 않는 이유를 물어본 결과, 응답자의 56%가 다른 언어를 사용 중이기 때문이라고 말했다. 37%는 소속팀이 다른 언어를 선호한다고 밝혔다. 25%는 고 언어에 필요한 기능이 없기 때문이라고 답했는데, 이 중 79%가 누락된 기능으로 제네릭(Generic)을 꼽았다.  • 설문조사 응답자들이 가장 선호하는 언어는 고, 파이썬, 러스트, 자바, C# 순으로 나타났다.   • 주요 개발 플랫폼을 질문한 결과, 리눅스에서 고 언어로 개발한다고 말한 응답자는 31%였으며, 맥OS은 26%, 윈도우는 9%인 것으로 조사됐다.  • 설문조사 결과에 의하면 3대 글로벌 클라우드 업체(아마존 웹 서비스, 구글 클...

구글 구글클라우드플랫폼 러스트 고랭 API서비스 CLI프로그램 RPC서비스 고언어 네트워크프로그래밍 쿠버네티스 마이크로소프트애저 자바 데이터베이스 AWS 윈도우 맥OS 파이썬 C# 리눅스 웹개발

2020.04.24

고 디벨로퍼 2019 서베이(Go Developer 2019 Survey)에 따르면 고 언어 사용자의 대부분이 기술 회사에서 일하고 있으며, 고 언어를 계속 사용할 의향을 가지고 있었다. 구글이 개발한 프로그래밍 언어 고(Go), 즉 고랭(Golang)이 금융, 미디어 같은 다른 산업 분야에서도 사용되긴 하지만 여전히 기술 산업에서 주로 사용되는 것으로 나타났다.    고 디벨로퍼 2019 서베이가 4월 20일 공개됐다. 응답자의 43%가 기술 분야에서 일하고 있었으며, 이어서 금융 서비스(12%), 미디어/게임(9%), 소매/소비재(7%) 순이었다.  보고서에 의하면 응답자의 86%가 소속팀에서 고 언어를 잘 사용하고 있으며, 89%는 다음 프로젝트에서도 고 언어를 사용할 것이라고 답했다. 59%는 고 언어가 자사의 성공에 중요한 역할을 하고 있다고 말했다.  이밖에 다른 설문조사 결과는 다음과 같다.  • 고 언어가 주로 사용되는 분야는 웹 개발(66%), 데이터베이스(45%), 네트워크 프로그래밍(42%)이다.  • 고 언어는 API/RPC 서비스를 구축(71%)하거나 CLI 프로그램을 개발(62%)하는 데 주로 사용된다.  • 고 언어 사용을 더 확대하지 않는 이유를 물어본 결과, 응답자의 56%가 다른 언어를 사용 중이기 때문이라고 말했다. 37%는 소속팀이 다른 언어를 선호한다고 밝혔다. 25%는 고 언어에 필요한 기능이 없기 때문이라고 답했는데, 이 중 79%가 누락된 기능으로 제네릭(Generic)을 꼽았다.  • 설문조사 응답자들이 가장 선호하는 언어는 고, 파이썬, 러스트, 자바, C# 순으로 나타났다.   • 주요 개발 플랫폼을 질문한 결과, 리눅스에서 고 언어로 개발한다고 말한 응답자는 31%였으며, 맥OS은 26%, 윈도우는 9%인 것으로 조사됐다.  • 설문조사 결과에 의하면 3대 글로벌 클라우드 업체(아마존 웹 서비스, 구글 클...

2020.04.24

사회적 거리두기 동안 무료 온라인 기술 교육으로 실력 '업'··· 사이트 10선

사회적 거리두기 중이거나 심지어 자가 격리 중일 때도 기술력을 향상할 수 있는 길은 있다. 여기 10개의 무료 온라인 기술 교육 과정은 코비드-19 위기 동안 IT종사자가 자신의 기술력을 높이는 데 도움이 될 것이다.   코비드-19가 고용 환경을 흔들고 있다. 비필수 기술 근로자 대다수가 재택근무 중이고 다양한 산업 분야의 많은 근로자가 실업 상태에 있다. 그러나 전 세계에 격리 시설에서는 최신 기술을 익힐 기회를 제공한다. 집에서 자가 격리 기간을 보내는 방법을 찾고 있거나 코비드-19 이후 이직을 위해 이력서를 준비하고자 하는 경우 기술력과 지식을 넓히기 위해 굳이 비용을 지불하지 않아도 된다. 무료 온라인 자격증, 교육 과정을 제공하는 웹사이트와 대학이 많이 있으며, 이를 통해 시장에서 인기 있는 기술을 익힐 수 있다. 다음은 자가 격리 중일 때 배울 수 있는 무료 기술 과정을 제공하는 10개의 온라인 교육 과정이다.  코드아카데미 코드아카데미(Codeacademy)는 기본 과정과 모바일의 경우 제한된 과정을 무료로 제공한다. 초보자든 숙련된 기술 전문가든 상관없이 웹 개발, 프로그래밍, 데이터 과학, 디자인, 게임 개발 같은 주제와 파이썬, 자바스크립트, SQL, C#, 스위프트(Swift) 같은 특정 언어 등 모든 기술 수준의 과정을 배울 수 있다. 이는 이력서에 넣을 만한 프로그래밍 언어를 코딩하거나 작성하는 법을 배우는 완벽한 방법이다. 이밖에 데이터 분석 또는 파이썬으로 챗봇 구축, 페이저(Phaser)로 비디오 게임 만들기, 데이터 시각화, 웹사이트 구축 등 특정 기술에 중점을 둔 과정 중에서 선택할 수도 있다. 코세라 코세라(Coursera)가 완전 무료는 아니지만 사이트에서 1,400개가 넘는 무료 과정을 제공한다. 코비드-19 전염병에 대응하여 코세라는 여기에 100개의 무료 과정을 추가했다. 코세라 과정에서 다루는 주제와 도구에는 파이썬, 머신러닝, 데이터 과학, 클라우드 컴퓨팅, 인공지능, 프로그래밍, 웹...

CIO 코로나바이러스 COVID-19 사회적 거리두기 코비드-19 EdX.하버드 온라인 학습 리다닷컴 링크드인 학습 마이크로소프트 런 자가 격리 코로나19 MIT 오픈코스웨어 빅데이터 인공지능 데이터 시각화 파이썬 챗봇 유다시티 코세라 플러럴사이트 유데미 코드아카데미

2020.04.20

사회적 거리두기 중이거나 심지어 자가 격리 중일 때도 기술력을 향상할 수 있는 길은 있다. 여기 10개의 무료 온라인 기술 교육 과정은 코비드-19 위기 동안 IT종사자가 자신의 기술력을 높이는 데 도움이 될 것이다.   코비드-19가 고용 환경을 흔들고 있다. 비필수 기술 근로자 대다수가 재택근무 중이고 다양한 산업 분야의 많은 근로자가 실업 상태에 있다. 그러나 전 세계에 격리 시설에서는 최신 기술을 익힐 기회를 제공한다. 집에서 자가 격리 기간을 보내는 방법을 찾고 있거나 코비드-19 이후 이직을 위해 이력서를 준비하고자 하는 경우 기술력과 지식을 넓히기 위해 굳이 비용을 지불하지 않아도 된다. 무료 온라인 자격증, 교육 과정을 제공하는 웹사이트와 대학이 많이 있으며, 이를 통해 시장에서 인기 있는 기술을 익힐 수 있다. 다음은 자가 격리 중일 때 배울 수 있는 무료 기술 과정을 제공하는 10개의 온라인 교육 과정이다.  코드아카데미 코드아카데미(Codeacademy)는 기본 과정과 모바일의 경우 제한된 과정을 무료로 제공한다. 초보자든 숙련된 기술 전문가든 상관없이 웹 개발, 프로그래밍, 데이터 과학, 디자인, 게임 개발 같은 주제와 파이썬, 자바스크립트, SQL, C#, 스위프트(Swift) 같은 특정 언어 등 모든 기술 수준의 과정을 배울 수 있다. 이는 이력서에 넣을 만한 프로그래밍 언어를 코딩하거나 작성하는 법을 배우는 완벽한 방법이다. 이밖에 데이터 분석 또는 파이썬으로 챗봇 구축, 페이저(Phaser)로 비디오 게임 만들기, 데이터 시각화, 웹사이트 구축 등 특정 기술에 중점을 둔 과정 중에서 선택할 수도 있다. 코세라 코세라(Coursera)가 완전 무료는 아니지만 사이트에서 1,400개가 넘는 무료 과정을 제공한다. 코비드-19 전염병에 대응하여 코세라는 여기에 100개의 무료 과정을 추가했다. 코세라 과정에서 다루는 주제와 도구에는 파이썬, 머신러닝, 데이터 과학, 클라우드 컴퓨팅, 인공지능, 프로그래밍, 웹...

2020.04.20

김진철의 How-to-Big Data | 빅데이터의 미래 (5)

사이버 물리 시스템의 자원 제어 프로그래밍 모델과 프로그램 환경 클라우드 컴퓨팅이 사이버 물리 시스템의 자원 관리를 위한 운영체제의 역할을 하려면, 이런 운영체제의 자원 관리 기능을 활용할 수 있도록 서비스를 요청하고 제어하는 프로그래밍 인터페이스가 있어야 할 것이다. 지난 서른여덟 번째 글에서 이런 프로그래밍 인터페이스가 오픈스택과 같은 오픈소스 클라우드 컴퓨팅의 발전과, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체에 의해 산업 표준으로 정의되어 가고, 다양한 클라우드 서비스 제공자와 소프트웨어 간 호환성을 위한 상호운용성 문제가 중요해질 것으로 언급하였다. 클라우드 컴퓨팅의 특성상 네트워크를 통해 원격지에 있는 자원에 접근할 수 있도록 하는 RESTful API와 같은 원격 프로그래밍 인터페이스로 제공될 수밖에 없다. 오픈소스 클라우드 컴퓨팅 소프트웨어인 오픈스택도 모든 API는 RESTful API로 정의되며, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체의 API도 RESTful API로 정의되어 제공된다.   오픈스택이나 아마존웹서비스의 “아웃포스트(Outposts)”, 마이크로소프트의 “애저스택(Azure Stack)”등을 통해 구축되는 사설 클라우드(private cloud)와 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 공용 클라우드(public cloud) 서비스에서 사용가능한 프로그래밍 인터페이스가 현재 클라우드 컴퓨팅의 프로그래밍 모델을 제공하고 있다. 오픈스택이 클라우드 컴퓨팅 분야에서 가장 크게 공헌한 것이 바로 이런 클라우드 컴퓨팅 프로그래밍 모델과 인터페이스에 대해 구체적인 산업계의 합의를 이룰 수 있는 기반이 되었다는 점이다. 오픈스택에서 정의한 프로그래밍 모델과 인터페이스가 실제 기술로서 구현되기 위해 클라우드 컴퓨팅 시스템 내부에서 어떤 방식으로 프로그램되어야 하는지 다양한 실험을 구체적으로 시도하고,...

CIO 스칼라 아마존웹서비스 김진철 러스트 애저스택 Ada Nebula 고 언어 분산컴퓨팅 아웃소프트 객체지향 파이썬 구글 자바 빅데이터 마이크로소프트 AWS 오픈스택 데이터 과학자 모질라 인공지능 네뷸라 에이다

2020.03.26

사이버 물리 시스템의 자원 제어 프로그래밍 모델과 프로그램 환경 클라우드 컴퓨팅이 사이버 물리 시스템의 자원 관리를 위한 운영체제의 역할을 하려면, 이런 운영체제의 자원 관리 기능을 활용할 수 있도록 서비스를 요청하고 제어하는 프로그래밍 인터페이스가 있어야 할 것이다. 지난 서른여덟 번째 글에서 이런 프로그래밍 인터페이스가 오픈스택과 같은 오픈소스 클라우드 컴퓨팅의 발전과, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체에 의해 산업 표준으로 정의되어 가고, 다양한 클라우드 서비스 제공자와 소프트웨어 간 호환성을 위한 상호운용성 문제가 중요해질 것으로 언급하였다. 클라우드 컴퓨팅의 특성상 네트워크를 통해 원격지에 있는 자원에 접근할 수 있도록 하는 RESTful API와 같은 원격 프로그래밍 인터페이스로 제공될 수밖에 없다. 오픈소스 클라우드 컴퓨팅 소프트웨어인 오픈스택도 모든 API는 RESTful API로 정의되며, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체의 API도 RESTful API로 정의되어 제공된다.   오픈스택이나 아마존웹서비스의 “아웃포스트(Outposts)”, 마이크로소프트의 “애저스택(Azure Stack)”등을 통해 구축되는 사설 클라우드(private cloud)와 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 공용 클라우드(public cloud) 서비스에서 사용가능한 프로그래밍 인터페이스가 현재 클라우드 컴퓨팅의 프로그래밍 모델을 제공하고 있다. 오픈스택이 클라우드 컴퓨팅 분야에서 가장 크게 공헌한 것이 바로 이런 클라우드 컴퓨팅 프로그래밍 모델과 인터페이스에 대해 구체적인 산업계의 합의를 이룰 수 있는 기반이 되었다는 점이다. 오픈스택에서 정의한 프로그래밍 모델과 인터페이스가 실제 기술로서 구현되기 위해 클라우드 컴퓨팅 시스템 내부에서 어떤 방식으로 프로그램되어야 하는지 다양한 실험을 구체적으로 시도하고,...

2020.03.26

딥코드, C와 C++에도 AI 기반 코드 리뷰 지원

딥코드가 자바, 자바스크립트, 파이썬에 이어 C와 C++ 코드를 추가 지원한다고 발표했다. 딥코드는 머신러닝을 기반으로 코드를 분석해 보안 취약점 및 버그를 찾아내는 클라우드 서비스다.    딥코드 자동화 툴은 수천 개의 오픈소스 프로젝트를 학습함으로써 코드가 저장된 호스팅 플랫폼 또는 로컬 리포지토리에 대한 피드백을 제공해 눈길을 끌었던 바 있다. 회사는 해당 툴이 단순히 텍스트가 아닌 실행 중인 소프트웨어라는 맥락적 차원에서 코드를 분석하기 때문에 기존 코드 분석 툴보다 정확하고 상세한 피드백을 제공할 수 있다고 밝혔다.  딥코드는 소프트웨어 보안 취약점 대부분이 C와 C++ 코드베이스에서 발견된다는 점에서 이번 추가 지원이 큰 효과를 보일 것으로 기대했다. 설명에 따르면 C와 C++은 개발자 실수로 발생되는 문제를 거의 또는 아예 예방하지 못한다. 게다가 C와 C++ 최신 버전은 하위 호환성을 유지하는 데 중점을 둬 보안 취약점에 여전히 노출돼 있다.    회사에 따르면 딥코드의 지식기반은 C와 C++에서 드러나는 많은 문제뿐만 아니라 다른 언어들과 관련한 코딩 스타일 문제, 리소스 유출 문제, 메모리 할당 문제, 날짜 처리 문제, 개발 언어 버전 간 비호환성 문제 등도 아우른다.  한편 딥코드는 리눅스 커널 분석을 통해 C 코드베이스에서 많은 일반적인 문제들을 발견했다고 전했다. 이를테면 명령행 인자 혹은 환경 변수에서 전달된 확인되지 않은 매개 변수, 사용 후 해제 시 발견되는 취약점(Use After Free, UAF), 널 포인터(Null pointer) 검사 누락 등이다. 이밖에 안전하지 않은 임시 파일 생성 또는 특정 명령이 컴파일 과정에서 최적화돼 의도된 효과가 나타나지 않는 가능성 등 교묘한 문제들도 있다고 회사 측은 덧붙였다.  딥코드는 첫 출시 당시 자바, 자바스크립트, 타입스크립트, 파이썬을 지원했다. 회사에 따르면 C와 C++ 및 기타 언어에 대한 지원 계획...

보안 코드리뷰 리눅스커널분석 딥코드 C언어 보안취약점 머신러닝 C++ 파이썬 버그 자바스크립트 오픈소스 자바 코드분석

2020.03.20

딥코드가 자바, 자바스크립트, 파이썬에 이어 C와 C++ 코드를 추가 지원한다고 발표했다. 딥코드는 머신러닝을 기반으로 코드를 분석해 보안 취약점 및 버그를 찾아내는 클라우드 서비스다.    딥코드 자동화 툴은 수천 개의 오픈소스 프로젝트를 학습함으로써 코드가 저장된 호스팅 플랫폼 또는 로컬 리포지토리에 대한 피드백을 제공해 눈길을 끌었던 바 있다. 회사는 해당 툴이 단순히 텍스트가 아닌 실행 중인 소프트웨어라는 맥락적 차원에서 코드를 분석하기 때문에 기존 코드 분석 툴보다 정확하고 상세한 피드백을 제공할 수 있다고 밝혔다.  딥코드는 소프트웨어 보안 취약점 대부분이 C와 C++ 코드베이스에서 발견된다는 점에서 이번 추가 지원이 큰 효과를 보일 것으로 기대했다. 설명에 따르면 C와 C++은 개발자 실수로 발생되는 문제를 거의 또는 아예 예방하지 못한다. 게다가 C와 C++ 최신 버전은 하위 호환성을 유지하는 데 중점을 둬 보안 취약점에 여전히 노출돼 있다.    회사에 따르면 딥코드의 지식기반은 C와 C++에서 드러나는 많은 문제뿐만 아니라 다른 언어들과 관련한 코딩 스타일 문제, 리소스 유출 문제, 메모리 할당 문제, 날짜 처리 문제, 개발 언어 버전 간 비호환성 문제 등도 아우른다.  한편 딥코드는 리눅스 커널 분석을 통해 C 코드베이스에서 많은 일반적인 문제들을 발견했다고 전했다. 이를테면 명령행 인자 혹은 환경 변수에서 전달된 확인되지 않은 매개 변수, 사용 후 해제 시 발견되는 취약점(Use After Free, UAF), 널 포인터(Null pointer) 검사 누락 등이다. 이밖에 안전하지 않은 임시 파일 생성 또는 특정 명령이 컴파일 과정에서 최적화돼 의도된 효과가 나타나지 않는 가능성 등 교묘한 문제들도 있다고 회사 측은 덧붙였다.  딥코드는 첫 출시 당시 자바, 자바스크립트, 타입스크립트, 파이썬을 지원했다. 회사에 따르면 C와 C++ 및 기타 언어에 대한 지원 계획...

2020.03.20

블로그 | 파이토치로 딥러닝해야 하는 5가지 이유

파이토치가 최근 1.3 및 1.4 릴리스를 통해 풍부한 성능 개선과 모바일 플랫폼용 개발자 친화적인 지원을 제공하면서 강력하게 부상하고 있다. 과연 MX넷, 체이너(Chainer), 텐서플로우(TensorFlow) 등의 다른 프레임워크 대신 파이토치를 선택할 만한 이유가 있을까? 파이토치를 사용해야 할 5가지 이유를 살펴본다.   먼저, 분노의 트윗과 이메일을 보내려 준비하고 있는 텐서플로우 사용자들에게 할 말이 있다. 물론 파이토치가 아닌 텐서플로우를 선택할 이유는 많고, 특히 모바일 또는 웹 플랫폼을 대상으로 작업할 경우에는 텐서플로우가 확실히 유리하다. 이 기사의 주제는 “텐서플로우가 열등하고 파이토치가 뛰어나다”는 것이 아니라, 필자가 파이토치를 가장 먼저 선택하는 이유를 정리하는 것이다. 텐서플로우가 그 나름대로 훌륭하다는 점은 필자도 인정하므로, 너무 분노하지 말기를 바란다.   파이토치는 파이썬이다 사람들이 파이토치를 선택하는 주된 이유 중 하나는 코드를 이해하기가 쉽기 때문이다. 파이토치 프레임워크는 파이썬과 씨름하는 것이 아니라, 함께 작동하도록 설계, 제작되었기 때문이다. 모델과 계층뿐 아니라 다른 모든 것, 옵티마이저, 데이터 로더, 손실 함수, 변환 등도 다름아닌 파이썬 클래스다.   파이토치는 전통적인 텐서플로우의 정적 실행 그래프가 아닌 즉시 실행 모드로 작동하므로(텐서플로우 2.0은 즉시 실행을 제공하지만 매끄럽지 않은 부분이 있음) 맞춤형 파이토치 클래스를 추론하기가 매우 쉽고 텐서보드(TensorBoard) 또는 print() 문에 이르기까지의 표준 파이썬 기법으로 디버깅하고 스택 트레이스 샘플에서 플레임(flame) 그래프를 생성할 수 있다. 덕분에 판다스(Pandas), 사이킷-런(Scikit-learn)과 같은 다른 데이터 과학 프레임워크에서 딥 러닝으로 넘어온 사람들에게도 상당히 친숙하게 느껴진다.   초기 릴리스에서 버전 1.3에 이르기까지 중대한 변경이 하나뿐인(변수에서 텐서로의 변화...

파이썬 파이토치

2020.02.27

파이토치가 최근 1.3 및 1.4 릴리스를 통해 풍부한 성능 개선과 모바일 플랫폼용 개발자 친화적인 지원을 제공하면서 강력하게 부상하고 있다. 과연 MX넷, 체이너(Chainer), 텐서플로우(TensorFlow) 등의 다른 프레임워크 대신 파이토치를 선택할 만한 이유가 있을까? 파이토치를 사용해야 할 5가지 이유를 살펴본다.   먼저, 분노의 트윗과 이메일을 보내려 준비하고 있는 텐서플로우 사용자들에게 할 말이 있다. 물론 파이토치가 아닌 텐서플로우를 선택할 이유는 많고, 특히 모바일 또는 웹 플랫폼을 대상으로 작업할 경우에는 텐서플로우가 확실히 유리하다. 이 기사의 주제는 “텐서플로우가 열등하고 파이토치가 뛰어나다”는 것이 아니라, 필자가 파이토치를 가장 먼저 선택하는 이유를 정리하는 것이다. 텐서플로우가 그 나름대로 훌륭하다는 점은 필자도 인정하므로, 너무 분노하지 말기를 바란다.   파이토치는 파이썬이다 사람들이 파이토치를 선택하는 주된 이유 중 하나는 코드를 이해하기가 쉽기 때문이다. 파이토치 프레임워크는 파이썬과 씨름하는 것이 아니라, 함께 작동하도록 설계, 제작되었기 때문이다. 모델과 계층뿐 아니라 다른 모든 것, 옵티마이저, 데이터 로더, 손실 함수, 변환 등도 다름아닌 파이썬 클래스다.   파이토치는 전통적인 텐서플로우의 정적 실행 그래프가 아닌 즉시 실행 모드로 작동하므로(텐서플로우 2.0은 즉시 실행을 제공하지만 매끄럽지 않은 부분이 있음) 맞춤형 파이토치 클래스를 추론하기가 매우 쉽고 텐서보드(TensorBoard) 또는 print() 문에 이르기까지의 표준 파이썬 기법으로 디버깅하고 스택 트레이스 샘플에서 플레임(flame) 그래프를 생성할 수 있다. 덕분에 판다스(Pandas), 사이킷-런(Scikit-learn)과 같은 다른 데이터 과학 프레임워크에서 딥 러닝으로 넘어온 사람들에게도 상당히 친숙하게 느껴진다.   초기 릴리스에서 버전 1.3에 이르기까지 중대한 변경이 하나뿐인(변수에서 텐서로의 변화...

2020.02.27

"고립돼 작업하는 문제 해결"··· 오라클, 데이터 과학 플랫폼 공개

오라클이 데이터 과학 플랫폼 영역에 진출했다. 데이터베이스 기업 오라클은 그간 개별 데이터 과학자에 중점을 두었던 기존 솔루션과 달리 협업에 특화한 클라우드 기반 데이터 과학 플랫폼을 12일 공개했다.  오라클 클라우드 데이터 사이언스 플랫폼(Oracle Cloud Data Science Platform, OCDSP)은 오라클이 2018년 인수한 데이터사이언스닷컴(DataScience.com)을 기반으로 구축됐다. 이 플랫폼은 팀 단위의 협업을 효과적으로 수행하는 데 필요한 기능을 지원하는 것이 특징이다.    이 플랫폼의 핵심 솔루션은 오라클 클라우드 인프라스트럭처 데이터 사이언스(Oracle Cloud Infrastructure Data Science, OCIDS)다. 파이썬, 텐서플로우, 케라스, 주피터 등 다양한 오픈소스 도구를 사용해 오라클 클라우드 상에서 머신러닝 모델을 설계, 학습, 관리할 수 있다.  오라클 데이터 및 AI서비스 제품 개발 부문 수석부사장 그렉 파블릭은 “네이티브 클라우드 서비스 중 기업 내 협력에 초점을 맞췄다는 점에서 동급 최초라고 할 수 있다. 데이터 과학자들의 협업 및 거버넌스를 위한 환경을 제공하는 데 특화된 솔루션이다”라고 밝혔다. 데이터 과학 프로젝트 간소화 ‘오라클 클라우드 인프라스트럭처 데이터 사이언스’는 데이터 과학 워크플로우 자동화를 특징으로 얼터릭스(Alteryx), KNIME 어낼리틱스 플랫폼(KNIME Analytics Platform), 라피드마이너(RapidMiner) 등의 다른 플랫폼들과 경쟁하고자 한다.   해당 솔루션은 AutoML 자동화 알고리즘 선택과 튜닝 기능을 제공한다. AutoML 자동화 알고리즘은 특정 사용례에 가장 적합한 알고리즘을 선택할 수 있도록 해준다. 튜닝을 통해서는 알고리즘 입력 값을 선택하거나, 모델을 미세조정할 수 있다고 파블릭은 설명했다. 방대한 양의 데이터세트로부터 예측형 특징을...

클라우드 데이터사이언스닷컴 케라스 주피터 텐서플로우 데이터과학자 데이터과학 머신러닝 파이썬 알고리즘 데이터베이스 빅데이터 오픈소스 오라클 인프라 협업 네이티브클라우드

2020.02.14

오라클이 데이터 과학 플랫폼 영역에 진출했다. 데이터베이스 기업 오라클은 그간 개별 데이터 과학자에 중점을 두었던 기존 솔루션과 달리 협업에 특화한 클라우드 기반 데이터 과학 플랫폼을 12일 공개했다.  오라클 클라우드 데이터 사이언스 플랫폼(Oracle Cloud Data Science Platform, OCDSP)은 오라클이 2018년 인수한 데이터사이언스닷컴(DataScience.com)을 기반으로 구축됐다. 이 플랫폼은 팀 단위의 협업을 효과적으로 수행하는 데 필요한 기능을 지원하는 것이 특징이다.    이 플랫폼의 핵심 솔루션은 오라클 클라우드 인프라스트럭처 데이터 사이언스(Oracle Cloud Infrastructure Data Science, OCIDS)다. 파이썬, 텐서플로우, 케라스, 주피터 등 다양한 오픈소스 도구를 사용해 오라클 클라우드 상에서 머신러닝 모델을 설계, 학습, 관리할 수 있다.  오라클 데이터 및 AI서비스 제품 개발 부문 수석부사장 그렉 파블릭은 “네이티브 클라우드 서비스 중 기업 내 협력에 초점을 맞췄다는 점에서 동급 최초라고 할 수 있다. 데이터 과학자들의 협업 및 거버넌스를 위한 환경을 제공하는 데 특화된 솔루션이다”라고 밝혔다. 데이터 과학 프로젝트 간소화 ‘오라클 클라우드 인프라스트럭처 데이터 사이언스’는 데이터 과학 워크플로우 자동화를 특징으로 얼터릭스(Alteryx), KNIME 어낼리틱스 플랫폼(KNIME Analytics Platform), 라피드마이너(RapidMiner) 등의 다른 플랫폼들과 경쟁하고자 한다.   해당 솔루션은 AutoML 자동화 알고리즘 선택과 튜닝 기능을 제공한다. AutoML 자동화 알고리즘은 특정 사용례에 가장 적합한 알고리즘을 선택할 수 있도록 해준다. 튜닝을 통해서는 알고리즘 입력 값을 선택하거나, 모델을 미세조정할 수 있다고 파블릭은 설명했다. 방대한 양의 데이터세트로부터 예측형 특징을...

2020.02.14

블로그ㅣ머신러닝에 관심있다면?··· 이제는 파이토치다 

아직 비주류긴 하지만, 쉽고 간단한 딥러닝 프레임워크 파이토치(PyTorch)가 데이터 과학 분야에서 부상하고 있다.  페이스북 인공지능 연구팀에서 만든 파이토치는 현재 가장 인기 많은 프로그래밍 언어인 파이썬을 기반으로 한다는 점에서 의미가 있다. 그러나 이것이 얼마나 의미가 있는지 거의 짐작하지 못했다. 아무리 많은 것들(훌륭한 공식 문서, 탄탄한 기술 기반 등)을 지원하더라도 오픈소스 프로젝트의 성공에는 운이 따라야 하기 때문이다.    그렇다면 파이토치는 운이 좋다. 아니, 축복받았다고 봐도 무방하다. 파이토치는 최근 빠르게 성장하고 있다. 애널리스트 토마스 딘스모어는 “2020년 말에는 파이토치 사용자가 텐서플로우 사용자를 추월할 것"이라고 전망했다. 사용자가 더 많아지고, 더 많이 채택되는 것은 무엇을 의미할까? 2015년 공개된 텐서플로우가 주류로 자리잡은 업계에서 그 경쟁자인 파이토치가 큰 발걸음을 내딛고 있다는 것이다.   폭발적인 성장 오픈허브(OpenHub)에 따르면, 텐서플로우와 파이토치는 지난 12개월간 막상막하의 사용자 수를 기록했다. 텐서플로우는 906명, 파이토치는 900명이었다. 2015년 공개된 텐서플로우와 비교하면, 파이토치의 점유율은 물론 사용자 수가 빠르게 증가하고 있음을 알 수 있다. 이는 데이터 과학자 제프 헤일의 분석 자료에서도 확인할 수 있다. 헤일은 채용 관련 데이터를 기반으로 데이터 과학자와 함께 어떤 키워드가 나타났는지 조사했는데, 지난해 파이토치는 2018년 대비 108.1% 증가했다.    물론 그의 분석 자료가 상대적 성장세를 표현했다는 점을 감안해야 한다. 텐서플로우의 사용자 커뮤니티 규모가 아직 파이토치보다 훨씬 크다. 파이토치가 거의 하룻밤 사이에 소수에서 무시무시한 다수로 변했지만 말이다. 하지만 모든 사항을 고려해볼 때 파이토치가 곧 텐서플로우와의 격차를 좁힐 수 있을 것으로 예측된다.  특히 파이토치에는 비교우...

오픈소스 딥러닝프레임워크 프로그래밍언어 파이토치 텐서플로 데이터과학 딥러닝 머신러닝 파이썬 기계학습 인공지능 페이스북 즉시실행

2020.01.31

아직 비주류긴 하지만, 쉽고 간단한 딥러닝 프레임워크 파이토치(PyTorch)가 데이터 과학 분야에서 부상하고 있다.  페이스북 인공지능 연구팀에서 만든 파이토치는 현재 가장 인기 많은 프로그래밍 언어인 파이썬을 기반으로 한다는 점에서 의미가 있다. 그러나 이것이 얼마나 의미가 있는지 거의 짐작하지 못했다. 아무리 많은 것들(훌륭한 공식 문서, 탄탄한 기술 기반 등)을 지원하더라도 오픈소스 프로젝트의 성공에는 운이 따라야 하기 때문이다.    그렇다면 파이토치는 운이 좋다. 아니, 축복받았다고 봐도 무방하다. 파이토치는 최근 빠르게 성장하고 있다. 애널리스트 토마스 딘스모어는 “2020년 말에는 파이토치 사용자가 텐서플로우 사용자를 추월할 것"이라고 전망했다. 사용자가 더 많아지고, 더 많이 채택되는 것은 무엇을 의미할까? 2015년 공개된 텐서플로우가 주류로 자리잡은 업계에서 그 경쟁자인 파이토치가 큰 발걸음을 내딛고 있다는 것이다.   폭발적인 성장 오픈허브(OpenHub)에 따르면, 텐서플로우와 파이토치는 지난 12개월간 막상막하의 사용자 수를 기록했다. 텐서플로우는 906명, 파이토치는 900명이었다. 2015년 공개된 텐서플로우와 비교하면, 파이토치의 점유율은 물론 사용자 수가 빠르게 증가하고 있음을 알 수 있다. 이는 데이터 과학자 제프 헤일의 분석 자료에서도 확인할 수 있다. 헤일은 채용 관련 데이터를 기반으로 데이터 과학자와 함께 어떤 키워드가 나타났는지 조사했는데, 지난해 파이토치는 2018년 대비 108.1% 증가했다.    물론 그의 분석 자료가 상대적 성장세를 표현했다는 점을 감안해야 한다. 텐서플로우의 사용자 커뮤니티 규모가 아직 파이토치보다 훨씬 크다. 파이토치가 거의 하룻밤 사이에 소수에서 무시무시한 다수로 변했지만 말이다. 하지만 모든 사항을 고려해볼 때 파이토치가 곧 텐서플로우와의 격차를 좁힐 수 있을 것으로 예측된다.  특히 파이토치에는 비교우...

2020.01.31

'놓쳐서는 안 될' 파이썬의 새로운 기능 6가지

어떤 프로그래밍 언어든 시간의 흐름에 따라 새로운 기능을 추가해야 한다. 그렇지 않으면 미래의 기술이 되지 못하고 과거의 기술에 머물게 된다. 현재 파이썬 3가 중요한 새로운 기능을 추가하며 발전하고 있는 것도 이 때문이다. 파이썬 3의 최신 기능 중 6가지를 소개한다. 주목할 만할 가치가 있는 것은 물론 현재 진행 중인 소프트웨어 프로젝트에도 사용할 만하다.     F-문자열(string) 파이썬 선(Zen)에 의하면, 일할 때 분명한 한 가지 방법이 있어야 한다. 그러나 파이썬에서 문자열 형식화는 여러 가지 방식을 사용할 수 있다. 대신 파이썬 3.6에서 공개된 ‘f-문자열’ 형식이 가장 빠르고 편리하다. 그런데도 이전 버전의 파이썬에서 문자열 형식을 배운 프로그래머 상당수가 이를 잘 쓰지 않는다. f-문자열을 사용하려면, 문자열에 포함할 변수를 중괄호로 묶고 문자열에 f 접두어를 붙여야 한다.   filename = "file.jpg" f_name_str = f"Your file is {filename}" 실행한 결과는 다음과 같다.   Your file is file.jpg 유효한 파이썬 표현식 대부분은 중괄호 안에 넣을 수 있다. 특히 괄호 안에 있는 표현식은 파이썬의 내부 표현식 형식 언어로 꾸밀 수 있고 여러 줄의 f-문자열에는 3중 따옴표를 사용할 수 있다. 이러한 장점 덕분에 f-문자열은 대부분의 사용 사례를 우아하게 다루기 때문에 문자열 형식화를 위한 가장 편리한 선택이다. F-문자열을 사용하지 않으려는 유일한 경우는 .format 명령을 통해 임의의 형식화 매개 변수를 전달해야 할 때이다. 또 다른 장점은 f-문자열이 format 명령이나 % 문자열 렌더링 연산자보다 렌더링이 훨씬 빠르다는 것이다. 대부분의 경우 f-문자열은 format보다 거의 2배 빠르고 %보다 약간 빠르며 Template 형식화 객체보다 10배 이상 빠르다. 파이썬 3.8은 f-문자열에 ‘내부 디버깅’을 새로 추가했...

개발자 파이썬

2020.01.28

어떤 프로그래밍 언어든 시간의 흐름에 따라 새로운 기능을 추가해야 한다. 그렇지 않으면 미래의 기술이 되지 못하고 과거의 기술에 머물게 된다. 현재 파이썬 3가 중요한 새로운 기능을 추가하며 발전하고 있는 것도 이 때문이다. 파이썬 3의 최신 기능 중 6가지를 소개한다. 주목할 만할 가치가 있는 것은 물론 현재 진행 중인 소프트웨어 프로젝트에도 사용할 만하다.     F-문자열(string) 파이썬 선(Zen)에 의하면, 일할 때 분명한 한 가지 방법이 있어야 한다. 그러나 파이썬에서 문자열 형식화는 여러 가지 방식을 사용할 수 있다. 대신 파이썬 3.6에서 공개된 ‘f-문자열’ 형식이 가장 빠르고 편리하다. 그런데도 이전 버전의 파이썬에서 문자열 형식을 배운 프로그래머 상당수가 이를 잘 쓰지 않는다. f-문자열을 사용하려면, 문자열에 포함할 변수를 중괄호로 묶고 문자열에 f 접두어를 붙여야 한다.   filename = "file.jpg" f_name_str = f"Your file is {filename}" 실행한 결과는 다음과 같다.   Your file is file.jpg 유효한 파이썬 표현식 대부분은 중괄호 안에 넣을 수 있다. 특히 괄호 안에 있는 표현식은 파이썬의 내부 표현식 형식 언어로 꾸밀 수 있고 여러 줄의 f-문자열에는 3중 따옴표를 사용할 수 있다. 이러한 장점 덕분에 f-문자열은 대부분의 사용 사례를 우아하게 다루기 때문에 문자열 형식화를 위한 가장 편리한 선택이다. F-문자열을 사용하지 않으려는 유일한 경우는 .format 명령을 통해 임의의 형식화 매개 변수를 전달해야 할 때이다. 또 다른 장점은 f-문자열이 format 명령이나 % 문자열 렌더링 연산자보다 렌더링이 훨씬 빠르다는 것이다. 대부분의 경우 f-문자열은 format보다 거의 2배 빠르고 %보다 약간 빠르며 Template 형식화 객체보다 10배 이상 빠르다. 파이썬 3.8은 f-문자열에 ‘내부 디버깅’을 새로 추가했...

2020.01.28

'SQL, 자바, 파이썬...' 2020년 美서 인기 있을 기술력 10선

완벽한 IT일자리를 찾아 안착하는 일은 쉬운 일이 아니다. 하지만 수요가 높은 분야에서 적절한 기술력을 갖추면 이직에 유리할 수 있다. 미국 취업전문 사이트 인디드(Indeed)는 2014년에서 2019년까지 구인 광고에 가장 많이 등장한 ‘기술력’을 분석해 2019년 기술 구인 시장을 주도했던 기술력이 무엇이며 2020년 어떤 기술력이 인기 있을지를 소개했다.    인디드의 경제학자 대니얼 컬버트슨은 “사람들이 새로운 일자리를 찾을 때 종종 원하는 일자리와 관련된 최첨단 기술을 설명하는 검색어를 사용한다”라며 "고용주 측에서는 이러한 능력을 갖춘 고도로 전문화된 기술 인력이 수요가 많다"라고 말했다.  인디드는 보고서에서 2014년 9월부터 2019년 9월까지 인디드닷컴(Indeed.com)에 게시된 구인공고를 쿼리하기 위해 500개가 넘는 기술 용어를 사용했다. 컬버트슨은 “2가지 이상의 직무를 요구하는 데 따른 영향을 조사하기 위해 기술력의 변화를 2가지 구성 요소로 쪼갰다. 하나는 직무 내 기술력 포화 상태(예 : 주어진 직무에 파이썬을 추가로 넣은 구인공기 게시물 수 증가)와 달라진 직무 혼합 상태(데이터 과학자같이 파이썬을 사용하는 직무에서 더 많은 기술력을 요구하는 구인공고 게시물 수)로 기술력의 변화를 나눴다. 모든 기술 직종의 데이터 과학자 비율이 현재의 1/3 정도였던 2014년 9월 수준에서 직무 혼합을 유지하는 것은 시간이 지남에 따라 '조정된' 파이썬 추세가 어떻게 진화했는지를 보여준다. 실제로 모든 기술력에 관해 이 과정을 반복했다”라고 설명했다.  이 연구에 따르면 2020년에는 파이썬, 데이터 과학 기술 및 일부 기존 기술을 포함한 특수 프로그래밍 언어가 IT전문가의 성공 티켓임이 밝혀졌다. 2020년에도 구인시장에서 인기 있을 10대 기술력과 이들이 지난 몇 년 동안 수요가 얼마나 달라졌는지를 알아보자.. 1. SQL 2019년 전체 구인공고 게시물에서 언급된 빈도 : 21.9% 20...

CIO C++ C# 리눅스 도커 아마존웹서비스 스크럼 인디드 2020년 인디드닷컴 파이썬 닷넷 C 자바 이직 마이크로소프트 AWS 애저 구직 자바스크립트 구인 SQL 기트

2019.12.09

완벽한 IT일자리를 찾아 안착하는 일은 쉬운 일이 아니다. 하지만 수요가 높은 분야에서 적절한 기술력을 갖추면 이직에 유리할 수 있다. 미국 취업전문 사이트 인디드(Indeed)는 2014년에서 2019년까지 구인 광고에 가장 많이 등장한 ‘기술력’을 분석해 2019년 기술 구인 시장을 주도했던 기술력이 무엇이며 2020년 어떤 기술력이 인기 있을지를 소개했다.    인디드의 경제학자 대니얼 컬버트슨은 “사람들이 새로운 일자리를 찾을 때 종종 원하는 일자리와 관련된 최첨단 기술을 설명하는 검색어를 사용한다”라며 "고용주 측에서는 이러한 능력을 갖춘 고도로 전문화된 기술 인력이 수요가 많다"라고 말했다.  인디드는 보고서에서 2014년 9월부터 2019년 9월까지 인디드닷컴(Indeed.com)에 게시된 구인공고를 쿼리하기 위해 500개가 넘는 기술 용어를 사용했다. 컬버트슨은 “2가지 이상의 직무를 요구하는 데 따른 영향을 조사하기 위해 기술력의 변화를 2가지 구성 요소로 쪼갰다. 하나는 직무 내 기술력 포화 상태(예 : 주어진 직무에 파이썬을 추가로 넣은 구인공기 게시물 수 증가)와 달라진 직무 혼합 상태(데이터 과학자같이 파이썬을 사용하는 직무에서 더 많은 기술력을 요구하는 구인공고 게시물 수)로 기술력의 변화를 나눴다. 모든 기술 직종의 데이터 과학자 비율이 현재의 1/3 정도였던 2014년 9월 수준에서 직무 혼합을 유지하는 것은 시간이 지남에 따라 '조정된' 파이썬 추세가 어떻게 진화했는지를 보여준다. 실제로 모든 기술력에 관해 이 과정을 반복했다”라고 설명했다.  이 연구에 따르면 2020년에는 파이썬, 데이터 과학 기술 및 일부 기존 기술을 포함한 특수 프로그래밍 언어가 IT전문가의 성공 티켓임이 밝혀졌다. 2020년에도 구인시장에서 인기 있을 10대 기술력과 이들이 지난 몇 년 동안 수요가 얼마나 달라졌는지를 알아보자.. 1. SQL 2019년 전체 구인공고 게시물에서 언급된 빈도 : 21.9% 20...

2019.12.09

수요는 SQL, 연봉은 R이 '최고'··· 英 인기 프로그래밍 언어

IT 잡 워치에 따르면 영국에서 가장 수요가 높은 프로그래밍 언어는 SQL, 자바스크립트, C#이다. 파이썬은 주로 자바, C#, C++의 뒤를 바짝 쫓으며 인기가 계속 상승하고 있다.  다음은 현재 영국 고용주가 가장 많이 찾는 14가지 프로그래밍 언어로 지난 3개월 동안 구인 공고에서 언급한 횟수를 기준으로 순서를 매겼다. 2019년 11월 기준으로 상위 5개 인기 프로그래밍 언어는 다음과 같다. • SQL • 자바스크립트 • C# • 자바 • 파이썬 1. SQL 지난 3개월간 구인공고에서 언급한 건수 : 12,244건 평균 연봉 : 50,000파운드(75,787,000원) SQL은 관계형 데이터베이스 관리 시스템을 관리하거나 처리하는 데 주로 쓰인다. 2. 자바스크립트 지난 3개월간 구인공고에서 언급한 건수 : 11,371건 평균 연봉 : 50,000파운드(75,787,000원) 웹 사이트에서 그래픽 효과를 위해 일반적으로 사용되는 자바스크립트는 널리 사용되는 객체 지향 언어다. 3. C# 지난 3개월간 구인공고에서 언급한 건수 : 10,936 평균 연봉 : 50,000파운드(75,787,000원) 웹 애플리케이션을 위한 마이크로소프트의 닷넷 프레임워크에서 일반적으로 사용되는 C#은 배우는 데 유용한 범용 언어다. 4. 자바 지난 3개월간 구인공고에서 언급한 건수 : 9,161건 평균 연봉 : 62,500파운드(94,733,750원) 또 다른 인기 있는 옵션은 자바다. 이 범용 프로그래밍 언어는 단일 용도의 애플리케이션을 만들거나 여러 서버에 설치할 수 있다. 5. 파이썬 지난 3개월간 구인공고에서 언급한 건수 : 7,542건 평균 연봉 : 62,500파운드(94,733,750원) 빠르게 인기가 상승하고 있는 파이썬은 데스크톱 GUI 애플리케이션을 만드는 데 주로 사용되는 오픈소스 프로그래밍 언어다. 6. PHP 지난 3개월간 구인공고에서 언급한 건수 : 2,776건 평균 연봉 : 45,000파운드(68,208,300원) ...

자바 배시셸 T-SQL 타입스크립트 R C# C++ 프로그래밍 언어 PHP 파이썬 파워셸 루비 SQL 구인 자바스크립트 번셸

2019.11.27

IT 잡 워치에 따르면 영국에서 가장 수요가 높은 프로그래밍 언어는 SQL, 자바스크립트, C#이다. 파이썬은 주로 자바, C#, C++의 뒤를 바짝 쫓으며 인기가 계속 상승하고 있다.  다음은 현재 영국 고용주가 가장 많이 찾는 14가지 프로그래밍 언어로 지난 3개월 동안 구인 공고에서 언급한 횟수를 기준으로 순서를 매겼다. 2019년 11월 기준으로 상위 5개 인기 프로그래밍 언어는 다음과 같다. • SQL • 자바스크립트 • C# • 자바 • 파이썬 1. SQL 지난 3개월간 구인공고에서 언급한 건수 : 12,244건 평균 연봉 : 50,000파운드(75,787,000원) SQL은 관계형 데이터베이스 관리 시스템을 관리하거나 처리하는 데 주로 쓰인다. 2. 자바스크립트 지난 3개월간 구인공고에서 언급한 건수 : 11,371건 평균 연봉 : 50,000파운드(75,787,000원) 웹 사이트에서 그래픽 효과를 위해 일반적으로 사용되는 자바스크립트는 널리 사용되는 객체 지향 언어다. 3. C# 지난 3개월간 구인공고에서 언급한 건수 : 10,936 평균 연봉 : 50,000파운드(75,787,000원) 웹 애플리케이션을 위한 마이크로소프트의 닷넷 프레임워크에서 일반적으로 사용되는 C#은 배우는 데 유용한 범용 언어다. 4. 자바 지난 3개월간 구인공고에서 언급한 건수 : 9,161건 평균 연봉 : 62,500파운드(94,733,750원) 또 다른 인기 있는 옵션은 자바다. 이 범용 프로그래밍 언어는 단일 용도의 애플리케이션을 만들거나 여러 서버에 설치할 수 있다. 5. 파이썬 지난 3개월간 구인공고에서 언급한 건수 : 7,542건 평균 연봉 : 62,500파운드(94,733,750원) 빠르게 인기가 상승하고 있는 파이썬은 데스크톱 GUI 애플리케이션을 만드는 데 주로 사용되는 오픈소스 프로그래밍 언어다. 6. PHP 지난 3개월간 구인공고에서 언급한 건수 : 2,776건 평균 연봉 : 45,000파운드(68,208,300원) ...

2019.11.27

최적의 AI 개발 언어 6가지와 새로 부상하는 2가지

인공 지능(Artificial Intelligence, AI)는 애플리케이션 개발자에게 무한한 가능성을 제공한다. 머신러닝 또는 딥 러닝을 활용해 훨씬 더 정확한 사용자 프로필, 개인 맞춤 설정, 추천을 만들거나 더 스마트한 검색, 음성 인터페이스 또는 지능형 비서를 구현하거나 그 외의 다양한 방법으로 앱을 개선할 수 있다. 심지어 예전에는 생각지도 못했던, 보고 듣고 상황에 반응하는 애플리케이션을 만들 수도 있다.   AI를 온전히 활용하기 위해서는 어떤 프로그래밍 언어를 배워야 할까? 물론 좋은 머신러닝, 딥 러닝 라이브러리가 풍부한 언어가 좋다. 또한 우수한 런타임 성능, 충실한 툴 지원, 대규모 프로그래머 커뮤니티, 건강한 지원 패키지 생태계도 필요하다. 요구사항이 많지만 괜찮은 선택지 역시 풍부하다.  AI 개발을 위한 6가지 최적의 프로그래밍 언어와, 이 목록에는 들지 못했지만 살펴볼 만한 2가지 언어를 소개한다. 이 가운데에는 인기 상승 중인 언어도 있고 하락세인 언어도 있고 딥 러닝 아키텍처와 애플리케이션의 역사에 관심이 있는 경우에만 알면 되는 언어도 있다. 이제부터 각각의 장단점을 살펴보자. 파이썬(Python) 선두는 여전히 파이썬이다. 사실 다른 언어가 이 자리를 뺏기도 쉽지 않다. 파이썬에도 나름의 골치 아픈 문제는 있지만 AI 작업을 한다면 어느 시점에는 거의 무조건 파이썬을 사용하게 된다. 또한 파이썬의 투박한 부분들도 그동안 어느정도 개선됐다. 2020년을 목전에 둔 지금, 주요 라이브러리 대부분이 파이썬 3.x를 지원하고 파이썬 2.x에 대한 지원을 속속 중단하고 있음을 감안하면 파이썬 2.x냐, 파이썬 3.x냐의 논란은 거의 무의미하다. 즉, 모든 새로운 언어 기능을 마침내 본격적으로 활용할 수 있게 됐다. 모든 솔루션이 각자 다른 방법으로 조금씩 문제가 있는 악몽 같은 파이썬의 패키징은 여전하지만 95%의 상황에서는 별다른 걱정 없이 아나콘다(Anaconda)를 사용할 수 있다. 그럼에도 파...

자바 LUA Julia 줄리아 Python SWIFT 딥러닝 머신러닝 스위프트 Java C++ 파이썬 프로그래밍 인공지능 자바스크립트 루아

2019.11.25

인공 지능(Artificial Intelligence, AI)는 애플리케이션 개발자에게 무한한 가능성을 제공한다. 머신러닝 또는 딥 러닝을 활용해 훨씬 더 정확한 사용자 프로필, 개인 맞춤 설정, 추천을 만들거나 더 스마트한 검색, 음성 인터페이스 또는 지능형 비서를 구현하거나 그 외의 다양한 방법으로 앱을 개선할 수 있다. 심지어 예전에는 생각지도 못했던, 보고 듣고 상황에 반응하는 애플리케이션을 만들 수도 있다.   AI를 온전히 활용하기 위해서는 어떤 프로그래밍 언어를 배워야 할까? 물론 좋은 머신러닝, 딥 러닝 라이브러리가 풍부한 언어가 좋다. 또한 우수한 런타임 성능, 충실한 툴 지원, 대규모 프로그래머 커뮤니티, 건강한 지원 패키지 생태계도 필요하다. 요구사항이 많지만 괜찮은 선택지 역시 풍부하다.  AI 개발을 위한 6가지 최적의 프로그래밍 언어와, 이 목록에는 들지 못했지만 살펴볼 만한 2가지 언어를 소개한다. 이 가운데에는 인기 상승 중인 언어도 있고 하락세인 언어도 있고 딥 러닝 아키텍처와 애플리케이션의 역사에 관심이 있는 경우에만 알면 되는 언어도 있다. 이제부터 각각의 장단점을 살펴보자. 파이썬(Python) 선두는 여전히 파이썬이다. 사실 다른 언어가 이 자리를 뺏기도 쉽지 않다. 파이썬에도 나름의 골치 아픈 문제는 있지만 AI 작업을 한다면 어느 시점에는 거의 무조건 파이썬을 사용하게 된다. 또한 파이썬의 투박한 부분들도 그동안 어느정도 개선됐다. 2020년을 목전에 둔 지금, 주요 라이브러리 대부분이 파이썬 3.x를 지원하고 파이썬 2.x에 대한 지원을 속속 중단하고 있음을 감안하면 파이썬 2.x냐, 파이썬 3.x냐의 논란은 거의 무의미하다. 즉, 모든 새로운 언어 기능을 마침내 본격적으로 활용할 수 있게 됐다. 모든 솔루션이 각자 다른 방법으로 조금씩 문제가 있는 악몽 같은 파이썬의 패키징은 여전하지만 95%의 상황에서는 별다른 걱정 없이 아나콘다(Anaconda)를 사용할 수 있다. 그럼에도 파...

2019.11.25

C가 자바 턱밑까지 추격, 스위프트는 10위권 진입 <티오베 11월 인덱스>

부동의 1위를 차지하고 있는 자바와 C가 각축을 벌였으며, 애플의 프로그래밍 언어 스위프트가 마침내 10위권에 진입했다.    11월 티오베 지수에 따르면, 1위 자리를 두고 자바와 C가 막상막하의 접전을 벌였다. 여전히 자바가 16.246%로 1위이지만, C도 16.037%로 집계돼 자바와는 불과 0.209%의 차이로 그 뒤를 바짝 쫓고 있다. 파이썬은 3위로, 상위권 입지를 굳힌 모양새다.  티오베는 C가 사물인터넷 개발을 위한 프로그래밍 언어로 사용되면서 증가하는 추세라고 분석했다. 또, 올해 연말에는 C가 자바를 제치고 1위를 차지할 것이라고 추측했다. 자바는 2015년 4월부터 티오베 지수의 1위를 기록해 왔다.  한편 애플의 프로그래밍 언어인 스위프트의 약진도 계속되고 있다. 스위프트의 전신인 오브젝티브-C를 뛰어넘어 1.653%로 10위권 안에 진입했다. 오브젝티브-C는 이번 달에 1.195%로, 전년 동월 대비 한 계단 내려간 12위를 기록했다.  티오베 프로그래밍 언어 인기 순위 톱 10 (2019년 11월) 1. 자바(16.246%) 2. C (16.037%) 3. 파이썬 (9.842%) 4. C++ (5.605%) 5. C# (4.316%) 6. 비주얼 베이식 닷넷 (4.229%) 7. 자바스크립트 (1.929%) 8. PHP (1.72%) 9. SQL (1.69%) 10. 스위프트 (1.653%) ciokr@idg.co.kr

자바 개발언어 C 파이썬 사물인터넷 스위프트 오브젝티브-C 티오베 프로그래밍언어

2019.11.06

부동의 1위를 차지하고 있는 자바와 C가 각축을 벌였으며, 애플의 프로그래밍 언어 스위프트가 마침내 10위권에 진입했다.    11월 티오베 지수에 따르면, 1위 자리를 두고 자바와 C가 막상막하의 접전을 벌였다. 여전히 자바가 16.246%로 1위이지만, C도 16.037%로 집계돼 자바와는 불과 0.209%의 차이로 그 뒤를 바짝 쫓고 있다. 파이썬은 3위로, 상위권 입지를 굳힌 모양새다.  티오베는 C가 사물인터넷 개발을 위한 프로그래밍 언어로 사용되면서 증가하는 추세라고 분석했다. 또, 올해 연말에는 C가 자바를 제치고 1위를 차지할 것이라고 추측했다. 자바는 2015년 4월부터 티오베 지수의 1위를 기록해 왔다.  한편 애플의 프로그래밍 언어인 스위프트의 약진도 계속되고 있다. 스위프트의 전신인 오브젝티브-C를 뛰어넘어 1.653%로 10위권 안에 진입했다. 오브젝티브-C는 이번 달에 1.195%로, 전년 동월 대비 한 계단 내려간 12위를 기록했다.  티오베 프로그래밍 언어 인기 순위 톱 10 (2019년 11월) 1. 자바(16.246%) 2. C (16.037%) 3. 파이썬 (9.842%) 4. C++ (5.605%) 5. C# (4.316%) 6. 비주얼 베이식 닷넷 (4.229%) 7. 자바스크립트 (1.929%) 8. PHP (1.72%) 9. SQL (1.69%) 10. 스위프트 (1.653%) ciokr@idg.co.kr

2019.11.06

모든 프로그래밍 요구를 충족하는 12가지 파이썬

소프트웨어 개발을 위해 파이썬을 선택한다는 것은 모든 프로그래밍 요구fmf 포괄하는 풍부한 패키지를 보유한 방대한 언어 생태계를 선택하는 것과 같다. 그러나 GUI 개발부터 머신 러닝에 이르기까지 온갖 분야를 위한 라이브러리 외에 선택할 수 있는 파이썬 런타임도 다양하다. 잘 살펴보면 이 중에서 당면한 사용 사례에 다른 런타임보다 더 적합한 런타임을 찾을 수 있을 것이다.   이 글에서는 표준 구현(C파이썬)부터 속도에 최적화된 버전(파이파이), 특수한 사용 사례를 위한 버전(아나콘다, 액티브파이썬), 다양한 언어 런타임을 위한 버전(자이썬, 아이언파이썬), 그리고 첨단 실험적 버전(파이카피, 메사파이)에 이르기까지 다양한 파이썬 배포판을 간략히 살펴본다.   C파이썬(CPython) C파이썬은 파이썬의 참조 구현, 즉 다른 모든 파이썬 변형이 기준으로 삼는 표준 버전이다. C파이썬은 이름에서 짐작할 수 있듯이 C로 작성되며 파이썬 언어에 관한 최상위 의사 결정을 내리는 핵심 그룹에 의해 개발된다. C파이썬 사용 사례 C파이썬은 파이썬의 참조 구현이므로 최적화 측면에서 가장 보수적이다. 설계 의도 자체가 그렇다. 파이썬의 핵심 관리 그룹이 정한 C파이썬의 목표는 가장 폭넓게 호환되고 표준화된 파이썬 구현이다. 파이썬 표준에 대한 호환성 및 부합성이 강력한 성능 및 기타 사항보다 중요하다면 C파이썬이 최선의 선택이다. C파이썬은 가장 기본이 되는 구현에서 파이썬을 다루고자 하는 전문가와 몇 가지 편의 기능을 포기할 의향이 있는 전문가에게도 유용하다. 예를 들어 C파이썬에서는 가상 환경을 설정하기 위한 작업이 조금 더 번거롭다. 다른 배포판(특히 아나콘다)은 작업 영역 설정과 관련하여 많은 부분을 자동화해서 제공한다. C파이썬의 제약 C파이썬에서는 다른 파이썬 에디션과 같은 성능 최적화를 찾아볼 수 없다. 네이티브 JIT(Just-In-Time) 컴파일러도, 가속 수학 라이브러리도, 성능을 위한 써드파티 추가 기능도 없다. 모두 직접 추가...

파이썬 C파이썬

2019.09.30

소프트웨어 개발을 위해 파이썬을 선택한다는 것은 모든 프로그래밍 요구fmf 포괄하는 풍부한 패키지를 보유한 방대한 언어 생태계를 선택하는 것과 같다. 그러나 GUI 개발부터 머신 러닝에 이르기까지 온갖 분야를 위한 라이브러리 외에 선택할 수 있는 파이썬 런타임도 다양하다. 잘 살펴보면 이 중에서 당면한 사용 사례에 다른 런타임보다 더 적합한 런타임을 찾을 수 있을 것이다.   이 글에서는 표준 구현(C파이썬)부터 속도에 최적화된 버전(파이파이), 특수한 사용 사례를 위한 버전(아나콘다, 액티브파이썬), 다양한 언어 런타임을 위한 버전(자이썬, 아이언파이썬), 그리고 첨단 실험적 버전(파이카피, 메사파이)에 이르기까지 다양한 파이썬 배포판을 간략히 살펴본다.   C파이썬(CPython) C파이썬은 파이썬의 참조 구현, 즉 다른 모든 파이썬 변형이 기준으로 삼는 표준 버전이다. C파이썬은 이름에서 짐작할 수 있듯이 C로 작성되며 파이썬 언어에 관한 최상위 의사 결정을 내리는 핵심 그룹에 의해 개발된다. C파이썬 사용 사례 C파이썬은 파이썬의 참조 구현이므로 최적화 측면에서 가장 보수적이다. 설계 의도 자체가 그렇다. 파이썬의 핵심 관리 그룹이 정한 C파이썬의 목표는 가장 폭넓게 호환되고 표준화된 파이썬 구현이다. 파이썬 표준에 대한 호환성 및 부합성이 강력한 성능 및 기타 사항보다 중요하다면 C파이썬이 최선의 선택이다. C파이썬은 가장 기본이 되는 구현에서 파이썬을 다루고자 하는 전문가와 몇 가지 편의 기능을 포기할 의향이 있는 전문가에게도 유용하다. 예를 들어 C파이썬에서는 가상 환경을 설정하기 위한 작업이 조금 더 번거롭다. 다른 배포판(특히 아나콘다)은 작업 영역 설정과 관련하여 많은 부분을 자동화해서 제공한다. C파이썬의 제약 C파이썬에서는 다른 파이썬 에디션과 같은 성능 최적화를 찾아볼 수 없다. 네이티브 JIT(Just-In-Time) 컴파일러도, 가속 수학 라이브러리도, 성능을 위한 써드파티 추가 기능도 없다. 모두 직접 추가...

2019.09.30

버그잡는 파이썬 프레임워크 4종

건물에 화재 검사나 안전 검사가 필요하듯 기업용 소프트웨어에는 테스트가 필요하다. 건물에서 특정 전기적 조건이나 구조적 문제가 대형 사고로 이어질 수 있음을 안다면 한 번만 살펴보고 끝내지 않고 반복해서 확인할 것이다. 마찬가지로, 소프트웨어 애플리케이션에서 특정 문제나 조건을 방지하려면 이에 맞는 테스트를 작성해 프로덕션으로 흘러가지 못하도록 하면 된다. 테스트는 파이썬(Python)과 같은 동적 언어에서는 2배로 중요하다. 동적 언어에서는 온갖 오류가 런타임에만 드러나기 때문이다. 견실한 테스트 모음은 이런 문제를 찾아내는 데 도움이 되며, 나중에 코드베이스를 물려받는 사람에게도 똑같이 유용하다.   파이썬에 기본적으로 포함되는 자체 단위 테스트 프레임워크는 유용하고 많이 사용된다. 그러나 각각 단위 테스트를 구축하고 유지하는 방법에 대해 나름의 원칙을 가진 다른 옵션도 많다. 이제부터 기본 프레임워크인 unittest와 가장 대표적인 3가지 대안을 자세히 살펴보자. 유닛테스트(Unittest) 및 독테스트(Doctest) unittest는 파이썬의 표준 라이브러리와 함께 제공되는 기본 테스트 프레임워크이며, 파이썬 자체를 위한 테스트 모음을 만드는 데 사용된다. unittest는 일부 서드파티 테스트 프레임워크만큼 범위가 넓지는 않고 애초에 그런 의도로 만들어지지도 않았다. 대부분의 프로젝트에 맞는 견실한 단위 테스트를 작성하기 위해 필요한 기능만 제공한다. 제이유닛(JUnit) 테스트 프레임워크를 사용했던 자바 개발자라면 unittest가 익숙하게 느껴질 것이다. 테스트 모음을 만들려면 unittest.TestCase에서 파생되는 파이썬 클래스를 만든다. 테스트는 이런 클래스의 함수가 된다. 테스트는 간단한 동등 또는 부등 단언(equality/inequality assertion)일 수도 있고 더 정교할 수도 있다. 예를 들어 assertRaises 테스트는 지정된 테스트에서 지정된 예외가 발생하는 지를 확인한다. 테스트를 하나의 ...

테스트 유닛테스트 비헤브 독테스트 노우즈2 Unittest Pytest nose2 Doctest behave 파이썬 BDD 파이테스트

2019.09.23

건물에 화재 검사나 안전 검사가 필요하듯 기업용 소프트웨어에는 테스트가 필요하다. 건물에서 특정 전기적 조건이나 구조적 문제가 대형 사고로 이어질 수 있음을 안다면 한 번만 살펴보고 끝내지 않고 반복해서 확인할 것이다. 마찬가지로, 소프트웨어 애플리케이션에서 특정 문제나 조건을 방지하려면 이에 맞는 테스트를 작성해 프로덕션으로 흘러가지 못하도록 하면 된다. 테스트는 파이썬(Python)과 같은 동적 언어에서는 2배로 중요하다. 동적 언어에서는 온갖 오류가 런타임에만 드러나기 때문이다. 견실한 테스트 모음은 이런 문제를 찾아내는 데 도움이 되며, 나중에 코드베이스를 물려받는 사람에게도 똑같이 유용하다.   파이썬에 기본적으로 포함되는 자체 단위 테스트 프레임워크는 유용하고 많이 사용된다. 그러나 각각 단위 테스트를 구축하고 유지하는 방법에 대해 나름의 원칙을 가진 다른 옵션도 많다. 이제부터 기본 프레임워크인 unittest와 가장 대표적인 3가지 대안을 자세히 살펴보자. 유닛테스트(Unittest) 및 독테스트(Doctest) unittest는 파이썬의 표준 라이브러리와 함께 제공되는 기본 테스트 프레임워크이며, 파이썬 자체를 위한 테스트 모음을 만드는 데 사용된다. unittest는 일부 서드파티 테스트 프레임워크만큼 범위가 넓지는 않고 애초에 그런 의도로 만들어지지도 않았다. 대부분의 프로젝트에 맞는 견실한 단위 테스트를 작성하기 위해 필요한 기능만 제공한다. 제이유닛(JUnit) 테스트 프레임워크를 사용했던 자바 개발자라면 unittest가 익숙하게 느껴질 것이다. 테스트 모음을 만들려면 unittest.TestCase에서 파생되는 파이썬 클래스를 만든다. 테스트는 이런 클래스의 함수가 된다. 테스트는 간단한 동등 또는 부등 단언(equality/inequality assertion)일 수도 있고 더 정교할 수도 있다. 예를 들어 assertRaises 테스트는 지정된 테스트에서 지정된 예외가 발생하는 지를 확인한다. 테스트를 하나의 ...

2019.09.23

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.

10.5.0.8