구글 I/O까지는 아직 한 달 넘게 남았지만, 구글은 이미 안드로이드 O와 관련된 정보를 상당부분 공개한 상태다. 안드로이드 O가 배포 됐을 때 개발자들이 혼란을 겪지 않도록, 구글 측에서 이와 관련된 프리뷰를 미리 제공한 것이다.

최초 버전은 개발자들만을 위한 것으로써, 개발자 지원이 필요한 기능들에 주로 초점을 맞추고 있다. 추후 공개될 베타 릴리즈에는 좀 더 유저에게 초점을 맞춘 기능도 포함될 예정이다.

현재 공개된 기능 중 몇 가지가 개발자 옵션 및 시스템 UI 튜닝에 그치지 않고 메인 릴리즈에까지 포함될 지는 알 수 없지만, 새롭게 공개된 안드로이드 O를 탐색하면서 상당히 흥미로운 트릭들을 발견할 수 있었다. 그 중에서 특히 우리의 마음을 사로잡은 10가지 기능을 소개한다.

확 달라진 설정 앱



안드로이드 O 개발자 프리뷰에서 가장 눈에 띄는 변화는 설정 앱이다. 아이콘은 물론, 하나부터 열까지 싹 바뀌어 새롭고 스마트한 모습을 보여주었다. 사실 설정 앱의 변화가 너무나 훌륭했기 때문에 이러한 변화가 다른 앱들에도 확장되기를 바라는 마음도 들었다.

무엇보다 슬라이드 아웃 메뉴가 사라지고, 이전 페이지 방문을 위해서는 뒤로 가기 버튼을 사용하도록 했다. 상단부에는 파트너들로부터 차용해온 아이디어인 듯 한 제안 탭을 위치시켰다. 앱 구성 역시 더욱 합리적이면서도 조밀해졌다(예를 들어, 데이터 사용량과 와이파이가 네트워크 & 인터넷 메뉴로 한 데 묶이게 됐다). 덕분에 앱 탐색이 훨씬 쉽고 즐거워졌으며 훨씬 적은 검색으로도 필요한 정보를 찾을 수 있을 듯하다.

한층 깔끔해진 알림 바 



안드로이드의 알림바(notification shade)는 언제나 우리에게 애증의 대상이었다. 이런 사용자들의 마음을 캐치한 구글이 이번 안드로이드 O에서는 그 동안 문제점으로 지적 받았던 부분들을 대폭 수정, 개선했다.

우선 잔여 배터리 및 와이파이, SD 카드 상태 등 상태 바에 더 많은 아이콘을 추가했다. 별 것 아닌 것 같지만 매우 달가운 변화다. 또 알림에도 더 많은 기능을 추가했다. 특정 알림 메시지를 길게 꾹 누르고 있으면 해당 앱과 관련된 알림을 단순히 무음으로 하는 것이 아니라 아예 해제할 수 있게 변했다.

또 알림을 오른쪽으로 밀면 시계 아이콘이 나타나며 15분, 30분, 1시간 간격으로 스누즈 알람을 맞출 수도 있다. 이 역시 사소한 변화 같아 보이지만 이런 기능들이 추가됨으로 인해 여러 가지 알림이 뒤섞여 제대로 확인할 수 없는 상황을 방지해 준다.

알림 채널 기능



알림 바만 개선된 것이 아니다. 안드로이드 O에서 새롭게 추가된 알림 채널(notification channel) 기능 덕분에 단순히 알림을 받을지 말지만 결정하는 수준에서 벗어나 구체적으로 어떤 앱에서, 어떤 사항에 대한 알림을 받을 지도 선택할 수 있게 됐다.

ESPN에서도 원하는 채널을 선택할 수 있듯이, 알림 채널 기능을 활용하면 각 앱에서 어떤 알림을 받고 싶은지 선택할 수 있다. 예를 들어 메시지 앱의 경우 연락처에 등록된 이들로부터 온 메시지만 알림을 받을 수도 있고, 특정 시스템 프로세스에 대해서만 귀로 듣는 알림을 설정할 수도 있다. 안드로이드 O에서는 알림 채널 기능을 통해 알림 관리가 훨씬 더 용이해 질 것으로 예상된다.

