4월 26일 (금) 오후 11:43

logo

  • home
  • head
  • itnews
  • product
  • mobile
  • game
  • benchmark
  • analysis
  • blog

개봉 2024.06.05. / 장르 드람 / 국가 대한민국 감독 : 조지 밀러 출연 : 안야 테일러 조이, 크리스 헴스워스 등 ...
개봉 2024.05.22. / 장르 액션 / 국가 미국 감독 : 조지 밀러 출연 : 안야 테일러 조이, 크리스 헴스워스 등 ...

Ian Pointer | InfoWorld


인공지능(Artificial Intelligence, AI)는 애플리케이션 개발자에게 무한한 가능성을 제공한다. 머신러닝 또는 딥 러닝을 활용해 훨씬 더 정확한 사용자 프로필, 개인 맞춤 설정, 추천을 만들거나 더 스마트한 검색, 음성 인터페이스 또는 지능형 비서를 구현하거나 그 외의 다양한 방법으로 앱을 개선할 수 있다. 심지어 예전에는 생각지도 못했던, 보고 듣고 상황에 반응하는 애플리케이션을 만들 수도 있다.
 

ⓒ Getty Images Bank


AI를 온전히 활용하기 위해서는 어떤 프로그래밍 언어를 배워야 할까? 물론 좋은 머신러닝, 딥 러닝 라이브러리가 풍부한 언어가 좋다. 또한 우수한 런타임 성능, 충실한 툴 지원, 대규모 프로그래머 커뮤니티, 건강한 지원 패키지 생태계도 필요하다. 요구사항이 많지만 괜찮은 선택지 역시 풍부하다. 

AI 개발을 위한 6가지 최적의 프로그래밍 언어와, 이 목록에는 들지 못했지만 살펴볼 만한 2가지 언어를 소개한다. 이 가운데에는 인기 상승 중인 언어도 있고 하락세인 언어도 있고 딥 러닝 아키텍처와 애플리케이션의 역사에 관심이 있는 경우에만 알면 되는 언어도 있다. 이제부터 각각의 장단점을 살펴보자.


파이썬(Python)

선두는 여전히 파이썬이다. 사실 다른 언어가 이 자리를 뺏기도 쉽지 않다. 파이썬에도 나름의 골치 아픈 문제는 있지만 AI 작업을 한다면 어느 시점에는 거의 무조건 파이썬을 사용하게 된다. 또한 파이썬의 투박한 부분들도 그동안 어느정도 개선됐다.

2020년을 목전에 둔 지금, 주요 라이브러리 대부분이 파이썬 3.x를 지원하고 파이썬 2.x에 대한 지원을 속속 중단하고 있음을 감안하면 파이썬 2.x냐, 파이썬 3.x냐의 논란은 거의 무의미하다. 즉, 모든 새로운 언어 기능을 마침내 본격적으로 활용할 수 있게 됐다.

모든 솔루션이 각자 다른 방법으로 조금씩 문제가 있는 악몽 같은 파이썬의 패키징은 여전하지만 95%의 상황에서는 별다른 걱정 없이 아나콘다(Anaconda)를 사용할 수 있다. 그럼에도 파이썬 측이 이 오랜 문제를 아직 최종적으로, 완전히 해결하지 못한 점은 아쉽다.

어쨌든 파이썬의 수학 및 통계 라이브러리는 다른 언어가 따라올 수 없는 부분이다. 광범위하게 사용되는 넘파이(NumPy)는 이제 텐서 연산에서 표준 API나 다름없고, 판다스(Pandas)를 통해 R의 강력하고 유연한 데이터프레임을 파이썬에서 사용할 수 있다. 자연어 처리(NLP)에는 유명한 NLTK와 빠른 속도를 자랑하는 스페이시(SpaCy)가 있다. 머신러닝의 경우 실전에서 검증된 사이킷-런(Scikit-learn)이 있다. 딥 러닝에서는 모든 현행 라이브러리(텐서플로우, 파이토치, 체이너, 아파치 MX넷, 테아노 등) 프로젝트가 사실상 파이썬을 가장 우선해 개발된다.

아카이브(arXiv)에서 최첨단 딥 러닝 연구 논문을 읽다 보면 소스코드를 제공하는 대다수 연구가 파이썬 코드를 제공한다는 것을 알 수 있다. 파이썬 생태계에는 라이브러리 외의 다른 부분도 있다. 아이파이썬(IPython)은 주피터 노트북(Jupyter Notebook)이 되면서 파이썬 중심 성격이 옅어졌지만 주피터 노트북 사용자와 온라인에서 공유되는 노트북의 대부분이 여전히 파이썬을 사용한다. 배포 모델 측면에서도 마이크로서비스 아키텍처, 셀던 코어(Seldon Core)와 같은 기술의 등장으로 프로덕션에 파이썬 모델을 아주 쉽게 배포할 수 있게 됐다.

