Home > 열린마당 > 공개SW 소식

공개SW 소식

2018년 소프트웨어 개발 전망 10가지

OSS 게시글 작성 시각 2018-01-09 10:17:49 게시글 조회수 2312

2018년 01월 06일 (토)

ⓒ ITWorld, Siddhartha Agarwal | InfoWorld
 

2018년은 개발자들에게 설렘과 걱정이 줄다리기를 하는 한 해가 될 것이다. 한편으로는 블록체인, 챗봇, 서버리스 기술, 머신러닝 등 신기술 관련 제품과 툴이 실용화될 수 있을 만큼 성숙해지겠지만, 다른 한편으로는 더 빠르고 안전하게 코드와 기능을 제공할 수 있어야 한다는 기대치 및 압력이 개발자를 짓누를 것이다. 하지만 이러한 압박 속에서도 희소식은 있을 것이다.

2018년은 개발자들에게 있어 새로운 기회에 대한 희망과 더 나은 퀄리티의 작업을 해내야 한다는 압박 간의 팽팽한 줄다리기로 포문을 열 것으로 기대된다. 이러한 상반된 힘들이 어떤 식으로 작용하며 개발자들에게 어떤 영향을 미칠 것인지 살펴 보자.

 
jpeter2 (CC0)

1. 블록체인을 활용한 B2B 거래의 상용화.
블록체인 기반 거래가 갖는 보안, 신뢰성, 효율성 측면의 강점에 대한 기업의 관심이 커지고 있다. 올 한해는 금융 서비스, 제조 공급망 등 다양한 영역에서 블록체인 활용 사례가 등장할 것이다. 블록체인은 상호 신뢰성을 보장할 수 없는 기관들 간에 매개자 없이도 안전하고 효율적이며, 항시적이고 신용할 수 있는 거래를 가능하게 하는 기술이다.

한 기업이 해외의 제조업체로부터 특정 제품을 주문하는 상황을 가정해보자. 이때 주문한 상품은 별도의 운송 업체를 통해 운반되고, 세관을 거친 뒤, 다시 국내 배송업체를 통해 주문 기업에 도착한다. 오늘날 이메일과 스프레드시트를 통해 이 모든 과정들을 증명, 조정하고 있으며, 그와 관련해 요구되는 인력 및 절차 역시 상당하다. 이와 달리 블록체인은 최소한의 관련자가 ‘이 거래를 증명한다’는 사실에 동의할 경우 해당 내용을 블록체인 원부에 영구적 기록으로 업데이트하는 방식으로 기존의 수동 프로세스, 조정 과정을 생략해준다.

블록체인 클라우드 서비스는 확장성과 탄력성, 보안의 새로운 관점을 제시하며, 기업 시스템과의 높은 사전 구축 통합 수준을 보장한다. 더불어 이를 통해 개발자들에겐 기반이 하이퍼레저 패브릭(hyperledger fabric) 실행에서 넘어 비즈니스 용례에 더 집중할 수 있는 계기가 마련될 것이다.

2. 고객 및 직원들과 실제 대화를 나누는 챗봇
날이 갈수록 사람들은 똑같은 작업을 하기 위해 여러 개의 앱을 따로 사용하는 불편함을 견디려고 하지 않을 것이다. 예컨대 항공편 체크인을 하고 티켓을 받기 위해 항공사별로 다른 앱을 사용해야 하는 경우처럼 말이다. 이런 불편함을 없애는 가장 좋은 방법 중 하나는 스마트폰에서 가장 많이 사용하는 메시징 기능을 이용해 이러한 기능을 수행하는 것이다.

메시징 앱은 즉각적이고, 표현 및 대화 위주라는 점에서 매력적이다. 게다가 사용을 위해 별도의 교육을 받을 필요도 없다. 인공지능 및 자연어 처리 기술의 발달 덕분에 이제 페이스북 메신저, 슬랙, 위챗, 와츠앱, 또는 아마존 알렉사나 구글 홈과 같은 음성 어시스턴트 기술을 이용하여 인공 지능 봇에게 궁금한 것을 물어보고 대답을 들을 수 있게 되었다.

