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.

개발언어

러스트 언어를 좋아하는 이유, 그리고 싫어하는 이유 7가지

요즘은 매일 새로운 프로그래밍 언어가 만들어지는 것 같다. 대부분 소프트웨어 개발자에게 필요한 이상으로 많은 프로그래밍 언어가 있다. 프로그래머는 번뜩이는 천재성으로 새롭고 멋진 뭔가를 만들기 시작한다. 그러나 많은 경우 틈새 언어가 되어 한 가지 고충이나 특정 문제를 해결하는 데 사용된다. 새 프로그래밍 언어가 주류로 올라서서 광범위하게 사용되는 경우는 극히 드물다.    러스트(Rust)는 새로운 언어 중에서 개발자가 실제 엔터프라이즈 프로덕션에서 실행되는 코드를 작성하는 수준까지 성장한, 매우 드문 사례 중 하나다. 확실히 러스트는 틈새 언어다. 러스트의 목표는 시스템 프로그래머를 비롯해 수십, 수천, 심지어 수십만 건의 이벤트를 동시에 처리하는 코드를 만들고자 하는 사람에게 유용한 언어가 되는 것이다. 이와 같은 시스템을 만드는 것 자체도 어렵고 시스템에서 버그를 찾아 수정하기는 더 어렵다. 러스트는 시스템을 만들기 위한 최선의 방법에 관한 심층적이고 이론적인 온갖 사고를 살아 숨쉬는 실제 언어로 바꿔준다.  러스트 코어팀은 매년 개발자 설문을 실시한다. 2021년에는 최초로 모든 러스트 프로그래머의 절반 이상이 실무에서 러스트를 사용한다는 설문 결과가 나왔다. 더 이상 취미가 아니라 사용자가 실행할 전문적인 코드를 생산하는 데 사용하고 있다는 의미다.  개발자가 러스트를 사용한 프로그래밍에서 좋아하는 점과 싫어하는 점을 살펴보자.    좋아하는 이유 1. 규모와 동시성이 뛰어나다  개발자가 규모와 동시성 문제, 즉 많은 소스로부터 동시에 들어오는 입력을 처리하기 위한 요구사항에 대처하는 과정에서 소프트웨어의 복잡성은 높아졌다. 이 때문에 많은 개발자가 러스트를 오늘날의 아키텍처에 적합한 툴을 만들기 위한 최선의 언어로 생각한다.  높은 확장성이 필요한 애플리케이션의 대표적인 예로 웹 브라우저가 있다. 그렇게 보면 파이어폭스를 개발한 모질라에서 러스트가 탄생했다는 사실도 놀...

러스트 개발언어 컴파일러 2022.10.12

C 언어, 두 달 연속 인기 언어 1위…20위 첫 진입 러스트도 주목

C 프로그래밍 언어가 티오베(Tiobe) 개발언어 인기 인덱스에서 두 달 연속 1위를 차지했다. 하지만 2020년 6월 순위에서 오히려 더 주목을 받는 것은 처음으로 20위 권에 들어온 러스트(Rust)이다.   모질라 프로젝트인 러스트는 0.64%의 점수로 20위에 올랐는데, 1년 전인 2019년 6월 순위는 39위였다. 티오베는 인기 검색엔진의 검색률을 조사하는 공식을 기반으로 개발언어의 인기도를 측정한다. 티오베 소프트웨어 CEO 폴 얀센은 러스트를 “제대로 된” 시스템 프로그래밍 언어라며, “러스트는 자랑거리가 많고 첨단 기능도 많은 다른 개발언어에 해답을 제시했다”고 평가했다. 한편 러스트는 최근 발표된 스택 오버플로의 연례 개발자 서베이 결과에서도 “가장 많은 사랑을 받은” 개발 언어로 선정됐다. 5월 티오베 인덱스에서 5년 만에 처음으로 자바를 1위 자리에서 밀어낸 C 언어는 6월에도 상승세를 이어가고 있는데, 지난 달 티오베는 코로나19 팬데믹과 C가 의료 기기에 많이 사용되고 있음을 이유로 제시한 바 있다. 2020년 6월 티오베 인덱스 상위 10위는 다음과 같다. 1. C, 17.19% 2. 자바, 16.1% 3. 파이썬, 8.36% 4. C++, 5.95% 5. C#, 4.73% 6. 비주얼 베이직, 4.69% 7. 자바스크립트, 2.27% 8. PHP, 2.26% 9. R, 2.19% 10. SQL, 1.73% editor@itworld.co.kr

티오베 개발언어 인기도 2020.06.03

코로나19로 C 언어 인기 급상승 "의료기기에 많이 사용"