더욱 안전해진 안드로이드 O



구글 베타나 최신 버전의 왓츠앱 등, 안드로이드 폰을 쓰다 보면 여러 가지 앱과 파일을 설치하게 된다. 구글은 그 동안 수 차례 안드로이드 업데이트를 통해 악성 앱 설치를 저지하려고 노력해 왔다. 안드로이드 O는 사용자의 폰을 이런 문제들로부터 더욱 안전하게 보호할 수 있을 것으로 기대된다.

안드로이드 O에서는 APK 파일이나, 미지의 소스로부터 최초로 앱을 설치할 시 파일 뿐만 아니라 앱 자체로부터 사용자가 승인을 내려야 설치가 가능해진다. 즉 사용자의 허가 없이 앱 혼자서는 그 어떤 파일도 설치할 수 없게 되며, 사용자가 모르는 사이에 핸드폰에 악성 멀웨어가 설치되는 일도 지금보다 훨씬 줄어들 것이다.

화면 속 화면



지난 해 누가(Nougat)가 상륙한 이후로 화면 속 화면(picture in picture, PIP) 기능은 안드로이드 TV 유저들의 사랑을 받아왔다. 안드로이드 O가 출시되면 이제는 이 기능을 핸드폰과 태블릿에서도 사용할 수 있게 된다.

PIP이란 화면에 작은 윈도우를 띄워 다른 앱에서 다른 작업을 하면서도 재생중이던 동영상을 계속 볼 수 있게 해 주는 기능이다. 재생창은 확대하거나 닫지 않는 한 현재 작업중인 앱들 중 가장 위에 위치하게 된다. 현재 이 기능은 몇 가지 제약이 있는데, 우선 유튜브 앱에서만 사용할 수 있고, 탐색 바 키코드를 171로 설정해야만 하며, 이미지가 잘 맞지 않는 경우도 있다. 하지만 그럼에도 불구하고 폰에서도 놀라울 정도의 퀄리티를 보여준다.


아이콘 배지 기능



그 동안 iOS에서 단 하나 부러운 것이 있었다면, 그건 바로 아이콘 배지 기능이다. 이미 몇몇 론처(launcher) 및 제작자가 아이콘 배지 기능을 추가하려 시도했으나 구글은 아이콘 배지 기능 추가에 대해 번번히 부정적 태도를 유지해왔다. 지금까지는 말이다.

알림 설정 메뉴에 들어가면 각 앱 별로 ‘배지 보이기’ 토글이 생겼다. 이 메뉴를 통해 홈 스크린에서 읽지 않은 메시지 개수 등을 확인할 수 있도록 할 지를 설정할 수 있다. 아직까지 활성화 된 기능은 아니며(상기 이미지를 보면 LG G6에서 아이콘 배지가 어떻게 보이는지 알 수 있다), 이 기능을 사용하기 위해서는 상태바 알림을 항상 켜두어야 하지만, 그래도 일단 아이콘 배지 기능이 추가되었다는 사실에 만족한다.

네비게이션 바 기능 추가



LG G6와 같은 폰의 가장 큰 장점은 화면 하단 네비게이션 바에 기본적인 뒤로가기, 홈, 오버뷰 버튼 외에도 스크린 캡쳐나 알림 바 단축키 등 다른 기능을 추가할 수 있다는 것이다. 그런데 앞으로는 모든 안드로이드 기기에서 이것이 가능해 질 것으로 보인다.

