Offcanvas

C

수십 년째 요지부동, 'C 언어'가 왕좌 지키는 이유

‘C 언어’는 지난 1972년 개발돼 지금까지 전 세계적으로 널리 사용되고 있으며, 소프트웨어 시대의 핵심적인 기본 구성요소로 군림하고 있다. 하지만 지난 수십 년 동안 새로운 언어가 많이 등장했다. 그중에는 노골적으로 C 언어의 아성에 도전한 언어도 있었고, 인기를 끌면서 C 언어를 조금씩 갉아먹은 언어도 있었다. 여기서는 C 언어와 C++, 자바, C#, 러스트, 파이썬 그리고 ‘쌩신입’ 카본을 비교해 살펴봤다.    C vs. C++ C 언어의 가장 흔한 비교 대상은 C++다. 이름에서 알 수 있는 것처럼 C++는 C 언어의 확장판으로 개발됐다. C++의 구문 및 접근 방식은 C와 유사하지만 이는 네임 스페이스, 템플릿, 예외 처리, 자동 메모리 관리 등 C에서는 기본 제공하지 않는 매우 유용한 기능을 지원한다. 데이터베이스나 머신러닝 시스템 등 최상급 성능을 요하는 프로젝트는 C++의 이러한 기능을 사용해 작성되는 경우가 많다. 또한 C++는 C보다 훨씬 더 적극적인 확장 중이다. 곧 출시될 C++ 23은 모듈, 코루틴, 더 빠른 컴파일, 모듈화된 표준 라이브러리 등 많은 기능을 제공할 예정이다. 반면에 C 표준의 최신 버전(C2x)은 추가 기능이 거의 없으며, 하위 호환성 유지에 주안점을 두고 있다.  문제는 C++의 모든 장점이 동시에 단점으로 작용하기도 한다는 것인데, 이 단점이 크다. C++의 기능을 많이 사용할수록 복잡성이 증가하며, 결과를 통제하기가 어려워진다. C++의 특정 부분만 제한적으로 사용하면 최악의 문제는 대부분 피할 수 있다. 이러한 복잡성을 원천적으로 차단하기도 한다. 예를 들면 리눅스 커널(Linux Kernel) 개발팀은 C++를 기피하며, 대부분의 리눅스는 여전히 C로 작성된다(현재 러스트를 향후 커널 추가를 위한 언어로 보고 있긴 하다).  물론 C++가 고수준 기능을 풍부히 갖추고 있는 이유는 분명하다. 하지만 현재와 미래의 프로젝트 및 프로젝트팀에 미니멀리즘이 더 적합하다면...

C 언어 C++ 파이썬 러스트 카본 자바 프로그래밍 언어 개발 언어 개발자 소프트웨어 개발

15시 36분

‘C 언어’는 지난 1972년 개발돼 지금까지 전 세계적으로 널리 사용되고 있으며, 소프트웨어 시대의 핵심적인 기본 구성요소로 군림하고 있다. 하지만 지난 수십 년 동안 새로운 언어가 많이 등장했다. 그중에는 노골적으로 C 언어의 아성에 도전한 언어도 있었고, 인기를 끌면서 C 언어를 조금씩 갉아먹은 언어도 있었다. 여기서는 C 언어와 C++, 자바, C#, 러스트, 파이썬 그리고 ‘쌩신입’ 카본을 비교해 살펴봤다.    C vs. C++ C 언어의 가장 흔한 비교 대상은 C++다. 이름에서 알 수 있는 것처럼 C++는 C 언어의 확장판으로 개발됐다. C++의 구문 및 접근 방식은 C와 유사하지만 이는 네임 스페이스, 템플릿, 예외 처리, 자동 메모리 관리 등 C에서는 기본 제공하지 않는 매우 유용한 기능을 지원한다. 데이터베이스나 머신러닝 시스템 등 최상급 성능을 요하는 프로젝트는 C++의 이러한 기능을 사용해 작성되는 경우가 많다. 또한 C++는 C보다 훨씬 더 적극적인 확장 중이다. 곧 출시될 C++ 23은 모듈, 코루틴, 더 빠른 컴파일, 모듈화된 표준 라이브러리 등 많은 기능을 제공할 예정이다. 반면에 C 표준의 최신 버전(C2x)은 추가 기능이 거의 없으며, 하위 호환성 유지에 주안점을 두고 있다.  문제는 C++의 모든 장점이 동시에 단점으로 작용하기도 한다는 것인데, 이 단점이 크다. C++의 기능을 많이 사용할수록 복잡성이 증가하며, 결과를 통제하기가 어려워진다. C++의 특정 부분만 제한적으로 사용하면 최악의 문제는 대부분 피할 수 있다. 이러한 복잡성을 원천적으로 차단하기도 한다. 예를 들면 리눅스 커널(Linux Kernel) 개발팀은 C++를 기피하며, 대부분의 리눅스는 여전히 C로 작성된다(현재 러스트를 향후 커널 추가를 위한 언어로 보고 있긴 하다).  물론 C++가 고수준 기능을 풍부히 갖추고 있는 이유는 분명하다. 하지만 현재와 미래의 프로젝트 및 프로젝트팀에 미니멀리즘이 더 적합하다면...

15시 36분

“목표는 C++ 현대화”··· 실험적 컴파일러 ‘Cpp프론트’ 공개돼

‘Cpp프론트(Cppfront)’는 유서 깊은 프로그래밍 언어를 ‘10배 더 간단하고, 안전하며, 도구를 사용하기 쉽게’ 만드는 대체 C++ 구문용 실험적 컴파일러다.    C++ 언어가 ‘Cpp프론트’라는 제안에 따라 더 간단하고 안전해질 예정이다. 이는 유명 C++ 개발자 허브 셔터가 제안한 실험적인 C++ 프론트엔드다. 그는 ISO C++ 위원회 의장, C++ 기능 설계자, 마이크로소프트 소프트웨어 아키텍트 등을 맡고 있다.  셔터는 해당 프로젝트의 깃허브 리포지토리에서 이를 C++의 중요한 발전이라고 언급하면서, “Cpp프론트는 C++이 10배 더 간단하고, 안전하며, 쉽게 도구를 사용할 수 있게 진화할 수 있는지 탐구하도록 설계된 실험적인 컴파일러다”라고 설명했다.  그에 따르면 대체 C++ 구문은 ‘오늘날 존재하지 않는 새로운 코드의 거품’을 제공하여, C++ 언어 설계자가 기본값을 변경하거나, 안전하지 않은 파트를 제거하거나, 언어를 문맥에서 자유롭거나 순서 독립적으로 만드는 등 임의적인 개선을 할 수 있게 한다. 유형 및 메모리 안전은 기본으로 지원된다.  이어 셔터는 “또한 두 번째 구문을 통해 파서(parser), 리팩토링 및 기타 도구를 쉽게 작성할 수 있도록 한다. 아울러 구문이 현 C++보다 2배로 줄어들어 C++ 20 모듈과 C++ 23 import std를 기본값으로 만든다”라고 전했다.  Cpp프론트 컴파일러는 현재 진행 중인 프로젝트다. 이 프로젝트 자체는 지난 7년 동안 개발돼 왔지만 지난주 미국 콜로라도주 오로라시에서 열린 컨퍼런스(CppCon)에서 일종의 ‘데뷔 파티’가 있었다. Cpp프론트는 MSVG, GCC, Clang을 포함한 메이저 C++ 20 컴파일러로 빌드된다. 지침은 깃허브에서 확인할 수 있다.  한편 지난 7월 말 구글은 C++의 후계자를 목표로 개발 중인 카본(Carbon)을 공개한 바 있다. 카본을 통해 C++와의 원활한 양방향 상호...

C++ 프로그래밍 언어 개발 언어 컴파일러 Cpp프론트 소프트웨어 개발 개발 도구

2022.09.22

‘Cpp프론트(Cppfront)’는 유서 깊은 프로그래밍 언어를 ‘10배 더 간단하고, 안전하며, 도구를 사용하기 쉽게’ 만드는 대체 C++ 구문용 실험적 컴파일러다.    C++ 언어가 ‘Cpp프론트’라는 제안에 따라 더 간단하고 안전해질 예정이다. 이는 유명 C++ 개발자 허브 셔터가 제안한 실험적인 C++ 프론트엔드다. 그는 ISO C++ 위원회 의장, C++ 기능 설계자, 마이크로소프트 소프트웨어 아키텍트 등을 맡고 있다.  셔터는 해당 프로젝트의 깃허브 리포지토리에서 이를 C++의 중요한 발전이라고 언급하면서, “Cpp프론트는 C++이 10배 더 간단하고, 안전하며, 쉽게 도구를 사용할 수 있게 진화할 수 있는지 탐구하도록 설계된 실험적인 컴파일러다”라고 설명했다.  그에 따르면 대체 C++ 구문은 ‘오늘날 존재하지 않는 새로운 코드의 거품’을 제공하여, C++ 언어 설계자가 기본값을 변경하거나, 안전하지 않은 파트를 제거하거나, 언어를 문맥에서 자유롭거나 순서 독립적으로 만드는 등 임의적인 개선을 할 수 있게 한다. 유형 및 메모리 안전은 기본으로 지원된다.  이어 셔터는 “또한 두 번째 구문을 통해 파서(parser), 리팩토링 및 기타 도구를 쉽게 작성할 수 있도록 한다. 아울러 구문이 현 C++보다 2배로 줄어들어 C++ 20 모듈과 C++ 23 import std를 기본값으로 만든다”라고 전했다.  Cpp프론트 컴파일러는 현재 진행 중인 프로젝트다. 이 프로젝트 자체는 지난 7년 동안 개발돼 왔지만 지난주 미국 콜로라도주 오로라시에서 열린 컨퍼런스(CppCon)에서 일종의 ‘데뷔 파티’가 있었다. Cpp프론트는 MSVG, GCC, Clang을 포함한 메이저 C++ 20 컴파일러로 빌드된다. 지침은 깃허브에서 확인할 수 있다.  한편 지난 7월 말 구글은 C++의 후계자를 목표로 개발 중인 카본(Carbon)을 공개한 바 있다. 카본을 통해 C++와의 원활한 양방향 상호...