2015년 3월 이후 처음으로 C 프로그래밍 언어가 자바를 대신해 티오베 인덱스에서 가장 인기 있는 개발 언어로 부상했다. 티오베는 C 언어의 부상에 코로나19가 영향을 미쳤을 것으로 추정했다. 티오베는 코로나19가 여러 가지 이유 중 하나일 것이라는 점을 인정하면서 일부 개발 언어가 바이러스의 확산 때문에 인기를 얻고 있다고 설명했다. C와 C++가 인기를 얻고 있는 이유는 의료기기에 많이 사용되기 때문이다. 데이터 과학에 많이 사용되는 파이썬과 R은 바이러스 치료법을 찾는 데 많이 사용된다는 점에서 인기가 더욱 높아졌다. 그렇다면 C의 인기는 계속될 수 있을까? 티오베 CEO 폴 얀센은 C가 최소한 반 년 동안은 1위 자리를 지킬 것이라고 본다. 당분간은 시장 흐름이 자바에 우호적이지 않기 때문이다. 티오베 인덱스는 구글이나 빙, 야후 등의 검색엔진을 사용해 각 개발 언어를 따르는 기술 엔지니어와 강좌, 서드파티 솔루션 업체의 수를 추정한다. 2020년 5월 티오베 인덱스 톱 10은 다음과 같다.   C, 17.07% 자바, 16.28% 파이썬, 9.12% C++, 6.13% C#, 4.29%  비주얼 베이직, 4.18% 자바스크립트, 2.68% PHP, 2.49% SQL, 2.09% R, 1.85% 한편, 튜토리얼 검색 빈도를 이용해 개발 언어 인기도를 측정하는 PyPl의 2020년 5월 순위는 다음과 같다.   파이썬, 31.17% 자바, 17.75% 자바스크립트, 7.99% C#, 7.05% PHP, 6.09% C/C++, 5.67% R, 3.93% 오브젝티브-C, 2.4% 스위프트, 2.26% 타입스크립트, 1.89% editor@itworld.co.kr

개발언어 C++ PYPL 2020.05.06

2019년 인기 급상승 개발언어는 C : 티오베 인덱스

티오베 인덱스(TIOBE Index)에서 C 프로그래밍 언어가 최신 유행의 파이썬을 누르고 2019년 인기 상승폭이 가장 큰 언어로 선정됐다. 2018년 1위를 기록한 파이썬은 올해도 우승 후보로 점쳐졌지만, C가 지난 한 해 동안 2.4%p 상승하며 1위를 차지했다. C#(2.1%p), 파이썬,(1.4%p), 스위프트(0.6%p)가 뒤를 이었다.   C의 부활을 이끈 것은 IoT 환경의 소형 디바이스용 프로그래밍에 C가 사용되기 때문이다. 티오베는 이 외에도 C가 배우기 쉽고 컴파일러를 모든 프로세서용으로 사용할 수 있다고 평가했다. 티오베 인덱스는 구글이나 빙, 위키피디아 등의 인기 검색엔진에서 프로그래밍 언어 검색을 평가하는 공식을 기반으로 한다. 티오베의 2020년 1월 인기 프로그래밍 언어 순위는 다음과 같다. 1. 자바, 16.896% 2. C, 15.773% 3. 파이썬, 9.704% 4. C++, 5.574% 5. C#, 5.349% 6. 비주얼 베이직 닷넷, 5.287% 7. 자바스크립트, 2.451% 8. PHP, 2.405% 9. 스위프트, 1.795% 10. SQL, 1.504% 한편, 경쟁 관계인 PyPL((Popularity of Programming Language) 인덱스는 구글에서 각 개발언어의 튜토리얼이 얼마나 자주 검색됐는지를 기반으로 한다. PyPL의 2020년 1월 순위는 다음과 같다. 1. 파이썬, 29.72% 2. 자바, 19.03% 3. 자바스크립트, 8.2% 4. C#, 7.28% 5. PHP, 6.09% 6. C/C++, 5.91% 7. R, 3.72% 8. 오브젝티브-C, 2.47% 9. 스위프트, 2.36% 10. 매트랩, 1.79% editor@itworld.co.kr

컴파일러 순위 파이썬 2020.01.09

C 프로그래밍 언어가 여전히 최고인 이유 : 개발언어 일대일 비교

어느 기술이든 다른 기술보다 어떤 일을 특별히 잘 하지 않는 50년 이상 살아남을 수는 없다. 더구나 컴퓨터 기술이라면 두 말할 필요도 없다. 그런데 C 프로그래밍 언어는 1972년부터 사용되기 시작해 소프트웨어로 움직이는 지금 시대에도 핵심적인 구성요소 중 하나로 확고히 자리를 잡고 있다. 그러나 사람들이 굳이 대체할 필요성을 느끼지 못하는 이유로 장기간 생존하는 기술도 있다. 지난 수십년 동안 다른 많은 언어가 나타났고, 그 중에서는 노골적으로 C의 아성에 도전한 언어도 있다. 일부는 인기를 끌면서 C의 자리를 가장자리부터 조금씩 갉아먹기도 했다.   C를 대체해야 할 필요성을 주장하기는 어렵지 않다. 프로그래밍 언어에 대한 연구, 소프트웨어 개발 관행, 모두 C보다 훨씬 더 나은 방법이 있다. 그러나 수십년에 걸친 연구개발이 뒷받침하는 C의 위상에는 변함이 없다. C는 성능, 기계적 호환성, 보편성 면에서 다른 언어에 비해 월등히 뛰어나다. 다른 주요 언어와 C를 비교해 보는 것도 나름 의미 있는 일일 것이다.   C vs. C++  C의 가장 흔한 비교 상대는 당연히 C++다. 이름에서 알 수 있듯이 C++는 C의 확장판으로 개발됐다. C++가 C와 다른 점을 요약하자면 광범위함, 또는 받아들이는 사람에 따라서는 과잉이라고 할 수 있다. 구문과 접근 방식은 C와 비슷하지만 C++에는 네임스페이스, 템플릿, 예외, 자동 메모리 관리 등 C에서 기본적으로 제공하지 않는 정말로 유용한 기능도 많다. 데이터베이스나 머신 러닝 시스템과 같이 최상급 성능을 요구하는 프로젝트는 시스템의 모든 성능을 남김없이 활용하기 위해 C++의 이러한 기능을 사용해서 작성되는 경우가 많다. 또한 C++는 C에 비해 훨씬 더 적극적으로 확장을 지속하고 있다. 곧 나올 C++ 20은 모듈, 코루틴, 동기화 라이브러리, 템플릿을 더 쉽게 사용할 수 있게 해주는 개념을 비롯해서 더욱 많은 기능을 새롭게 제공한다. 반면 C 표준의 최신 리비전을 보면 추...