아직까지는 시스템 UI 튜너에 국한되어 있는 기능이기 때문에 최종적으로 어떤 기능을 추가할 수 있을 지는 두고 봐야 한다. 지금까지 공개된 추가 가능한 기능으로는 클립보드 및 키보드 전환, (다양한 기능으로 연결될 수 있으며) +, -, 커서, 메뉴 아이콘 등으로 설정될 수 있는 키코드 기능 등이 있다. 또 레이아웃을 좌측 정렬 및 우측 정렬해 깔끔하게 정리하는 것도 가능하다. 그러나 구체적으로 어느 정도의 커스터마이징이 허용될지는 최종 릴리즈를 기다려봐야 알 수 있을 듯하다.

잠금 화면 단축 아이콘



잠금화면 상태에서 단축 아이콘을 통해 카메라 앱과 음성 비서를 열 수 있다는 사실은 누구나 다 알고 있지만, 다른 폰들과 달리 안드로이드에서는 유저가 자주 사용하는 다른 앱으로 단축 아이콘을 바꾸는 것이 불가능했다. 안드로이드 O에서는 잠금화면 단축 아이콘을 임의로 설정할 수 있게 된다.

시스템 UI 튜너에는 사용자가 원하는 앱으로 단축 아이콘을 변경할 수 있는 새로운 잠금화면 옵션이 추가됐다. 이 단축 아이콘은 단순히 앱에만 연결시킬 수 있는 것이 아니라 크롬에서 새 탭 열기, 셀카 찍기, 지메일 메시지 작성하기 등 여러 가지 기능에 연결시킬 수도 있다. 기존의 커스터마이징을 한층 더 매력적으로 바꾼 것으로 그 동안 경직되어 있었던 잠금화면에 유연함과 다양성을 더하게 될 것이다.

배터리 수명



핸드폰을 사용하며 가장 중요한 것 중 하나가 배터리 수명이다. 구글은 안드로이드 O를 통해 배터리 수명 문제 역시 개선할 것으로 기대된다. 운영체제를 통한 배터리 수명 개선에 있어 가장 필수적인 작업은 사용하지 않는 배경 앱 활동을 관리, 통제하는 것이다. 안드로이드 O는 백그라운드 앱들이 사용자 위치 정보를 요청하는 빈도와, 특히 배터리 소모가 심한 앱 활동 등을 제한하게 된다.

가시적인 변화도 있다. 상태 바의 배터리 아이콘 옆에 배터리가 몇 %나 남았는지를 숫자로 보여주기 때문에 훨씬 더 파악이 편리해졌다. 뿐만 아니라 상태 바에 배터리 세이버나 밝기 조절과 같은 유용한 배터리 절약 옵션들을 추가할 수 있게 됐다.

더욱 편리해진 자동완성 기능



자동완성(autofill) 기능은 웹사이트에 가입할 때마다 똑같은 주소, 똑같은 전화번호를 입력해야 하는 수고를 덜어주는 효자 기능이 아닐 수 없다. 하지만 크롬을 사용하지 않을 경우 패스워드 매니저 간에 호환이 되지 않거나, 저장된 데이터와 통합 가능한 키보드를 사용해야 하는 등 자동 완성 기능을 사용하는 데 여러 가지 장애가 발생한다.

구글은 안드로이드 O를 통해 자동완성 API를 개방한다. 패스워드 매니저를 사용할 시 안전한 자동완성 방식을 패스워드 필드에 통합해 사용하는 앱에 빠르게 로그인 할 수 있게 된다. 이미 원패스워드(1Password)와 라스트패스(LastPass)가 구글의 자동완성 기능을 적용한 사례를 소개한 바 있는데, 믿기 어려울 만큼 편리하고 빠른 로그인이 가능했다. 자일비츠(AgileBits)의 말을 빌리자면, “여느 훌륭한 기술이 그러하듯, 마치 마법을 보는 듯했다.” editor@itworld.co.kr

원문보기: 
http://www.itworld.co.kr/t/62079/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C/104413?page=0,1#csidxaafba6ce81c1d9396a06ab43807effe 



잠깐 멈추고 스마트폰이 간소화할 수 있는 일회성 작업에 대해 상기해보면 놀라울 것이다.