2022.09.22

“쉽고 빠른 마이크로서비스 개발 지원” C++용 비동기 프레임워크 베타 출시

현재 베타 상태인 ‘유저버(Userver)’의 개발팀은 효율적인 I/O 인터랙션 문제를 투명하게 해결할 계획이라고 밝혔다.  C++ 개발자라면 효율적인 I/O 인터랙션 문제를 해결하는 새 오픈소스 프레임워크 ‘유저버’를 통해 비동기식 마이크로서비스를 쉽고 빠르게 구축할 수 있다.    해당 프로젝트의 깃허브 리포지토리에 따르면 유저버라고 하는 비동기 프레임워크는 C++ 마이크로서비스, 서비스, 유틸리티의 ‘빠르고 편안한’ 생성을 위하여 일련의 추상화를 제공한다. 현재 이 프로젝트는 베타 상태다.  이어 개발팀은 효율적인 I/O 트랜잭션 문제를 투명하게 해결할 계획이라고 말했다. 아울러 C++의 속도, 파이썬의 단순함, 고랭의 코루틴(Coroutine) 모델도 제공한다고 덧붙였다.  유저버를 사용하면 일반적으로 실행 스레드를 일시 중단하는 작업이 수행되지 않는다. 대신, 스레드는 다른 작업을 처리하고 즉시 실행이 보장될 때만 작업 처리로 돌아간다. 개발자는 간단한 소스 코드를 얻고 OS에서 CPU를 많이 소비하는 컨텍스트 전환을 피하면서 적은 수의 실행 스레드를 통해 CPU를 효율적으로 활용할 수 있다고 개발팀은 설명했다. 유저버 프레임워크의 다른 기능은 아래와 같다.  • 캐시, 분산 잠금, JSON/YAML/BSON, 로깅, 메트릭, 통계, 작업에 관한 고급 구성요소 집합  • 즉각적인 서비스 구성 변경을 수행하는 기능  • 포괄적인 비동기와 저수준 동기화 기본 요소 및 OS 추상화 집합  • 몽고DB, 포스트그레, 레디스 및 기타 데이터베이스용 비동기 드라이버 • HTTP, GRPC 및 TCP를 포함한 데이터 전송 프로토콜 그리고 구성 및 취소를 포함한 작업용 비동기 드라이버 지난 7월 29일(현지 시각) 개발팀은 유저버의 베타 버전을 발표하면서, (이를 사용하면) 인턴과 학생도 일주일 만에 새 마이크로서비스를 작성하고 프로덕션에 배포할 수 있다며 유저버 개...

C++ 비동기 프레임워크 유저버 마이크로서비스

2022.08.03

현재 베타 상태인 ‘유저버(Userver)’의 개발팀은 효율적인 I/O 인터랙션 문제를 투명하게 해결할 계획이라고 밝혔다.  C++ 개발자라면 효율적인 I/O 인터랙션 문제를 해결하는 새 오픈소스 프레임워크 ‘유저버’를 통해 비동기식 마이크로서비스를 쉽고 빠르게 구축할 수 있다.    해당 프로젝트의 깃허브 리포지토리에 따르면 유저버라고 하는 비동기 프레임워크는 C++ 마이크로서비스, 서비스, 유틸리티의 ‘빠르고 편안한’ 생성을 위하여 일련의 추상화를 제공한다. 현재 이 프로젝트는 베타 상태다.  이어 개발팀은 효율적인 I/O 트랜잭션 문제를 투명하게 해결할 계획이라고 말했다. 아울러 C++의 속도, 파이썬의 단순함, 고랭의 코루틴(Coroutine) 모델도 제공한다고 덧붙였다.  유저버를 사용하면 일반적으로 실행 스레드를 일시 중단하는 작업이 수행되지 않는다. 대신, 스레드는 다른 작업을 처리하고 즉시 실행이 보장될 때만 작업 처리로 돌아간다. 개발자는 간단한 소스 코드를 얻고 OS에서 CPU를 많이 소비하는 컨텍스트 전환을 피하면서 적은 수의 실행 스레드를 통해 CPU를 효율적으로 활용할 수 있다고 개발팀은 설명했다. 유저버 프레임워크의 다른 기능은 아래와 같다.  • 캐시, 분산 잠금, JSON/YAML/BSON, 로깅, 메트릭, 통계, 작업에 관한 고급 구성요소 집합  • 즉각적인 서비스 구성 변경을 수행하는 기능  • 포괄적인 비동기와 저수준 동기화 기본 요소 및 OS 추상화 집합  • 몽고DB, 포스트그레, 레디스 및 기타 데이터베이스용 비동기 드라이버 • HTTP, GRPC 및 TCP를 포함한 데이터 전송 프로토콜 그리고 구성 및 취소를 포함한 작업용 비동기 드라이버 지난 7월 29일(현지 시각) 개발팀은 유저버의 베타 버전을 발표하면서, (이를 사용하면) 인턴과 학생도 일주일 만에 새 마이크로서비스를 작성하고 프로덕션에 배포할 수 있다며 유저버 개...

2022.08.03

“C++의 후계자가 목표”··· 구글, ‘카본’ 공개

‘C++’을 대체하기 위해 개발 중인 오픈소스 프로그래밍 언어 ‘카본(Carbon)’은 C++과 동일한 수준의 성능 그리고 호환성을 지원하는 한편, 기술적 부채와 고질적인 문제를 해결할 계획이다.  전 세계에서 가장 많이 쓰이는 프로그래밍 언어 중 하나인 ‘C++’의 후계자가 필요한 시점이라고 생각하는가? 구글의 개발자 그룹은 그렇다고 보고 있다.     해당 그룹은 C++과의 상호 운용성을 제공하는 동시에, 이 레거시 언어를 개선하는 데 있어 알려진 문제를 해결하는 실험적 프로그래밍 언어 ‘카본’을 개발하고 있다. 개발팀에 따르면 카본은 C 또는 C++이 수십 년간 쌓아온 기술적 부채를 상속하지 않으면서 최신 제네릭 시스템, 간단한 구문, 모듈식 코드 구성 등의 기반으로 시작하여 앞서 언급한 장애물을 극복하려고 시도 중이다.  현재 카본은 사용 가능한 상태는 아니다. 카본 개발팀은 C++이 퍼포먼스 크리티컬 소프트웨어 구축에 지배적인 프로그래밍 언어이며, 방대한 코드 기반이 있다고 말했다. 이에 카본은 ‘진화’보다는 ‘후속 접근 방식’을 제시하며, 기존 C++ 코드 기반 및 C++ 개발자를 위한 마이그레이션을 지원할 것이라고 전했다.  카본은 지난주 캐나다 토론토에서 열린 개발자 컨퍼런스 ‘C++노스(CPP North)’에서 공개됐다. 카본의 리소스는 해당 프로젝트의 깃허브 리포지토리에서 액세스할 수 있다. 개발팀은 C++ 후계자로써의 요건을 다음과 같이 언급하면서, 카본의 접근 방식이 C++ 생태계 위에 구축될 수 있다고 밝혔다.  • C++과 동일한 수준의 성능  • C++과의 원활한 상호 운용성 • 완만한 학습 곡선 • 비슷한 표현식 • 확장 가능한 마이그레이션  카본은 타입스크립트가 자바스크립트, 코틀린이 자바와 비슷한 것처럼 C++과 유사하게 설계됐다. 개발팀은 카본이 퍼포먼스 크리티컬 소프트웨어, 소프트웨어 및 언어 발전을 지원하고, 안전하며 읽기 및 쓰기가 쉬운 ...

C++ 카본 구글 프로그래밍 언어 개발 언어 오픈소스

2022.07.29

‘C++’을 대체하기 위해 개발 중인 오픈소스 프로그래밍 언어 ‘카본(Carbon)’은 C++과 동일한 수준의 성능 그리고 호환성을 지원하는 한편, 기술적 부채와 고질적인 문제를 해결할 계획이다.  전 세계에서 가장 많이 쓰이는 프로그래밍 언어 중 하나인 ‘C++’의 후계자가 필요한 시점이라고 생각하는가? 구글의 개발자 그룹은 그렇다고 보고 있다.     해당 그룹은 C++과의 상호 운용성을 제공하는 동시에, 이 레거시 언어를 개선하는 데 있어 알려진 문제를 해결하는 실험적 프로그래밍 언어 ‘카본’을 개발하고 있다. 개발팀에 따르면 카본은 C 또는 C++이 수십 년간 쌓아온 기술적 부채를 상속하지 않으면서 최신 제네릭 시스템, 간단한 구문, 모듈식 코드 구성 등의 기반으로 시작하여 앞서 언급한 장애물을 극복하려고 시도 중이다.  현재 카본은 사용 가능한 상태는 아니다. 카본 개발팀은 C++이 퍼포먼스 크리티컬 소프트웨어 구축에 지배적인 프로그래밍 언어이며, 방대한 코드 기반이 있다고 말했다. 이에 카본은 ‘진화’보다는 ‘후속 접근 방식’을 제시하며, 기존 C++ 코드 기반 및 C++ 개발자를 위한 마이그레이션을 지원할 것이라고 전했다.  카본은 지난주 캐나다 토론토에서 열린 개발자 컨퍼런스 ‘C++노스(CPP North)’에서 공개됐다. 카본의 리소스는 해당 프로젝트의 깃허브 리포지토리에서 액세스할 수 있다. 개발팀은 C++ 후계자로써의 요건을 다음과 같이 언급하면서, 카본의 접근 방식이 C++ 생태계 위에 구축될 수 있다고 밝혔다.  • C++과 동일한 수준의 성능  • C++과의 원활한 상호 운용성 • 완만한 학습 곡선 • 비슷한 표현식 • 확장 가능한 마이그레이션  카본은 타입스크립트가 자바스크립트, 코틀린이 자바와 비슷한 것처럼 C++과 유사하게 설계됐다. 개발팀은 카본이 퍼포먼스 크리티컬 소프트웨어, 소프트웨어 및 언어 발전을 지원하고, 안전하며 읽기 및 쓰기가 쉬운 ...

2022.07.29

“C++ 23, 표준 라이브러리 모듈 및 더 빠른 컴파일 지원할 계획”