자바 닷넷 파이썬 2019.06.21

F#을 사용해야 하는 14가지 분명한 이유

F#은 강한 형식의 함수 우선 프로그래밍 언어로, 복잡한 문제를 단순한 코드로 해결할 수 있게 해준다. ML을 기반으로 .NET 프레임워크 상에 구축된 F#은 우수한 상호운용성, 이식성, 런타임 속도, 그리고 “5C”인 간결함(conciseness), 편리함(convenience), 정확함(correctness), 동시성(concurrency), 완전성(completeness)을 제공한다. F#은 초기에는 마이크로소프트 리서치 프로젝트로서 윈도우 전용이었지만 지금은 여러 가지 플랫폼에서 주요 언어로 사용된다. 맥과 리눅스에서는 자마린 스튜디오(Xamarin Studio), 모노디벨롭(MonoDevelop), 이맥스(Emacs) 등의 툴 지원을 통해, 윈도우에서는 비주얼 스튜디오, 자마린 스튜디오, 이맥스를 통해, 안드로이드와 iOS 디바이스, 웹에서도 HTML5를 통해 F#을 사용할 수 있다. F#은 범용 프로그래밍 외에도 GPU 코드, 빅 데이터, 게임 등 다양한 분야에 적용된다. 왜 F#을 사용할까? 14가지 이유를 살펴보자. F#은 인터랙티브하다 F#의 장점 중 하나는 아래 화면 이미지에서 볼 수 있듯이 코드를 시험해볼 수 있는 인터랙티브 REPL(읽기, 평가, 인쇄, 루프)이 있다는 점이다. 왼쪽 상단부터 시계 방향으로 각각 윈도우의 비주얼 스튜디오, 크롬에서 실행 중인 TryFSharp, 맥 OS X에서 실행 중인 자마린 스튜디오의 F# 인터랙티브 창이다. ;;은 F# 인터랙티브에 입력한 내용을 평가할 것을 지시한다. TryFsharp에서 "run" 버튼도 동일한 신호를 보낸다. 코드를 전체 프로그램에 넣기 전에 REPL을 사용하여 컴파일하고 테스트하면 개발 시간을 단축하고 버그도 줄일 수 있다. F#은 스크립팅을 위한 언어이다 F#은 프로그래밍 언어로도, 스크립팅 언어로도 사용할 수 있다. 아래 화면은 비주얼 스튜디오 샘플이다. 샘플에서 F# 스크립트는 코드를 실행하기 전...

프로그래밍 하둡 개발언어 2018.04.26

“미래를 생각하는 개발자를 위한” 지금 배워야 하는 프로그래밍 언어

프로그래밍 언어 배우기는 어렵지 않다. 경험만 있다면 24시간 이내에 기본은 익힐 수 있다. 구직 시장에서 경쟁력을 높이기 위해 새로운 프로그래밍 국제 공용어를 찾는 중이라면 지금 사용하는 언어도 감안해 선택해야 한다. 다음 중에서 이미 알고 있는 언어를 기반으로 새로운 언어를 선택해 익힐 것을 권한다. 자바에 익숙한 사람이 선택할 만한 언어 자바에 익숙한 사람은 더 이상 참신한 인재는 아니다. 대부분의 비즈니스 소프트웨어가 자바로 작성된 것은 사실이지만 웃돈을 주고라도 자바 개발자를 모셔가던 시절은 진작에 끝났다. 자바 개발자가 선택할 만한 다음 단계는 무엇일까? 다음 언어 중에서 선택해 보자. 스칼라 스칼라는 함수형 자바와 같다. 순수한 함수형을 추구하는 사람들은 스칼라를 무척 선호하는데, 사실 자바에서 스칼라까지의 거리는 상당히 짧다. 더구나 AI와 머신러닝이 뜨고, 아파치 스파크도 스칼라로 작성되는 요즘이라면 고민할 필요도 없어 보인다. 자바스크립트 자바 개발자라면 대형 아웃소싱 업체에서 일하는 경우를 제외하고 통계적으로 35세 이상이 대부분이다. 이들이 기억하는 자바스크립트는 “DHTML”을 만들고 “자바”라는 단어를 같다 붙이기 위해(그만큼 자바가 인기 있었으므로) 넷스케이프 브라우저에 집어넣었던 저급한 스크립트에 머물러 있을 것이다. 그러나 자바스크립트는 바뀌었고 서버 측 소프트웨어도 바뀌었다. 이미 자바를 알고 있으니 함수형 구조를 익혀야 한다. 자바스크립트는 서버 측 및 클라이언트 측 언어가 됐고 “임기응변” 스크립팅 언어가 필요한 거의 모든 곳에 사용된다. 자바스크립트는 개발자의 도구 상자에 넣어두면 쓸모가 있는 언어다. C C를 배운 적이 없는 사람도 있겠지만 요즘 C가 다시 부상 중이다. 게다가 프로그램에 C를 사용하지 않는다 해도 자바의 작동 원리, 동시성 문제 및 경합 조건과 같은 중대한 문제를 디버그하는 방법을 이해하는 데 ...