보증금 확인부터 녹음, 심지어 비행기 탑승권 확인까지 주머니에 들어가는 작은 컴퓨터는 생활을 정리하고 생산성을 돞는 기계가 되어가고 있다. 우리의 휴대폰은 상당히 많은 것을 할 수 있으며, 필자는 모든 사람들이 이 휴대폰의 잠재력을 백분 활용하길 바란다.

그 사례 중 하나는 휴대폰을 어디든 들고 다닐 수 있는 간단한 스캐너로 사용하는 것이다. 구글은 실제로 종이 문서를 스캔하고 관리하는 유용한 도구 2가지를 제공하고 있으며, 둘 모두 문서나 카드, 영수증 등을 저장하고 공유할 때 편하게 사용할 수 있다.

옵션 1 : 기본 문서 스캔
먼저 알아볼 안드로이드 스캐닝 방법은 이미 본인의 휴대폰에 있을 앱 안에 있다. 바로 구글 드라이브다. 드라이브는 스마트폰의 카메라를 통해 문서를 스캔하고 클라우드 스토리지 내에 PDF 파일로 저장할 수 있다. 드라이브 앱을 켜고 아래 오른쪽에 있는 + 아이콘을 누른 다음, ‘스캔’을 선택한다.

홈 화면에서 빈 영역을 길게 누르고, ‘드라이브 스캔’ 위젯을 추가한다면, 스캔 바로가기를 지정할 수도 있다. 안드로이드 7.1이나 액션 런처(Action Launcher)나 노바 런처(Nova Launcher)같은 다른 커스텀 런처를 사용한다면, 드라이브 아이콘을 길게 눌러서 스캔 바로가기를 선택할 수도 있다.



스캔을 선택하고 나면 일반 카메라 인터페이스가 나타난다. 종이를 편평한 곳에 놓고 뷰 파인더에 맞춘 후, 셔터버튼을 누른다.

여기서 추가 작업이 필요할 수도 있다. 어떤 이유에선지 가끔 드라이브는 문서를 이상하게 잘라서 스캔한다. 아마도 원하는 것은 아닐 것이다.

이를 수정할 수 있는 방법이 있다. 위쪽에 크롭 버튼(L 모양이 두 개 겹쳐있는 아이콘)을 누르면 문서의 가장자리를 사용자가 직접 조정할 수 있다.



조정을 다 했다면 이제 체크 모양 아이콘을 누르기만 하면 된다. 스캔이 완료되었고, 다시 체크 아이콘을 탭하면 드라이브 스토리지에 저장될 것이다. 그리고 이 PDF를 이메일이나 메신저, 다른 방법으로 공유할 수 있다.

옵션 2 : 텍스트를 인지하는 지니
안드로이드를 이용한 스캔의 두 번째 방법은 계속 진화하는 구글 킵(Google Keep)을 이용하는 것이다. 구글 킵은 특히 스캔한 문서에서 문자를 추출해 일반 텍스트로 저장해준다.

구글 킵을 열고 오른쪽 아래의 카메라 아이콘을 탭한 다음 문서를 사진으로 찍으면 된다. 촬영한 이미지를 열고, 상단에 점 세 개로 된 아이콘을 누르면 ‘이미지에서 텍스트 가져오기’라는 메뉴가 있다. 종이 문서에 적힌 모든 문자가 텍스트로 저장된다. (단 한글은 인식하지 못한다.)



지난 몇 년간 우리는 사무실 내의 커다란 스캐너로 스캔을 했다. 하지만 언제나 이용 가능한 것도 아니고, 편하지도 않다. 이동 중에 빠르게 스캔을 해야 한다면, 이 기사에서 언급한 두 방법이 도움이 될 것이다. editor@itworld.co.kr

원문보기: 
http://www.itworld.co.kr/t/62079/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C/105684#csidx555fb3d69489eeebd0fe9a9cb8ecfe5 






