Offcanvas

��� ������

“고(Go) 개발자 4분의 1 이상이 ‘제네릭’ 사용한다”

고(Go) 개발자 설문조사 결과에 따르면 전체 응답자의 4분의 1 이상이 이미 ‘제네릭(Generics)’을 사용하고 있다.  지난 3월 고 프로그래밍 언어에 추가된 제네릭이 빠르게 채택되고 있다. 이는 9월 8일 발표된 ‘고 개발자 설문조사 2022 Q2 결과(Go Developer Survey 2022 Q2 Results)’에서 확인됐다.    전체 설문조사 응답자의 대다수(86%)가 고 1.18 릴리즈에 제네릭이 추가됐다는 사실을 알고 있었으며, 26%는 고 코드에서 이미 제네릭을 사용하기 시작했다고 밝혔다. 54%는 제네릭 사용에 개방적이지만 아직까진 특별히 필요하지 않다고 답했다.  한편 몇 가지 문제에 직면하고 있는 개발자도 있었다. 전체 설문조사 응답자의 8%는 제네릭을 쓰고 싶지만 현 제네릭 구현의 제한(30%), 린터 등의 도구 지원 제한(26%), 가파른 학습 곡선 및 문서 부족(12%)으로 제네릭을 사용하지 못하고 있다고 언급했다. 개발자들이 지적한 제네릭 구현의 문제에는 매개 변수화된 메소드의 부족, 타입 추론 개선 필요성, 타입 전환의 필요성 등이 있었다. 아울러 제네릭 구문이 사용하기 불편하다는 응답도 있었다.  2012년 출시된 이래 고 언어의 가장 중요한 변화로 꼽히는 제네릭은 개발자에게 사용 중인 특정 타입과 독립적인 코드를 작성할 수 있는 방법을 제공한다. 또 제네릭은 코드를 공유 및 재사용하고, 프로그램을 더 쉽게 구축할 수 있는 빌딩 블록을 지원한다.  회사에 따르면 2022 2분기 고 개발자 설문조사는 지난 6월 진행됐으며, 총 5,752명의 개발자가 참여했다. 이 밖에 다른 설문조사 결과는 다음과 같다.  • 전반적인 고 언어 만족도는 여전히 매우 높으며, 전체 응답자의 93%가 ‘매우 만족(63%)’ 또는 ‘어느 정도 만족(30%)’이라고 전했다. 불만족스럽다는 응답은 4%에 불과했다.  • 버그를 찾기 위해 입력을 지속적으로 조작하...

고 언어 고랭 제네릭 개발 언어 프로그래밍 언어

2022.09.19

고(Go) 개발자 설문조사 결과에 따르면 전체 응답자의 4분의 1 이상이 이미 ‘제네릭(Generics)’을 사용하고 있다.  지난 3월 고 프로그래밍 언어에 추가된 제네릭이 빠르게 채택되고 있다. 이는 9월 8일 발표된 ‘고 개발자 설문조사 2022 Q2 결과(Go Developer Survey 2022 Q2 Results)’에서 확인됐다.    전체 설문조사 응답자의 대다수(86%)가 고 1.18 릴리즈에 제네릭이 추가됐다는 사실을 알고 있었으며, 26%는 고 코드에서 이미 제네릭을 사용하기 시작했다고 밝혔다. 54%는 제네릭 사용에 개방적이지만 아직까진 특별히 필요하지 않다고 답했다.  한편 몇 가지 문제에 직면하고 있는 개발자도 있었다. 전체 설문조사 응답자의 8%는 제네릭을 쓰고 싶지만 현 제네릭 구현의 제한(30%), 린터 등의 도구 지원 제한(26%), 가파른 학습 곡선 및 문서 부족(12%)으로 제네릭을 사용하지 못하고 있다고 언급했다. 개발자들이 지적한 제네릭 구현의 문제에는 매개 변수화된 메소드의 부족, 타입 추론 개선 필요성, 타입 전환의 필요성 등이 있었다. 아울러 제네릭 구문이 사용하기 불편하다는 응답도 있었다.  2012년 출시된 이래 고 언어의 가장 중요한 변화로 꼽히는 제네릭은 개발자에게 사용 중인 특정 타입과 독립적인 코드를 작성할 수 있는 방법을 제공한다. 또 제네릭은 코드를 공유 및 재사용하고, 프로그램을 더 쉽게 구축할 수 있는 빌딩 블록을 지원한다.  회사에 따르면 2022 2분기 고 개발자 설문조사는 지난 6월 진행됐으며, 총 5,752명의 개발자가 참여했다. 이 밖에 다른 설문조사 결과는 다음과 같다.  • 전반적인 고 언어 만족도는 여전히 매우 높으며, 전체 응답자의 93%가 ‘매우 만족(63%)’ 또는 ‘어느 정도 만족(30%)’이라고 전했다. 불만족스럽다는 응답은 4%에 불과했다.  • 버그를 찾기 위해 입력을 지속적으로 조작하...

2022.09.19

어느덧 10년 훌쩍, ‘고(Go)’ 언어를 돌아보다··· 특징 및 전망

구글에서 개발한 인기 있는 프로그래밍 언어 ‘고(Go)’의 강점, 약점, 사용 사례, 앞으로의 발전 방향을 살펴본다.  구글의 프로그래밍 언어, 일명 ‘고랭’(2022년 3월 현재 버전 1.18)은 출시 당시 알파 긱에게 주목받는 신기한 언어 정도였지만 10년이 지난 지금 이는 중요 클라우드 프로젝트의 핵심 언어로 우뚝 올라섰다. 도커와 쿠버네티스 등의 프로젝트 개발자가 고를 선택한 이유는 무엇일까? 고의 대표적인 특징은 무엇이고, 다른 프로그래밍 언어와 어떻게 다르며, 가장 적합한 프로젝트 종류는 무엇일까? 여기서는 고의 특징, 최적 사용 사례, 없는 기능 및 한계, 앞으로의 발전 방향을 살펴본다.    작고 단순하다 고랭이라고도 불리는 고는 구글 엔지니어 롭 파이크를 중심으로 구글 직원들이 개발했지만 엄밀히 말하면 ‘구글 프로젝트’는 아니었다. 오히려 고는 사용법과 방향성에 강력한 의견을 가진 리더십이 주도하는 커뮤니티 기반의 오픈소스 프로젝트로 개발됐다.  고는 배우거나 사용하기 쉬운 그리고 다른 개발자도 읽기 쉬운 언어를 목표로 설계됐다. 그래서 C++ 같은 언어와 비교하면 기능이 그렇게 많지는 않다. 문법적으로는 C와 비슷해서 C 경험이 풍부한 개발자라면 비교적 쉽게 배울 수 있다. 또한 고의 동시성과 함수형 프로그래밍 기능은 얼랭(Erlang) 등의 언어를 연상시키기도 한다. 여러 크로스 플랫폼 엔터프라이즈 애플리케이션을 구축 및 유지하기 위한 C와 유사한 언어인 만큼 고는 자바(Java)와 공통점이 많다. 아울러 어디에든 실행할 수 있는 코드를 신속하게 개발할 수 있게 해준다는 점은 파이썬과 비슷하다. 다만 파이썬과 비교하면 유사점보다는 차이점이 훨씬 많다. 고 언어에는 모두를 위한 무언가가 있다 고 문서는 고를 “동적 타입의 인터프리터 언어처럼 느껴지는, 빠른 정적 타입의 컴파일 언어”라고 설명한다. 실제로 용량이 큰 고 프로그램도 몇 초 안에 컴파일된다. 또한 고는 파일 및 라이브러리 등 C 스타...

구글 고 언어 고랭 프로그래밍 언어 개발 언어 제네릭

2022.08.17