자바 프로그래밍 루비 2018.03.27

코틀린, “자바 넘본다”…구글 지원에 안드로이드 개발 환경 잠식

코틀린(Kotlin)이 모바일 플랫폼 영역에서 조만간 자바를 압도할 것이란 분석이 제기됐다. 모바일 데이터베이스 업체 렐름(Realm)은 자사 데이터베이스 사용자 10만 명을 대상으로 한 익명 조사를 실시해 개발자사 선택하는 SDK를 기준으로 어떤 개발언어를 사용하는지 파악했다. 렐름의 조사에 따르면, 지난 5월 구글이 안드로이드 스튜디오 3.0 IDE에서 코틀린을 공식 지원하기 전에는 자바로 개발하던 앱의 20%가 이제 코틀린으로 개발되고 있다. 이 데이터를 기반으로 렐림은 코틀린이 2018년 12월이면 안드로이드 환경에서 자바를 앞지를 것이라고 예측했다. 코틀린은 자바가 서버에서 사용되는 방식도 바꿔 놓을 수 있는데, 렐름은 “간단히 말해, 코틀린 기술을 사용하지 않는 안드로이드 개발자는 금방 구시대 유물로 보여질 위험에 처할 것”이라고 설명했다. 렐름의 데이터에 따르면, 2016년 9월 코틀린은 안드로이드 개발환경의 5.1%를, 자바는 무려 94.9%를 차지했다. 하지만 불과 1년 만에 코틀린은 14.3%, 자바는 85.7%를 기록했다. 구글이 코틀린을 보증한 지난 5월 코틀린의 점유율은 7.4%였다. 코틀린의 이런 빠른 성장은 현대성 때문으로 볼 수 있다. 렐름의 최고 마케팅 책임자 폴 코파키는 “코틀린이 훨씬 더 현대적인 개발언어이다. 자바보다 이해하기 쉽고 작성하기 쉽고 추상화 수준도 더 높다. 그리고 진정으로 모바일을 염두에 두고 만들어진 것이다”라고 강조했다.  editor@itworld.co.kr

자바 IDE 개발언어 2017.10.11

“데이터베이스의 언어” SQL이란 무엇인가

오늘날 구조화 쿼리 언어(Structured Query Language)는 비록 제품들 간에 자사 고유의 확장 기능을 가지고 있기는 하지만, 관계형 데이터베이스에서 데이터를 조작하고 쿼리하는 표준 수단이다. SQL의 편의성과 보편성은 하둡(Hadoop)을 위시한 수 많은 NoSQL 또는 비관계형 데이터 저장(Non-Relational Data Stores) 기술도 SQL의 일부를 도입하거나 SQL과 유사한 쿼리 언어를 만들어 낼 정도이다. 그렇지만 SQL이 과거에도 “보편적인” 관계형 데이터베이스용 언어는 아니었다. 초기, 그러니까 1980년대에 SQL은 반대 세력이 적지 않았다. 당시에는 필자를 포함해 많은 연구원과 개발자들이 SQL의 오버헤드로 인해 업무용 데이터베이스로서는 결코 실용적이지 않다고 생각했다. 분명 잘못된 생각이었다. 하지만 아직도 많은 이들이 SQL의 모든 편의성과 접근성에도 불구하고 런타임 성능에 따라 부과되는 대가가 너무 클 때가 많다고 생각한다. SQL이 있기 전 SQL이 있기 전에는 데이터베이스는 밀접하게 결합된 탐색형 프로그래밍 인터페이스를 가지고 있었으며, 대개의 경우 코다실(CODASYL) 데이터 모델이라 부르는 네트워크 스키마(Schema)를 중심으로 설계되었다. 코다실(CODASYL: Conference/Committee on Data Systems Languages)은 1959년부터 코볼(COBOL) 프로그래밍 언어 그리고 10년 뒤부터는 데이터베이스 언어 확장기능을 책임지던 컨소시엄이었다. 코다실 데이터베이스에 대하여 프로그래밍을 했다면, 일대다 관계를 나타내는 세트(Set)를 통해서 레코드(Record)를 탐색했을 것이다. 구식 계층형(Hierarchical) 데이터베이스는 레코드가 한 개의 세트에만 속할 수 있도록 한다. 네트워크 데이터베이스는 레코드가 여러 개의 세트에 속할 수 있게 해준다. CS 101에 등록한 학생들을 열거하고 싶어한다고 하자. 우선 이름으...