애플의 마법 같고 혁신적인 신형 아이폰 8과 아이폰 8 플러스, 아이폰 X가 공식 발표됨에 따라, 이제 iOS 11을 처음 제대로 살펴보게 되었다. iOS 11는 애플에서 나온 가장 진보되고 아름다우며 놀라운 소프트웨어이다. 그 전에는? 물론 iOS 10이 그랬다.

무슨 이야기인지 짐작할 것이다. 그동안 주요 모바일 운영체제가 새로 출시될 때마다 애플의 iOS와 구글의 안드로이드 중에서 어느 것이 더 나은가? 어느 쪽이 이번 모바일 운영체제 싸움의 승자가 될 것인가? 대체 어느 쪽이 최고인가? 와 같은 질문이 극심한 논쟁의 대상이 되곤 했다.

필자가 이 글을 통해 솔직하게 진실을 밝히겠다. 어리석고 선정적인 토론 주제가 되어 버린 질문에 대한 진정성 있는 답변이다. 들을 준비가 되었는가? 놀라지 말라. 그리고 가장 극적으로 ‘말도 안돼!’라는 탄성을 내지를 준비를 하라.

이 시점에서는 그 어느 쪽 운영체제도 태생적으로 “더 낫다”고 할 수 없다. 그 어느 쪽 회사도 애플 iOS 11과 구글 안드로이드 8.0 오레오(Oreo) 간의 “경쟁”에서 절대적인 “승리”를 거두지 못한다. 그 어느 쪽 모바일 소프트웨어 옵션도 누구에게나 “최고”는 아니다. 실제로 현실적으로는 그렇게 이분법적으로 호전적인 방식으로 플랫폼을 생각하는 사람은 거의 없다.

자, 거짓말은 하지 않겠다. 필자는 과거에 iOS와 안드로이드 비교 기사를 쓸 만큼 썼다. 그러나 대부분은 6~7년 전에 쓴 것이다. 당시 모바일 기술 지형은 오늘날 우리가 알고 있는 것과는 크게 달랐다. 당시에는 아이폰을 사용하는 것과 안드로이드 기기를 사용하는 것은 그 차이가 어마어마했다. 두 운영체제는 자신의 정체성을 규정하고 신규 사용자를 끌어들이기 위해서 경쟁하고 있었다. 아직 특정 플랫폼에 마음을 굳히지 않아서 어느 쪽이든 끌려갈 수 있는 사람들이 수 없이 많았다. 두 운영체제는 형태와 기능 면에서 모두 서로 크게 달랐다.

믿거나 말거나 당시에는 안드로이드가 약자였다. 두 자리 수 시장 점유율도 버거웠다. 대부분의 전문가들은 여전히 구글의 모바일 시장 진출 성공이 반짝 하다 말 것으로 여기고 있었다. 급상승 중인 애플의 성배에 절대 도달할 수 없는 소규모 게임으로 본 것이다. 동시에 안드로이드는 새로 출시될 때마다 아우성치는 함성처럼 느껴졌다. 너무도 강력한 가능성들이 모여 있어서 도저히 이를 무시한 채 단추를 끝까지 채우고 터틀넥을 입은 애플 제품에만 집중할 수는 없었던 것이다.

지금은 사정이 조금 달라졌다. 모바일 기술 세계에서 6~7년은 영원에 가까울 정도로 긴 시간이다. iOS와 안드로이드는 이제 더 이상 가상의 운동장에서 서로 치고 받는 허접한 어린아이들이 아니다. 이제 (거의) 성숙한 어른이다. 자신의 위치에 대해 자신감이 있으며 서로의 장점을 모방하는 것을 아무렇지도 않게 생각한다(모방이 더 좋을 때도 있지만 별로 그렇지 않은 경우도 있다). 생각해 보자. iOS 출시 때 “안드로이드를 따라했다!”는 말이 나오지 않은 적이 있었던가? 마찬가지로 안드로이드 출시 때 “애플을 따라했다!”는 식의 말은 꼭 나오곤 했다.

