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.

"성능 최대 20% 향상" 구글, '고' 1.19 버전 공개

구글이 ‘고(Go)’ 프로그래밍 언어의 최신 버전을 선보였다. 이번 업데이트는 최근 추가된 제네릭을 개선하고, 향상된 메모리 모델을 선보였다. 지난 8월 2일(현지 시각) ‘고 1.19’이 공개됐다. 개발팀에 따르면 제네릭 개발은 해당 커뮤니티에서 제기된 몇 가지 문제 그리고 성능 개선(일부 제네릭 프로그램에서 최대 20% 성능 향상)을 해결하는 데 초점을 맞췄다. 제네릭 기능들은 지난 3월 출시된 고 버전 1.18에서 도입됐다.    아울러 고 메모리 모델은 동기화/원자 패키지 동작을 명시적으로 정의한다. 동기화 알고리즘을 구축하기 위한 저수준 원자 메모리 기본 요소도 제공한다. 발생 이전(happens-before) 관계의 공식 정의는 C, C++, 자바, 자바스크립트, 러스트, 스위프트에서 사용되는 메모리 모델에 맞게 수정됐다. 기존 프로그램을 영향을 받지 않는다고 개발팀은 전했다.  메모리 모델 업데이트 외에도 atomic.int64 및 atomic.Pointer(T) 등 새로운 유형이 동기화/원자 패키지에 지원돼 원자 값을 더 쉽게 사용할 수 있다. 고 1.19는 이곳(go.dev)에서 다운로드할 수 있다. 고 1.19의 기타 개선사항 및 새로운 기능은 다음과 같다.    가비지 수집기에 소프트 메모리 제한이 추가됐다. 이 제한을 통해 고 프로그램을 최적화해 메모리 양이 할당된 컨테이너에서 가능한 한 효율적으로 실행되도록 할 수 있다. 스택 카피라이팅을 줄이기 위한 코루틴 스택의 동적 크기 조정, 유닉스 시스템에서의 자동 추가 파일 설명자 사용, x86-64 및 Arm 64 상에서의 스위치 스테이트먼트용 점프 테이블, Arm64에서의 디버거 주입 함수 호출 지원이 지원된다.  메소드 선언의 형식 매개변수가 수정됐다. 기존 프로그램은 영향을 받지 않는다. 이제 문서 주석에서 링크, 목록, 제목 구문을 지원한다. 특히 대규모 API를 갖춘 패키지에서 명확한 문서 주석을 작성할 수...

고 언어 고랭 2022.08.05

구글 ‘고’ 언어, 제네릭 도입한 1.18 베타 버전 공개

구글 고(Go) 언어 개발팀이 제네릭(Generics) 기능을 추가한 고 1.18 베타 버전을 14일 공개했다. 지난 2012년 고 1.0 버전 출시 이후 가장 중요한 변화다.   고 1.18 베타 버전은 고 언어의 첫 번째 테스트 버전으로, 타입 매개변수를 사용하는 제네릭 코드를 지원한다. 제네릭 프로그래밍은 함수 및 데이터 구조를 제네릭 형태로 표현할 수 있는 향상된 기능이다. 코드를 공유하고 프로그램을 더 쉽게 만들 수 있는 빌딩 블록을 제공한다. 고 개발팀은 중요한 기능이 추가됐을 때 새로운 버그가 발견되는 것은 흔한 일이라고 경고했다. 제네릭 기능도 예외는 아니다. 따라서 개발자는 고 베타 버전에서 제네릭 기능을 사용할 때 적절한 주의를 기울여야 한다. 특정 종류의 재귀적 제네릭 타입은 추후 지원할 예정이다.  개발팀은 일부 사용자들이 베타 버전에 매우 만족했다고 밝혔다. 지난 2019년 7월 개발팀의 블로그 포스팅에 따르면, 고는 제네릭 프로그래밍의 한 형태인 인터페이스 타입을 사용하고 있었지만 당시에는 고 개발자들이 원하는 기능을 완전히 제공하지 못했다. 제네릭 기능을 선호하는 개발자들은 예컨대 슬라이스 요소의 유형을 신경 쓰지 않고 리버스 같은 기능을 사용하고자 했다. 고 1.18 베타 버전은 홈페이지에서 다운로드할 수 있으며, 아직은 ‘불안정’ 단계다. 고 1.18 정식 버전은 오는 2022년 2월 출시될 예정이다. 제네릭 사용 지침서도 공개됐다. 릴리즈 노트에 따르면, 고 1.18에는 다음과 같은 기능도 추가된다.    무작위로 데이터를 입력해 프로그램 충돌이나 에러를 검사하는 퍼즈 테스팅(Fuzz Testing) 기능 개발자가 여러 가지 고 모듈을 동시에 사용할 수 있는 고 워크스페이스 모드. 대규모 프로젝트 개발 시 중요한 기능 컴파일러 플래그 같은 빌드 세부사항 기록하도록 go version -m 명령 기능 확장 GOAMD64 환경 변수에서 4가지 AMD64 아키텍처 버전 가운데 하나...