데이터베이스 SQL 개발언어 2017.08.30

“과거는 잊어라” 소프트웨어 개발의 본질을 바꾸는 21가지 기술

아주 오래 전에 개발자들은 빠르고 가벼운 어셈블리 언어로 개발했다. 코드를 입력하기 위해 기계 전면의 스위치를 조작해 줄 사람을 고용할 수 있을 정도로 예산이 많은 적도 있었고, 상황이 좋지 않을 때는 개발자가 직접 그 일을 했다. 복잡할 것이 전혀 없었다. 당시의 소프트웨어는 메모리에서 데이터를 읽어 들여 약간의 연산을 한 뒤 결과물을 내놓는 것이 전부였다. 오늘날의 개발자는 전 세계 출신의 다양한 언어를 구사하는, 무엇보다 제각기 다른 버전의 컴파일러를 사용하는 팀원들과 함께 일해야만 한다. 게다가 어떤 코드는 새로 개발된 것이고, 어떤 코드는 소스 코드가 제공되지 않는, 10년도 넘은 라이브러리를 활용한 것일 수도 있다. 오늘날 개발자가 되기 위해서는 협동심과 인내력부터 키워야 한다. 불과 5년 전과 비교하더라도 컴퓨터에 작업을 지시하는 것에는 대단한 차이가 있다. 지난 10년 동안 영화 ‘올드보이’의 오대수처럼 어딘가에 납치됐다 풀려난 개발자가 있다면, 오늘날의 컴퓨팅 세계에서 아무것도 할 수 없을지도 모른다. 모든 것이 그 어느 때보다 빠르게 변하고 있다. 프로그래밍의 본성을 바꾸어 놓는 21가지 기술을 살펴본다. 이 기술들로 인해 개발자의 협업 방식, 고객 지원 방식, 코딩 방식이 바뀌고 있다. 개발자라면 정신을 바짝 차리기 바란다. 지속적인 통합(Continuous Integration) 과거에는 리포지토리(Repository)에 코드를 커밋하고 나면 보통 커피를 마시며 한숨 돌리거나 점심을 먹을 여유가 있었다. 하지만 더 이상은 아니다. 오늘날의 리포지토리는 지속적인 빌드 시스템과 밀접하게 연결되어 있기 때문이다. 지속적인 빌드 시스템은 코드를 다시 컴파일하고, 아키텍처를 검사하고, 코드에 수백 가지 테스트를 수행해 오류의 가능성을 표시해 준다. 이 때문에 개발자는 지속적인 빌드 시스템이 보내는 작업 수정 요청 메일과 문자 메시지 때문에 책상에서 한치도 벗어나기 어렵다. 지속적인 빌드 시스템은 개발...

데이터베이스 프레임워크 통합 2017.08.07

미워 죽어도, 없으면 살 수 없는 7가지 프로그래밍 언어

원한을 갖지 말라는 선의의 조언은 분명 생계를 위해 컴퓨터와 씨름하던 사람의 입에서 나온 말은 아니었을 것이다. 프로그래밍 언어의 지옥같은 로직과 싸우다 보면 최악의 버그들이 떠다니는 칠흑같은 공허함의 공포를 알게 된다. 물론 누구나 처음에 컴퓨터 언어를 처음 접할 때는 좋아한다. 그리고 3줄의 코드로 언어가 얼마나 강력한지 보여주는 모든 "헬로우 월드(Hello World)"의 예를 보더라도 그렇다. 프로그래밍 언어는 암암리에 논리적으로 정의되지만 어디든 로직을 확산시킨다는 의미는 아니다. 유쾌한 바텐더는 자신의 술집을 방문하는 모든 사람의 인생을 행복하게 만들 수 있다. 용감한 소방관은 용기를 내뿜는다. 하지만 논리적인 프로그래밍 언어 메커니즘은 종종 비논리, 혼란, 의심을 낳는다. 언어가 비논리적이라고 말하는 것은 논리적이지 않지만 어쨌든 논리에는 한계가 있기 때문에 이런 말을 하곤 한다. G&T(Gödel and Turing)에서 우리는 논리적인 메커니즘에도 무서운 일이 발생하는 한계가 있다는 사실을 배웠다. 물론, 개발자도 인간이기 때문에 잘못 사용하거나 잘못 프로그래밍하는 등 사람의 잘못일 수 있다. 하지만 프로그래밍 언어로 인해 자신의 두뇌가 이상한 요가 자세를 취할 수 밖에 없게 된다면 프로그래밍 언어를 탓하지 않을 수 없다. 그리고 할 수 있는 일이 아무 것도 없는 경우가 많이 발생한다. 설치된 기초가 너무 커서 짜증이 나더라도 언어를 포기할 수 없을 수 있다. 직장 상사가 한 스택(Stack)을 너무 좋아해 큐비클 팜(Cubicle Farm)에서 울부짖는 소리는 듣지 못할 수 있다. 더 나은 옵션이 없을 수 있다는 점이 잔인한 현실이다. 우리는 이미 인간이 만들 수 있는 최고의 도구를 사용하고 있다. 여기에서는 개발자들이 싫어하지만 없으면 살 수 없는 7가지 프로그래밍 언어에 관해 살펴보도록 하자. 우리가 싫어하는 언어: C 완전한 컴퓨터 언어라기보다는 "...