그런데 여기에 아무도 이야기하고 싶어하지 않는 비밀이 있다. 2017년에 대부분의 사람들이 아이폰이나 안드로이드 기기를 선택할 때의 기준은 최신 운영체제 업데이트에 도입된 기능이나 인터페이스 개선점이 아니라는 점이다. “이야! 안드로이드 오레오 판에는 PIP(picture-in-picture) 지원이 더 잘 돼. 게다가 다시 알림 시스템도 꽤 훌륭하고 말이지. 이제 아이폰은 버리고 안드로이드 폰을 사야겠다!"라고 생각하는 사람은 별로 없다.

요즘 대부분의 사람들은 기기 ‘주변’의 생태계, 즉, 자신이 투자하고 사용에 익숙해진 앱, 액세서리, 인터페이스, 서비스에 대한 생각을 더 많이 하는 경향이 있다. 물론 가끔씩 아이폰에서 안드로이드로 아니면 안드로이드에서 아이폰으로 갈아타는 사람들은 있지만 어느 한 플랫폼이 앞서 나가서 어떤 업데이트와의 “싸움에서 승리”했기 때문에 폰을 바꾸는 경우는 드물다고 해도 무방하다.

예전에 있었던 맥과 윈도우 비교 논쟁과 마찬가지로 iOS와 안드로이드 비교 문제도 거의 개인 취향 문제로 발전했다. 각 플랫폼은 하루 종일 연결되어 생산성을 유지하는 데 아무런 문제가 없으며 다른 플랫폼에 비해 장단점을 골고루 갖고 있다. 결국 어떤 종류의 경험, 생태계, 하드웨어에 선호도가 있거나 익숙하느냐 하는 문제로 귀결된다.

한 단계 더 나아가 보자. 구체적으로 iOS 11과 안드로이드 8.0을 비교하면 진정한 승자는 바로 바보같이 웃으면서 두 가지 모바일 기술 플랫폼 ‘모두’에서 나온 제품을 가지고 다니는 우리들이다. 왜냐고? 모바일 기술의 범위에 대해서 할 말들이 있겠지만 회사들이 자체 제품을 어쩔 수 없이 계속해서 발전시키는 것은 바로 경쟁 때문이다. 경쟁 덕분에 대기업들도 성공에 안주하지 않고 비용이 드는 발전을 마다하지 않는다. 구글과 애플이 끊임없이 서로를 따라잡으려 하고 한 걸음 앞서나갈 새로운 방법을 강구하게 하는 것이 경쟁이다.

결국 그것이 이 싸움의 본질이다. 그리고 그것이 단순히 댓글 전쟁을 일으키고 개인 취향을 정당화할 목적으로 억지로 만들어 낸 그 어떤 시합보다 훨씬 더 의미 있다. editor@itworld.co.kr

원문보기: 
http://www.itworld.co.kr/t/62079/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C/106436#csidx461a14d9e3da4a88972ff4cb7fefa0a 





구글의 고(Go) 언어는 야생에서 8년 이상을 보내면서 컴퓨터 고수의 ‘호기심’ 대상에서 세계에서 가장 중요한 클라우드 중심 프로젝트의 핵심 프로그래밍 언어로 진화했다. 도커와 쿠버네티스(Kubernetes) 같은 대단한 프로젝트의 개발자가 고를 선택한 이유는 무엇일까? 고의 결정적인 한 방은 무엇이며, 다른 프로그래밍 언어와 어떻게 다르고, 어떤 종류의 프로젝트를 구축할 때 사용하는 것이 좋을까? 고의 기능과 최적의 용도, 언어에서 생략된 것과 한계, 그리고 고의 미래를 살펴보자.



가볍고 단순하다

고는 종종 ‘고랭(Golang)’라고도 불린다. 구글 직원이자 오랜 유닉스 전문가이며 구글의 탁월한 엔지니어인 롭 파이크가 핵심 개발자다. 그러나 엄밀하게 말해서 ‘구글 프로젝트’는 아니다. 오히려 오픈소스 커뮤니티를 중심으로 고가 어떻게 사용돼야 하고 앞으로 어떤 방향으로 발전해야 할지 논의되고 결정된다.