구글에서 개발한 인기 있는 프로그래밍 언어 ‘고(Go)’의 강점, 약점, 사용 사례, 앞으로의 발전 방향을 살펴본다.  구글의 프로그래밍 언어, 일명 ‘고랭’(2022년 3월 현재 버전 1.18)은 출시 당시 알파 긱에게 주목받는 신기한 언어 정도였지만 10년이 지난 지금 이는 중요 클라우드 프로젝트의 핵심 언어로 우뚝 올라섰다. 도커와 쿠버네티스 등의 프로젝트 개발자가 고를 선택한 이유는 무엇일까? 고의 대표적인 특징은 무엇이고, 다른 프로그래밍 언어와 어떻게 다르며, 가장 적합한 프로젝트 종류는 무엇일까? 여기서는 고의 특징, 최적 사용 사례, 없는 기능 및 한계, 앞으로의 발전 방향을 살펴본다.    작고 단순하다 고랭이라고도 불리는 고는 구글 엔지니어 롭 파이크를 중심으로 구글 직원들이 개발했지만 엄밀히 말하면 ‘구글 프로젝트’는 아니었다. 오히려 고는 사용법과 방향성에 강력한 의견을 가진 리더십이 주도하는 커뮤니티 기반의 오픈소스 프로젝트로 개발됐다.  고는 배우거나 사용하기 쉬운 그리고 다른 개발자도 읽기 쉬운 언어를 목표로 설계됐다. 그래서 C++ 같은 언어와 비교하면 기능이 그렇게 많지는 않다. 문법적으로는 C와 비슷해서 C 경험이 풍부한 개발자라면 비교적 쉽게 배울 수 있다. 또한 고의 동시성과 함수형 프로그래밍 기능은 얼랭(Erlang) 등의 언어를 연상시키기도 한다. 여러 크로스 플랫폼 엔터프라이즈 애플리케이션을 구축 및 유지하기 위한 C와 유사한 언어인 만큼 고는 자바(Java)와 공통점이 많다. 아울러 어디에든 실행할 수 있는 코드를 신속하게 개발할 수 있게 해준다는 점은 파이썬과 비슷하다. 다만 파이썬과 비교하면 유사점보다는 차이점이 훨씬 많다. 고 언어에는 모두를 위한 무언가가 있다 고 문서는 고를 “동적 타입의 인터프리터 언어처럼 느껴지는, 빠른 정적 타입의 컴파일 언어”라고 설명한다. 실제로 용량이 큰 고 프로그램도 몇 초 안에 컴파일된다. 또한 고는 파일 및 라이브러리 등 C 스타...

2022.08.17

고(Go) 1.19 출시 ··· “제네릭 코드 성능 최대 20% 향상”