오는 2023년 완성될 예정인 C++ 프로그래밍 언어의 차기 버전 ‘C++ 23’은 표준 라이브러리 모듈과 더 빠른 컴파일을 지원할 계획이다.    C++을 개발한 비얀 스트로스트룹은 이번 업그레이드에 표준 라이브러리 모듈(std)과 코루틴 일부 지원이 포함될 것이라고 밝혔다. 표준 라이브러리 모듈을 사용해 “Hello World”라는 문자열을 출력하는 간단한 프로그램을 만드는 방법은 아래와 같다.    import std: int main() {    Std::cout<< "Hello, World!\n"; } 이는 #include <iostream>을 사용하는 이전 버전보다 10배 더 빠르게 컴파일될 것이라고 그는 설명했다.  아울러 스트로스트룹에 따르면 모듈은 향상된 컴파일 속도와 코드 위생을 제공할 뿐만 아니라 일반 기능 및 템플릿의 소스 구성을 통합한다. 그는 “.h/.cpp 구분이 사라지고 C++ 소스 코드가 근본적으로 단순화된다. 결국 모듈은 코드를 구성하는 방식에 있어 가장 중요한 개선사항이 될 것”이라고 전했다.  이어서 그는 “ISO(International Organization for Standardization)에 따라 개발 중인 C++ 23에는 사소한 개선사항이 많지만 몇몇은 사소하지 않을 것”이라고 덧붙였다.  한편 스트로스트룹은 C++ 11과 C++ 20 같은 방식으로 C++의 주요 업그레이드가 돼선 안 된다고 언급했다. 오히려 C++ 20을 완성하고 몇 가지 중요한 기능을 제공할 예정이었다는 게 그의 설명이다. 하지만 팬데믹이 발목을 잡았다. 스트로스트룹은 “가상으로 심도 깊은 설계 논의를 하기가 어려웠다. 대면 접촉이 없었던 게 큰 핸디캡으로 작용했다. 그 결과 패턴 매칭, 계약, 동시성(실행자)을 위한 일반 모델 등의 기능은 C++ 26까지 기다려야 할 것으로 보인다”라...

C++ C++ 23 프로그래밍 언어

2022.06.03

오는 2023년 완성될 예정인 C++ 프로그래밍 언어의 차기 버전 ‘C++ 23’은 표준 라이브러리 모듈과 더 빠른 컴파일을 지원할 계획이다.    C++을 개발한 비얀 스트로스트룹은 이번 업그레이드에 표준 라이브러리 모듈(std)과 코루틴 일부 지원이 포함될 것이라고 밝혔다. 표준 라이브러리 모듈을 사용해 “Hello World”라는 문자열을 출력하는 간단한 프로그램을 만드는 방법은 아래와 같다.    import std: int main() {    Std::cout<< "Hello, World!\n"; } 이는 #include <iostream>을 사용하는 이전 버전보다 10배 더 빠르게 컴파일될 것이라고 그는 설명했다.  아울러 스트로스트룹에 따르면 모듈은 향상된 컴파일 속도와 코드 위생을 제공할 뿐만 아니라 일반 기능 및 템플릿의 소스 구성을 통합한다. 그는 “.h/.cpp 구분이 사라지고 C++ 소스 코드가 근본적으로 단순화된다. 결국 모듈은 코드를 구성하는 방식에 있어 가장 중요한 개선사항이 될 것”이라고 전했다.  이어서 그는 “ISO(International Organization for Standardization)에 따라 개발 중인 C++ 23에는 사소한 개선사항이 많지만 몇몇은 사소하지 않을 것”이라고 덧붙였다.  한편 스트로스트룹은 C++ 11과 C++ 20 같은 방식으로 C++의 주요 업그레이드가 돼선 안 된다고 언급했다. 오히려 C++ 20을 완성하고 몇 가지 중요한 기능을 제공할 예정이었다는 게 그의 설명이다. 하지만 팬데믹이 발목을 잡았다. 스트로스트룹은 “가상으로 심도 깊은 설계 논의를 하기가 어려웠다. 대면 접촉이 없었던 게 큰 핸디캡으로 작용했다. 그 결과 패턴 매칭, 계약, 동시성(실행자)을 위한 일반 모델 등의 기능은 C++ 26까지 기다려야 할 것으로 보인다”라...

2022.06.03

MS, C++ 20 모든 기능 지원하는 비주얼 스튜디오 2019 버전 16.10 출시

마이크로소프트가 자사의 플래그십 IDE인 비주얼 스튜디오 2019의 버전 16.10 릴리즈를 25일(현지시간) 출시했다. C++ 20의 모든 기능을 이용할 수 있는 게 특징이다. 한편, 같은 날 공개된 버전 16.11의 프리뷰 릴리즈는 핫 리로드(Hot Reload)와 .NET MAUI를 지원하는 데 초점을 맞춘다.   비주얼 스튜디오 2019 버전 16.10은 캘린더 및 타임존 설정 그리고 <format> 텍스트 포맷 기능 등 C++ 20의 기능을 구현할 수 있다. 마이크로소프트에 따르면 16.10의 컴파일러와 표준 라이브러리는 현재 기능 완료(feature-complete) 단계에 있다.    C++ 11이나 C++ 14 환경에 있는 개발자는 /await:strict 스위치를 활성화해 C++ 20-스타일 코루틴을 사용할 수 있다. 그리고 CMake 빌드 도구를 사용하는 이들은 CMakeSettings.json 대신 CMakePresets를 사용해 구성을 특정할 수 있다. 그 외 비주얼 스튜디오 2019 버전 16.10의 기능들은 다음과 같다.    깃 메뉴의 상태 표시줄에 새 브랜치 피커가 추가됐다. 이를 통해 로컬 및 원격 브랜치를 필터링하고, 마우스 우클릭 시 나오는 컨텍스트 메뉴에서 페치, 풀, 푸쉬 등 일반적인 행동을 수행할 수 있다. 또한, 깃 > 설정을 보면 리포지토리 열기 및 전환을 관리할 수 있는 옵션이 일부 추가됐다.    도커 컨테이너 기반 서비스를 빌드하고 관리하는 기능이 개선됐다. 개발자는 컴포즈 파일에 정의된 서비스들을 조합해 실행해볼 수 있다. 또한 컨테이너 창에서 보이는 컨테이너 및 이미지 관리 기능도 업그레이드됐다.   ‘사용되지 않는 레퍼런스 제거하기’ 명령이 추가됐다. 사용되지 않는 프로젝...

마이크로소프트 IDE 비주얼 스튜디오 2019 C++ 핫 리로드 .NET

2021.05.28

마이크로소프트가 자사의 플래그십 IDE인 비주얼 스튜디오 2019의 버전 16.10 릴리즈를 25일(현지시간) 출시했다. C++ 20의 모든 기능을 이용할 수 있는 게 특징이다. 한편, 같은 날 공개된 버전 16.11의 프리뷰 릴리즈는 핫 리로드(Hot Reload)와 .NET MAUI를 지원하는 데 초점을 맞춘다.   비주얼 스튜디오 2019 버전 16.10은 캘린더 및 타임존 설정 그리고 <format> 텍스트 포맷 기능 등 C++ 20의 기능을 구현할 수 있다. 마이크로소프트에 따르면 16.10의 컴파일러와 표준 라이브러리는 현재 기능 완료(feature-complete) 단계에 있다.    C++ 11이나 C++ 14 환경에 있는 개발자는 /await:strict 스위치를 활성화해 C++ 20-스타일 코루틴을 사용할 수 있다. 그리고 CMake 빌드 도구를 사용하는 이들은 CMakeSettings.json 대신 CMakePresets를 사용해 구성을 특정할 수 있다. 그 외 비주얼 스튜디오 2019 버전 16.10의 기능들은 다음과 같다.    깃 메뉴의 상태 표시줄에 새 브랜치 피커가 추가됐다. 이를 통해 로컬 및 원격 브랜치를 필터링하고, 마우스 우클릭 시 나오는 컨텍스트 메뉴에서 페치, 풀, 푸쉬 등 일반적인 행동을 수행할 수 있다. 또한, 깃 > 설정을 보면 리포지토리 열기 및 전환을 관리할 수 있는 옵션이 일부 추가됐다.    도커 컨테이너 기반 서비스를 빌드하고 관리하는 기능이 개선됐다. 개발자는 컴포즈 파일에 정의된 서비스들을 조합해 실행해볼 수 있다. 또한 컨테이너 창에서 보이는 컨테이너 및 이미지 관리 기능도 업그레이드됐다.   ‘사용되지 않는 레퍼런스 제거하기’ 명령이 추가됐다. 사용되지 않는 프로젝...

2021.05.28

MS 비주얼 스튜디오 2022, 첫 프리뷰 올 여름 출시 예정