개발자들로써도 지능형 봇 제작 클라우드 서비스를 이용하여 고객의 의도를 이해하고 대화를 이어 나가며 백엔드 시스템과의 통합을 유지하는 봇을 단시간 내에 제작할 수 있게 되었다. 예컨대 영화에서 본 배우의 옷 사진을 자주 가는 옷 가게의 봇에게 메시지로 전송한다고 해보자. 이 봇은 이미지 인식 기술과 AI 기술을 활용하여 사용자가 본 옷과 비슷한 스타일의 옷을 추천해 줄 것이다.

이러한 봇의 활용은 직장인들에게도 좋은 일이다. 예를 들어 휴가까지 며칠이나 남았는지 물어보거나 헬프데스크에 도움을 요청할 때, 혹은 교체할 노트북을 주문할 때 봇을 이용할 수 있다. 인공 지능 봇은 해당 직원에게 딱 적합한 노트북 모델을 추천하기도 하고, 주문 상황을 지속적으로 업데이트하기도 할 것이다. 개발자들 입장에서는 아마도 처음 봇을 제작할 때는 같은 회사 직원들을 대상으로 한 봇을 제작해 실험할 확률이 높다. 실패를 하더라도 회사 내 다른 직원들을 상대로 한 실험에서 실패했을 때 훨씬 타격이 적을 것이기 때문이다.

3. 버튼 없는 세상 : AI를 통한 앱 인터페이싱
AI가 UI의 새로운 표준으로 자리잡아가고 있다. 이 새로운 인터페이스의 등장으로 앱과 서비스를 이용하는 기존의 동시적 요청-반응 모델은 점차적으로 사라져가게 될 것이다. 물론 현실의 스마트폰들은 여전히 사용자가 그것을 들어올려, 특정 앱을 실행하고 명령을 내려야 반응이 나타나는, ‘낮은 IQ’의 도구들이다. 반면 다음 세대의 지능형 앱들은 푸시 알림을 통해 사용자와의 상호작용을 스스로 개시할 수 있다. 그리고 여기에서 한발 더 나아가면 인공 지능을 갖춘 앱과 봇, 가상 비서들이 다양한 상황과 맥락을 고려해 자신이 해야 할 일을 스스로 찾는 모습을 경험할 수 있을 것이다. 여기 2가지 사례를 살펴보자.

- 사용자의 지출 보고서 승인 패턴을 분석해 자동으로 지출결의 의사결정을 내려주는 앱이 99%의 자체 승인 판단율에 도달한다. 해당 앱은 사용자의 검토가 요구되는 예외적 보고서들에 대해 수동 승인을 요청하는 방식으로 오류 위험을 최소화한다.

- 기존 데이터와 비즈니스 사용자들로부터 전달된 질문 이력, 기업 내 다른 사용자들로부터 전달된 질문 이력 등을 분석해 애널리스트에게 미처 생각하지 못한 시각을 제시하는 애널리틱스 앱이 서비스된다. 조직이 수집하는 데이터의 규모가 커질수록, AI가 해당 데이터에 대해 던지는 질문의 수준 역시 향상될 수 있다.

이제 개발자에겐 개발하고자 하는 비즈니스 앱에 필요한 데이터가 무엇인지, 이뤄지는 거래들로부터 어떤 시각을 이끌어낼지, 이러한 예측적 AI가 도출해낸 정보에 기반해 가장 유효한 비즈니스 의사결정은 무엇인지를 파악하고 실험할 수 있어야 한다. 내장 AI는 사용자가 필요로 하는 바를 사전에 예측하고 그에 적합한 수단을 통해, 최적의 시점에 알맞은 기능성을 전달하며, 현재 수동으로 진행하는 많은 작업을 자동화한다.

 

4. 특정 분야에 전문성을 띈 실용적 머신러닝 앱의 등장
머신러닝은 이제 과거의 추상적인 데이터 과학의 영역에서 주류 애플리케이션 개발 영역으로 넘어오고 있다. 유명 플랫폼들이 제공하는 사전 제작된 모듈의 가용성이 높아지고, 또 이들 모듈이 대규모의 데이터 세트를 분석할 때 아주 유용하다는 것이 증명되었기 때문이다. 머신러닝 기술에서 가장 가치 있고 중요한 인사이트는 맥락 정보가 있을 때 얻을 수 있다. 맥락 정보란 사용자의 과거 행적, 예전에 했던 질문들, 다른 사람들의 행위 패턴, 정상적 활동과 변칙적 활동의 구분 등을 말한다.