구글이 ‘고(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.04

구글이 ‘고(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.04

“열에 아홉은 여전히 만족” 고(Go) 언어 개발자 설문조사

‘고(Go) 언어 개발자 설문조사 2021(Go Developer Survey 2021)’에 따르면 10명 중 9명 이상의 개발자가 고 언어 사용에 만족하는 것으로 나타났다. 기능 및 라이브러리 부족은 여전한 단점으로 지적됐다.    지난주 고 언어 개발자 설문조사 2021(Go Developer Survey 2021) 결과가 발표됐다. 구글에서 개발한 고 언어의 개발자 만족도는 매우 높은 수준을 유지하고 있지만 주요 라이브러리, 기능, 인프라 부족 등의 사용 장벽도 여전했다.  전체 응답자의 92%는 고 언어를 사용하는 것이 매우 또는 다소 만족스럽다고 밝혔다. 지난해 설문조사 결과와 동일한 수치다. 반면에 특정 프로젝트에서 이 언어를 쓰지 않는다고 답한 개발자의 39%는 그 이유로 필요한 기능 부족을 꼽았다. 라이브러리 부족(34%)이 그 뒤를 이었다. 물론 가장 많이 언급됐던 기능은 제네릭이었으나, 이는 설문조사 종료 이후(3월) 고 1.18에서 공식적으로 도입됐다.   이번 고 언어 개발자 설문조사는 2021년 10월 26일부터 11월 16일까지 3주 동안 진행됐으며, 총 참여 인원은 1만 1,840명으로 역대 최대 규모였다. 이 밖에 살펴볼 만한 다른 설문조사 결과는 다음과 같다.  • 모듈 사용 시 가장 큰 문제는 버전 관리, 개인 저장소 및 다중모듈 워크플로우 사용인 것으로 조사됐다. 하지만 고 1.18은 워크스페이스를 도입하면서 많은 문제를 해결했다고 고 언어 개발팀은 전했다.  • 고 언어의 주요 사용 사례에는 API/RPC 서비스(49%), 데이터 처리(10%), 웹 서비스(10%), CLI(8%) 등이 있었다.  • 전체 응답자의 절반은 고 언어 성능 최적화 및 프로젝트 디렉터리 구조의 베스트 프랙티스에 관한 추가 가이드라인을 원한다고 밝혔다.  • 리눅스에서 고 언어를 주로 사용하여 개발한다고 답한 비율이 2019년, 2020년, 2021년에 각각 66%...

프로그래밍 언어 개발 언어 고 언어 고랭

2022.04.27

‘고(Go) 언어 개발자 설문조사 2021(Go Developer Survey 2021)’에 따르면 10명 중 9명 이상의 개발자가 고 언어 사용에 만족하는 것으로 나타났다. 기능 및 라이브러리 부족은 여전한 단점으로 지적됐다.    지난주 고 언어 개발자 설문조사 2021(Go Developer Survey 2021) 결과가 발표됐다. 구글에서 개발한 고 언어의 개발자 만족도는 매우 높은 수준을 유지하고 있지만 주요 라이브러리, 기능, 인프라 부족 등의 사용 장벽도 여전했다.  전체 응답자의 92%는 고 언어를 사용하는 것이 매우 또는 다소 만족스럽다고 밝혔다. 지난해 설문조사 결과와 동일한 수치다. 반면에 특정 프로젝트에서 이 언어를 쓰지 않는다고 답한 개발자의 39%는 그 이유로 필요한 기능 부족을 꼽았다. 라이브러리 부족(34%)이 그 뒤를 이었다. 물론 가장 많이 언급됐던 기능은 제네릭이었으나, 이는 설문조사 종료 이후(3월) 고 1.18에서 공식적으로 도입됐다.   이번 고 언어 개발자 설문조사는 2021년 10월 26일부터 11월 16일까지 3주 동안 진행됐으며, 총 참여 인원은 1만 1,840명으로 역대 최대 규모였다. 이 밖에 살펴볼 만한 다른 설문조사 결과는 다음과 같다.  • 모듈 사용 시 가장 큰 문제는 버전 관리, 개인 저장소 및 다중모듈 워크플로우 사용인 것으로 조사됐다. 하지만 고 1.18은 워크스페이스를 도입하면서 많은 문제를 해결했다고 고 언어 개발팀은 전했다.  • 고 언어의 주요 사용 사례에는 API/RPC 서비스(49%), 데이터 처리(10%), 웹 서비스(10%), CLI(8%) 등이 있었다.  • 전체 응답자의 절반은 고 언어 성능 최적화 및 프로젝트 디렉터리 구조의 베스트 프랙티스에 관한 추가 가이드라인을 원한다고 밝혔다.  • 리눅스에서 고 언어를 주로 사용하여 개발한다고 답한 비율이 2019년, 2020년, 2021년에 각각 66%...

2022.04.27

“오는 3월 출시”··· 고(Go), 제네릭 도입한 1.18 두 번째 베타 공개

오는 3월 출시될 구글의 ‘고(Go)’ 버전 1.18은 지난 2012년 이 프로그래밍 언어가 공개된 이래 가장 중요한 변화를 도입한다.  제네릭(Generics) 기능을 추가한 ‘고 1.18’이 두 번째 베타 릴리즈로 이동했다. 한편 고 언어 개발팀은 정식 버전 출시를 당초 계획된 2월이 아닌 3월로 연기했다고 전했다. 고 1.18 릴리즈 캔디데이트는 2월 중 나올 예정이다.    개발팀에 따르면 지난 1월 31일 발표된 두 번째 베타 버전에서는 안정적인 최종 릴리즈를 위해 제네릭의 일부 버그가 수정됐다. 제네릭은 이 프로그래밍 언어가 출시된 이래 가장 중요한 변화로 불려왔다. 첫 번째 베타는 2021년 12월 14일 공개됐다. 이제 고 언어 서버 gopls 및 비주얼 스튜디오 코드 고 확장은 제네릭을 지원한다.  고 1.18 베타 1에서 매개변수화된 유형을 사용하는 제네릭 코드 지원이 포함됐다. 제네릭 프로그래밍은 함수과 데이터 구조를 제네릭 형식으로 표현할 수 있도록 하는 향상된 기능이다. 또한 제네릭은 코드를 공유하고 프로그램을 더 쉽게 빌드할 수 있는 빌딩 블록을 제공한다.  첫 번째 고 1.18 베타 버전은 가장 많이 다운로드된 고 베타였으며, 이전 베타보다 2배 많은 다운로드 수를 기록했다고 개발팀은 밝혔다. 기존 도구 체인과 함께 두 번째 베타를 설치하려면 다음을 실행해야 한다.      go install golang.org/dl/go1.18beta2@latest go1.18beta2 download 그다음 개발자는 코드 변환 없이 대체해서 더 좋은 성능을 낼 수 있는(drop-in replacement) ‘고 1.18 베타 2’를 실행할 수 있다. 자세한 다운로드 옵션은 이곳(https://go.dev/dl/#go1.18beta2)을 참조하라.  첫 번째 베타 릴리즈를 발표한 블로그 게시물에서 고 언어 개발팀은 중요한 기...

구글 고 언어 고랭 프로그래밍 개발 프로그래밍 언어 개발 언어 제네릭

2022.02.03

오는 3월 출시될 구글의 ‘고(Go)’ 버전 1.18은 지난 2012년 이 프로그래밍 언어가 공개된 이래 가장 중요한 변화를 도입한다.  제네릭(Generics) 기능을 추가한 ‘고 1.18’이 두 번째 베타 릴리즈로 이동했다. 한편 고 언어 개발팀은 정식 버전 출시를 당초 계획된 2월이 아닌 3월로 연기했다고 전했다. 고 1.18 릴리즈 캔디데이트는 2월 중 나올 예정이다.    개발팀에 따르면 지난 1월 31일 발표된 두 번째 베타 버전에서는 안정적인 최종 릴리즈를 위해 제네릭의 일부 버그가 수정됐다. 제네릭은 이 프로그래밍 언어가 출시된 이래 가장 중요한 변화로 불려왔다. 첫 번째 베타는 2021년 12월 14일 공개됐다. 이제 고 언어 서버 gopls 및 비주얼 스튜디오 코드 고 확장은 제네릭을 지원한다.  고 1.18 베타 1에서 매개변수화된 유형을 사용하는 제네릭 코드 지원이 포함됐다. 제네릭 프로그래밍은 함수과 데이터 구조를 제네릭 형식으로 표현할 수 있도록 하는 향상된 기능이다. 또한 제네릭은 코드를 공유하고 프로그램을 더 쉽게 빌드할 수 있는 빌딩 블록을 제공한다.  첫 번째 고 1.18 베타 버전은 가장 많이 다운로드된 고 베타였으며, 이전 베타보다 2배 많은 다운로드 수를 기록했다고 개발팀은 밝혔다. 기존 도구 체인과 함께 두 번째 베타를 설치하려면 다음을 실행해야 한다.      go install golang.org/dl/go1.18beta2@latest go1.18beta2 download 그다음 개발자는 코드 변환 없이 대체해서 더 좋은 성능을 낼 수 있는(drop-in replacement) ‘고 1.18 베타 2’를 실행할 수 있다. 자세한 다운로드 옵션은 이곳(https://go.dev/dl/#go1.18beta2)을 참조하라.  첫 번째 베타 릴리즈를 발표한 블로그 게시물에서 고 언어 개발팀은 중요한 기...

2022.02.03

젯브레인, 고 언어용 IDE ‘고랜드’에 제네릭 지원 예정

젯브레인(JetBrains)의 고(Go) 언어 개발자용 크로스 플랫폼 IDE ‘고랜드(GoLand)’가 고 언어를 대상으로 하는 제네릭 기능을 추가할 계획이다.    지난 8월 13일(현지 시각) 발표된 ‘고랜드 2021.3’ 로드맵에 따르면 제네릭 작업을 위한 코드 검사, 리팩토링, 인텐션 액션 등이 추가될 예정이다(‘고 1.18(Go 1.18)’이라는 소제목 아래에서 확인할 수 있다). 코드 공유를 강화하고 프로그램 구축을 용이하게 하는 기능인 제네릭은 올해 말까지 고 1.18 베타 릴리즈에 포함될 것이라고 언급된 바 있다.  또한 고 1.18 지원을 위해 젯브레인은 고랜드용 새 작업공간 모드를 도입하여 한 곳에서 여러 모듈에 걸쳐 변경사항을 구현할 수 있도록 할 계획이다.  이 밖에 고랜드 2021.3 로드맵에서 공개된 다른 기능은 아래와 같다.  • 특정 구성없이 윈도우에 있는 것처럼 프로젝트를 열고 작업할 수 있는 WSL(Windows Subsystem for Linux)에서 고 SDK(Go SDK)를 사용할 수 있는 기능이 추가된다.  • IDE 내부에 고 린터(go linters)가 통합된다.  • 디버깅의 경우 고랜드 2021.3에서는 필요하지 않을 때 객체 유형을 숨겨 CPU 소비를 최소화할 수 있게 됐다.    • 코드 편집에서 이 IDE는 선택, 삭제, 삽입, 업데이트 또는 생성 명령으로 시작하는 모든 문자열에 SQL을 삽입한다.  • 프로젝트별로 여러 언어 런타임 버전을 관리할 수 있도록 asdf 명령줄 도구가 지원된다.  • 더 많은 테스트 템플릿이 제공된다.  한편 젯브레인은 지난 7월 28일 ‘고랜드 2021.2’를 출시했다. 이곳(jetbrains.com)에서 다운로드받을 수 있으며, 30일 무료 체험판을 사용해볼 수도 있다. 고랜드 2021.2는 고 1.17 지원, 새로운 포맷 옵션, 버전 제어 시스템 추...

젯브레인 고랜드 IDE 고 언어 고랭 구글 제네릭 소프트웨어 개발 개발 도구

2021.08.23

젯브레인(JetBrains)의 고(Go) 언어 개발자용 크로스 플랫폼 IDE ‘고랜드(GoLand)’가 고 언어를 대상으로 하는 제네릭 기능을 추가할 계획이다.    지난 8월 13일(현지 시각) 발표된 ‘고랜드 2021.3’ 로드맵에 따르면 제네릭 작업을 위한 코드 검사, 리팩토링, 인텐션 액션 등이 추가될 예정이다(‘고 1.18(Go 1.18)’이라는 소제목 아래에서 확인할 수 있다). 코드 공유를 강화하고 프로그램 구축을 용이하게 하는 기능인 제네릭은 올해 말까지 고 1.18 베타 릴리즈에 포함될 것이라고 언급된 바 있다.  또한 고 1.18 지원을 위해 젯브레인은 고랜드용 새 작업공간 모드를 도입하여 한 곳에서 여러 모듈에 걸쳐 변경사항을 구현할 수 있도록 할 계획이다.  이 밖에 고랜드 2021.3 로드맵에서 공개된 다른 기능은 아래와 같다.  • 특정 구성없이 윈도우에 있는 것처럼 프로젝트를 열고 작업할 수 있는 WSL(Windows Subsystem for Linux)에서 고 SDK(Go SDK)를 사용할 수 있는 기능이 추가된다.  • IDE 내부에 고 린터(go linters)가 통합된다.  • 디버깅의 경우 고랜드 2021.3에서는 필요하지 않을 때 객체 유형을 숨겨 CPU 소비를 최소화할 수 있게 됐다.    • 코드 편집에서 이 IDE는 선택, 삭제, 삽입, 업데이트 또는 생성 명령으로 시작하는 모든 문자열에 SQL을 삽입한다.  • 프로젝트별로 여러 언어 런타임 버전을 관리할 수 있도록 asdf 명령줄 도구가 지원된다.  • 더 많은 테스트 템플릿이 제공된다.  한편 젯브레인은 지난 7월 28일 ‘고랜드 2021.2’를 출시했다. 이곳(jetbrains.com)에서 다운로드받을 수 있으며, 30일 무료 체험판을 사용해볼 수도 있다. 고랜드 2021.2는 고 1.17 지원, 새로운 포맷 옵션, 버전 제어 시스템 추...

2021.08.23

고(Go) 1.17 출시··· “언어 및 컴파일러 개선”

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(GO)’의 최신 버전이 8월 16일(현지 시각) 프로덕션 릴리즈로 출시됐다.    ‘고 1.17(Go 1.17)’ 릴리즈 노트에 따르면 unsafe.Pointer 안전 규칙을 준수하는 코드 작성 간소화를 포함해 언어와 관련한 3가지 작은 개선사항이 있다. 다음과 같다.  • 슬라이스에서 배열 포인터로의 변환: s 유형의 표현식 []T는 이제 배열 포인터 유형 *[N]T로 변환될 수 있다. 만약 이러한 변환의 결과가 a라면 범위에 있는 해당 인덱스는 동일한 기본 요소를 참조한다(&a[i] == &s[i] for 0 <= i < N). 단 if len(s)이 N보다 작으면 변환 오류가 발생한다.  • unsafe.Add: unsafe.Add(ptr, len)는 ptr에 len을 추가하고, 업데이트된 포인터 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 반환한다.  • unsafe.Slice: ptr 유형의 표현식 *T에서 unsafe.Slice(ptr, len)는 기본 배열이 ptr에서 시작하고, 길이와 용량이 len인 유형 []T의 슬라이스를 반환한다.  고 1.17에서 컴파일러는 스택 대신 레지스터를 사용하여 함수 인수와 결과를 패싱하는 새로운 방법을 구축했다. 이 기능은 64-비트 x86 아키텍처의 리눅스, 맥OS, 윈도우에서 사용할 수 있다. 개발팀에 의하면 벤치마크 결과 약 5%의 성능 향상과 2%가량의 바이너리 크기 감소가 나타났다. 이 변경사항은 안전한 고(GO) 코드의 기능에는 영향을 미치지 않는다.  또한 컴파일러를 사용하면 클로저를 포함하는 함수를 인라인할 수 있다. 이를 통해 클로저를 포함하는 함수가 (함수를 인라인한 각 위치에서) 별개의 클로저 코드 포인터 함수를 생성할 수 있다고 개발팀은 설명했다.  이번 릴리즈에는 정리된 모듈 그래프도 도입됐다. g...

구글 오픈소스 프로그래밍 언어 개발 언어 고랭 고 언어

2021.08.19

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(GO)’의 최신 버전이 8월 16일(현지 시각) 프로덕션 릴리즈로 출시됐다.    ‘고 1.17(Go 1.17)’ 릴리즈 노트에 따르면 unsafe.Pointer 안전 규칙을 준수하는 코드 작성 간소화를 포함해 언어와 관련한 3가지 작은 개선사항이 있다. 다음과 같다.  • 슬라이스에서 배열 포인터로의 변환: s 유형의 표현식 []T는 이제 배열 포인터 유형 *[N]T로 변환될 수 있다. 만약 이러한 변환의 결과가 a라면 범위에 있는 해당 인덱스는 동일한 기본 요소를 참조한다(&a[i] == &s[i] for 0 <= i < N). 단 if len(s)이 N보다 작으면 변환 오류가 발생한다.  • unsafe.Add: unsafe.Add(ptr, len)는 ptr에 len을 추가하고, 업데이트된 포인터 unsafe.Pointer(uintptr(ptr) + uintptr(len))를 반환한다.  • unsafe.Slice: ptr 유형의 표현식 *T에서 unsafe.Slice(ptr, len)는 기본 배열이 ptr에서 시작하고, 길이와 용량이 len인 유형 []T의 슬라이스를 반환한다.  고 1.17에서 컴파일러는 스택 대신 레지스터를 사용하여 함수 인수와 결과를 패싱하는 새로운 방법을 구축했다. 이 기능은 64-비트 x86 아키텍처의 리눅스, 맥OS, 윈도우에서 사용할 수 있다. 개발팀에 의하면 벤치마크 결과 약 5%의 성능 향상과 2%가량의 바이너리 크기 감소가 나타났다. 이 변경사항은 안전한 고(GO) 코드의 기능에는 영향을 미치지 않는다.  또한 컴파일러를 사용하면 클로저를 포함하는 함수를 인라인할 수 있다. 이를 통해 클로저를 포함하는 함수가 (함수를 인라인한 각 위치에서) 별개의 클로저 코드 포인터 함수를 생성할 수 있다고 개발팀은 설명했다.  이번 릴리즈에는 정리된 모듈 그래프도 도입됐다. g...

2021.08.19

고랭에서 찾기 힘든 버그 잡는다… ‘고 퍼즈’ 베타 테스트 공개

고(Go) 언어의 네이티브 퍼징이 베타 테스트 단계로 공개됐다. 이 새로운 자동 테스트 기능의 목표는 고 언어 개발자가 코드 품질을 개선하는 동시에 고랭으로 구축된 시스템을 안전하고 탄력적으로 유지할 수 있도록 지원하는 것이다.    지난 6월 3일 공식 블로그에서 고 언어 개발팀은 ‘퍼징(Fuzzing)’에 관해 프로그램 입력을 지속적으로 조작해 발견되지 않을 수 있는 문제나 버그를 찾는 자동화된 테스트 유형이라고 설명했다. 개발팀에 따르면 이러한 반 무작위 데이터 변형은 단위 테스트가 놓칠 수 있는 새로운 코드 커버리지를 발견하고, 그렇지 않으면 눈에 띄지 않는 엣지 케이스 버그를 잡아낼 수 있다. 특히 퍼징은 기존 테스트보다 더 많은 코드 커버리지를 제공하기 때문에 취약점을 찾는 데 있어 중요하다.  퍼즈를 사용하려면 다음을 실행하면 된다.    $ go get golang.org/dl/gotip $ gotip download dev.fuzz 퍼징 기능은 오는 8월 출시될 고 언어 1.17 릴리즈에선 사용할 수 없다. 그다음 버전에 포함될 계획이다. 이 프로토타입으로 개발자들이 퍼즈 타깃을 작성하고 피드백을 제공해주길 바란다고 고 언어 개발팀은 밝혔다. 개발자들은 깃허브를 통해 문제를 제출하거나 이곳(Gophers Slack)에서 피드백을 전달할 수 있다.  한편 퍼징이 많은 메모리를 소비할 수 있으며 이를 실행하는 동안 시스템 성능에 영향을 미칠 수 있다고 고 언어 개발팀은 언급했다. go test -fuzz는 기본적으로 SGOMAXPROCS 프로세스에서 퍼징을 병렬로 실행한다. go test와 함께 -parallel 플래그를 설정하면 퍼징 중에 사용되는 프로세스를 낮출 수 있다.  이어서 고 언어 개발팀은 퍼징 엔진이 이를 실행하는 동안 $GOCACHE/fuzz 내의 퍼즈 캐시 디렉토리에 테스트 범위를 확장하는 값을 작성한다고 전했다. 현재 퍼즈...

구글 고 언어 고랭 프로그래밍 언어 개발 언어 개발자 퍼징 퍼즈

2021.06.08

고(Go) 언어의 네이티브 퍼징이 베타 테스트 단계로 공개됐다. 이 새로운 자동 테스트 기능의 목표는 고 언어 개발자가 코드 품질을 개선하는 동시에 고랭으로 구축된 시스템을 안전하고 탄력적으로 유지할 수 있도록 지원하는 것이다.    지난 6월 3일 공식 블로그에서 고 언어 개발팀은 ‘퍼징(Fuzzing)’에 관해 프로그램 입력을 지속적으로 조작해 발견되지 않을 수 있는 문제나 버그를 찾는 자동화된 테스트 유형이라고 설명했다. 개발팀에 따르면 이러한 반 무작위 데이터 변형은 단위 테스트가 놓칠 수 있는 새로운 코드 커버리지를 발견하고, 그렇지 않으면 눈에 띄지 않는 엣지 케이스 버그를 잡아낼 수 있다. 특히 퍼징은 기존 테스트보다 더 많은 코드 커버리지를 제공하기 때문에 취약점을 찾는 데 있어 중요하다.  퍼즈를 사용하려면 다음을 실행하면 된다.    $ go get golang.org/dl/gotip $ gotip download dev.fuzz 퍼징 기능은 오는 8월 출시될 고 언어 1.17 릴리즈에선 사용할 수 없다. 그다음 버전에 포함될 계획이다. 이 프로토타입으로 개발자들이 퍼즈 타깃을 작성하고 피드백을 제공해주길 바란다고 고 언어 개발팀은 밝혔다. 개발자들은 깃허브를 통해 문제를 제출하거나 이곳(Gophers Slack)에서 피드백을 전달할 수 있다.  한편 퍼징이 많은 메모리를 소비할 수 있으며 이를 실행하는 동안 시스템 성능에 영향을 미칠 수 있다고 고 언어 개발팀은 언급했다. go test -fuzz는 기본적으로 SGOMAXPROCS 프로세스에서 퍼징을 병렬로 실행한다. go test와 함께 -parallel 플래그를 설정하면 퍼징 중에 사용되는 프로세스를 낮출 수 있다.  이어서 고 언어 개발팀은 퍼징 엔진이 이를 실행하는 동안 $GOCACHE/fuzz 내의 퍼즈 캐시 디렉토리에 테스트 범위를 확장하는 값을 작성한다고 전했다. 현재 퍼즈...

2021.06.08

“구글 고(Go) 언어, 업무 현장서 사용 확대됐다”

‘고 디벨로퍼 서베이 2020(Go Developer Survey 2020)’에 따르면 고 언어 개발자 대부분이 업무 현장에서 고(Go)를 사용하며, 주로 기술 회사에서 일하는 것으로 나타났다.  보고서는 업무 현장에서의 고(Go) 언어 사용이 확대되고 있다고 밝혔다. 그리고 2019년 설문조사 결과와 마찬가지로 올해에도 고 언어 개발자들은 주로 기술 산업에서 일하고 있는 것으로 드러났다고 전했다.    ‘고 디벨로퍼 서베이 2020’이 지난 3월 9일 공개됐다. 전체 응답자의 76%가 업무 현장에서 고 언어를 사용하고 있다고 말했다. 2019년 설문조사 결과(73%)와 비교하면 증가한 수치다.  고 언어가 소속 기업의 성공에 중요한 역할을 하고 있다고 밝힌 응답자도 2019년 59%에서 올해 66%로 늘어났다. 한편 응답자의 46%가 기술 부문에서 일하고 있었으며(2019년에는 43%), 이어서 금융 서비스(12%)가 뒤를 이었다.  올해에는 처음으로 고 언어에 관한 전반적인 만족도를 조사했다. 전체 응답자의 92%는 지난 1년 동안 고 언어 사용에 매우 만족 또는 다소 만족한다고 밝혔다. 고 모듈은 거의 보편적으로 채택됐다. 96%가 고 패키지 관리에 고 모듈을 정기적으로 사용하고 있다고 답했다.  26%는 고 언어에 필요한 기능이 없다고 지적했는데, 이 가운데 88%가 누락된 기능으로 제네릭(Generic)을 꼽았다. 이어서 향상된 오류 처리(58%), 널 안정성(44%)이 뒤를 이었다(제네릭은 올해 말 도입될 예정이다. 이 기능에 대한 공식적인 제안은 지난 1월 발표됐다). 올해 설문조사에는 총 9,648명이 참여했으며, 여기에는 전체 설문을 완료하지 않은 응답자도 포함돼 있다. 이밖에 다른 설문조사 결과는 다음과 같다. • 업무 현장에서 다른 언어를 사용한다고 밝힌 응답자는 2018년 63%, 2019년 54%에서 감소한 53%로 조사됐다.  • 고 언어가 주로 사용되는 분...

구글 고 언어 고랭 프로그래밍 프로그래밍 언어 개발 개발 언어 개발자 고 모듈 제네릭 널 안정성 리눅스

2021.03.22

‘고 디벨로퍼 서베이 2020(Go Developer Survey 2020)’에 따르면 고 언어 개발자 대부분이 업무 현장에서 고(Go)를 사용하며, 주로 기술 회사에서 일하는 것으로 나타났다.  보고서는 업무 현장에서의 고(Go) 언어 사용이 확대되고 있다고 밝혔다. 그리고 2019년 설문조사 결과와 마찬가지로 올해에도 고 언어 개발자들은 주로 기술 산업에서 일하고 있는 것으로 드러났다고 전했다.    ‘고 디벨로퍼 서베이 2020’이 지난 3월 9일 공개됐다. 전체 응답자의 76%가 업무 현장에서 고 언어를 사용하고 있다고 말했다. 2019년 설문조사 결과(73%)와 비교하면 증가한 수치다.  고 언어가 소속 기업의 성공에 중요한 역할을 하고 있다고 밝힌 응답자도 2019년 59%에서 올해 66%로 늘어났다. 한편 응답자의 46%가 기술 부문에서 일하고 있었으며(2019년에는 43%), 이어서 금융 서비스(12%)가 뒤를 이었다.  올해에는 처음으로 고 언어에 관한 전반적인 만족도를 조사했다. 전체 응답자의 92%는 지난 1년 동안 고 언어 사용에 매우 만족 또는 다소 만족한다고 밝혔다. 고 모듈은 거의 보편적으로 채택됐다. 96%가 고 패키지 관리에 고 모듈을 정기적으로 사용하고 있다고 답했다.  26%는 고 언어에 필요한 기능이 없다고 지적했는데, 이 가운데 88%가 누락된 기능으로 제네릭(Generic)을 꼽았다. 이어서 향상된 오류 처리(58%), 널 안정성(44%)이 뒤를 이었다(제네릭은 올해 말 도입될 예정이다. 이 기능에 대한 공식적인 제안은 지난 1월 발표됐다). 올해 설문조사에는 총 9,648명이 참여했으며, 여기에는 전체 설문을 완료하지 않은 응답자도 포함돼 있다. 이밖에 다른 설문조사 결과는 다음과 같다. • 업무 현장에서 다른 언어를 사용한다고 밝힌 응답자는 2018년 63%, 2019년 54%에서 감소한 53%로 조사됐다.  • 고 언어가 주로 사용되는 분...

2021.03.22

구글 고(Go) 1.16 출시··· 애플 실리콘 지원 및 라이브러리 개선

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(Go)’의 최신 업데이트 버전 1.16이 스테이블 프로덕션 릴리스(Stable Production Release)로 공개됐다. 코어 라이브러리 및 런타임 개선을 비롯해 여러 새로운 기능이 소개됐다.    고(Go) 개발팀에 따르면 코어 라이브러리의 변경 사항에는 //go:embed 지시문을 사용, 컴파일할 때 프로그램에 임베디드된 파일 액세스를 제공하는 새로운 embed 패키지가 포함된다. 라이브러리에도 마이너한 변경 사항과 업데이트가 있다. 이는 crypto/dsa 사용 중단부터 유니코드 패키지를 유니코드(Unicode) 13.0.0으로 업그레이드하는 것까지 다양하다.    또한 코어 라이브러리에서 파일 시스템이 개선됐다. 새로운 io/fs 패키지는 파일의 읽기 전용 트리 추상화를 정의한다. fs.FS 인터페이스와 표준 라이브러리 패키지는 적절한 경우 인터페이스를 사용하도록 조정됐다. 인터페이스의 프로듀서 측에서 이 새로운 embed.FS 타입은 zip.Reader와 마찬가지로 fs.FS를 구현한다.  새로운 os.DirFS 함수는 운영체제 파일 트리로 지원되는 fs.FS 구현을 제공한다. 컨슈머 측에서 새로운 http.FS 함수는 fs.FS를 http.Handler로 변환한다. 그리고 html.template과 text/template 패키지의 ParseFS 함수 및 메소드는 fs.FS에서 템플릿을 읽는다.  fs.FS를 구현하는 코드를 테스트하기 위한 새로운 testing/fstest 패키지는 일반적인 오류를 보고하는 TestFS 기능을 제공한다. 또한 fs.FS 구현을 허용하는 코드를 테스트하기 위한 간단한 인메모리 파일 시스템 구현인 MapFS이 지원된다.  런타임도 개선됐다. 새로운 runtime/metrics 패키지는 구현 방법에 따라 정의된 메트릭스를 읽기 위한 스테이블 인터페이스를 적용했다. 리눅스에서 이제 ...

구글 고 언어 고랭 애플 실리콘

2021.02.18

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(Go)’의 최신 업데이트 버전 1.16이 스테이블 프로덕션 릴리스(Stable Production Release)로 공개됐다. 코어 라이브러리 및 런타임 개선을 비롯해 여러 새로운 기능이 소개됐다.    고(Go) 개발팀에 따르면 코어 라이브러리의 변경 사항에는 //go:embed 지시문을 사용, 컴파일할 때 프로그램에 임베디드된 파일 액세스를 제공하는 새로운 embed 패키지가 포함된다. 라이브러리에도 마이너한 변경 사항과 업데이트가 있다. 이는 crypto/dsa 사용 중단부터 유니코드 패키지를 유니코드(Unicode) 13.0.0으로 업그레이드하는 것까지 다양하다.    또한 코어 라이브러리에서 파일 시스템이 개선됐다. 새로운 io/fs 패키지는 파일의 읽기 전용 트리 추상화를 정의한다. fs.FS 인터페이스와 표준 라이브러리 패키지는 적절한 경우 인터페이스를 사용하도록 조정됐다. 인터페이스의 프로듀서 측에서 이 새로운 embed.FS 타입은 zip.Reader와 마찬가지로 fs.FS를 구현한다.  새로운 os.DirFS 함수는 운영체제 파일 트리로 지원되는 fs.FS 구현을 제공한다. 컨슈머 측에서 새로운 http.FS 함수는 fs.FS를 http.Handler로 변환한다. 그리고 html.template과 text/template 패키지의 ParseFS 함수 및 메소드는 fs.FS에서 템플릿을 읽는다.  fs.FS를 구현하는 코드를 테스트하기 위한 새로운 testing/fstest 패키지는 일반적인 오류를 보고하는 TestFS 기능을 제공한다. 또한 fs.FS 구현을 허용하는 코드를 테스트하기 위한 간단한 인메모리 파일 시스템 구현인 MapFS이 지원된다.  런타임도 개선됐다. 새로운 runtime/metrics 패키지는 구현 방법에 따라 정의된 메트릭스를 읽기 위한 스테이블 인터페이스를 적용했다. 리눅스에서 이제 ...

2021.02.18

구글 고(Go) 언어, 그래프 기반 ORM 제공

구글 고(Go) 언어용 오픈소스 엔티티 프레임워크 ‘이엔티(ent)’는 모든 데이터베이스 스키마 또는 그래프 구조를 고 객체로 모델링하기 위한 API를 제공한다.     이스라엘 텔아비브에 있는 한 페이스북 개발팀에서 오픈소스 프로젝트 이엔티(ent)를 통해 구글 고(Go) 언어에 엔티티 프레임워크를 제공하고 있다. 이는 복잡한 데이터 모델로 고(Go) 애플리케이션을 더 쉽게 구축하고 유지 관리할 수 있도록 하기 위한 것이다.   데이터 모델링 및 쿼리를 위한 ‘ORM(Object Relational Mapping, 객체-관계 매핑)’을 제공하는 ent 프레임워크는 모든 데이터베이스 스키마를 고(Go) 객체로 모델링하기 위한 API를 제공한다. 이를 통해 쿼리와 어그리게이션을 실행하고, 그래프 구조를 탐색할 수 있다. ent의 기본 요소는 다음의 규칙을 따른다.  • 데이터베이스 스키마를 그래프 구조로 모델링 • 스키마를 프로그래마틱 고(Go) 코드로 정의 • 코드 생성을 기반으로 한 정적 입력 • 쓰기 쉬운 데이터베이스 쿼리 및 그래프 탐색  • 고(Go) 템플릿을 사용하여 확장 및 사용자 정의 한편 이엔티(ent)의 스키마 구성은 ‘entc(ent codegen)’에 의해 입증된다. 이엔티 코드젠(ent codegen)은 관용적이고 정적으로 형식화된 API를 생성한다. 이엔티(ent) 프레임워크는 마이SQL(MySQL), 그렘린(Gremlin) 그리고 주로 테스트용 SQ라이트(SQLite)를 지원한다. 이 기술은 페이스북에서 고 언어용 그래프 기반 ORM을 개발하면서 지난 2019년 10월 처음 공개됐다.     가장 최신 릴리즈인 버전 0.6.0은 2월에 출시됐으며, 깃허브에서 액세스할 수 있다. 이엔티(ent) 버전 1.0의 로드맵에는 JSON 타입 서술어(JSON type predicates) 및 수평 분할(horizontal sharding) 등의 기능이 포함될 예정이다. ci...

구글 고 언어 고랭 이엔티 데이터베이스 스키마 그래프 구조 모델링 데이터 API 엔티티 프레임워크 페이스북 ORM

2021.02.16

구글 고(Go) 언어용 오픈소스 엔티티 프레임워크 ‘이엔티(ent)’는 모든 데이터베이스 스키마 또는 그래프 구조를 고 객체로 모델링하기 위한 API를 제공한다.     이스라엘 텔아비브에 있는 한 페이스북 개발팀에서 오픈소스 프로젝트 이엔티(ent)를 통해 구글 고(Go) 언어에 엔티티 프레임워크를 제공하고 있다. 이는 복잡한 데이터 모델로 고(Go) 애플리케이션을 더 쉽게 구축하고 유지 관리할 수 있도록 하기 위한 것이다.   데이터 모델링 및 쿼리를 위한 ‘ORM(Object Relational Mapping, 객체-관계 매핑)’을 제공하는 ent 프레임워크는 모든 데이터베이스 스키마를 고(Go) 객체로 모델링하기 위한 API를 제공한다. 이를 통해 쿼리와 어그리게이션을 실행하고, 그래프 구조를 탐색할 수 있다. ent의 기본 요소는 다음의 규칙을 따른다.  • 데이터베이스 스키마를 그래프 구조로 모델링 • 스키마를 프로그래마틱 고(Go) 코드로 정의 • 코드 생성을 기반으로 한 정적 입력 • 쓰기 쉬운 데이터베이스 쿼리 및 그래프 탐색  • 고(Go) 템플릿을 사용하여 확장 및 사용자 정의 한편 이엔티(ent)의 스키마 구성은 ‘entc(ent codegen)’에 의해 입증된다. 이엔티 코드젠(ent codegen)은 관용적이고 정적으로 형식화된 API를 생성한다. 이엔티(ent) 프레임워크는 마이SQL(MySQL), 그렘린(Gremlin) 그리고 주로 테스트용 SQ라이트(SQLite)를 지원한다. 이 기술은 페이스북에서 고 언어용 그래프 기반 ORM을 개발하면서 지난 2019년 10월 처음 공개됐다.     가장 최신 릴리즈인 버전 0.6.0은 2월에 출시됐으며, 깃허브에서 액세스할 수 있다. 이엔티(ent) 버전 1.0의 로드맵에는 JSON 타입 서술어(JSON type predicates) 및 수평 분할(horizontal sharding) 등의 기능이 포함될 예정이다. ci...

2021.02.16

‘고(Go) 언어’ 버전 1.16, 첫 베타 공개··· 라이브러리 및 런타임 개선

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(Go)’ 버전 1.16의 첫 베타가 지난 17일(현지 시각) 공개됐다. 코어 라이브러리와 런타임이 개선됐으며 여러 새로운 기능이 도입됐다. 언어 자체는 변경되지 않았다.  2021년 2월 출시 예정인 고(Go) 버전 1.16의 릴리즈 노트에 따르면 //go:embed 디렉티브를 통해 컴파일하는 동안 프로그램에 임베디드된 파일에 액세스 할 수 있는 새로운 embed 패키지가 코어 라이브러리에 포함됐다.    코어 라이브러리의 파일 시스템도 개선됐다. 새로운 io/fs 패키지는 파일의 읽기 전용 트리인 fs.FS 인터페이스에 관한 추상화를 정의한다. 그리고 표준 라이브러리 패키지는 인터페이스를 적절하게 사용하도록 조정됐다.  인터페이스의 생산자 측에서는 새로운 embed.FS 타입이 zip.Reader처럼 fs.FS를 구현한다. 새 os.DirFS 함수는 운영시스템 파일 트리로 지원되는 fs.FS 구현을 제공한다. 소비자 측에서는 새 http.FS 가 fs.FS를 http.Handler로 변환한다.  html.template과 text/template 패키지의 ParseFS 함수 및 메소드는 fs.FS에서 템플릿을 읽는다. fs.FS 구현 코드를 테스트하는 새 testing/fstest 패키지는 일반적인 오류를 보고하는 TestFS 기능을 제공한다. 간단한 메모리 내 파일 시스템 구현인 MapFS도 지원된다.  고(Go) 1.16은 런타임도 개선됐다. 새 runtime/metrics 패키지는 구현-정의 매트릭을 읽기 위한 안정적인 인터페이스를 도입했다. 또 고 런타임은 이제 리눅스(Linux)에서 OS가 메모리 압박을 받을 때 운영시스템에 메모리를 즉시 해제하도록 기본 설정됐다.  구글 고(Go) 언어 개발팀은 버전 1.16에서 레이스 디텍터(race detector)와 고(Go) 메모리 모델 간의 불일치를 수정했다고 전했다. 이제 레이스 디텍...

구글 고 언어 고랭 프로그래밍 언어 개발 언어 코어 라이브러리 런타임 애플 실리콘

2020.12.22

구글에서 개발한 오픈소스 프로그래밍 언어 ‘고(Go)’ 버전 1.16의 첫 베타가 지난 17일(현지 시각) 공개됐다. 코어 라이브러리와 런타임이 개선됐으며 여러 새로운 기능이 도입됐다. 언어 자체는 변경되지 않았다.  2021년 2월 출시 예정인 고(Go) 버전 1.16의 릴리즈 노트에 따르면 //go:embed 디렉티브를 통해 컴파일하는 동안 프로그램에 임베디드된 파일에 액세스 할 수 있는 새로운 embed 패키지가 코어 라이브러리에 포함됐다.    코어 라이브러리의 파일 시스템도 개선됐다. 새로운 io/fs 패키지는 파일의 읽기 전용 트리인 fs.FS 인터페이스에 관한 추상화를 정의한다. 그리고 표준 라이브러리 패키지는 인터페이스를 적절하게 사용하도록 조정됐다.  인터페이스의 생산자 측에서는 새로운 embed.FS 타입이 zip.Reader처럼 fs.FS를 구현한다. 새 os.DirFS 함수는 운영시스템 파일 트리로 지원되는 fs.FS 구현을 제공한다. 소비자 측에서는 새 http.FS 가 fs.FS를 http.Handler로 변환한다.  html.template과 text/template 패키지의 ParseFS 함수 및 메소드는 fs.FS에서 템플릿을 읽는다. fs.FS 구현 코드를 테스트하는 새 testing/fstest 패키지는 일반적인 오류를 보고하는 TestFS 기능을 제공한다. 간단한 메모리 내 파일 시스템 구현인 MapFS도 지원된다.  고(Go) 1.16은 런타임도 개선됐다. 새 runtime/metrics 패키지는 구현-정의 매트릭을 읽기 위한 안정적인 인터페이스를 도입했다. 또 고 런타임은 이제 리눅스(Linux)에서 OS가 메모리 압박을 받을 때 운영시스템에 메모리를 즉시 해제하도록 기본 설정됐다.  구글 고(Go) 언어 개발팀은 버전 1.16에서 레이스 디텍터(race detector)와 고(Go) 메모리 모델 간의 불일치를 수정했다고 전했다. 이제 레이스 디텍...

2020.12.22

구글 고(Go) 언어, 2021년 제네릭(Generic) 지원 예정

구글 고(Go) 언어가 내년부터 제네릭(Generic)을 지원한다. 고 언어를 사용하는 개발자들은 수년간 단순성과 유연성을 제공하는 제네릭을 요청해왔던 바 있다.   구글의 고 언어(고랭) 개발자들이 제네릭 도입을 추진 중이다. 큰 문제가 없다면 내년 8월에 정식 지원될 예정이다. 제네릭은 형식 매개변수(type parameter)를 사용하는 함수나 유형을 의미하며, 제네릭의 누락은 그간 고 언어의 단점으로 자주 언급돼 왔다.    앞서 언급된 시기상 제네릭은 고 언어 1.17 버전에 포함될 것으로 예측된다. 그러나 고 프로젝트 개발자들(Go project developers)은 일정에 대해 낙관적인 입장을 피력하면서도 예상치 못한 문제가 발생할 수도 있다고 밝혔다. 제네릭 프로그래밍은 데이터 구조와 함수를 제네릭 형태로 표현할 수 있게 하며, 데이터 형식도 나중에 정의한다. 이는 일부 프로그래밍 작업을 단순화하는 이점이 있지만 고 언어를 복잡하게 할 수 있다는 문제도 있었다.  고 프로젝트 개발자들은 지난 6월 16일 컨트랙트(contracts)를 인터페이스 유형(interface types)으로 대체하는 형식 매개변수에 대한 설계 초안을 업데이트했다. 또한 제네릭 코드 전환을 지원하는 툴을 도입했다. 설계 초안 작성자들은 컨트랙트와 인터페이스 유형 간 차이가 혼동된다는 것을 파악했고 컨트랙트 계획을 중단했다. 이제 형식 매개변수는 인터페이스 유형에 의해 제한되며, 인터페이스 유형은 제한 조건으로 사용될 때 형식 목록을 포함할 수 있다.  고 플레이그라운드(Go Playground)를 기반으로 제공되는 전환 툴은 고 언어 개발자들이 초안을 개선하는 방법을 결정하는 데 도움을 주도록 고안됐다. 이 툴은 초안에서 정의된 제네릭 버전으로 작성된 실행 코드와 형식 검사를 허용하며, 제네릭 코드를 고(Go) 코드로 변환한다. 전환 과정에 한계가 있긴 하지만 이를 통해 고 개발자들은 제네릭 고 코드가 어떤 ...

구글 구글 고 고 언어 제네릭 제네릭 프로그래밍 데이터 형식 매개변수 고 플레이그라운드

2020.06.18

구글 고(Go) 언어가 내년부터 제네릭(Generic)을 지원한다. 고 언어를 사용하는 개발자들은 수년간 단순성과 유연성을 제공하는 제네릭을 요청해왔던 바 있다.   구글의 고 언어(고랭) 개발자들이 제네릭 도입을 추진 중이다. 큰 문제가 없다면 내년 8월에 정식 지원될 예정이다. 제네릭은 형식 매개변수(type parameter)를 사용하는 함수나 유형을 의미하며, 제네릭의 누락은 그간 고 언어의 단점으로 자주 언급돼 왔다.    앞서 언급된 시기상 제네릭은 고 언어 1.17 버전에 포함될 것으로 예측된다. 그러나 고 프로젝트 개발자들(Go project developers)은 일정에 대해 낙관적인 입장을 피력하면서도 예상치 못한 문제가 발생할 수도 있다고 밝혔다. 제네릭 프로그래밍은 데이터 구조와 함수를 제네릭 형태로 표현할 수 있게 하며, 데이터 형식도 나중에 정의한다. 이는 일부 프로그래밍 작업을 단순화하는 이점이 있지만 고 언어를 복잡하게 할 수 있다는 문제도 있었다.  고 프로젝트 개발자들은 지난 6월 16일 컨트랙트(contracts)를 인터페이스 유형(interface types)으로 대체하는 형식 매개변수에 대한 설계 초안을 업데이트했다. 또한 제네릭 코드 전환을 지원하는 툴을 도입했다. 설계 초안 작성자들은 컨트랙트와 인터페이스 유형 간 차이가 혼동된다는 것을 파악했고 컨트랙트 계획을 중단했다. 이제 형식 매개변수는 인터페이스 유형에 의해 제한되며, 인터페이스 유형은 제한 조건으로 사용될 때 형식 목록을 포함할 수 있다.  고 플레이그라운드(Go Playground)를 기반으로 제공되는 전환 툴은 고 언어 개발자들이 초안을 개선하는 방법을 결정하는 데 도움을 주도록 고안됐다. 이 툴은 초안에서 정의된 제네릭 버전으로 작성된 실행 코드와 형식 검사를 허용하며, 제네릭 코드를 고(Go) 코드로 변환한다. 전환 과정에 한계가 있긴 하지만 이를 통해 고 개발자들은 제네릭 고 코드가 어떤 ...

2020.06.18

김진철의 How-to-Big Data | 빅데이터의 미래 (5)

사이버 물리 시스템의 자원 제어 프로그래밍 모델과 프로그램 환경 클라우드 컴퓨팅이 사이버 물리 시스템의 자원 관리를 위한 운영체제의 역할을 하려면, 이런 운영체제의 자원 관리 기능을 활용할 수 있도록 서비스를 요청하고 제어하는 프로그래밍 인터페이스가 있어야 할 것이다. 지난 서른여덟 번째 글에서 이런 프로그래밍 인터페이스가 오픈스택과 같은 오픈소스 클라우드 컴퓨팅의 발전과, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체에 의해 산업 표준으로 정의되어 가고, 다양한 클라우드 서비스 제공자와 소프트웨어 간 호환성을 위한 상호운용성 문제가 중요해질 것으로 언급하였다. 클라우드 컴퓨팅의 특성상 네트워크를 통해 원격지에 있는 자원에 접근할 수 있도록 하는 RESTful API와 같은 원격 프로그래밍 인터페이스로 제공될 수밖에 없다. 오픈소스 클라우드 컴퓨팅 소프트웨어인 오픈스택도 모든 API는 RESTful API로 정의되며, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체의 API도 RESTful API로 정의되어 제공된다.   오픈스택이나 아마존웹서비스의 “아웃포스트(Outposts)”, 마이크로소프트의 “애저스택(Azure Stack)”등을 통해 구축되는 사설 클라우드(private cloud)와 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 공용 클라우드(public cloud) 서비스에서 사용가능한 프로그래밍 인터페이스가 현재 클라우드 컴퓨팅의 프로그래밍 모델을 제공하고 있다. 오픈스택이 클라우드 컴퓨팅 분야에서 가장 크게 공헌한 것이 바로 이런 클라우드 컴퓨팅 프로그래밍 모델과 인터페이스에 대해 구체적인 산업계의 합의를 이룰 수 있는 기반이 되었다는 점이다. 오픈스택에서 정의한 프로그래밍 모델과 인터페이스가 실제 기술로서 구현되기 위해 클라우드 컴퓨팅 시스템 내부에서 어떤 방식으로 프로그램되어야 하는지 다양한 실험을 구체적으로 시도하고,...

CIO 스칼라 아마존웹서비스 김진철 러스트 애저스택 Ada Nebula 고 언어 분산컴퓨팅 아웃소프트 객체지향 파이썬 구글 자바 빅데이터 마이크로소프트 AWS 오픈스택 데이터 과학자 모질라 인공지능 네뷸라 에이다

2020.03.26

사이버 물리 시스템의 자원 제어 프로그래밍 모델과 프로그램 환경 클라우드 컴퓨팅이 사이버 물리 시스템의 자원 관리를 위한 운영체제의 역할을 하려면, 이런 운영체제의 자원 관리 기능을 활용할 수 있도록 서비스를 요청하고 제어하는 프로그래밍 인터페이스가 있어야 할 것이다. 지난 서른여덟 번째 글에서 이런 프로그래밍 인터페이스가 오픈스택과 같은 오픈소스 클라우드 컴퓨팅의 발전과, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체에 의해 산업 표준으로 정의되어 가고, 다양한 클라우드 서비스 제공자와 소프트웨어 간 호환성을 위한 상호운용성 문제가 중요해질 것으로 언급하였다. 클라우드 컴퓨팅의 특성상 네트워크를 통해 원격지에 있는 자원에 접근할 수 있도록 하는 RESTful API와 같은 원격 프로그래밍 인터페이스로 제공될 수밖에 없다. 오픈소스 클라우드 컴퓨팅 소프트웨어인 오픈스택도 모든 API는 RESTful API로 정의되며, 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 주요 클라우드 컴퓨팅 서비스 업체의 API도 RESTful API로 정의되어 제공된다.   오픈스택이나 아마존웹서비스의 “아웃포스트(Outposts)”, 마이크로소프트의 “애저스택(Azure Stack)”등을 통해 구축되는 사설 클라우드(private cloud)와 아마존웹서비스와 마이크로소프트 애저, 구글 클라우드와 같은 공용 클라우드(public cloud) 서비스에서 사용가능한 프로그래밍 인터페이스가 현재 클라우드 컴퓨팅의 프로그래밍 모델을 제공하고 있다. 오픈스택이 클라우드 컴퓨팅 분야에서 가장 크게 공헌한 것이 바로 이런 클라우드 컴퓨팅 프로그래밍 모델과 인터페이스에 대해 구체적인 산업계의 합의를 이룰 수 있는 기반이 되었다는 점이다. 오픈스택에서 정의한 프로그래밍 모델과 인터페이스가 실제 기술로서 구현되기 위해 클라우드 컴퓨팅 시스템 내부에서 어떤 방식으로 프로그램되어야 하는지 다양한 실험을 구체적으로 시도하고,...

2020.03.26

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.

10.5.0.8