파이썬은 AI 연구의 최전선에 있는 언어이며 대부분의 머신러닝, 딥 러닝 프레임워크에 사용되며 AI 분야의 거의 모든 사람이 말하는 언어다. 최소한 하루에 한 번은 공백 문제에 대해 욕지기가 솟는다는 사실에도 불구하고, 이러한 이유로 파이썬은 AI 프로그래밍 언어 중 첫 번째로 꼽힌다.


C++

C++는 AI 애플리케이션 개발에서 가장 먼저 거론되는 언어는 아니지만, 시스템에서 마지막 한방울까지 최대한 성능을 짜내야 한다면(딥 러닝이 엣지로 이동하면서 리소스가 제약된 시스템에서 모델을 실행해야 하는 상황이 갈수록 많아지는 추세임) 무서운 포인터의 세계에 다시 한 번 발을 들여놓아야 한다.

다행히 현대의 C++는 즐거운 코드 작성이 가능하다(진심이다). 이젠 접근 방법에 선택권이 있다. 스택의 가장 밑바닥으로 직행해서 엔비디아 쿠다(CUDA)와 같은 라이브러리를 사용해 GPU에서 바로 실행되는 코드를 쓸 수도 있고, 텐서플로우 또는 파이토치를 사용해서 유연한 고수준 API에 액세스할 수도 있다. 파이토치와 텐서플로우 모두 파이썬(또는 파이토치의 토치스크립트 파이썬 하위 집합)으로 생성된 모델을 로드해서 C++ 런타임에서 바로 실행할 수 있게 해주므로 개발 유연성을 유지하는 동시에 프로덕션에서 베어 메탈 성능에 근접할 수 있다.

요약하자면, AI 애플리케이션이 초소형 임베디드 시스템부터 거대한 클러스터에 이르기까지 모든 디바이스에 걸쳐 확산되면서 C++는 툴킷의 핵심 요소가 되고 있다. 엣지의 AI는 정확함만으로는 더 이상 충분하지 않음을 의미한다. 정확하고도 빨라야 한다.


자바 및 기타 JVM 언어

JVM 언어군(자바, 스칼라, 코틀린, 클로저 등)도 여전히 AI 애플리케이션 개발을 위한 좋은 선택이다. 자연어 처리(코어NLP), 텐서 연산(ND4J), GPU 가속 딥 러닝 스택(DL4J) 등 분야를 불문하고 파이프라인의 모든 부분에서 풍부한 라이브러리가 존재한다. 또한 아파치 스파크, 아파치 하둡과 같은 빅데이터 플랫폼에 대한 접근도 용이하다.

자바는 대부분의 엔터프라이즈에서 공용어이며 새로운 언어 구성자가 도입된 자바 8 이상 버전부터는 많은 이들이 기억하는 짜증나는 코딩 경험에서 벗어났다. 자바로 AI 애플리케이션을 작성하는 과정은 다소 지루하게 느껴질 수 있지만 소기의 목적은 달성할 수 있으며 개발, 배포, 모니터링을 위한 기존의 모든 자바 인프라를 사용할 수 있다.


자바스크립트(JavaScript)

전적으로 AI 애플리케이션을 만들기 위한 목적으로 자바스크립트를 배우는 경우는 거의 없지만 구글 TensorFlow.js는 계속 개선되면서 케라스(Keras) 및 텐서플로우 모델을 브라우저에 배포하거나, GPU 가속 계산을 위해 웹GL을 사용해서 Node.js를 통해 배포하는 흥미로운 방법을 제공한다.

다만 TensorFlow.js가 출범한 이후에도 AI 자바스크립트 개발자들이 대대적으로 AI 영역으로 밀려드는 일은 아직 발생하지 않았다. 자바스크립트 주변 생태계의 라이브러리가 파이썬과 같은 언어에 비해 아직 많지 않은 것이 이유일 수 있다.

또한 서버 측에서는 파이썬 옵션을 사용할 때에 비해 Node.js로 모델을 배포해서 얻는 실질적인 이점이 별로 없다. 따라서 자바스크립트 기반 AI 애플리케이션은 당분간 주로 브라우저 기반으로 남을 가능성이 높다. 그러나 그것만으로도 이모지 스캐빈저 헌트(Emoji Scavenger Hunt)와 같은 재미있는 가능성이 풍부하다.