고는 배우고 작업하기 쉬우며 다른 개발자가 이해하기 편하게 만들어졌다. C++ 같은 언어와 비교하면 기능이 다양하지는 않지만, 구문의 형태는 C와 비슷하므로, C 개발자는 비교적 쉽게 배울 수 있다. 고의 많은 기능 중 고의 동시성(Concurrency: 병행성)과 함수형 프로그래밍 등을 보면 얼랭(Erlang) 같은 언어와도 비슷한 점이 많다. 또한, 고는 온갖 종류의 기업용 크로스 플랫폼 애플리케이션을 개발하고 유지보수하는 데 적합하다는 점에서 C 혹은 자바와 유사하다. 어디서나 실행할 수 있는 고속 코드를 개발할 수 있다는 점은 파이썬과 비슷하다(물론 비슷한 점보다 다른 점이 훨씬 더 많다).



모두를 위한 언어

고 개발 사이트의 문서를 보면, 고는 “동적으로 타입을 지정하고 인터프리트 언어 못지 않게 빠르며, 정적으로 타입이 지정되는 컴파일 언어”다. 대형 고 프로그램도 몇 초만에 컴파일할 수 있고 C 스타일의 인클루드 파일과 라이브러리의 오버헤드도 상당 부분을 없앴다. 한마디로, 고는 여러 가지 방면에서 개발자를 편하게 만들어 준다. 고의 주요 특징을 정리하면 다음과 같다.


편리성 : 고는 여러 가지 공통 프로그래밍 필요사항을 충족한다는 점에서 파이썬 같은 스크립트 언어와 비교된다. 동시성과 쓰레드 같은 행태를 보이는 ‘고루틴(goroutine)’ 기능 중 일부는 언어 자체에 내장돼 있으며, 추가 기능은 고의 http 패키지 같은 표준 라이브러리를 통해 사용할 수 있다. 또한, 파이썬과 마찬가지로 가비지 컬렉션(Garbage Collection)을 포함해 자동 메모리 관리 기능을 지원한다.


고는 매우 빠르게 실행되는 네이티브 라이브러리(Native Library)로 컴파일된다. C나 C++와 비교해도 빠른 수준이어

서, 마치 컴파일 언어가 아니라 스크립트 언어로 작업하는 것처럼 느껴질 정도다. 더 나가서, 고의 빌드 시스템은 다른 컴

파일 언어보다 덜 복잡하다. 고 프로젝트를 구축하고 실행하려면 몇 가지 단계와 정리만 거치면 된다.


속도 : 고 바이너리는 C 바이너리보다 조금 늦게 실행되지만 그 속도 차이는 애플리케이션 대부분에서 무시할 정도다. 고

의 성능은 거의 모든 작업에서 C만큼 빠르다. 자바스크립트와 파이썬, 그리고 루비 등 빠른 개발 속도로 알려진 다른 언어와 비교하면 훨씬 더 빠르다.


이식성 : 고 툴체인(Toolchain)을 사용해 생성한 실행 파일은 기본적으로 외부 종속성 없이 단독으로 실행할 수 있다. 다양한 운영체제와 하드웨어 플랫폼에서 고 툴체인을 사용할 수 있으며, 여러 플랫폼에 걸쳐 바이너리를 컴파일할 수도 있다.


상호운용성 : 고로 소프트웨어를 만들면 하부 시스템에 대한 제한 없이 실행할 수 있다. 외부 C 라이브러리와 통신하거나 네이티브 시스템을 호출할 수 있기 때문이다. 예를 들면, 도커에서 컨테이너를 사용할 경우 시스템 수준(Low-level)의 리눅스 함수, cgroup(컨트롤 그룹), 그리고 네임스페이스(namespace)와 인터페이스 등을 할 수 있다.