그러나 머신러닝 기술이 효용성을 갖기 위해서는 특정 전문 분야에 국한시킨 환경에서 교육과 조정 과정을 거쳐야 한다. 이런 학습 환경에는 머신러닝 기술이 분석하게 될 데이터 세트와 답하게 될 질문들도 포함되어야 한다. 예컨대 보안 애널리스트가 사용하는 머신러닝 애플리케이션은 변칙적인 사용자 행위 패턴을 식별해 내는 것을 목적으로 할 것이다. 반면 공장형 로봇의 운영 효율을 최적화 하기 위한 머신러닝 애플리케이션은 보안 목적의 애플리케이션과는 아주 다를 것이고, 이는 마이크로서비스 기반 애플리케이션의 의존도 맵핑을 하기 위한 머신러닝 애플리케이션과도 다를 수밖에 없다.

따라서 개발자들은 이러한 머신러닝 애플리케이션의 분야별 사용례를 숙지하고 있어야 할 것이다. 그래야만 어떤 데이터를 수집하고, 어떤 머신러닝 알고리즘을 적용할 것이며, 어떤 질문들을 던져야 할 지 알 수 있을 것이기 때문이다. 또한 특정 분야의 SaaS나 애플리케이션 패키지가 특정 프로젝트에 잘 맞는 것인지를 판단할 수 있어야 한다. 머신러닝 교육에 방대한 양의 교육 데이터가 필요하다는 사실을 고려한다면 말이다.

개발자들은 이제 머신러닝 기술을 이용하여 추천을 하거나 결과를 예측하고, 또 자동화 된 의사결정을 내려 줄 지능적 애플리케이션을 제작할 수 있게 될 것이다.

5. 데브옵스에서 노옵스로
개발자들의 신규 애플리케이션 및 기능 개발을 촉진하고, 품질 및 퍼포먼스 수준을 유지하는 데브옵스의 중요성은 이제는 보편적으로 받아들여지고 있다. 하지만 데브옵스라는 직무를 수행함에 있어 기존 개발 업무에 소요하던 시간 자원의 60% 가량을 운영 업무에 투입하게 되며, 결과적으로 개발 역량이 저하된다는 부분은 해결이 필요한 문제로 꾸준히 지적되어 왔다.

개발자에겐 다양한 지속적 통합 및 지속적 전달(CICD, Continuous Integration and Continuous Delivery) 도구들을 통합하고 그 통합 수준을 유지하며, 새로운 기술의 개발에 발맞춰 CICD 툴 체인을 지속적으로 업데이트하는 노력이 요구된다. CICD 중 CI(지속적 통합)는 모두가 신경 쓰고 있는 주제지만, CD(지속적 전달)까지 신경 쓰는 개발자는 많지 않은 것이 현실이다. 2018년 현업의 개발자들은 자신들의 ‘개발' 직무를 도와줄 조력자로 클라우드 서비스에 의지할 것이며, 진정한 CICD를 위한 더 많은 자동화가 요구될 것이다.

도커(Docker)는 사용자에게 패키징, 휴대성, 그리고 애자일 개발을 가능하게 하는 역량을 보장해주지만, 이러한 도커의 방식을 받아들이기 위해선 CD가 선행적으로 요구된다. 예를 들어 컨테이너를 사용 중인 상황에서 깃(Git)으로 코드 변경을 실행할 경우, 구축된 기본 구조는 새로운 코드 버전을 포함하는 도커 이미지가 되어야 한다. 나아가, 이 이미지는 자동적으로 도커 레지스트리 안으로 푸시되어야 하며, 해당 이미지로부터 배치된 컨테이너 역시 개발-테스트 환경 안으로 푸시 돼야 한다.

QA 테스팅 이후의 생산 배치, 조정, 보안 및 컨테이너 조정 과정은 모두 개발자의 관리 하에 놓여야 하는 과정이다. 개발자에게 더 빠르게 새로운 혁신을 요구하는 비즈니스 책임자라면, 개발 업무에 더 많은 시간을 보장해줄 수 있는 새로운 데브옵스 모델을 고민해야만 할 것이다.

6. 서비스형 모델이 주도하는 오픈소스 수요 확대
오픈소스 모델은 여전히 혁신의 가장 강력한 엔진이라 할 수 있지만, 이러한 혁신을 실제로 실행하고 유지하는 것은 보기보다 까다로운 일이다. 예를 들면 다음과 같은 과제들이 있다.