스위프트(Swift)

이 기사의 지난해 버전에서는 스위프트를 주목해야 할 언어로 언급했는데, 올해에는 상위 6개 언어에 포함됐다. 그동안 무슨 일이 있었을까? 바로 텐서플로우용 스위프트의 등장이다. 최신, 최고의 텐서플로우 기능을 군더더기 없이 완전한 형식으로 바인딩하고, 마치 파이썬을 사용하는 것처럼 파이썬 라이브러리를 가져올 수 있는 마술 같은 기능을 제공한다.

패스트AI(Fastai) 팀은 스위프트 버전의 라이브러리를 개발 중이며, LLVM 컴파일러의 텐서 지능이 높아지면서 모델 생성과 실행에 관해 많은 최적화가 더 이뤄질 것으로 기대된다. 지금 당장 프로덕션에 사용할 수 있는지 묻는다면 답은 아니지만, 딥 러닝 개발의 다음 세대를 향한 길을 가리킨다고 할 수 있으므로 스위프트 주변에서 일어나는 일을 주시할 필요가 있다.


R 언어

R은 이 목록에서 최하위고 추세 자체도 하락하는 중이다. R은 데이터 과학자들이 선호하는 언어다. 그러나 다른 프로그래머들 시각에서 R의 데이터프레임 중심 접근 방법은 다소 혼란스럽다. 전담 R 개발자 그룹이 있다면 연구, 프로토타이핑, 실험을 위해 텐서플로우, 케라스, 또는 H2O와의 통합을 사용하는 것은 좋지만 성능과 운영 측면에 대한 우려 사항 탓에 프로덕션 용도 또는 미개척지 개발에서 R을 선뜻 추천하기는 어렵다. 프로덕션 서버에 배포할 수 있는 성능 좋은 R 코드를 쓸 수는 있지만 대부분의 경우 R 프로토타입을 가지고 와서 자바나 파이썬으로 다시 코딩하는 편이 더 쉽다.


기타 AI 프로그래밍 옵션

물론 파이썬, C++, 자바, 자바스크립트, 스위프트, R 외에 AI 프로그래밍에 사용할 수 있는 다른 언어도 있다. 가장 먼저 배울 만한 언어로 분류하기는 어렵지만 흥미를 끌거나 도움이 될 수도 있는 두 가지 언어를 추가로 소개한다.

- 루아(Lua)
몇 년 전, 연구와 프로덕션에서 가장 인기 있는 머신러닝 라이브러리 중 하나인 토치 프레임워크 덕분에 인공 지능 분야에서 루아(Lua)의 주가가 치솟은 적이 있다. 딥 러닝 모델의 역사를 공부한다면 대부분 토치에 대한 방대한 참조와 오래된 깃허브 리포지토리의 풍부한 루아 소스코드를 발견하게 된다.

역사 연구를 위해서라면 파이토치의 기본 API에서 그다지 멀리 떨어지지 않은 토치 API에 대한 실용적인 지식을 갖추면 유용할 수도 있다. 그러나 애플리케이션을 위해 역사 공부에 매달려야 하는 경우가 아니라면(대부분의 경우 그럴 필요가 없음) 루아의 소소한 여러 기벽을 굳이 헤아리지 않더라도 사는 데 지장은 없다. 

- 줄리아(Julia)
줄리아는 수치 계산에 초점을 둔 고성능 프로그래밍 언어인 만큼 수학 천지인 AI 세계와 잘 맞는다. 지금은 크게 인기 있는 언어는 아니지만 TensorFlow.jl, 모카(Mocha – 카페(Caffe)의 영향을 크게 받음)와 같은 래퍼는 딥 러닝을 충실하게 지원한다. 비교적 작은 생태계에 개의치 않으며 쉽고 빠르게 고성능 계산을 수행하는 특성을 이용하고 싶다면 줄리아를 살펴볼 가치는 있다. editor@itworld.co.kr 