구글 제네릭 2021.12.17

고 언어 1.17 베타 버전 출시··· 코드 단순화 및 컴파일러 향상에 초점

구글이 개발한 오픈소스 프로그래밍 언어 고(G)의 차기 릴리스인 고 1.17이 베타 버전으로 출시됐다. 보안을 위해 코드를 단순화하고, 함수 인수(function argument) 전달에 초점을 맞추는 등의 변화가 이뤄졌다.   지난 10일 출시된 이번 베타 버전의 프로덕션 릴리스는 8월로 예정돼 있다. 릴리스 노트에 따르면 고 언어에 3가지의 작은 개선이 있을 예정이다. 코드 작성을 단순화해 unsafe.Pointer의 안전 규칙에 순응할 수 있도록 하기 위함이다. 주요 개선점은 다음과 같다.   타입 [ ]T의 s 표현 방식이 배열 포인터인 타입 *[N]T로 전환된다. 만약 그러한 전환의 결과가 a라면, 범위 내의 상응 인덱스가 동일한 기저 요소를 참조한다: &a[i] == &s[i] for 0 <= i < N. if len(s) 가 N보다 적을 경우, 이 전환에 패닉(panic)이 이뤄진다.   unsafe.Add: unsafe.Add(ptr, len)는 len을 ptr에 추가하고 업데이트된 포인터인 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 돌려보낸다.    unsafe.Slice: 타입 *T의 ptr 표현의 경우, unsafe.Slice(ptr, len)는 타입 []T의 슬라이스를 돌려보낸다. 타입 []T의 기저 어레이는 ptr에서 시작되며 그것의 길이와 용량은 len이다.  고 1.17은 스택보다는 레지스터를 사용해 함수 인수와 결과를 전달하는 새 방식을 도입한다. 64비트 x86 아키텍처 기반 리눅스, 맥OS, 윈도우에서 적용된다. 벤치마킹 결과, 약 5%의 성능 향상과 약 2%의 바이너리 사이즈 감소가 이뤄졌다고 구글은 밝혔다. 이 변경사항은 고 코드의 기능성에는 영향을 미치지 않지만, 호환성 가이드라인 외부...

고 언어 구글 2021.06.15

"러스트"와 "고"를 선택하는 방법