- 스트리밍 데이터/이벤트 관리 플랫폼이 필요해 카프카(Kafka)의 도움을 받고자 한다. 그러나 카프카를 이용하려면 부가적인 카프카 노드를 설정하고 카프카 클러스터를 로드해야 하며, 새로운 카프카 릴리즈가 나올 때마다 이들 클러스터를 업데이트하고, 또 이 서비스를 나머지 환경에 통합까지 해야 한다.

- 컨테이너 오케스트레이션에 쿠버네티스가 필요하다고 하자. 쿠버네티스 클러스터의 업그레이드, 백업, 저장 및 패치를 직접하는 대신 플랫폼에 이런 작업들을 맡겨버리면 된다. 쿠버네티스는 6주마다 릴리즈되기 때문에 플랫폼에 배치와 자체 치유가 필요하다.

- NoSQL 데이터베이스에 카산드라가 필요하다. 플랫폼 관리를 위해서는 카산드라 클러스터의 (점증적인, 또는 스케줄에 맞춘) 백업과 패칭, 클러스터링, 스케일링, 그리고 높은 가용성을 필요로 하게 될 것이다.

개발자들은 오픈소스에서 이러한 빠른 혁신을 실행하고, 운영 및 관리 측면에서 이들 기술을 관리하기 위해 점차 클라우드 서비스에 의존하게 될 것이다.


7. 본격적인 프로덕션 단계에 접어드는 서버리스 아키텍처
서버리스 아키텍처의 장점은 분명하다. 예컨대 특정 이벤트에서 자신의 코드에 대한 실행 수요가 있는 경우 인프라가 인스턴스화되고, 자신의 코드를 배치 및 실행하며 자신의 코드가 구동되는 시간에 대해서만 요금을 지불하면 된다. 예를 들어 비행편, 호텔, 렌트카 등을 예약 및 취소하는 여행 예약 기능을 만들려고 한다고 해 보자. 이들 각각의 활동들은 자바, 루비, 자바스크립트, 파이썬 등 각기 다른 언어를 이용하여 서버리스 기능으로 만들 수 있다. 자신의 코드로 구동되는 애플리케이션 서버는 필요하지 않다. 되려 이들 기능은 기능들은 필요할 때에만 인프라 상에서 인스턴스화되어 실행된다.

개발자는 여러 가지 서버리스 기능을 통합하여 복합적인 거래를 처리하는 과정에서 새로운 과제에 직면하게 된다. 이들 기능이 어떻게 하나로 묶일 것인지 설명하고, 분산 거래를 디버깅하며, 또한 체인 상 하나의 기능이 실패할 경우 어떻게 이에 대한 보상 거래를 창출하여 부적절한 변화 내용을 상쇄할 것인지 결정해야 한다. FN 프로젝트 같은 오픈소스 툴이나 클라우드 서비스는 프로그래밍, 디버깅 및 서버리스 기능의 라이프사이클 관리를 돕고 노트북이나 온프레미스 서버, 또는 클라우드 상에서 이들을 테스트할 수 있게 해 줄 것이다. 여기서 가장 중요한 것은 최대한의 이동성을 제공하는 서버리스 플랫폼을 선택하는 것이다.

8. 컨테이너, 새로운 기본값이 되다
개발 및 테스트 과정에서 컨테이너가 기본이 될 것이며, 애플리케이션 프로덕션 단계에서도 컨테이너는 아주 흔해질 것이다. 특히 오픈소스 혁신과 업계 표준은 컨테이너 보안, 관리 용이성, 오케스트레이션, 모니터링 및 디버깅 수준의 향상을 주도하게 될 것이다. 컨테이너는 마이크로서비스 아키텍처, 클라우드 네이티브 앱, 서버리스 기능, 그리고 데브옵스 등 현대적 개발 트렌드를 쌓아 올리는 데 필수적인 구성 요소로 기능하게 될 것이다.

그렇지만 컨테이너가 만능은 아니다. 예를 들어 통합 PaaS나 모바일 PaaS같은 보다 규범적인 클라우드 플랫폼이 필요한 경우에는 컨테이너가 소용 없을 것이다. 하지만 보다 고차원적 클라우드 서비스의 경우 컨테이너 상에서 구동될 것이며, 결국 이러한 예외적 사례들을 통해 룰을 증명해 낼 것이다.