원문보기: http://www.itworld.co.kr/news/137383#csidx86291ca1a5ceb71b17425484e4f7537 onebyone.gif?action_id=86291ca1a5ceb71b1






  1. 랜섬웨어 피해자가 되는 7가지 어리석은 방법과 대비책

    Susan Bradley | CSO 랜섬웨어 공격자를 도와주지 말자. 지금 윈도우 네트워크의 이들 취약점을 확인해 보면, 깜짝 놀랄 것이다. 랜섬웨어가 다시 기승을 부리기 시작했다. 보도에 따르면, 공격자는 의...
    Date2020.11.29 CategoryIT KNOWLEDGE
    Read More
  2. 가상 머신, 거의 모든 IT 혁신의 출발점

    Keith Shaw | Network World 클라우드 컴퓨팅, 엣지 컴퓨팅, 마이크로서비스와 같은 신기술은 물리적 컴퓨터에서 운영체제와 소프트웨어 인스턴스를 분리하는 가상 머신(Virtual Machine, VM) 개념에서 ...
    Date2020.10.01 CategoryIT KNOWLEDGE
    Read More
  3. 시스코 이어 주니퍼도 합류…점점 달아오르는 SASE 시장

    Michael Cooney | Network World 보안 접근 서비스 에지(Secure Access Service Edge), 일명 새시(SASE) 시장이 점점 성장하는 가운데, 주니퍼가 이 대열에 합류했다.   © Jan Alexander / Microsoft 최...
    Date2020.07.17 CategoryIT KNOWLEDGE
    Read More
  4. 무차별 대입 공격의 정의와 증가 이유, 방어 방법

    Dan Swinhoe | CSO 무차별 대입(brute-force) 공격은 인증 정보(사용자 이름과 비밀번호)를 알아내기 위해 공격자가 반복적, 체계적으로 매번 다른 사용자 이름과 비밀번호를 입력하는 방식의 공격이다....
    Date2020.07.03 CategoryIT KNOWLEDGE
    Read More
  5. 포스트 코로나 시대를 위한 네트워크 전문가의 경력 관리 전략

    Bob Violino | Network World 코로나19 팬데믹이 진정되었을 때의 업무 환경은 크게 달라질 수 있다. IT팀은 변화하는 조직의 요구에 맞춰 계속 기술 서비스를 조정해야 할 것이다. 여전히 불확실한 것...
    Date2020.06.18 CategoryIT KNOWLEDGE
    Read More
  6. 네트워크 월드 2020 네트워크 현황 “화두는 SD-WAN, 엣지 네트워킹, 보안”

    Michael Cooney | Network World IT 임원과 경영진이 미래를 위한 효율적이고 견고한 엔터프라이즈 커뮤니케이션 전략을 수립하는 과정에서 SD-WAN과 엣지, 5G 기술을 포함한 네트워크 추세가 지배적인 ...
    Date2020.05.06 CategoryIT KNOWLEDGE
    Read More
  7. IT 인프라 보안 자동으로 확인하기, 취약점 스캐너의 정의와 작동 방식

    Lucian Constantin | CSO 취약점 스캐너(vulnerability scanner)란 기업의 네트워크와 시스템, 애플리케이션을 자동으로 검사해 혹시 공격에 노출될 만한 보안 취약점이 없는지 확인하는 도구다. 취약점...
    Date2020.04.16 CategoryIT KNOWLEDGE
    Read More
  8. “데스크톱용 컨테이너가 온다” 윈도우 10X에 거는 기대

    Eric Knorr | Computerworld 마이크로소프트가 자사의 듀얼 스크린 윈도우 10X 운영체제용으로 새로운 컨테이너를 만들어 레거시 윈도우 애플리케이션을 구동할 수 있도록 했다. 윈도우의 미래에 미치는...
    Date2020.03.11 CategoryIT KNOWLEDGE
    Read More
  9. 초연결 시대가 불러올 사이버 공격의 변화: 2020 보안 위협 동향

    전 산업 분야에서 디지털 트랜스포메이션이 진행되고 있다. 비즈니스의 거의 모든 것이 ICT 기반의 인프라도 옮겨가면서 사이버 위협에 대한 우려 또한 심화되고 있다. 특히 지난 2019년 상용화된 5G에 힘...
    Date2020.02.02 CategoryIT KNOWLEDGE
    Read More
  10. 그 많은 2020 트렌드, 한눈에 모아보기

    2020년 새해가 밝았다. 가만히 돌아보면 최근 몇 년 새 유난히 세상이 빠르게 변화하는 느낌이다. 그래서일까. 해마다 연말 즈음이면 필수처럼 경제, 사회 등 각 분야의 트렌드를 예측하는 서적이 쏟아져 ...
    Date2020.01.03 CategoryIT KNOWLEDGE
    Read More
  11. “클라우드, ACI, SD-WAN, 제로 트러스트” 2020년 시스코가 집중할 영역

    Michael Cooney | Network World 업계가 2020년을 준비하고 있는 지금, 네트워크 분야는 조금 불안한 상태이다. 일부 주요 업체, 특히 아리스타(Arista)와 주니퍼(Juniper)가 신규 거래는 예상보다 감소...
    Date2019.12.11 CategoryIT KNOWLEDGE
    Read More
  12. AI 개발을 위한 최적의 프로그래밍 언어 6+2선

    Ian Pointer | InfoWorld 인공지능(Artificial Intelligence, AI)는 애플리케이션 개발자에게 무한한 가능성을 제공한다. 머신러닝 또는 딥 러닝을 활용해 훨씬 더 정확한 사용자 프로필, 개인 맞춤 설...
    Date2019.11.23 CategoryIT KNOWLEDGE
    Read More
  13. "무시해선 안된다" 프린터 보안, CSO가 책임져야

    J.M. Porup | CSO 대부분의 프린터는 안정된 보안 기능을 갖쳐져 있음에도 불구하고 재정 및 조직에서 잘못 배치되어 불안정하다.     ⓒ Getty Images Bank  심피온&NCC 그룹의 2개의 독립적인 보...
    Date2019.11.03 CategoryIT KNOWLEDGE
    Read More
  14. Subnet, 서브넷, Subnet Mask

    안녕하세요? 오리뎅이입니다. 오늘은 subnet에 대해서 정말 정말 쉽게 밑바닥(고수님들 보시면, 손가락 오글거림에 주의 요함. )까치 파헤쳐 보도록 하겠습니다. Subnet이란 것이 어찌 보면 아주 쉬...
    Date2019.10.05 CategoryIT KNOWLEDGE
    Read More
  15. 사이버보안 RSO가 되는 방법

    Frederick Scholl | CSO RSO란 무엇인가? 미국 밴더빌트 대학 교수 랑가라지 라마누잠의 저서 <신뢰성을 위한 조직(Organizing for Reliability)>에 따르면, RSO는 “신뢰성을 추구하는 조직(Reliability...
    Date2019.09.01 CategoryIT KNOWLEDGE
    Read More
  16. "리눅스에 대한 마이크로소프트의 사랑", WSL 2의 이해와 시작하기

    Simon Bisson | InfoWorld 마이크로소프트가 최근 빌드(Build) 컨퍼런스에서 리눅스용 윈도우 서브시스템(Windows Subsystems for Linux, WSL)의 두 번째 버전을 소개했다. 초기의 WSL 개념을 대대적으...
    Date2019.08.15 CategoryIT KNOWLEDGE
    Read More
  17. '줄리아' vs. '파이썬'··· 최고의 데이터 언어 대결

    Serdar Yegulalp | InfoWorld 파이썬은 데이터 분석용 언어로 확고하게 자리를 잡았다. 파이썬 생태계는 과학 계산과 데이터 분석 작업을 빠르고 편리하게 해 주는 라이브러리와 툴, 애플리케이션으로 ...
    Date2019.07.21 CategoryIT KNOWLEDGE
    Read More
  18. “개발자라면 누구나 반할” 서버리스 컴퓨팅의 효용

    Josh Fruhlinger | InfoWorld 개발자는 코드로 비즈니스 문제를 해결하느라 많은 시간을 소비한다. 개발자 다음은 운영 부서 차례다. 운영 부서는 먼저 개발자가 쓴 코드를 가용한 컴퓨터에서 구동하느...
    Date2019.07.05 CategoryIT KNOWLEDGE
    Read More
  19. "쿠버네티스와 컨테이너의 변화를 이끈다" 가장 믿음직한 쿠버네티스 배포판 10선

    Serdar Yegulalp | InfoWorld 쿠버네티스(Kubernetes)는 대규모 컨테이너 오케스트레이션이 필요한 경우 최적의 프로젝트로 꼽힌다. 구글이 만들어낸 오픈소스 컨테이너 시스템 쿠버네티스는 업게의 인...
    Date2019.05.23 CategoryIT KNOWLEDGE
    Read More
  20. 블록체인이 결제 산업의 5G로 각광 받는 이유

    Lucas Mearian | Computerworld 블록체인 기반 결제 네트워크와 명목 화폐 담보 디지털 화폐(미국 최대 은행의 화폐 포함)가 증가하면서 업계 전문가와 애널리스트들은 금융 서비스 산업의 혁신적인 변...
    Date2019.04.06 CategoryIT KNOWLEDGE
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 Next
/ 7