자바 코볼 프로그래밍 2016.05.25

“세상을 프로그래밍하라” 사물 인터넷 시대의 필수 개발 기술 12가지

많은 신생업체들이 세상을 바꾸겠다는 포부를 가지고 출발하지만, 이들이 말하는 것은 세상 자체나 세상 속의 물리적인 사물을 의미하진 않는다. 사실상 이들이 말하는 변화의 구체적 모습은 데이터 패킷을 교환하거나 데이터베이스에 엔트리를 배치하는 등인 경우가 대부분이다. 물론 그것들이 중요하지 않은 것은 아니지만, 이는 어디까지나 비트(bit)로 이루어진 세계일 뿐이다. 반면 우리가 사는 세상은 원자로 이루어져 있다. 이런 비트와 원자 간의 경계가 사라지고 있으며, 프로그래머가 더 이상 가상 영역에 제한되지 않게 됐다. 이런 변화에는 한층 더 현실화되고 있는 사물 인터넷이 한몫을 하고 있다. 이제는 디스크에 1과 0의 두 가지 숫자만 쓸 수 있는 단계를 지나 원자를 압출, 절단, 변형하는 구체적 방식에 대한 코드 자체를 입력하는 것이 가능해졌다. 소프트웨어를 통해 불을 켜고, 공간의 모습을 바꾸고, 차를 운전하며, 벽을 옮기는 것이 가능해진 것이다. 덕분에 이제는 개발자들도 가상 세계뿐 아니라 실제 세계에서도 새로운 시장과 기회를 모색할 수 있게 됐다. 무인 자동차, 스마트 홈, 인텔리전트 오피스, 대량 맞춤 생산(Mass Customization) 분야의 급격한 발전은 이제 프로그래머들에게도 데이터 구조의 변화가 어떻게 물질의 변화로 이어지는지에 대한 이해가 요구됨을 의미한다. 이러한 개념은 ‘객체 지향 프로그래밍(object-oriented programming)’ 이라는 단어로 완벽하게 표현할 수 있을 것 같다. 물리적 변화에 초점을 맞춘 이러한 프로그래밍에는 새로운 언어가 필요하다. 아니면, 적어도 기존 언어를 토대로 한 새로운 규약이 있어야 한다. 세상을 바꾼다는 것은 이러한 언어와 프로토콜들의 작동 원리를 이해하고, 이들을 어떻게 배치, 활용할 지를 이해한다는 의미다. 그런 의미에서, 정말로 세상을 바꾸고 싶다면 반드시 알아야 할 몇 가지 언어와 프로토콜들을 소개한다. 일단 세상을 바꾸는 비트에 한 번 맛을 들이면, 다...

프로그래밍 프레임워크 표준 2016.02.18

글로벌 칼럼 | 스파크에서 마음에 들지 않는 5가지

맵리듀스(MapReduce)가 점차 힘을 잃는 추세에 지난해 클라우데라(Cloudera), IBM과 같은 주요 업체들의 전폭적인 투자까지 더해지며 빅데이터 프로세싱 플랫폼인 아파치 스파크(Spark)가 본궤도에 오르기 시작했다. 10줄 미만의 코드로 단어 개수를 계산하는 애플리케이션 데모들이 쏟아져 나왔다. 그러나 스파크에 대해 조금 더 깊이 파고들어 간 사람이라면 개념 설명을 위한 간단한 예제를 벗어나 본격적인 무언가를 하려고 할 때, 스파크에 대한 환상이 어느 정도 깨지는 것을 경험했을 것이다. 물론 스파크는 훌륭하다. 그러나 스파크는 스칼라(Scala) 코드 몇 줄만으로 끝나는 그런 간단한 개념이 아니다. 프로덕션에서 스파크를 사용할 때 직면하는 5가지 가장 큰 골칫거리를 살펴보자. 메모리 문제 대규모 데이터를 처리하는 도중에 힙 공간이 소진되는 스파크의 고질적인 문제를 이야기하는 것이 아니다. 스파크 1.5와 그 이후 나올 1.6에서 데이터브릭스(Databricks)의 주안점 중 하나인 프로젝트 텅스텐은 마침내 가비지 컬렉션 문제를 많은 부분 해결해 준다. 여기서 이야기하는 문제는 대규모 작업에서 맞닥뜨리게 되는 다양한 형태의 메모리 문제다. 스파크를 몇 개월 동안 스탠드얼론(Standalone) 클러스터 모드로 사용하다가 YARN 및 메소스(Mesos)로 바꾸면서 모든 기본값이 변경될 때 겪는 일종의 적응 과정으로 생각할 수도 있다. 예를 들어 스탠드얼론에서는 가용한 모든 메모리와 코어를 자동으로 가져오지만, 스탠드얼론 외의 다른 구축 옵션에서는 실행 파일과 드라이버용 기본값이 터무니없이 작다. 쉽게 고칠 수 있는 문제지만 작업 규모를 확대할 때 누구나 반드시 한 번은 잊고 넘어가는 부분이다. 데모 수준을 벗어나서 대규모 데이터 세트를 다루게 될 때 스파크 작업이 꼬이는 전형적인 예를 보면 1.8TB 세트를 대상으로 실행하는 reduceByKey 작업이 spark.driver.maxResultSize의 기본값(1GB)을 초...