10년이 채 되지 않는 기간 동안 2개의 새로운 프로그래밍 언어가 엔터프라이즈 개발의 주요 언어로 부상했다. 구글에서 만들어진 고(Go), 모질라에서 탄생한 러스트(Rust)다. 2개의 언어 모두 현대 소프트웨어 개발의 필수 요소인 정교하고 통합된 툴체인, 메모리 안전성, 오픈소스 개발 모델, 강력한 사용자 커뮤니티를 제공한다. 이렇게 비슷한 부분을 제외하면 러스트와 고는 서로 극명하게 다른 언어다. 서로 다른 목적으로, 다른 요구를 해결하고 다른 종류의 프로그램을 작성하도록 만들어졌다. 따라서 러스트와 고를 비교할 때는 어느 언어가 '객관적으로 더 우수한가'가 아니라, 주어진 프로그래밍 작업에서 '어떤 언어가 더 적합한가'의 시각에서 봐야 한다. 이를 염두에 두고 러스트와 고의 주요 차이점과 각 언어가 적합한 작업의 종류에 대해 살펴보자. 성능 측면에서의 러스트 vs. 고  러스트의 대표적인 장점은 안정성, 사용의 용이함과 함께 성능인데, 이 가운데서도 성능을 가장 큰 장점으로 볼 수 있다. 러스트 프로그램은 메모리 취급 및 처리를 위한 러스트의 제로 코스트(zero-cost) 런타임 추상화 덕분에 C 및 C++와 대등하거나 거의 근접한 속도로 실행된다. 물론 러스트 프로그램도 어떻게 작성되느냐에 따라 느려질 수 있지만, 최소한 러스트는 안전이나 편리함을 위해 선택의 여지없이 성능을 희생하지는 않는다. 러스트의 비용이라면 개발자가 메모리 관리를 위한 러스트의 추상화를 배우고 마스터해야 한다는 점이다.  반면 고는 개발자 편의성을 위해 어느 정도의 런타임 속도를 희생한다. 메모리 관리는 고 런타임이 담당하므로 런타임 관련 오버헤드가 필연적으로 발생한다. 그러나 많은 시나리오에서 이 타협은 무시해도 되는 수준이다. 고는 프로그래머가 모든 객체에 대해 강력한 형식을 요구해야 한다는 작은 대가를 치르는 대신 기본적으로 파이썬(Python)과 같은 다른 편의성 중심 언어에 비해 몇 배 더 빠른 속도를 제공한다(파이썬의 편리성과 유연성에는...

러스트 Go 2021.03.16

"고"할 것인가 "파이썬"할 것인가, 비교 선택 가이드

개발자를 위한 사용 편의성과 개발 속도 향상 측면에서 가장 뛰어난 두 가지 프로그래밍 언어는 파이썬(Python)과 고(Go)다. 현재 파이썬은 스크립팅, 데브옵스, 머신러닝, 테스트의 중심이며 고는 새롭게 부상하는 컨테이너 기반, 클라우드 네이티브 컴퓨팅의 동력이다. 파이썬과 고 사이의 선택이 명확한 경우도 있다. 풍부한 생태계라면 파이썬, 실행 속도를 본다면 고를 선택하면 된다. 그러나 선택 기준이 항상 명확하지는 않다. 이번 기사에서는 당면한 작업에 적합한 언어를 선택하는 데 도움이 되도록 두 가지 언어의 주요 차이점과 장단점을 살펴본다.   개발자 편의성, 둘다 좋다  파이썬과 고는 사용 편의성 측면에서 모두 평판이 좋다. 두 언어 모두 간소하고 직관적인 구문을 사용하며 기억하기 쉬운 적은 수의 기능을 갖고 있다. 또한 파이썬과 고 모두 편집-컴파일-실행(edit-compile-run) 주기가 짧다. 인터프리터 언어인 파이썬은 컴파일 단계가 없으므로 거의 즉각 스크립트가 실행된다. 고는 사전 컴파일되지만 컴파일 속도가 C++와 같은 언어보다 훨씬 더 빠르다. 고는 작업하다 보면 사전 컴파일 언어보다 스크립팅 언어에 더 가깝게 느껴진다. 파이썬은 동적 형식 지정(dynamic-typing) 기능을 사용하므로 신속한 애플리케이션 프로토타이핑에 용이하다. 선택 사항인 형식을 사용한 라벨링으로 부가적인 프로그램 정확성을 기할 수 있지만(대규모 프로젝트에 유용) 필수는 아니다. 규모가 비교적 큰 코드베이스는 형식이 없으면 다루기 어려워질 수 있다. 고의 경우, 형식 지정이 엄격하지만 대부분의 경우 바로 추론되므로 다루기가 덜 번거롭다. 또한 고 프로그래머는 형식 사용 전통에 따르기 때문에 대규모 코드베이스를 관리하기도 기본적으로 더 쉽다. 반면 고에는 제네릭스(Generics)가 없어 파이썬을 포함한 다른 언어로 더 간결하게 표현 가능한 코드가 장황하게 늘어질 수 있다. 런타임 속도, 고가 훨씬 빠르다  고가 파이썬을 압...

Python ģȭ 2019.11.12

"고, 무엇에 좋은가" 고 언어의 기능과 제약, 그리고 발전 방향

구글 고(Go), 즉 고랭(Golang)은 출시 직후에는 컴퓨터 전문가를 위한 신기한 언어 정도였지만 9년이 지난 지금은 세계적인 여러 클라우드 중심 프로젝트의 기반 언어로 올라섰다. 도커, 쿠버네티스와 같은 프로젝트 개발자들이 고를 선택한 이유는 무엇일까? 고의 대표적인 특징은 무엇이고, 다른 프로그래밍 언어와 어떻게 다르며, 가장 적합한 프로젝트 종류는 무엇일까? 이번 기사에서는 고의 기능과 최적의 사용 사례, 없는 기능과 제약, 앞으로의 발전 방향을 살펴본다. 작고 간소한 고 언어 고랭이라는 별칭으로도 불리는 고는 오랜 유닉스 권위자이자 구글 특별 엔지니어인 롭 파이크를 중심으로 구글 직원들에 의해 개발됐다. 그러나 커뮤니티가 주축이 된 오픈소스 프로젝트이므로 엄밀히 말해 “구글 프로젝트”는 아니다. 주 개발진은 고의 사용 방법과 방향에 대해 확고한 의견을 갖고 고 프로젝트를 이끌었다. 고는 배우기 용이하고 사용하기 간단하며 다른 개발자가 읽기 쉬운 언어를 목표로 설계됐다. 특히 C++와 같은 언어와 비교하면 기능이 그렇게 많지는 않다. 구문은 C와 비슷해서 C 경험이 풍부한 개발자라면 비교적 쉽게 배울 수 있다. 또한 여러 기능, 특히 동시성과 함수형 프로그래밍 기능은 얼랭(Erlang)과 같은 언어를 연상시키기도 한다. 다양한 크로스 플랫폼 엔터프라이즈 애플리케이션을 빌드하고 유지하기 위한 C 유사 언어인만큼 자바와도 공통점이 많다. 또한 어디서나 실행되는 코드를 신속하게 개발할 수 있게 해준다는 점은 파이썬과 비슷하다. 다만 파이썬의 경우 유사점보다는 차이점이 훨씬 더 많다. 고 언어에는 모든 사람들을 위한 무언가가 있다 고 문서는 고를 “동적 타입의 인터프리트 언어처럼 느껴지는, 빠른 정적 타입의 컴파일 언어”로 설명한다. 용량이 큰 고 프로그램도 컴파일에는 몇 초 정도밖에 걸리지 않는다. 또한 고에는 C 스타일의 파일 및 라이브러리 포함 오버헤드가 거의 없다. 다음과 같은 고의 특징은 개발자가 한결 쉽게 작업할 수 있게 해준다. - ...

ģȭ 구글고 2019.10.18

구글 고 버전 1.12, 무엇이 달라졌나? 구 버전과의 비교분석

툴체인, 런타임, 라이브러리 구현이 변화된 구글 고(Go) 언어(고랭, Golang) 1.12 버전 베타가 공개됐다. 고 버전 1.12의 정식 출시는 2019년 2월로 예정돼 있다.   고 다운로드하기 고 프로젝트 사이트에서 고 정식 릴리스 버전을 다운로드할 수 있다.  컴파일러 툴체인에서 라이브 변수 분석 기능이 개선됐다. 이는 이전 릴리스에 비해 파이널라이저가 더 일찍 실행된다는 것을 의미할 수 있다. 문제가 된다면 개발자는 runtime.KeepAlive 호출을 추가하는 방법을 고려해야 한다.  가비지 수집기에는 드물게 충돌을 유발할 수 있는 알려진 문제점이 있다. 구글은 문제를 발견하면 보고해줄 것을 당부하고 있다. 문제 보고는 고 이슈 트래커에서 가능하다.   그 외에 고 1.12의 새로운 점과 변경된 점은 다음과 같다. •    GO111Module이 on으로 설정되면 go 명령은 모듈 디렉터리 외부의 모듈 인식 작업을 지원한다. 단, 이러한 작업이 현재 디렉토리의 상대 가져오기 경로를 확인하거나 mod 파일을 명시적으로 편집할 필요가 없는 경우에 한해서다. •    모듈을 다운로드해서 추출하는 여러 go 명령을 안전하게 동시 호출할 수 있다. 모듈 캐시(GOPATH/pkg/mod)는 파일 잠금을 지원하는 파일 시스템에 위치해야 한다. •    힙의 많은 부분이 살아있을 때 런타임의 스위핑 성능이 개선됐다. 이는 가비지 수집에 따르는 할당 지연을 줄여준다. •    특히 기존 힙 공간을 재사용할 수 없는 대용량 할당에 대해 런타임이 OS에 더 공격적으로 메모리를 해제해 돌려준다. 리눅스의 경우 이제 런타임은 OS에서 메모리가 넉넉하지 않을 때만 OS에 메모리를 풀어준다. •    코드의 경합 조건을 찾기 위한 고 경합 탐지기가 이제 리눅스 ARM64 아키텍처에서 지원된다...

프로그래밍언어 구글고 2018.12.28

구글 ‘고’ 언어 완벽 입문 가이드 - IDG Deep Dive

최근 가장 주목받는 언어를 꼽으라면 단연 구글 ‘고(Go)’다. 지난해 티오베 프로그래밍 순위에서도 가장 가파르게 순위가 올랐다. 올해로 8살이 된 이 언어는 컴퓨터 고수들의 ‘호기심’ 대상에서 이제는 세계에서 가장 중요한 클라우드 프로젝트의 핵심 프로그래밍 언어로 성장했다. 도커와 쿠버네티스 등 주요 프로젝트의 개발자가 고를 선택한 이유는 무엇일까. 고 언어의 매력과 입문자를 위한 핵심 사용법을 살펴보자. 앞으로 중·고급 개발자로 성장하는 데 필수적인 통합개발환경(IDE)과 편집기도 꼼꼼히 비교했다. Tech Trend 구글 ‘고’ 언어의 치명적 매력 How To 구글 ‘고’, 처음부터 제대로 쓰자 Tech Guide 구글 고를 위한 최고의 IDE와 편집기 

프로그래밍 개발자 2017.09.20

구글, 단순한 프로그래밍 언어 ‘고(Go)’ 공개

구글이 기존 애플리케이션 성능에는 영향을 끼치지 않고, 코딩을 쉽게 하도록 만든 새로운 프로그래밍 언어 ‘고(Go)’를 개발했다.   ‘고’는 지금까지 구글 내부에서 테스트되었으나, 아직 실험단계이기 때문에 구글은 오픈소스 코드로 공개해 개발자의 도움을 받아 더 발전시킨다는 계획이다.   구글의 수석 소프트웨어 엔지니어인 롭 파이크는 “지난 10년간 소프트웨어 개발이 얼마나 어려운지 깨달았기 때문에 고를 개발하게 됐다”라고 밝혔다.   고는 기존 프로그래밍 언어가 의존성(dependencies)을 관리하는 방법을 향상시키는 것을 목적으로 하는데, 의존성이란 애플리케이션에서 재사용하는 소프트웨어 컴포넌트로 라이브러리 같은 것이다. 파이크는 새로운 언어가 특히 멀티프로세서 작업을 잘 처리하도록 설계됐다고 설명했다.   구글은 약 2년 전부터 고 개발을 시작했으며 1년 전부터는 언어개발을 전담하는 팀을 투입했다. 원래는 웹서버, 스토리지 시스템, 데이터베이스 등 시스템 프로그래밍 언어를 염두에 두고 개발하기 시작했으나, 다른 영역에도 사용될 수 있다는 가능성을 보기 시작했다.   현재 고는 일반 사용자가 이용하는 어떤 구글 서비스나 애플리케이션에도 사용되고 있지 않다. 여전히 개발이 진행 중이기 때문인데, 파이크는 “우리는 더 좋은 라이브러리와 툴이 필요하며, 오픈소스 커뮤니티가 큰 도움을 줄 것이라고 생각한다”라고 말했다.   새로운 프로그래밍 언어를 개발함으로써, 구글은 컴퓨팅 영역에 대한 진출을 계속하게 됐다. 현재의 것을 더 좋게 만들자는 동기부여로 인한 것인데, 이는 안드로이드 모바일 운영체제나 크롬 브라우저 그리고 아직 공개되지 않은 크롬 운영체제의 개발로 이어지기도 했다. juan_perez@idg.com

구글 Go 프로그래밍언어 2009.11.11

회사명 : 한국IDG | 제호: ITWorld | 주소 : 서울시 중구 세종대로 23, 4층 우)04512
| 등록번호 : 서울 아00743 등록일자 : 2009년 01월 19일

발행인 : 박형미 | 편집인 : 박재곤 | 청소년보호책임자 : 한정규
| 사업자 등록번호 : 214-87-22467 Tel : 02-558-6950

Copyright © 2022 International Data Group. All rights reserved.