마이크로소프트가 비주얼 스튜디오 IDE(Visual Studio IDE)의 다음 메이저 업그레이드 계획을 발표했다. 회사에 따르면 ‘비주얼 스튜디오 2022(Visual Studio 2022)’은 64-bit에, 더 빠르고, 더 가벼우며, 더 접근하기 쉬워질 예정이다.  ‘비주얼 스튜디오 2022’의 첫 번째 퍼블릭 프리뷰가 올 여름 출시될 예정이다. 이는 학생 및 예비 개발자부터 산업용 솔루션을 구축하는 숙련된 개발자까지 다양한 사용자가 쓸 수 있도록 고안됐다.    마이크로소프트는 ‘비주얼 스튜디오 2022’가 64-bit 버전이며, 이에 따라 기본 실행 프로세스(devenv.exe)는 더 이상 최대 4GB 메모리로 제한되지 않을 것이라고 밝혔다. 64-bit로의 전환은 구성요소 메모리 사용량을 줄이고, 32-bit 설계를 최적화할 수 있다는 게 회사 측 설명이다.  이어서 윈도우에서 64-bit 버전의 비주얼 스튜디오를 사용하면 메모리 부족 없이 크고 복잡한 애플리케이션을 열고 편집하며 실행하고 디버깅할 수 있다고 마이크로소프트는 전했다. 또 64-bit로 전환하더라도 비주얼 스튜디오로 빌드할 수 있는 애플리케이션 유형이나 비트는 바뀌지 않으며, 비주얼 스튜디오가 32-bit 앱 개발에 적합한 도구가 될 것이라고 덧붙였다.  이와 관련해 마이크로소프트는 1,600개 프로젝트와 약 30만 개 파일이 포함된 솔루션을 열고자 비주얼 스튜디오가 64-bit 프로세스에서 쓸 수 있는 추가 메모리를 사용해 스케일링하는 모습을 담은 비디오를 예로 들었다.    닷넷(.NET) 개발 측면을 살펴보자면 비주얼 스튜디오 2022는 닷넷 6(.NET 6)와 윈도우 및 맥 개발자를 위한 웹, 클라이언트, 모바일 앱용 통합 프레임워크를 지원한다. 여기에는 윈도우, 안드로이드, 맥OS, iOS의 크로스-플랫폼 클라이언트 앱을 지원하는 닷넷 마우이(.NET Multi-platform App UI; .NET ...

마이크로소프트 IDE 통합 개발 환경 비주얼 스튜디오 64비트 닷넷 인텔리센스 윈도우 데스크톱 안드로이드 iOS 애플리케이션 씨메이크 리눅스 WSL C++ 실시간 협업 애저 클라우드

2021.04.20

마이크로소프트가 비주얼 스튜디오 IDE(Visual Studio IDE)의 다음 메이저 업그레이드 계획을 발표했다. 회사에 따르면 ‘비주얼 스튜디오 2022(Visual Studio 2022)’은 64-bit에, 더 빠르고, 더 가벼우며, 더 접근하기 쉬워질 예정이다.  ‘비주얼 스튜디오 2022’의 첫 번째 퍼블릭 프리뷰가 올 여름 출시될 예정이다. 이는 학생 및 예비 개발자부터 산업용 솔루션을 구축하는 숙련된 개발자까지 다양한 사용자가 쓸 수 있도록 고안됐다.    마이크로소프트는 ‘비주얼 스튜디오 2022’가 64-bit 버전이며, 이에 따라 기본 실행 프로세스(devenv.exe)는 더 이상 최대 4GB 메모리로 제한되지 않을 것이라고 밝혔다. 64-bit로의 전환은 구성요소 메모리 사용량을 줄이고, 32-bit 설계를 최적화할 수 있다는 게 회사 측 설명이다.  이어서 윈도우에서 64-bit 버전의 비주얼 스튜디오를 사용하면 메모리 부족 없이 크고 복잡한 애플리케이션을 열고 편집하며 실행하고 디버깅할 수 있다고 마이크로소프트는 전했다. 또 64-bit로 전환하더라도 비주얼 스튜디오로 빌드할 수 있는 애플리케이션 유형이나 비트는 바뀌지 않으며, 비주얼 스튜디오가 32-bit 앱 개발에 적합한 도구가 될 것이라고 덧붙였다.  이와 관련해 마이크로소프트는 1,600개 프로젝트와 약 30만 개 파일이 포함된 솔루션을 열고자 비주얼 스튜디오가 64-bit 프로세스에서 쓸 수 있는 추가 메모리를 사용해 스케일링하는 모습을 담은 비디오를 예로 들었다.    닷넷(.NET) 개발 측면을 살펴보자면 비주얼 스튜디오 2022는 닷넷 6(.NET 6)와 윈도우 및 맥 개발자를 위한 웹, 클라이언트, 모바일 앱용 통합 프레임워크를 지원한다. 여기에는 윈도우, 안드로이드, 맥OS, iOS의 크로스-플랫폼 클라이언트 앱을 지원하는 닷넷 마우이(.NET Multi-platform App UI; .NET ...

2021.04.20

MS 비주얼 스튜디오 16.9 정식 출시··· 메모리 오류 감지 및 C++ 기능 지원

마이크로소프트가 ‘비주얼 스튜디오 2019 버전 16.9(Visual Studio 2019 v16.9)’를 프로덕션 릴리즈로 공개했다. 이와 동시에 ‘비주얼 스튜디오 2019 버전 16.10(Visual Studio 2019 v16.10)’의 첫 번째 프리뷰도 함께 발표됐다.  지난 3월 2일에 출시된 비주얼 스튜디오 2019 버전 16.9는 이곳에서 액세스할 수 있으며, 버전 16.10 프리뷰는 여기에서 확인할 수 있다. 비주얼 스튜디오 16.9는 런타임 메모리 문제를 찾기 위해 메모리 오류를 빠르게 감지하는 주소 검사기(Address Sanitizer, ASan)를 제공한다. 또한 프로덕션 릴리즈에서 마이크로소프트 비주얼 C++(Microsoft Visual C++)는 프로젝트와 함께 Asan을 사용하는 데 필요한 런타임 라이브러리를 파악할 수 있다.    C++의 경우 버전 16.9는 More constexpr 컨테이너 제안을 구현했다. 이를 통해 소멸자와 새 표현식을 constexpr로 만들 수 있다. C++ 인텔리센스(IntelliSense)도 개선됐다. 이 밖에 비주얼 스튜디오 2019 버전 16.9의 새로운 기능 및 개선사항은 다음과 같다.  • 닷넷(.NET) 생산성 향상을 위해 새 파일에 유형을 복사하고 붙여넣을 때 using 지시문이 자동으로 추가된다. 또 추론된 유형과 람다 매개변수 유형이 있는 변수에 수식어를 삽입하는 인라인 유형 힌트가 추가됐다. 인텔리센스 자동완성 기능은 이제 메소드 완성 및 개체 생성을 위한 커밋 문자로 세미콜론을 자동 삽입한다.  • WSL(Windows Subsystem for Linux) 2에서 닷넷 코어(.NET Core) 디버깅 기능을 사용하면 개발자가 선택한 리눅스 배포판을 사용하여 WSL 2에서 코드를 디버깅할 수 있다. 참고로 현재 우분투(Ubuntu)와 데비안(Debian)만 테스트됐다. 닷넷 코어에서 지원하는 다른 배포판도 작동할 순 있지만 닷넷...

마이크로소프트 비주얼 스튜디오 C++ 인텔리센스 닷넷 닷넷 코어 우분투 데비안 자마린 통합개발환경 소프트웨어 개발

2021.03.08

마이크로소프트가 ‘비주얼 스튜디오 2019 버전 16.9(Visual Studio 2019 v16.9)’를 프로덕션 릴리즈로 공개했다. 이와 동시에 ‘비주얼 스튜디오 2019 버전 16.10(Visual Studio 2019 v16.10)’의 첫 번째 프리뷰도 함께 발표됐다.  지난 3월 2일에 출시된 비주얼 스튜디오 2019 버전 16.9는 이곳에서 액세스할 수 있으며, 버전 16.10 프리뷰는 여기에서 확인할 수 있다. 비주얼 스튜디오 16.9는 런타임 메모리 문제를 찾기 위해 메모리 오류를 빠르게 감지하는 주소 검사기(Address Sanitizer, ASan)를 제공한다. 또한 프로덕션 릴리즈에서 마이크로소프트 비주얼 C++(Microsoft Visual C++)는 프로젝트와 함께 Asan을 사용하는 데 필요한 런타임 라이브러리를 파악할 수 있다.    C++의 경우 버전 16.9는 More constexpr 컨테이너 제안을 구현했다. 이를 통해 소멸자와 새 표현식을 constexpr로 만들 수 있다. C++ 인텔리센스(IntelliSense)도 개선됐다. 이 밖에 비주얼 스튜디오 2019 버전 16.9의 새로운 기능 및 개선사항은 다음과 같다.  • 닷넷(.NET) 생산성 향상을 위해 새 파일에 유형을 복사하고 붙여넣을 때 using 지시문이 자동으로 추가된다. 또 추론된 유형과 람다 매개변수 유형이 있는 변수에 수식어를 삽입하는 인라인 유형 힌트가 추가됐다. 인텔리센스 자동완성 기능은 이제 메소드 완성 및 개체 생성을 위한 커밋 문자로 세미콜론을 자동 삽입한다.  • WSL(Windows Subsystem for Linux) 2에서 닷넷 코어(.NET Core) 디버깅 기능을 사용하면 개발자가 선택한 리눅스 배포판을 사용하여 WSL 2에서 코드를 디버깅할 수 있다. 참고로 현재 우분투(Ubuntu)와 데비안(Debian)만 테스트됐다. 닷넷 코어에서 지원하는 다른 배포판도 작동할 순 있지만 닷넷...

2021.03.08

MS 비주얼 스튜디오 16.9 프리뷰 3, C++ 툴링 강화

마이크로소프트가 비주얼 스튜디오 2019 버전 16.9의 ‘프리뷰 3’을 1월 20일(현지 시각) 공개했다. 이번 업데이트에서는 C++ 개발을 위한 더 많은 명령줄 도구를 비롯해 닷넷(.NET) 및 XAML에 맞춰 향상된 기능 등을 제공한다. 지난 비주얼 스튜디오 2019 버전 16.8는 C 언어 표준 'C11'과 'C17' 지원을 추가한 바 있다.    회사에 따르면 이번 프리뷰 3를 통해 개발자는 명령줄 스위치 /openmp:llvm을 사용하여 OpenMP 런타임의 LLVM 버전을 대상으로 지정할 수 있다. 여기에는 #pragma omp 섹션의 lastprivate 절과 루프에서 병렬로 부호화되지 않은 인덱스 변수 지원도 추가됐다. 이 스위치는 현재 AMD64에서만 사용할 수 있으며, 아직 실험적 기능으로 개발 중인 상태라고 회사 측은 덧붙였다.  또한 마이크로소프트는 프리뷰 3에서 AMD64를 대상으로 하는 프로젝트 구성을 포함해 CMake 프로젝트 원격 개발을 위한 최고 수준의 지원을 제공한다고 밝혔다. 이 밖에 C++의 경우 표준 템플릿 라이브러리(Standard Template Library; STL) 구현에서 많은 잠금 및 보호 타입을 nodiscard로 표시했다.  비주얼 스튜디오 2019 버전 16.9의 ‘프리뷰 3’의 다른 변경 및 개선 사항은 아래와 같다.  • ‘MVVM(Model-View-ViewModel)’ 도구가 XAML용으로 확장됐다. 명령과 새로운 뷰 모델을 생성할 수 있는 노란 전구(LightBulb) 모양의 길잡이 기능도 도입됐다. • 닷넷(.NET) 생산성 향상을 위해 인텔리센스(IntelliSense)가 개선됐다. 이번 업데이트에서는 전처리기 기호의 자동 완성 추천을 하이라이트한다. 또한 이제 솔루션 탐색기(Solution Explorer)에서 분석기(Analyzer) 노드 아래에 ‘닷넷 5.0 C# 소스 생성기’를 표시한다. 이렇게 하면 생성된 코드를 쉽게 탐색하고 ...

마이크로소프트 통합개발환경 IDE 비주얼 스튜디오 C++

2021.01.26

마이크로소프트가 비주얼 스튜디오 2019 버전 16.9의 ‘프리뷰 3’을 1월 20일(현지 시각) 공개했다. 이번 업데이트에서는 C++ 개발을 위한 더 많은 명령줄 도구를 비롯해 닷넷(.NET) 및 XAML에 맞춰 향상된 기능 등을 제공한다. 지난 비주얼 스튜디오 2019 버전 16.8는 C 언어 표준 'C11'과 'C17' 지원을 추가한 바 있다.    회사에 따르면 이번 프리뷰 3를 통해 개발자는 명령줄 스위치 /openmp:llvm을 사용하여 OpenMP 런타임의 LLVM 버전을 대상으로 지정할 수 있다. 여기에는 #pragma omp 섹션의 lastprivate 절과 루프에서 병렬로 부호화되지 않은 인덱스 변수 지원도 추가됐다. 이 스위치는 현재 AMD64에서만 사용할 수 있으며, 아직 실험적 기능으로 개발 중인 상태라고 회사 측은 덧붙였다.  또한 마이크로소프트는 프리뷰 3에서 AMD64를 대상으로 하는 프로젝트 구성을 포함해 CMake 프로젝트 원격 개발을 위한 최고 수준의 지원을 제공한다고 밝혔다. 이 밖에 C++의 경우 표준 템플릿 라이브러리(Standard Template Library; STL) 구현에서 많은 잠금 및 보호 타입을 nodiscard로 표시했다.  비주얼 스튜디오 2019 버전 16.9의 ‘프리뷰 3’의 다른 변경 및 개선 사항은 아래와 같다.  • ‘MVVM(Model-View-ViewModel)’ 도구가 XAML용으로 확장됐다. 명령과 새로운 뷰 모델을 생성할 수 있는 노란 전구(LightBulb) 모양의 길잡이 기능도 도입됐다. • 닷넷(.NET) 생산성 향상을 위해 인텔리센스(IntelliSense)가 개선됐다. 이번 업데이트에서는 전처리기 기호의 자동 완성 추천을 하이라이트한다. 또한 이제 솔루션 탐색기(Solution Explorer)에서 분석기(Analyzer) 노드 아래에 ‘닷넷 5.0 C# 소스 생성기’를 표시한다. 이렇게 하면 생성된 코드를 쉽게 탐색하고 ...

2021.01.26

2020년 인기 급상승 프로그래밍 언어는 '파이썬' <티오베> 

티오베 인덱스에 따르면 파이썬이 1년 동안 가장 많은 인기를 얻은 개발 언어에 주어지는 ‘올해의 프로그래밍 언어상(Tiobe’s Programming Language of the Year Award)’에 선정됐다. 파이썬의 수상은 이번이 네 번째다.    2020년 한 해 동안 파이썬의 티오베 언어 인기 지수는 작년보다 2.01%P 상승해 1.99%P 증가한 C++를 앞질렀다. ‘배우기 쉬운’ 파이썬이 머신러닝 및 데이터 과학 등의 분야에서 인기를 끌고 있는 한편 웹 개발, 백-엔드 프로그래밍, 모바일 애플리케이션, 임베디드 시스템 등에도 사용되고 있다고 티오베는 설명했다.  한편 2021년 1월 티오베 인덱스에서 파이썬은 C와 자바에 이어 3위를 기록했다. 티오베 인덱스는 구글, 빙, 야후 등의 검색엔진에서 검색된 수치를 기반으로 한다. 파이썬은 2020년 11월에는 자바를 제치고 2위에 올랐지만 12월에는 다시 3위로 떨어졌다.  자바는 작년 5월 C 언어에 밀리기 전까지 티오베 인덱스에서 1위를 차지해왔다. 이와 관련해 티오베는 코로나19 팬데믹으로 인해 C가 의료기기에 많이 사용되면서 C 언어 기반 개발이 급증한 것으로 풀이했다. 2021년 1월 티오베 인덱스에서 자바는 11.96%를 기록했다. 이는 지난해 같은 기간과 비교해 약 5%P 하락한 수치다.  2021년 1월 티오베 인덱스 톱 10은 다음과 같다. 1. C 언어(17.38%) 2. 자바(11.96%) 3. 파이썬(11.72%) 4. C++(7.56%) 5. C#(3.95%) 6. 비주얼 베이직(3.84%) 7. 자바스크립트(2.2%) 8. PHP(1.99%) 9. R(1.9%) 10. 그루비(1.84%) 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스의 2021년 1월 톱 10은 아래와 같다. 1. 파이썬(30.44%) 2...

프로그래밍 프로그래밍 언어 개발 언어 티오베 티오베 인덱스 파이썬 C++ 자바 C 머신러닝 데이터 과학

2021.01.06

티오베 인덱스에 따르면 파이썬이 1년 동안 가장 많은 인기를 얻은 개발 언어에 주어지는 ‘올해의 프로그래밍 언어상(Tiobe’s Programming Language of the Year Award)’에 선정됐다. 파이썬의 수상은 이번이 네 번째다.    2020년 한 해 동안 파이썬의 티오베 언어 인기 지수는 작년보다 2.01%P 상승해 1.99%P 증가한 C++를 앞질렀다. ‘배우기 쉬운’ 파이썬이 머신러닝 및 데이터 과학 등의 분야에서 인기를 끌고 있는 한편 웹 개발, 백-엔드 프로그래밍, 모바일 애플리케이션, 임베디드 시스템 등에도 사용되고 있다고 티오베는 설명했다.  한편 2021년 1월 티오베 인덱스에서 파이썬은 C와 자바에 이어 3위를 기록했다. 티오베 인덱스는 구글, 빙, 야후 등의 검색엔진에서 검색된 수치를 기반으로 한다. 파이썬은 2020년 11월에는 자바를 제치고 2위에 올랐지만 12월에는 다시 3위로 떨어졌다.  자바는 작년 5월 C 언어에 밀리기 전까지 티오베 인덱스에서 1위를 차지해왔다. 이와 관련해 티오베는 코로나19 팬데믹으로 인해 C가 의료기기에 많이 사용되면서 C 언어 기반 개발이 급증한 것으로 풀이했다. 2021년 1월 티오베 인덱스에서 자바는 11.96%를 기록했다. 이는 지난해 같은 기간과 비교해 약 5%P 하락한 수치다.  2021년 1월 티오베 인덱스 톱 10은 다음과 같다. 1. C 언어(17.38%) 2. 자바(11.96%) 3. 파이썬(11.72%) 4. C++(7.56%) 5. C#(3.95%) 6. 비주얼 베이직(3.84%) 7. 자바스크립트(2.2%) 8. PHP(1.99%) 9. R(1.9%) 10. 그루비(1.84%) 구글에서 특정 프로그래밍 언어 튜토리얼이 얼마나 많이 검색됐는지를 기준으로 하는 PYPL(Popularity of Programming Language) 인덱스의 2021년 1월 톱 10은 아래와 같다. 1. 파이썬(30.44%) 2...

2021.01.06

“여전히 매력적인 선택지”··· C 언어 주요 강좌 4선

‘전통강자’ C 언어는 여전히 컴퓨터 세계에서 널리 사용되고 있다. 다음의 4가지 강좌로 C 언어를 시작해보자.  오늘날 수많은 프로그래밍 언어가 있지만 ‘C 언어’는 지금도 다수가 사용하는 인기 있는 선택지다. 리눅스 커널(Linux kernel), 파이썬 런타임(Python runtime)과 같은 많은 주요 프로젝트가 C 언어를 사용하고 있으며, 계속해서 C 언어를 쓸 가능성이 높다. 임베디드 프로그래밍과 같은 일부 컴퓨팅 분야에서는 C 언어가 필수이기도 하다.    그리고 C 언어를 배우기도 더할 나위 없이 좋은 시기다. 책에서 온라인 강좌까지 학습 자원이 풍부하기 때문이다. 여기서는 C 프로그래밍 학습을 위한 주요 온라인 강좌 4가지를 살펴본다.  각 강좌는 각기 다른 수준의 사용자를 대상으로 하며, 서로 다른 접근법을 제시한다. 예를 들면 한 강좌에서는 C 언어와 리눅스를 결합해 배울 수 있고, 다른 강좌에서는 C와 C++를 함께 학습할 수 있다.  1. 유데미(Udemy): ‘입문자를 위한 C 프로그래밍(C Programming for Beginners)’ C 언어가 처음 배우기에 가장 쉬운 프로그래밍 언어라고 할 순 없다. 하지만 그렇다고 해서 C 언어가 ‘모국어’로는 적절하지 않다거나, 하나만 배우기 힘들다는 것은 아니다. 유데미의 ‘입문자를 위한 C 프로그래밍’ 강좌는 ‘기본을 우선하는(Basic First)’ 접근법을 취하며 이를 증명한다.  해당 강좌에는 윈도우, 리눅스, 맥 등의 시스템에 필요한 소프트웨어 설치 방법을 알려주는 과정이 포함돼 있다. 또한 초보자도 접근하기 편한 코드블록(Code::Blocks)을 코드 편집기로 사용한다.  본 강좌는 다국어 자막 서비스(영어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 폴란드어, 스페인어)를 지원한다.  • 수강 기간: 총 24시간 3분 / 자기 진도에 맞춰 학습할 수 있음    2. ...

개발 언어 프로그래밍 언어 C 언어 C++ 리눅스 파이썬 소프트웨어 개발 임베디드 프로그래밍 유데미 코드블록 윈도우 MIT 자바 자바스크립트

2020.10.22

‘전통강자’ C 언어는 여전히 컴퓨터 세계에서 널리 사용되고 있다. 다음의 4가지 강좌로 C 언어를 시작해보자.  오늘날 수많은 프로그래밍 언어가 있지만 ‘C 언어’는 지금도 다수가 사용하는 인기 있는 선택지다. 리눅스 커널(Linux kernel), 파이썬 런타임(Python runtime)과 같은 많은 주요 프로젝트가 C 언어를 사용하고 있으며, 계속해서 C 언어를 쓸 가능성이 높다. 임베디드 프로그래밍과 같은 일부 컴퓨팅 분야에서는 C 언어가 필수이기도 하다.    그리고 C 언어를 배우기도 더할 나위 없이 좋은 시기다. 책에서 온라인 강좌까지 학습 자원이 풍부하기 때문이다. 여기서는 C 프로그래밍 학습을 위한 주요 온라인 강좌 4가지를 살펴본다.  각 강좌는 각기 다른 수준의 사용자를 대상으로 하며, 서로 다른 접근법을 제시한다. 예를 들면 한 강좌에서는 C 언어와 리눅스를 결합해 배울 수 있고, 다른 강좌에서는 C와 C++를 함께 학습할 수 있다.  1. 유데미(Udemy): ‘입문자를 위한 C 프로그래밍(C Programming for Beginners)’ C 언어가 처음 배우기에 가장 쉬운 프로그래밍 언어라고 할 순 없다. 하지만 그렇다고 해서 C 언어가 ‘모국어’로는 적절하지 않다거나, 하나만 배우기 힘들다는 것은 아니다. 유데미의 ‘입문자를 위한 C 프로그래밍’ 강좌는 ‘기본을 우선하는(Basic First)’ 접근법을 취하며 이를 증명한다.  해당 강좌에는 윈도우, 리눅스, 맥 등의 시스템에 필요한 소프트웨어 설치 방법을 알려주는 과정이 포함돼 있다. 또한 초보자도 접근하기 편한 코드블록(Code::Blocks)을 코드 편집기로 사용한다.  본 강좌는 다국어 자막 서비스(영어, 프랑스어, 독일어, 이탈리아어, 포르투갈어, 폴란드어, 스페인어)를 지원한다.  • 수강 기간: 총 24시간 3분 / 자기 진도에 맞춰 학습할 수 있음    2. ...

2020.10.22

애저 데이터브릭스, ‘포톤 쿼리 엔진’ 프리뷰 공개

마이크로소프트가 애저 데이터브릭스 클라우드 애널리틱스 및 AI 서비스용 벡터화된 쿼리 엔진, ‘포톤 기반 델타 엔진(Photon powered Delta Engine)’ 프리뷰를 공개했다. 애저 데이터브릭스(Azure Databricks)는 아파치 스파크(Apache Spark)를 기반으로 하는 데이터 애널리틱스 플랫폼이며, 데이터브릭스와의 제휴로 제공된다.    마이크로소프트는 데이터 중심 의사결정 체제를 도입하는 기업이 늘어나면서 방대한 양과 유형의 데이터를 신속하게 분석할 수 있는 플랫폼을 확보하는 것은 필수적이라고 밝혔다.  ‘포톤’은 C++로 작성됐으며 스파크 API(Spark APIs)와 호환된다. 회사에 따르면 이 벡터화된 쿼리 엔진은 최신 CPU 아키텍처와 델타 레이크(Delta lake) 오픈소스 트랜잭션 스토리지 계층을 활용해 아파치 스파크 3.0 성능을 최대 20배까지 향상시킨다.    포톤은 데이터와 명령어 수준에서 CPU 처리의 더 큰 병렬성을 제공한다. 델타 엔진의 다른 구성요소에는 개선된 쿼리 최적화 프로그램과 캐싱 계층이 있다. 이러한 기술 조합은 데이터 엔지니어링, 머신러닝, 데이터 과학, 데이터 애널리틱스를 포함한 빅데이터 사용 사례를 강화한다.  한편 애저 데이터브릭스를 사용하면 최적화된 아파치 스파크 환경을 빠르게 설정할 수 있다. 또한 애저 액티브 디렉토리(Azure Active Directory), 애저 시냅스 애널리틱스(Azure Synapse Analytics), 애저 머신러닝(Azure Machine Learning)과 같은 여러 애저 클라우드 서비스와의 통합을 지원한다. 이를 통해 사용자는 엔드투엔드 데이터 웨어하우스, 머신러닝, 실시간 분석 애널리틱스 솔루션 등을 구축할 수 있다. ciokr@idg.co.kr  

마이크로소프트 애저 데이터브릭스 애저 데이터브릭스 포톤 쿼리 엔진 CPU 병렬 처리 애널리틱스 아파치 스파크 C++ 데이터 엔지니어링 머신러닝 데이터 과학 빅데이터

2020.09.29

마이크로소프트가 애저 데이터브릭스 클라우드 애널리틱스 및 AI 서비스용 벡터화된 쿼리 엔진, ‘포톤 기반 델타 엔진(Photon powered Delta Engine)’ 프리뷰를 공개했다. 애저 데이터브릭스(Azure Databricks)는 아파치 스파크(Apache Spark)를 기반으로 하는 데이터 애널리틱스 플랫폼이며, 데이터브릭스와의 제휴로 제공된다.    마이크로소프트는 데이터 중심 의사결정 체제를 도입하는 기업이 늘어나면서 방대한 양과 유형의 데이터를 신속하게 분석할 수 있는 플랫폼을 확보하는 것은 필수적이라고 밝혔다.  ‘포톤’은 C++로 작성됐으며 스파크 API(Spark APIs)와 호환된다. 회사에 따르면 이 벡터화된 쿼리 엔진은 최신 CPU 아키텍처와 델타 레이크(Delta lake) 오픈소스 트랜잭션 스토리지 계층을 활용해 아파치 스파크 3.0 성능을 최대 20배까지 향상시킨다.    포톤은 데이터와 명령어 수준에서 CPU 처리의 더 큰 병렬성을 제공한다. 델타 엔진의 다른 구성요소에는 개선된 쿼리 최적화 프로그램과 캐싱 계층이 있다. 이러한 기술 조합은 데이터 엔지니어링, 머신러닝, 데이터 과학, 데이터 애널리틱스를 포함한 빅데이터 사용 사례를 강화한다.  한편 애저 데이터브릭스를 사용하면 최적화된 아파치 스파크 환경을 빠르게 설정할 수 있다. 또한 애저 액티브 디렉토리(Azure Active Directory), 애저 시냅스 애널리틱스(Azure Synapse Analytics), 애저 머신러닝(Azure Machine Learning)과 같은 여러 애저 클라우드 서비스와의 통합을 지원한다. 이를 통해 사용자는 엔드투엔드 데이터 웨어하우스, 머신러닝, 실시간 분석 애널리틱스 솔루션 등을 구축할 수 있다. ciokr@idg.co.kr  

2020.09.29

C++ 14 기능 지원부터 벡터 API까지··· JDK 16, 기능 구체화

다음 자바(Java) 업그레이드는 새로운 메타스페이스 메모리 할당자, JDK 소스 코드의 C++ 14 언어 기능 지원, 벡터 API 등을 목표로 한다.    JDK C++ 소스 코드의 C++ 14 기능 지원부터 벡터 API, 사용하지 않는 클래스 메타데이터 메모리를 OS에 빠르게 반환할 수 있는 ‘탄력적인’ 메타스페이스 기능까지 자바 개발 키트(JDK) 버전 16이 구체화되기 시작했다.     JDK 16은 지난 9월 15일 출시된 JDK 15를 따르는 표준 자바 버전의 참조구현이 될 것이다. 또한 표준 자바의 6개월 출시 간격에 따라 JDK 16은 2021년 3월 정식 배포될 예정이다. 현재까지 제안된 JDK 16의 새로운 기능은 다음과 같다.  • 탄력적인 메타스페이스 기능(elastic metaspace capability): 사용하지 않는 핫스팟 VM(HotSpot VM) 클래스 메타데이터(메타스페이스) 메모리를 OS에 신속하게 반환한다. 메타스페이스 풋프린트를 줄이고 메타스페이스 코드를 단순화해 유지관리 비용을 절감한다.  메타스페이스에는 오프-힙 메모리(off-heap memory) 사용량이 많다는 문제가 있었다. 새로 제안된 계획에서는 기존 메모리 할당자를 버디 기반 할당 체계로 대체해 메모리를 파티션으로 분할하여 메모리 요청을 처리할 수 있는 알고리즘을 제공한다.  해당 접근법은 리눅스 커널(Linux kernel) 등에서 사용돼 왔으며, 클래스-로더 오버헤드를 줄이기 위해 더 작은 청크(chunks)로 메모리를 할당한다는 점에서 실용적이다. 메모리 단편화 또한 줄어든다.  게다가 OS에서 메모리 관리 영역으로 메모리를 할당하는 작업은 필요에 따라 수행된다. 대규모 영역에서 시작하지만 즉시 사용하지 않거나 전체 범위를 사용하지 않는 로더의 풋프린트를 줄인다.  버디 할당이 제공하는 탄력성을 최대한 활용하고자 메타스페이스 메모리는 서로 독립적으로 커밋하거나...

자바 자바 개발 키트 JDK JDK 16 메타스페이스 메모리 C++ 벡터 API 리눅스 핫스팟 VM 머큐리얼 기트허브

2020.09.21

다음 자바(Java) 업그레이드는 새로운 메타스페이스 메모리 할당자, JDK 소스 코드의 C++ 14 언어 기능 지원, 벡터 API 등을 목표로 한다.    JDK C++ 소스 코드의 C++ 14 기능 지원부터 벡터 API, 사용하지 않는 클래스 메타데이터 메모리를 OS에 빠르게 반환할 수 있는 ‘탄력적인’ 메타스페이스 기능까지 자바 개발 키트(JDK) 버전 16이 구체화되기 시작했다.     JDK 16은 지난 9월 15일 출시된 JDK 15를 따르는 표준 자바 버전의 참조구현이 될 것이다. 또한 표준 자바의 6개월 출시 간격에 따라 JDK 16은 2021년 3월 정식 배포될 예정이다. 현재까지 제안된 JDK 16의 새로운 기능은 다음과 같다.  • 탄력적인 메타스페이스 기능(elastic metaspace capability): 사용하지 않는 핫스팟 VM(HotSpot VM) 클래스 메타데이터(메타스페이스) 메모리를 OS에 신속하게 반환한다. 메타스페이스 풋프린트를 줄이고 메타스페이스 코드를 단순화해 유지관리 비용을 절감한다.  메타스페이스에는 오프-힙 메모리(off-heap memory) 사용량이 많다는 문제가 있었다. 새로 제안된 계획에서는 기존 메모리 할당자를 버디 기반 할당 체계로 대체해 메모리를 파티션으로 분할하여 메모리 요청을 처리할 수 있는 알고리즘을 제공한다.  해당 접근법은 리눅스 커널(Linux kernel) 등에서 사용돼 왔으며, 클래스-로더 오버헤드를 줄이기 위해 더 작은 청크(chunks)로 메모리를 할당한다는 점에서 실용적이다. 메모리 단편화 또한 줄어든다.  게다가 OS에서 메모리 관리 영역으로 메모리를 할당하는 작업은 필요에 따라 수행된다. 대규모 영역에서 시작하지만 즉시 사용하지 않거나 전체 범위를 사용하지 않는 로더의 풋프린트를 줄인다.  버디 할당이 제공하는 탄력성을 최대한 활용하고자 메타스페이스 메모리는 서로 독립적으로 커밋하거나...

2020.09.21

마이크로소프트 비주얼 스튜디오, ‘C 언어’ 지원 강화

마이크로소프트의 ‘비주얼 스튜디오 IDE(Visual Studio IDE)’가 C 언어 표준 ‘C11’과 ‘C17’의 지원을 추가하고 제한됐던 기능 지원을 확장했다. 지난 9월 14일 공개한 비주얼 스튜디오 2019 버전 16.8 프리뷰 3부터 C11과 C17 버전이 지원된다.  그동안 비주얼 스튜디오는 C++ 언어에 필요한 만큼만 C 언어를 지원해왔다. 지난 14일(현지 시각) 마이크로소프트는 공식 블로그를 통해 표준에 부합하는 토큰기반 전처리기(token-based preprocessor)가 컴파일러에 추가되면서 상황이 달라졌다고 밝혔다. 이어서 /std:c11와 /std:c17라는 두 개의 컴파일러 스위치가 추가돼 최신 ISO C 표준을 공식 지원하게 됐다고 덧붙였다.    회사에 따르면 _Pragma, restrict, Static_assert 등을 포함해 C11과 C17의 모든 필수 기능이 지원된다. 비주얼 스튜디오의 소스코드 자동완성 프로그램인 인텔리센스(IntelliSense)도 이 기능들과 네이티브하게 작동하며, C 코드 구문 강조 표시를 활성화하려면 소스파일에 .c 파일 확장자를 사용하거나 /TC 컴파일러 스위치를 사용하면 된다. 그러나 인텔리센스 하이라이팅은 현재 표준 헤더에서 도입한 매크로가 아닌 키워드에서만 사용할 수 있다. 이는 이후 릴리스에서 수정될 예정이다.  표준에 맞는 토큰 기반 전처리기가 포함된 두 개의 새 C 컴파일러 스위치는 /Zc: 전처리기를 의미한다는 게 회사 측 설명이다. C11 또는 C17과 함께 기존의 문자 기반 전처리기(character-based preprocessor)를 사용하려면 /Zc: 전처리기 컴파일러 스위치를 전달해야 한다.  마이크로소프트는 C17을 ISO C의 버그 수정 릴리즈라고 설명했다. C11과 C17 버전의 차이점은 C17의 _STDC_version 매크로뿐이다. 비주얼 스튜디오는 현재 C11의 선택적 기능을 지원하지 않지만 향후 릴리즈에서...

마이크로소프트 비주얼 스튜디오 C 언어 C++ 인텔리센스

2020.09.17

마이크로소프트의 ‘비주얼 스튜디오 IDE(Visual Studio IDE)’가 C 언어 표준 ‘C11’과 ‘C17’의 지원을 추가하고 제한됐던 기능 지원을 확장했다. 지난 9월 14일 공개한 비주얼 스튜디오 2019 버전 16.8 프리뷰 3부터 C11과 C17 버전이 지원된다.  그동안 비주얼 스튜디오는 C++ 언어에 필요한 만큼만 C 언어를 지원해왔다. 지난 14일(현지 시각) 마이크로소프트는 공식 블로그를 통해 표준에 부합하는 토큰기반 전처리기(token-based preprocessor)가 컴파일러에 추가되면서 상황이 달라졌다고 밝혔다. 이어서 /std:c11와 /std:c17라는 두 개의 컴파일러 스위치가 추가돼 최신 ISO C 표준을 공식 지원하게 됐다고 덧붙였다.    회사에 따르면 _Pragma, restrict, Static_assert 등을 포함해 C11과 C17의 모든 필수 기능이 지원된다. 비주얼 스튜디오의 소스코드 자동완성 프로그램인 인텔리센스(IntelliSense)도 이 기능들과 네이티브하게 작동하며, C 코드 구문 강조 표시를 활성화하려면 소스파일에 .c 파일 확장자를 사용하거나 /TC 컴파일러 스위치를 사용하면 된다. 그러나 인텔리센스 하이라이팅은 현재 표준 헤더에서 도입한 매크로가 아닌 키워드에서만 사용할 수 있다. 이는 이후 릴리스에서 수정될 예정이다.  표준에 맞는 토큰 기반 전처리기가 포함된 두 개의 새 C 컴파일러 스위치는 /Zc: 전처리기를 의미한다는 게 회사 측 설명이다. C11 또는 C17과 함께 기존의 문자 기반 전처리기(character-based preprocessor)를 사용하려면 /Zc: 전처리기 컴파일러 스위치를 전달해야 한다.  마이크로소프트는 C17을 ISO C의 버그 수정 릴리즈라고 설명했다. C11과 C17 버전의 차이점은 C17의 _STDC_version 매크로뿐이다. 비주얼 스튜디오는 현재 C11의 선택적 기능을 지원하지 않지만 향후 릴리즈에서...

2020.09.17

C++ 20, 최종 기술 승인 획득··· 모듈 및 코루틴 등 추가

모듈(modules)과 코루틴(coroutines) 등이 추가된 C++ 언어 업그레이드가 연말 이전에 출시될 예정이다.  지난 9월 4일(현지 시각) C++ 20이 ISO로부터 최종 기술 승인을 받았다. 올해 말에 정식 출시될 계획이다. 이번 버전에는 모듈, 코루틴 등 새롭고 다양한 기능들이 추가됐다.    1979년 시스템 프로그래밍을 지원하고자 설계된 C++은 지금도 여전히 중요한 개발 언어다. 2020년 9월 티오베(Tiobe) 인덱스에 따르면 C++은 C, 자바, 파이썬에 이어 4위를 차지했으며, 가장 빠르게 성장하는 언어인 것으로 나타났다. 티오베는 이 언어를 활성화시키는 요인 중 하나로 C++ 20의 스펙을 꼽았다.  C++ 20의 새로운 기능은 다음과 같다.  • 모듈(Modules). 개발자가 모듈 구성요소를 사용할 수 있도록 지원한다.  • 콘셉트(Concepts). 템플릿 요구사항을 지정하고 제네릭 프로그래밍을 지원하는 데 사용된다. 이는 코드 품질을 향상한다.  • 동기화 라이브러리(Synchronization library). 세분된 하드웨어 제어 지원을 향상한다.   • 개선된 컴파일 시간 연산 • 코루틴(Coroutines). 비선점형(nonpreemptive) 멀티 태스킹에서 사용하기 위해 서브루틴을 일반화한다. 허나 표준 라이브러리의 코루틴에 관한 표준화된 지원은 여전히 미흡하다. 이는 C++ 23에서 지원될 것으로 예상된다.  • 범위(Ranges). 요소 범위를 처리할 구성 요소를 제공한다.   • 기능 테스트 매크로(Feature test macros). C++ 11 이상 언어 및 라이브러리 기능에 해당하는 매크로 세트를 지원한다.   • 룩 업(look-up) 시 미리 계산된 해시값  • 튜플(tuple), 배열(array), 클래스(class), 매개변수 팩(parameter pack) 또는 범위(range)...

개발 언어 프로그래밍 언어 개발자 C++ 티오베 모듈 코루틴 자바 파이썬 C C++ 20 C++ 23

2020.09.11

모듈(modules)과 코루틴(coroutines) 등이 추가된 C++ 언어 업그레이드가 연말 이전에 출시될 예정이다.  지난 9월 4일(현지 시각) C++ 20이 ISO로부터 최종 기술 승인을 받았다. 올해 말에 정식 출시될 계획이다. 이번 버전에는 모듈, 코루틴 등 새롭고 다양한 기능들이 추가됐다.    1979년 시스템 프로그래밍을 지원하고자 설계된 C++은 지금도 여전히 중요한 개발 언어다. 2020년 9월 티오베(Tiobe) 인덱스에 따르면 C++은 C, 자바, 파이썬에 이어 4위를 차지했으며, 가장 빠르게 성장하는 언어인 것으로 나타났다. 티오베는 이 언어를 활성화시키는 요인 중 하나로 C++ 20의 스펙을 꼽았다.  C++ 20의 새로운 기능은 다음과 같다.  • 모듈(Modules). 개발자가 모듈 구성요소를 사용할 수 있도록 지원한다.  • 콘셉트(Concepts). 템플릿 요구사항을 지정하고 제네릭 프로그래밍을 지원하는 데 사용된다. 이는 코드 품질을 향상한다.  • 동기화 라이브러리(Synchronization library). 세분된 하드웨어 제어 지원을 향상한다.   • 개선된 컴파일 시간 연산 • 코루틴(Coroutines). 비선점형(nonpreemptive) 멀티 태스킹에서 사용하기 위해 서브루틴을 일반화한다. 허나 표준 라이브러리의 코루틴에 관한 표준화된 지원은 여전히 미흡하다. 이는 C++ 23에서 지원될 것으로 예상된다.  • 범위(Ranges). 요소 범위를 처리할 구성 요소를 제공한다.   • 기능 테스트 매크로(Feature test macros). C++ 11 이상 언어 및 라이브러리 기능에 해당하는 매크로 세트를 지원한다.   • 룩 업(look-up) 시 미리 계산된 해시값  • 튜플(tuple), 배열(array), 클래스(class), 매개변수 팩(parameter pack) 또는 범위(range)...

2020.09.11

C++ 프로그래밍의 감초··· ‘인기 라이브러리 8선’

C++ 개발자들은 윈도우 앱, 모바일 앱, 머신러닝(ML) 및 과학 앱 등을 개발할 때 아래와 같은 라이브러리를 애용한다. 범용 시스템 프로그래밍 언어인 C++은 1979년에 설계됐다. 이제 40살도 넘었다. 그래도 열기가 식기는커녕 여전히 여러 프로그래밍 인기 지수에서 정상에 가까운 자리를 차지하고 있다. C++ 문턱이 낮은 데에는 이유가 있다. IDE 제작자, 편집자, 컴파일러, 테스트 프레임워크, 코드 품질, 기타 도구 등에 광범위하게 지원된다. 아울러 소프트웨어 개발자들은  C++ 애플리케이션 구축에 도움이 되는 훌륭한 라이브러리도 많이 이용할 수 있다. C++ 개발자들이 필수적으로 활용하는 8가지 라이브러리를 소개한다.    액티브 템플릿 라이브러리 마이크로소프트에서 나온 액티브 템플릿 라이브러리(ATL)는 COM(Common Object Model) 개체 구축을 위한 C++ 클래스 모음이다. 이중 인터페이스, 표준 COM 계산자 인터페이스, 연결점, 액티브엑스(ActiveX) 컨트롤과 같은 COM 기능을 지원한다. 비주얼 스튜디오 IDE와 함께 이용 가능한 ATL은 싱글 스레드 개체와 아파트 모델 개체, 프리 스레드 모델 개체 구축에 사용할 수 있다. 아니면, 프리 스레드 개체와 아파트 모델 개체를 둘 다 구축할 때 사용할 수 있다. Asio C++ 라이브러리 Asio C++ 라이브러리는 네트워크 및 로우레벨 I/O 프로그래밍에 사용되며 일관된 비동기 모델을 제공한다. 동시성과 C++ 네트워킹, 그리고 다른 종류의 I/O를 위한 기본 구성요소를 제공하는 Asio는 스마트폰 앱에서부터 게임, 고도의 쌍방향 웹사이트와 실시간 거래 시스템에 이르기까지 다양한 애플리케이션에 사용되어 왔다.  Asio를 사용하는 프로젝트로는 WebSocketPP 라이브러리와 루아(Lua) 언어용 DDT3 원격 디버거 등이 있다. Asio는 부스트 소프트웨어 라이센스 하에 무료 오픈 소스로 이용 가능하며 리눅스, 윈도우, 맥OS,...

C++ 언어 라이브러리

2020.07.16

C++ 개발자들은 윈도우 앱, 모바일 앱, 머신러닝(ML) 및 과학 앱 등을 개발할 때 아래와 같은 라이브러리를 애용한다. 범용 시스템 프로그래밍 언어인 C++은 1979년에 설계됐다. 이제 40살도 넘었다. 그래도 열기가 식기는커녕 여전히 여러 프로그래밍 인기 지수에서 정상에 가까운 자리를 차지하고 있다. C++ 문턱이 낮은 데에는 이유가 있다. IDE 제작자, 편집자, 컴파일러, 테스트 프레임워크, 코드 품질, 기타 도구 등에 광범위하게 지원된다. 아울러 소프트웨어 개발자들은  C++ 애플리케이션 구축에 도움이 되는 훌륭한 라이브러리도 많이 이용할 수 있다. C++ 개발자들이 필수적으로 활용하는 8가지 라이브러리를 소개한다.    액티브 템플릿 라이브러리 마이크로소프트에서 나온 액티브 템플릿 라이브러리(ATL)는 COM(Common Object Model) 개체 구축을 위한 C++ 클래스 모음이다. 이중 인터페이스, 표준 COM 계산자 인터페이스, 연결점, 액티브엑스(ActiveX) 컨트롤과 같은 COM 기능을 지원한다. 비주얼 스튜디오 IDE와 함께 이용 가능한 ATL은 싱글 스레드 개체와 아파트 모델 개체, 프리 스레드 모델 개체 구축에 사용할 수 있다. 아니면, 프리 스레드 개체와 아파트 모델 개체를 둘 다 구축할 때 사용할 수 있다. Asio C++ 라이브러리 Asio C++ 라이브러리는 네트워크 및 로우레벨 I/O 프로그래밍에 사용되며 일관된 비동기 모델을 제공한다. 동시성과 C++ 네트워킹, 그리고 다른 종류의 I/O를 위한 기본 구성요소를 제공하는 Asio는 스마트폰 앱에서부터 게임, 고도의 쌍방향 웹사이트와 실시간 거래 시스템에 이르기까지 다양한 애플리케이션에 사용되어 왔다.  Asio를 사용하는 프로젝트로는 WebSocketPP 라이브러리와 루아(Lua) 언어용 DDT3 원격 디버거 등이 있다. Asio는 부스트 소프트웨어 라이센스 하에 무료 오픈 소스로 이용 가능하며 리눅스, 윈도우, 맥OS,...

2020.07.16

안드로이드 스튜디오 4.0 출시··· 모션에디터 및 빌드 분석기 추가

안드로이드 스튜디오 4.0이 출시됐다. 안드로이드 애플리케이션을 개발하기 위한 공식 통합개발환경(IDE)의 최신 버전이다. 이번 업데이트에는 모션 에디터 및 빌드 분석기 등 신기능들이 추가됐다.    모션 에디터(Motion Editor)는 MotionLayout 타입을 위한 비주얼 디자인 편집기다. 애플리케이션의 모션과 위젯 애니메이션을 관리하기 위해 MotionLayout API를 사용하는 데 있어 그 과정을 더 간편하게 해준다. 또한 XML 파일이 생성돼 개발자가 해당 작업을 수동으로 처리하지 않아도 된다. 이 밖에 컨스트레인트 세트(constraint sets), 전환(transitions), 키프레임(keyframes) 및 뷰 속성(view attributes) 편집도 지원한다. MotionLayout은 크고 복잡한 안드로이드 뷰를 유연하게 조절하는 ConstraintLayout의 기능을 기반으로 한다.  빌드 분석기(Build Analyzer)는 비활성화된 최적화 혹은 잘못 구성된 작업 등 빌드에서 발생하는 병목 현상을 해결한다. 이는 자바 8 언어를 사용하고 다이내믹 피처 모듈(Dynamic Feature Module) 간에 기능 종속성을 생성하는 '안드로이드 그래들 4.0.0 플러그인(Android Gradle 4.0.0 plug-in)'를 통해 지원된다.   안드로이드 스튜디오 4.0은 안드로이드 스튜디오 개발자 웹사이트에서 다운로드 받을 수 있다. 이밖에 다른 기능은 다음과 같다.  • 코틀린 DSL 빌드 스크립트 파일(*kts)이 지원된다. 코틀린 빌드 스크립트는 PSD(Project Structure Dialog)에서 빠른 수정사항을 제공한다.  • 업그레이드된 레이아웃 인스펙터(Layout Inspector)는 실행 중인 앱으로 계속 업데이트되는 데이터에 접근해 리소스 사용을 분석해줌으로써 UI 디버깅을 직관적으로 만들어준다. 레이아웃 밸리데이션 기능(L...

구글 안드로이드 모바일 애플리케이션 통합개발환경 안드로이드 스튜디오 4.0 모션에디터 빌드분석기 안드로이드 그래들 플러그인 코틀린 CPU 프로파일러 자바 8 C++

2020.06.04

안드로이드 스튜디오 4.0이 출시됐다. 안드로이드 애플리케이션을 개발하기 위한 공식 통합개발환경(IDE)의 최신 버전이다. 이번 업데이트에는 모션 에디터 및 빌드 분석기 등 신기능들이 추가됐다.    모션 에디터(Motion Editor)는 MotionLayout 타입을 위한 비주얼 디자인 편집기다. 애플리케이션의 모션과 위젯 애니메이션을 관리하기 위해 MotionLayout API를 사용하는 데 있어 그 과정을 더 간편하게 해준다. 또한 XML 파일이 생성돼 개발자가 해당 작업을 수동으로 처리하지 않아도 된다. 이 밖에 컨스트레인트 세트(constraint sets), 전환(transitions), 키프레임(keyframes) 및 뷰 속성(view attributes) 편집도 지원한다. MotionLayout은 크고 복잡한 안드로이드 뷰를 유연하게 조절하는 ConstraintLayout의 기능을 기반으로 한다.  빌드 분석기(Build Analyzer)는 비활성화된 최적화 혹은 잘못 구성된 작업 등 빌드에서 발생하는 병목 현상을 해결한다. 이는 자바 8 언어를 사용하고 다이내믹 피처 모듈(Dynamic Feature Module) 간에 기능 종속성을 생성하는 '안드로이드 그래들 4.0.0 플러그인(Android Gradle 4.0.0 plug-in)'를 통해 지원된다.   안드로이드 스튜디오 4.0은 안드로이드 스튜디오 개발자 웹사이트에서 다운로드 받을 수 있다. 이밖에 다른 기능은 다음과 같다.  • 코틀린 DSL 빌드 스크립트 파일(*kts)이 지원된다. 코틀린 빌드 스크립트는 PSD(Project Structure Dialog)에서 빠른 수정사항을 제공한다.  • 업그레이드된 레이아웃 인스펙터(Layout Inspector)는 실행 중인 앱으로 계속 업데이트되는 데이터에 접근해 리소스 사용을 분석해줌으로써 UI 디버깅을 직관적으로 만들어준다. 레이아웃 밸리데이션 기능(L...

2020.06.04

회사명:한국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.5