스파크 개발언어 빅데이터 2015.11.16

그루비와 아파치 재단의 환상적 결합…”다운로드 수 2배 증가"

아파치 소프트웨어 재단(Apache Software Foundation)과 그루비의 조합이 긍정적인 효과를 냈다. 불과 6개월 만에 그루비의 다운로드 수가 2배로 증가해서다. 아파지는 지난 3월 자바 가상 머신(JVM)에서 작동하는 동적 언어인 그루비를 선택했다. 그 이후 다운로드 수가 급격하게 늘어났다. 프로젝트 리드인 기욤 라포르쥬는 Restlet닷컴(Restlet.com)에 올린 블로그를 통해 "그루비가 아파치 재단에 합류한 이후 다운로드 수는 2배로 늘어나 현재 130만 건에 이르렀다. 6개월도 채 되지 않은 시점에서 다운로드 수가 크게 늘었다는 것에 주목해야 한다”고 말했다. 현재 라포르쥬는 API 툴 업체인 Restlet에서 근무하고 있다. 라포르쥬는 아파치가 해당 프로젝트를 관할하며 어떤 회사로부터 독립적으로 운영되고 있다고 말했다. 그는 “아파치 재단이 관리한다는 것은 프로젝트를 장기적인 관점에서 길게 끌고 간다는 것을 의미한다”고 말했다. 지난 3월, 그루비가 아파치 인큐베이터 프로젝트에 합류했을 때만 하더라도 64만 3,000건의 다운로드를 기록했다. 지난 8월 다운로드 수는 134만 건으로 증가했다. 라포르쥬는 그루비가 아파치 재단으로 합류하고 마케팅 지원을 받은 것이 큰 영향을 미쳤다고 말했다. 라포르쥬는 또한 그루비가 아파치 인큐베이터 프로젝트에서 졸업하게 된다고 전했다. 그루비가 이미 잘 확립이 되어있기도 하고, 인큐베이터는 새로운 모든 아파치 프로젝트를 대상으로 해야 하기 때문이다. 라포르쥬는 “기본적으로 프로젝트를 졸업시키기 위해 특정 규칙을 따르기로 했다”고 말했다. 그루비는 서버에서의 작업을 자동화하고 비즈니스 규칙에 대해 도메인에 특정하는 언어를 설계하는 스크립트 같은 작업을 공략한다. 지난 1월 배포된 그루비 2.4는 안드로이드 개발에 대한 지원을 추가했다. 라포르쥬는 “모바일 개발자는 안드로이드 플랫폼에서 모바일 애플리케이션...

아파치 개발언어 개발자 2015.11.13

여전히 대중의 사랑을 받는 레거시 기술 5가지

“망가지지 않은 장비에 괜히 손대지 말라”는 속담은 오늘날에도 적용된다. 기술의 진보가 계속되고 루비, 하둡 같은 새로운 이름들이 뉴스의 헤드라인을 장식하는 와중에도, 우리 사회 곳곳에선 여전히 수많은 기존 솔루션들이 각자의 자리에서 제 몫을 다하고 있다. 우리의 디지털 세계를 여전히 굳건히 떠받치고 있는, 5가지의 레거시 기술과 기량에 관해 살펴보자. 코볼(COBOL) 어플리케이션 현대화 및 유지관리 업체 마이크로포커스(MicroFocus)에서 코볼 제품 마케팅 디렉터로 재직 중인 에드 아일리는 코볼 기반 시스템과 솔루션에 관계하는 최종 사용자 규모가 일반적으로 생각하는 것보다 훨씬 많다고 소개한다. 우리가 일상적으로 이용하는 은행, 보험, 그리고 철도 및 항공 운항 시스템들 가운데 다수가 코볼에 기반을 두고 있다. 아일리는 이처럼 코볼이 지속적인 지지를 받는 이유로 정확한 계산 역량과 대규모 데이터의 효율적인 관리 성능을 이야기한다. 아일리는 “코볼은 대규모의 데이터를 처리하는데 특히 탁월하다. 이른바 ‘배치 프로세싱(batch processing)을 아직도 수행하는 산업들에서 코볼이 지지를 받는 이유다. 연방 비축은행이나 국세청은 물론, 신용카드사들 가운데서도 다수가 대규모 거래의 동시 처리를 위해 코볼 기반 시스템을 이용하고 있다. 또한, 배경 조사, 이민, 국경 보호 등의 보안과 차단 목적으로도 코볼은 여전히 널리 이용되고 있다”고 말했다. 메인프레임(Mainframe) 이 대규모 컴퓨팅 시스템들 대부분은 1960년대의 산물이지만, 사용자와 개발자들의 지지는 사그라지지 않았고, 그 결과 이 시스템들은 빅 아이언(big iron)이라는 애칭과 함께 시대의 흐름에 따라 지속적인 발전을 거듭하며 수십 년의 생명력을 이어오고 있다. 메인프레임(Mainframe)들이 수십 년의 세월을 거뜬히 견디게 한 원동력은 이 시스템들의 안정성과 신뢰도다. 소매, 은행, 금융, 물류, 제조 등 ...