또한 가치 높은 상용 온프레미스 소프트웨어를 위한 소프트웨어 라이선싱 모델들 역시 컨테이너 도입의 확산 트렌드를 수용할 수밖에 없을 것이다. 소프트웨어 가격 모델들 역시 컨테이너가 인스턴스화되고, 확장 및 축소됨에 따라 라이선스의 ‘온/오프’를 지원해야 할 것이다.

9. 자체 치유, 조정, 관리 능력을 갖춰가는 소프트웨어와 시스템들
오늘날의 개발자와 프로덕션 운영팀은 로그와 웹/앱/데이터베이스 성능 모니터링, 사용자 경험 모니터링, 설정에서 수집되는 온갖 데이터에 파묻혀 익사하고 있다. 나아가 이처럼 무수한 데이터 유형들은 각자의 사일로 안에 저장되고 있기 때문에 디버그 문제 등이 발생하면, 수많은 사람들의 참여가 필요해지곤 한다. 모두 지식 전달의 문제를 야기하는 특성들이다. 그 결과 개발자는 자신의 애플리케이션과 관련한 입출 내용과 설정해야 할 기준점, 처리를 위해 모니터링 해야 할 서버 환경 등을 생산 운영자에게 전달하는 데 시간을 소요해야 한다.

하나의 저장소에 로그부터 성능 지표, 사용자 경험, 설정 등 많은 양의 데이터를 집결시키고, 여기에 충분한 컴퓨트 용량과 머신러닝, 그리고 특정 목적을 위해 제작된 알고리즘 등을 적용하면 클라우드 기반 시스템의 관리 시스템이 성능/로그/설정 모니터링 과정을 더욱 쉽게 만들어 줄 것이다.

이런 클라우드 서비스는 트랜잭션을 관찰하고(이 덕분에 운영팀은 기준치를 관리하는 수고를 덜 수 있게 되었다), 트랜잭션과 관련된 서버 토폴로지를 자동으로 이해할 수 있다. 이처럼 비정상성 탐지를 통해 정상적 행위 패턴에서 벗어나고 있는 것을 식별하고 특정 트랜잭션 문제의 근본 원인이 되는 것을 나타내는 등 시스템 관리 문제 해결에 도움을 받을 수 있다.

개발자들은 애플리케이션을 개발할 때, 특히 지능형 관리 시스템 및 자체 관리 애플리케이션을 개발할 때 이런 자동화 기술을 어떻게 활용할 지 생각해 봐야 할 것이다.

10. 개발자의 새로운 아군이 되어 줄 고도로 자동화된 보안 및 컴플라이언스
지금껏 개발자들은 보안이나 컴플라이언스를 ‘다른 사람의 일,’ 또는 ‘코드 전달의 병목’ 정도로 여겼다. 하지만 머신러닝을 기반으로 SaaS 방식으로 전달되는 포괄적 보안 및 컴플라이언스 규제의 등장으로 이제 보안 및 컴플라이언스 문제는 개발과 밀접한 관계가 될 수밖에 없다. 고도로 자동화된 사이버 보안 기술은 개발 단계에 존재하는 잠재적인 보안 위험을 식별하고 치유하는 방향으로도, 또한 생산 과정에서 발생하는 지속적인 애플리케이션 및 환경 변화(공격 식별, 취약점 보완, 지속적 컴플라이언스 평가 등)에 기업의 보안 프로파일을 적응시키는 방향으로도 배치할 수 있다.

경우에 따라서는 이러한 보호 장치가 요구사항이 된다. 특히 지속적인 컴플라이언스 평가는 GDPR 및 기타 유사 규제의 전형적인 특징이 될 것이다. 개발자, 보안 전문가, 최종 사용자 모두 데브옵스 라이프사이클 전반에 걸쳐 더욱 강력하고 자동화된 보안 접근을 통해 많은 이득을 누리게 될 것이다.

 

 

 

※ 본 내용은 한국IDG(주)(http://www.itworld.co.kr)의 저작권 동의에 의해 공유되고 있습니다.
Copyright ⓒITWORLD. 무단전재 및 재배포 금지

 

[원문출처 : http://www.itworld.co.kr/news/107761]

맨 위로
맨 위로