지원 : 고 툴체인은 리눅스, 맥OS는 물론 윈도우 바이너리나 도커 컨테이너에서 자유롭게 사용할 수 있다. 레드햇 엔터프라이즈 리눅스(RHEL)와 페도라(Fedora) 같은 여러 유명 리눅스 배포판에도 기본으로 포함돼 있으므로, 이런 플랫폼에서 고 소스를 간편하게 배포할 수 있다. 마이크로소프트 비주얼 스튜디오 코드부터 액티브스테이트(ActiveState)의 코모도(Komodo) IDE에 이르기까지 여러 서드파티 개발 환경이 고를 지원한다.



고의 미래

고는 현재 갈림길로 서 있다. 다음 단계는 고를 사용하는 개발자의 요구와 필요 요건이 더 많이 반영될 가능성이 크다. ‘고’ 수호자의 고집이 고의 미래를 결정하는 대신, 실제 고 사용자를 확대하기 위해 언어를 수정해 나갈 것이다. 본래 의도와는 다소 차이가 있을수 있지만 결국 형식 매개 변수 기능이 추가될 것이라는 전망이 나오는 것도 이 때문이다.


실제로 ‘고랭’ 개발자의 요구는 명확하다. 2016년 고랭 사용자 설문 조사에서 “어떤 것이 가장 필요할까?”라는 질문에 형식 매개 변수가 압도적 1위를 차지했다. 이어 종속성과 패키지 관리 개선이 뒤를 이었다. 이러한 변화를 도입하면 현재 자바, 자바스크립트, 파이썬이 장악한 엔터프라이즈 개발 분야에서 고의 입지가 더 단단해질 것이다.


그러나 이러한 큰 폭의 변화가 없다고 해도 인프라 재구축이나 멀티 언어 프로젝트용 개발 언어로 고는 점점 더 많이 사용될 것이다. 시스템 프로그래밍용으로 고를 활용한 대표적 사례가 에토스(Ethos)다. 안정성을 극대화한 소프트웨어 플랫폼용 운영체제로, 커널은 C로 작성됐지만 사용자 공간(userspace) 애플리케이션은 고로 개발될 예정이다. 고의 강점을 활용하는 동시에, C에 적합한 것은 C에 맡기는 현명한 절충인 셈이다.


고 툴체인 관련 서드파티 개발 성과도 급속히 늘고 있다. 액티브스테이트의 액티브고 (ActiveGo)는 고랭의 상용 버전을 제공하고, LLVM과 gccgo 등 2개 프로젝트는 대체 툴체인을 통해 자유롭게 라이선스되는 오픈소스로 제공된다.


고가 진화하는 또 다른 방식은 전혀 새로운 언어를 만드는 기반으로 쓰이는 것이다. 한 예가 헤브(Have) 언어이다. 헤브는 고에서 많은 아이디어를 차용했으며 쉬운 실행을 위해 고로 트랜스파일(Transpile)되지만, 고 구문을 간소화하고 몇 가지 개념을 자신만의 독특한 방식으로 재구성했다. 이밖에 오덴(Oden)이라는 프로젝트도 있다. 리스프(Lisp)와 하스켈(Haskel)에서 영감을 얻은 새 언어를 컴파일하는 데 고 어셈블러와 툴체인을 사용한다. 그러나 안타깝게도 현재는 개발이 중단된 상태다.


이밖에 진정한 혁신을 이루는 또 다른 방법도 있다. 즉, 더 많은 개발자가 고를 샅샅이 살펴 초기 개발팀이 의도하지 않았던 새 쓰임새를 찾는 것이다. 해킹이 가능한 프로젝트로서 고랭의 미래는 이제 막 시작됐다. 동시에 주요 언어로써 고의 장래는 매우 밝으며, 특히 유지보수가 가능한 확장성 있는 인프라를 쉽게 개발하고자 한다면 고의 속도와 단순성을 거부할 수 없을 것이다. 특히 클라우드에서 고의 매력은 치명적이다.

+ Recent posts