자바 코볼 기술 2015.08.18

자바스크립트 '여전히 강세', C++ 도약 눈여겨볼 만해

타이오브(Tiobe) 월간 언어 순위 지표에서 C++가 가장 많은 상승률을 확보한 가운데, 자바스크립트는 여전히 강세인 것으로 드러났다. 지난 2014년 7월 이후 C++의 인기도가 크게 올랐다. 타이오브 보고서는 “지난해와 비교해 C++의 인기는 3.1% 증가했다. 자바(2%), C#(1.6%), 파이썬(1.6%) 상승 수치를 넘어선다”고 말했다. 2015년 7월을 기준으로 C++의 점유율은 8.641%이며, 지난해는 5.521%를 기록했다. 타이오브는 구글, 위키피디아, 빙과 같은 사이트에서 검색된 언어 공식을 토대로 언어 인기도를 측정한다. 지난 2011년 발표된 C++ 11은 스레드 수준으로 락 프리(lock-free) 동시성 지원을 위한 표준 및 형식 안전(type-safe) 지원과 같은 기능을 소개했다. 지난해에는 제네릭 람다(Generic Lambdas)를 표현할 수 있는 기능이 추가되기도 했다. 지난여름 인포월드(InfoWorld)와의 인터뷰에 응한 C++ 창시자인 비야네 스트롭스트룹은 C++의 강점은 빠르게 운용할 수 있으면서도 복잡성을 다룰 수 있다는 것이라고 밝힌 바 있다. 타이오브의 총괄을 담당하는 폴 안센은 서면 인터뷰에서 컴파일러 부문에 대한 C++ 11의 최신 지원은 인기도를 높였다고 말했다. 안센은 “실제 산업 프로젝트에서 최신 C++ 11 컴파일러를 도입하고 최신 기능을 사용하고 있다는 점을 엿볼 수 있었다”고 말했다. 레드몽크(RedMonk)도 이달 초 개발 언어 인기 순위를 발표했다. 자바스크립트가 가장 큰 인기를 얻고 있으며, 자바가 그 뒤를 이었다. 이는 지난 1월에 발표한 순위와 같은 결과다. 레드몽크는 스택 오버플로우(Stack Overflow)에서의 언어 토론에 관한 평가와 깃허브(GitHub)의 사용량에 따라서 순위를 매긴다. 자바스크립트와 자바의 순위에는 약간의 변화가 생겼다. 레드몽크의 애널리스트인 스데판 오그레디는 순위 자료를 첨부한 보고서에서 &...

자바스크립트 개발언어 C++ 2015.07.21

개발에 새로운 힘을 부여하는 '프로그래밍 언어 분기'

컴퓨터 언어가 일상 언어와 비슷한 점은 끊임없이 진화한다는 것이다. 다만 프로그래밍 언어의 진화에서만 볼 수 있는 요소는 명확한 '분기'다. 즉, 공식적으로 줄기에서 갈라져 나오고 뿌리에서 이탈할 수 있는 부분이다. 일시적으로 분기가 일어났다가 새로운 가지로 재결합되어 역으로 뿌리에 영향을 미치는 경우도 있거나 기존 언어에서 변형이 나와 그대로 유지되는 경우도 있고, 돌연변이가 발생하여 완전히 새로운 언어가 생겨나기도 한다. 혁신에 대한 욕망뿐만 아니라, 모든 개발 언어가 언젠가는 그 한계를 드러낸다는 점 때문에 컴퓨터 언어를 바꾸는 원동력이 되기도 한다. 이러한 필수불가결한 진화의 흐름에 따라 사용자들은 언어를 개선하거나 이를 버리고 아예 다른 길을 선택하고는 한다. 언어가 분기하여 진화하는 경로는 대부분 다음 세 가지 가운데 하나에 해당된다. 1. 완전한 새로운 분기 언어. 기존 언어와 호환되지 않을 수 있다. 2. 뿌리 언어(기존 언어)로 컴파일되는 새로운 언어 3. 기존 언어에 기능이 추가되거나 제거된 확대집합 또는 하위집합 지금 진화 중인 언어 중에서 각 방식의 구체적인 예를 살펴보도록 하자. 1 - 새로운 언어: PHP와 핵(Hack) PHP의 인기는 PHP 언어에 있어 양날의 칼과 같다. PHP로 개발된 애플리케이션은 어떤 환경에서든 실행이 보장된다는 장점이 있다. 나쁜 점으로는 PHP에는 이해할 수 없는 몇 가지 특성과 내부적인 비일관성이 있는데, 기존에 개발된 방대한 PHP 코드와의 하위 호환성이 깨질 우려로 인해 수정될 가능성이 별로 없다. 이때 등장한 것이 페이스북의 핵 언어다. 핵은 PHP의 변형으로, 페이스북이 방대한 규모로 이 언어를 사용하면서 부상했다. PHP와 상호작용하도록 설계되었지만, 형식 주석, 자바스크립트와 유사한 람다, 자바/C#과 유사한 제네릭 등 PHP가 제공하지 않는 다양한 기능들로 무장했다. 핵이 PHP에 가한 변화는 언어 분기가 어떤 면에서 좋은지를 잘 보여...

PHP 자바스크립트 언어 2015.04.14

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.