Offcanvas

������������������������������������������������������ ������������������������������������������������������

‘고(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

'자바, 파이썬, 자바스크립트'··· 초보자가 시작하기에 좋은 언어 3종 따라잡기

컴퓨터를 다루는 좋은 방법은 컴퓨터가 이해할 수 있도록 컴퓨터 언어를 사용하는 방법을 배우는 것이다. 판타지 소설을 좋아하는 사람들은 때론 마법의 주문과 주술을 배우는 상상을 한다. 그렇지만 프로그래머들은 숫자와 데이터의 논리적 구조를 표현하되 기반이 더욱 튼튼한 언어를 사용한다. 어느 경우이든, 컴퓨터가 은유의 고리를 뛰어넘고, 가상의 춤을 추게 만들 키스트로크와 마우스 클릭의 순서를 이해하는 것이 중요하다. 모든 학교, MOOC, 트레이닝 기관들이 젊은 학생들이 배울 첫 번째 언어를 선택해야 한다. 케케묵은 하버드 같은 곳은 여전히 70년대 C언어를 고수하지만, 많은 학교와 교육 기관들은  자바스크립트, 파이썬, 자바를 선택하고 있다. 하나는 모든 브라우저에 사용되는 언어, 또 다른 하나는 사회 과학 분야에서 가장 많이 선택되는 언어, 마지막 하나는 수학에 능통한 사람들이 선호하는 ‘타입-리치(Type-rich)’ 언어이다. 최선의 선택이 따로 있을까? 다른 언어보다 확실히 나은 언어가 있을까? 아니면 모두 학생들이 밤에 베개에 머리를 파묻고 소리를 지른다는 점에서 동등할까? 자바, 파이썬, 자바스크립트를 배우는 것이 권장되는 이유들을 알아본다.   ‘클래식’한 자바 AP(Advanced Placement) 테스트는 자바가 미숙했던 오래 전에 이 언어를 선택했다. 초기에는 모두 자바가 아주 지배적인 언어가 될 것으로 예상했었다. 그런데 이런 일은 일어나지 않았다. 하지만 많은 웹사이트와 스마트폰, TV, 소형 장치의 ‘중추적’ 언어로서 입지를 유지하고 있다. 많이 사용되고 있는 언어를 선택해야 한다. 그래야 학생들이 발전된 개발 도구들을 십분 활용할 수 있다. 또한 공부하고, 수정하고, 자신의 결과물을 위해 확장시킬 수 있는 오픈소스 코드들이 풍부하다. 여기에 들어가 어울리기란 어렵지 않다. 새로운 파이썬 사실 파이썬이 아주 새로운 언어는 아니다. 30년 전에 시작된 프로젝트였다. 그러나 새로운 언어같이 느껴지는 이유는...

프로그래밍 언어 개발 언어 자바 파이썬 자바스크립트

2020.12.11

컴퓨터를 다루는 좋은 방법은 컴퓨터가 이해할 수 있도록 컴퓨터 언어를 사용하는 방법을 배우는 것이다. 판타지 소설을 좋아하는 사람들은 때론 마법의 주문과 주술을 배우는 상상을 한다. 그렇지만 프로그래머들은 숫자와 데이터의 논리적 구조를 표현하되 기반이 더욱 튼튼한 언어를 사용한다. 어느 경우이든, 컴퓨터가 은유의 고리를 뛰어넘고, 가상의 춤을 추게 만들 키스트로크와 마우스 클릭의 순서를 이해하는 것이 중요하다. 모든 학교, MOOC, 트레이닝 기관들이 젊은 학생들이 배울 첫 번째 언어를 선택해야 한다. 케케묵은 하버드 같은 곳은 여전히 70년대 C언어를 고수하지만, 많은 학교와 교육 기관들은  자바스크립트, 파이썬, 자바를 선택하고 있다. 하나는 모든 브라우저에 사용되는 언어, 또 다른 하나는 사회 과학 분야에서 가장 많이 선택되는 언어, 마지막 하나는 수학에 능통한 사람들이 선호하는 ‘타입-리치(Type-rich)’ 언어이다. 최선의 선택이 따로 있을까? 다른 언어보다 확실히 나은 언어가 있을까? 아니면 모두 학생들이 밤에 베개에 머리를 파묻고 소리를 지른다는 점에서 동등할까? 자바, 파이썬, 자바스크립트를 배우는 것이 권장되는 이유들을 알아본다.   ‘클래식’한 자바 AP(Advanced Placement) 테스트는 자바가 미숙했던 오래 전에 이 언어를 선택했다. 초기에는 모두 자바가 아주 지배적인 언어가 될 것으로 예상했었다. 그런데 이런 일은 일어나지 않았다. 하지만 많은 웹사이트와 스마트폰, TV, 소형 장치의 ‘중추적’ 언어로서 입지를 유지하고 있다. 많이 사용되고 있는 언어를 선택해야 한다. 그래야 학생들이 발전된 개발 도구들을 십분 활용할 수 있다. 또한 공부하고, 수정하고, 자신의 결과물을 위해 확장시킬 수 있는 오픈소스 코드들이 풍부하다. 여기에 들어가 어울리기란 어렵지 않다. 새로운 파이썬 사실 파이썬이 아주 새로운 언어는 아니다. 30년 전에 시작된 프로젝트였다. 그러나 새로운 언어같이 느껴지는 이유는...

2020.12.11

AI 기반 코드 자동 완성 도구 '카이트', 지원 언어 11종 추가

AI 기반의 코드 자동 완성 툴, 카이트(Kite)가 21일(현지 시각) 11종의 프로그래밍 언어 지원을 추가했다고 발표했다.    카이트는 머신러닝 모델을 기반으로 코드 자동 완성 기능을 제공한다. 초창기 해당 솔루션은 파이썬만 지원했다. 그리고 지난 5월 자바스크립트(Javescript) 지원을 추가했다고 밝히면서, 향후 지원 언어를 확대할 계획이라고 회사 측은 전했다.  이번에 추가된 새 지원 언어는 ▲자바(Java), ▲C/C++, ▲코틀린(Kotlin), ▲오브젝티브 C(Objective C), ▲타입스크립트(Typescript), ▲스칼라(Scala), ▲C#, ▲HTML/CSS, 고랭(Golang),▲ 레스(Less)다.  카이트는 머신러닝 모델을 사용해 사용자가 입력하려는 코드를 예측하여 자동 완성 제안을 한다. 또한 다른 사용자가 유사한 상황에서 작성했던 코드를 기반으로 맥락을 파악해 예측을 제안하기도 한다. 회사에 따르면 현재 카이트는 매일 약 175개의 코드 단어를 쓰고 있다.  또한 카이트는 비주얼 스튜디오 코드(Visual Studio Code), 젯브레인 IDE(Jetbrains IDE), 주피터랩(JupyterLab), 서브라임(Sublime), 아톰(Atom) 등을 포함한 대부분의 인기 개발환경을 지원한다.  무료 버전과 유료 엔터프라이즈 버전 두 가지로 제공된다. 무료 버전은 이곳에서 다운로드받을 수 있다. ciokr@idg.co.kr  

인공지능 AI 머신러닝 딥러닝 코드 코드 자동 완성 카이트 프로그래밍 언어 개발 언어 자바스크립트 파이썬 고랭 코틀린 스칼라 비주얼 스튜디오 코드

2020.10.22

AI 기반의 코드 자동 완성 툴, 카이트(Kite)가 21일(현지 시각) 11종의 프로그래밍 언어 지원을 추가했다고 발표했다.    카이트는 머신러닝 모델을 기반으로 코드 자동 완성 기능을 제공한다. 초창기 해당 솔루션은 파이썬만 지원했다. 그리고 지난 5월 자바스크립트(Javescript) 지원을 추가했다고 밝히면서, 향후 지원 언어를 확대할 계획이라고 회사 측은 전했다.  이번에 추가된 새 지원 언어는 ▲자바(Java), ▲C/C++, ▲코틀린(Kotlin), ▲오브젝티브 C(Objective C), ▲타입스크립트(Typescript), ▲스칼라(Scala), ▲C#, ▲HTML/CSS, 고랭(Golang),▲ 레스(Less)다.  카이트는 머신러닝 모델을 사용해 사용자가 입력하려는 코드를 예측하여 자동 완성 제안을 한다. 또한 다른 사용자가 유사한 상황에서 작성했던 코드를 기반으로 맥락을 파악해 예측을 제안하기도 한다. 회사에 따르면 현재 카이트는 매일 약 175개의 코드 단어를 쓰고 있다.  또한 카이트는 비주얼 스튜디오 코드(Visual Studio Code), 젯브레인 IDE(Jetbrains IDE), 주피터랩(JupyterLab), 서브라임(Sublime), 아톰(Atom) 등을 포함한 대부분의 인기 개발환경을 지원한다.  무료 버전과 유료 엔터프라이즈 버전 두 가지로 제공된다. 무료 버전은 이곳에서 다운로드받을 수 있다. ciokr@idg.co.kr  

2020.10.22

“여전히 매력적인 선택지”··· 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

흔한 C 프로그래밍 오류 4가지, '그리고 5가지 대처법'

단순히 속도와 기계 수준의 위력만으로 비교한다면 C에 필적할 프로그래밍 언어는 별로 없다. 이는 50년 전에도 사실이었고 지금도 역시 사실이다. 그러나 프로그래머들이 C 언어의 위력을 ‘풋건(footgun)’이라는 말로 묘사하는 데에는 그만한 이유가 있다. 주의하지 않는다면 C는 자신은 물론 다른 사람에게도 피해를 줄 수 있다. C언어에서 가장 흔한 4가지 오류와 이를 예방하는 5가지 조치를 소개한다.  NeONBRAND (CC0) 흔한 C 언어 오류: 멜록 함수로 할당된((malloc-ed) 메모리를 해제하지 않는 것(또는 1회 이상 해제하는 것) 이는 C 언어에서 중대한 오류 가운데 하나이고, 주로 메모리 관리와 연관된다. 할당 메모리는 (멜록 함수를 이용) C에서 자동으로 해제되지 않는다. 메모리가 더 이상 사용되지 않을 때 이를 해제하는 것은 프로그래머의 몫이다. 반복된 메모리 요청을 해제하지 않는다면 메모리 누출(leak)로 이어진다. 이미 해제된 메모리 영역을 사용한다면 프로그램이 충돌하거나, 더 심한 경우, 파편화될 것이고, 이 메커니즘을 악용한 공격에 취약해진다.  메모리 누출은 메모리가 해제되어야 하지만 해제되지 않은 경우를 설명하는 것뿐임을 유의할 필요가 있다. 프로그램이 메모리가 실제로 필요하고 작업에서 사용되기 때문에 메모리를 계속 할당한다면 메모리 이용은 비효율적일 것이지만, 엄격히 말해 이는 누수가 아니다.  흔한 C 언어 오류: 경계 밖의 배열을 읽는 것(Reading an array out of bounds)  C 언어에서 흔하고 위험한 또 다른 오류가 있다. 배열의 끝을 넘어선 읽기는 가비지 데이터(garbage data)를 반환할 수 있다. 배열의 영역을 지난 쓰기는 프로그램 상태를 훼손하거나 이를 완전히 붕괴시키거나, 최악의 경우, 악성코드의 공격 매개체가 된다. 그렇다면 배열의 경계를 확인하는 부담이 왜 프로그래머에게 남겨졌는가? 공식적인 C 규격을 보면 경계를 벗어나 배열을 읽...

C 언어 개발 언어 멜록 콜록 프로그래밍

2020.10.12

단순히 속도와 기계 수준의 위력만으로 비교한다면 C에 필적할 프로그래밍 언어는 별로 없다. 이는 50년 전에도 사실이었고 지금도 역시 사실이다. 그러나 프로그래머들이 C 언어의 위력을 ‘풋건(footgun)’이라는 말로 묘사하는 데에는 그만한 이유가 있다. 주의하지 않는다면 C는 자신은 물론 다른 사람에게도 피해를 줄 수 있다. C언어에서 가장 흔한 4가지 오류와 이를 예방하는 5가지 조치를 소개한다.  NeONBRAND (CC0) 흔한 C 언어 오류: 멜록 함수로 할당된((malloc-ed) 메모리를 해제하지 않는 것(또는 1회 이상 해제하는 것) 이는 C 언어에서 중대한 오류 가운데 하나이고, 주로 메모리 관리와 연관된다. 할당 메모리는 (멜록 함수를 이용) C에서 자동으로 해제되지 않는다. 메모리가 더 이상 사용되지 않을 때 이를 해제하는 것은 프로그래머의 몫이다. 반복된 메모리 요청을 해제하지 않는다면 메모리 누출(leak)로 이어진다. 이미 해제된 메모리 영역을 사용한다면 프로그램이 충돌하거나, 더 심한 경우, 파편화될 것이고, 이 메커니즘을 악용한 공격에 취약해진다.  메모리 누출은 메모리가 해제되어야 하지만 해제되지 않은 경우를 설명하는 것뿐임을 유의할 필요가 있다. 프로그램이 메모리가 실제로 필요하고 작업에서 사용되기 때문에 메모리를 계속 할당한다면 메모리 이용은 비효율적일 것이지만, 엄격히 말해 이는 누수가 아니다.  흔한 C 언어 오류: 경계 밖의 배열을 읽는 것(Reading an array out of bounds)  C 언어에서 흔하고 위험한 또 다른 오류가 있다. 배열의 끝을 넘어선 읽기는 가비지 데이터(garbage data)를 반환할 수 있다. 배열의 영역을 지난 쓰기는 프로그램 상태를 훼손하거나 이를 완전히 붕괴시키거나, 최악의 경우, 악성코드의 공격 매개체가 된다. 그렇다면 배열의 경계를 확인하는 부담이 왜 프로그래머에게 남겨졌는가? 공식적인 C 규격을 보면 경계를 벗어나 배열을 읽...

2020.10.12

애플, 스위프트 언어에 ‘저수준 원자 연산’ 지원 

‘스위프트 아토믹(Swift Atomics)’은 시스템 개발자가 동기화 구조(synchronization constructs)를 스위프트 언어로 직접 구축할 수 있는 새 오픈소스 패키지다.     애플이 1일(현지 시각) 동시 데이터 구조와 같은 동기화 구조를 스위프트 언어로 직접 구축할 수 있는 오픈소스 패키지 ‘스위프트 아토믹’을 공개했다.  현재 아토믹 라이브러리는 기트허브에서 다운로드받아 사용할 수 있다. 이는 스위프트에서 직접 저수준 원자 연산을 사용할 수 있도록 한다. 원자 연산은 정수와 포인터 값을 포함한 다양한 스위프트 타입에서 활성화된다. 스위프트 API 설계 원칙에 부합하는 원자 연산용 API도 제공된다.  한편 스위프트 표준 라이브러리 팀의 엔지니어 카로이 라렌티는 “기본 작업이 매우 낮은 수준의 추상화에서 작동한다”라며, “아토믹은 다른 저수준 동시성 구조보다 훨씬 더 정확하게 사용하기 어렵다”라고 각별한 주의를 당부했다.  스위프트.org(swift.org)에서 게재한 원자 연산의 예시는 아래와 같다.    import Atomics import Dispatch let counter = ManagedAtomic<Int>(0) DispatchQueue.concurrentPerform(iterations: 10) { _ in   for _ in 0 ..< 1_000_000 {     counter.wrappingIncrement(by: 1, ordering: .relaxed)   } } counter.load(ordering: .relaxed) // ⟹ 10_000_000 이어서 라렌티는 "해당 예시의 원자 연산이 스위프트 변수를 관리하는 독점 규칙을 따르지 않는다"라면서, "원자 연산은 그 값이 원자 연산을 통해서만 액세스되는 한 복...

애플 스위프트 개발 언어 프로그래밍 언어 원자 연산 동기화 구조 오픈소스 동시 데이터 구조 기트허브 스위프트 레볼루션

2020.10.08

‘스위프트 아토믹(Swift Atomics)’은 시스템 개발자가 동기화 구조(synchronization constructs)를 스위프트 언어로 직접 구축할 수 있는 새 오픈소스 패키지다.     애플이 1일(현지 시각) 동시 데이터 구조와 같은 동기화 구조를 스위프트 언어로 직접 구축할 수 있는 오픈소스 패키지 ‘스위프트 아토믹’을 공개했다.  현재 아토믹 라이브러리는 기트허브에서 다운로드받아 사용할 수 있다. 이는 스위프트에서 직접 저수준 원자 연산을 사용할 수 있도록 한다. 원자 연산은 정수와 포인터 값을 포함한 다양한 스위프트 타입에서 활성화된다. 스위프트 API 설계 원칙에 부합하는 원자 연산용 API도 제공된다.  한편 스위프트 표준 라이브러리 팀의 엔지니어 카로이 라렌티는 “기본 작업이 매우 낮은 수준의 추상화에서 작동한다”라며, “아토믹은 다른 저수준 동시성 구조보다 훨씬 더 정확하게 사용하기 어렵다”라고 각별한 주의를 당부했다.  스위프트.org(swift.org)에서 게재한 원자 연산의 예시는 아래와 같다.    import Atomics import Dispatch let counter = ManagedAtomic<Int>(0) DispatchQueue.concurrentPerform(iterations: 10) { _ in   for _ in 0 ..< 1_000_000 {     counter.wrappingIncrement(by: 1, ordering: .relaxed)   } } counter.load(ordering: .relaxed) // ⟹ 10_000_000 이어서 라렌티는 "해당 예시의 원자 연산이 스위프트 변수를 관리하는 독점 규칙을 따르지 않는다"라면서, "원자 연산은 그 값이 원자 연산을 통해서만 액세스되는 한 복...

2020.10.08

구글 다트 언어 버전 2.10, 명령 줄 도구 통합

구글이 개발한 클라이언트에 최적화된 프로그래밍 언어, ‘다트(Dart)’의 최신 버전이 10월 2일(현지 시각) 공개됐다. 다트 버전 2.10에는 프로젝트 및 패키지 생성 등을 지원하는 통합 개발자 도구가 추가됐다.    구글에 따르면 플러터 도구(Flutter tool)와 유사한 ‘다트 개발자 도구(Dart developer tool)’를 사용하면 프로젝트를 생성하는 것은 물론 코드를 분석 및 포맷하고, 테스트를 실행하며, 앱을 컴파일할 수 있다. 이 새로운 단일 다트 도구는 플러터 1.22 버전부터 플러터 SDK에 포함된다.  구글은 향후 출시될 안정화 버전에서는 다트 도구에 더 많은 기능이 추가될 것이며, 다트독(dartdoc), 다트포맷(dartfmt), 다트애널라이저(dartanalyzer) 등의 소규모 도구 사용은 점차 중단할 예정이라고 밝혔다. 또한 내년에는 단일 다트 도구만 포함된 다트 SDK(Dart SDK)를 출시할 예정이라고 회사 측은 전했다.  다트 개발팀은 공식 블로그를 통해 터미널 혹은 CI 스크립트에서 수동으로 하든 아니든 개발자들이 다트 명령을 실행할 때 새 도구로 전환하라고 권고했다. 개발자들은 해당 도구와 관련해 피드백을 제공할 수 있다.   다트 SDK 다운로드 지침은 dart.dev에 게시돼 있다. 다트는 플러터 앱을 구동하는 언어와 런타임을 제공하고, 포맷 및 테스트와 같은 작업을 지원하는 등 플러터 SDK의 기반 역할을 한다. 한때 자바스크립트의 잠재적인 경쟁자로 소개됐었던 다트는 모바일 앱 개발 도구로 재구성됐다. 다트 언어를 사용하면 데스크톱부터 서버, 웹 앱, 모바일 애플리케이션까지 개발할 수 있다. 한편 다트 개발팀은 지난 6월 테크 프리뷰로 공개했던 널 안정성 프로젝트를 계속해서 진행하고 있다. 개발자가 찾기 어려운 버그를 찾고 성능을 개선하도록 지원하기 위해서다. 개발팀에 따르면 널 안정성은 다트 타입 시스템의 근본적인 변화다. 다트 개발팀이 기본...

구글 다트 프로그래밍 언어 개발 언어 자바스크립트 플러터 널 안정성

2020.10.07

구글이 개발한 클라이언트에 최적화된 프로그래밍 언어, ‘다트(Dart)’의 최신 버전이 10월 2일(현지 시각) 공개됐다. 다트 버전 2.10에는 프로젝트 및 패키지 생성 등을 지원하는 통합 개발자 도구가 추가됐다.    구글에 따르면 플러터 도구(Flutter tool)와 유사한 ‘다트 개발자 도구(Dart developer tool)’를 사용하면 프로젝트를 생성하는 것은 물론 코드를 분석 및 포맷하고, 테스트를 실행하며, 앱을 컴파일할 수 있다. 이 새로운 단일 다트 도구는 플러터 1.22 버전부터 플러터 SDK에 포함된다.  구글은 향후 출시될 안정화 버전에서는 다트 도구에 더 많은 기능이 추가될 것이며, 다트독(dartdoc), 다트포맷(dartfmt), 다트애널라이저(dartanalyzer) 등의 소규모 도구 사용은 점차 중단할 예정이라고 밝혔다. 또한 내년에는 단일 다트 도구만 포함된 다트 SDK(Dart SDK)를 출시할 예정이라고 회사 측은 전했다.  다트 개발팀은 공식 블로그를 통해 터미널 혹은 CI 스크립트에서 수동으로 하든 아니든 개발자들이 다트 명령을 실행할 때 새 도구로 전환하라고 권고했다. 개발자들은 해당 도구와 관련해 피드백을 제공할 수 있다.   다트 SDK 다운로드 지침은 dart.dev에 게시돼 있다. 다트는 플러터 앱을 구동하는 언어와 런타임을 제공하고, 포맷 및 테스트와 같은 작업을 지원하는 등 플러터 SDK의 기반 역할을 한다. 한때 자바스크립트의 잠재적인 경쟁자로 소개됐었던 다트는 모바일 앱 개발 도구로 재구성됐다. 다트 언어를 사용하면 데스크톱부터 서버, 웹 앱, 모바일 애플리케이션까지 개발할 수 있다. 한편 다트 개발팀은 지난 6월 테크 프리뷰로 공개했던 널 안정성 프로젝트를 계속해서 진행하고 있다. 개발자가 찾기 어려운 버그를 찾고 성능을 개선하도록 지원하기 위해서다. 개발팀에 따르면 널 안정성은 다트 타입 시스템의 근본적인 변화다. 다트 개발팀이 기본...

2020.10.07

MS, 타입스크립트 4.1 베타 공개··· 템플릿 리터럴 타입 지원

타입스크립트 4.1 버전이 베타 릴리즈로 공개됐다. 템플릿 리터럴 타입(template literal type)을 비롯한 여러 개선사항이 포함됐다. 타입스크립트는 자바스크립트(JavaScript)에 타입(types)을 도입한 마이크로소프트의 인기 있는 오픈소스 프로그래밍 언어다.    마이크로소프트에 따르면 타입스크립트 4.1 버전에는 자바스크립트의 템플릿 리터럴 문자열과 구문이 동일하나 타입 위치에 따라 사용되는 템플릿 리터럴 타입이 도입됐다. 콘크리트 리터럴 타입과 함께 사용하면 콘텐츠를 결합해 새로운 문자열 리터럴 타입을 생성할 수 있다.  또한 새로운 as절을 사용하여 매핑된 타입의 키를 다시 매핑할 수도 있다. 개발자는 이 새로운 절을 통해 템플릿 리터럴 타입과 같은 기능을 활용하여 이전 속성 이름을 기반으로 새 속성 이름을 만들 수 있다. 키는 never를 생성하여 필터링할 수 있기 때문에 경우에 따라 추가적인 Omit 헬퍼 타입을 사용하지 않아도 된다.  타입스크립트 4.1 정식 버전은 오는 10월 출시될 예정이다. 타입스크립트 4.0 정식 버전은 지난 8월 배포됐다. 이밖에 타입스크립트 4.1의 다른 기능은 다음과 같다.  • 재귀적 조건부 타입을 지원해 조건부 타입에 관한 일부 제한이 완화됐다. 이제 브랜치 내에서 자신을 즉시 참조할 수 있으므로 재귀적 타입 별칭을 더 쉽게 작성할 수 있다.  • 새 플래그(noUncheckedIndexedAccess)는 모든 속성 액세스 혹은 인덱싱된 액세스가 잠정적으로 정의되지 않은 것으로 간주되는 노드를 제공한다. 이 플래그는 범위를 벗어난 오류를 포착할 수 있지만 많은 코드에서 노이즈가 생길 수도 있다. 이는 strict 플래그로 자동 활성화되지 않는다.  • paths 옵션을 baseUrl 없이 사용할 수 있다. 이를 통해 자동 가져오기에서 잘못된 경로를 사용하는 문제를 방지할 수 있다.  • 이전에는 체크된 자바스크...

마이크로소프트 타입스크립트 자바스크립트 개발 언어 프로그래밍 언어 누겟

2020.09.28

타입스크립트 4.1 버전이 베타 릴리즈로 공개됐다. 템플릿 리터럴 타입(template literal type)을 비롯한 여러 개선사항이 포함됐다. 타입스크립트는 자바스크립트(JavaScript)에 타입(types)을 도입한 마이크로소프트의 인기 있는 오픈소스 프로그래밍 언어다.    마이크로소프트에 따르면 타입스크립트 4.1 버전에는 자바스크립트의 템플릿 리터럴 문자열과 구문이 동일하나 타입 위치에 따라 사용되는 템플릿 리터럴 타입이 도입됐다. 콘크리트 리터럴 타입과 함께 사용하면 콘텐츠를 결합해 새로운 문자열 리터럴 타입을 생성할 수 있다.  또한 새로운 as절을 사용하여 매핑된 타입의 키를 다시 매핑할 수도 있다. 개발자는 이 새로운 절을 통해 템플릿 리터럴 타입과 같은 기능을 활용하여 이전 속성 이름을 기반으로 새 속성 이름을 만들 수 있다. 키는 never를 생성하여 필터링할 수 있기 때문에 경우에 따라 추가적인 Omit 헬퍼 타입을 사용하지 않아도 된다.  타입스크립트 4.1 정식 버전은 오는 10월 출시될 예정이다. 타입스크립트 4.0 정식 버전은 지난 8월 배포됐다. 이밖에 타입스크립트 4.1의 다른 기능은 다음과 같다.  • 재귀적 조건부 타입을 지원해 조건부 타입에 관한 일부 제한이 완화됐다. 이제 브랜치 내에서 자신을 즉시 참조할 수 있으므로 재귀적 타입 별칭을 더 쉽게 작성할 수 있다.  • 새 플래그(noUncheckedIndexedAccess)는 모든 속성 액세스 혹은 인덱싱된 액세스가 잠정적으로 정의되지 않은 것으로 간주되는 노드를 제공한다. 이 플래그는 범위를 벗어난 오류를 포착할 수 있지만 많은 코드에서 노이즈가 생길 수도 있다. 이는 strict 플래그로 자동 활성화되지 않는다.  • paths 옵션을 baseUrl 없이 사용할 수 있다. 이를 통해 자동 가져오기에서 잘못된 경로를 사용하는 문제를 방지할 수 있다.  • 이전에는 체크된 자바스크...

2020.09.28

'애플 스위프트'가 '윈도우'로 온다··· 윈도우10용 툴체인 공개

애플의 프로그래밍 언어, 스위프트(Swift)의 윈도우 지원이 준비됐다. 물론 이식(porting) 작업이 아직 완전히 완료된 것은 아니다.    1년간의 이식 작업 끝에 드디어 애플의 프로그래밍 언어 스위프트를 윈도우에서 사용할 수 있게 됐다. 스위프트 코어(Swift Core) 팀의 살렘 압둘라술은 “스위프트로 윈도우 경험을 구축해볼 수 있는 단계에 도달했다”라고 밝혔다.  22일(현지 시각) 윈도우10용 스위프트 5.3 툴체인이 공개됐다. 현재 사이트에서 다운로드받을 수 있다. 스위프트 공식 사이트에 따르면 윈도우에서 스위프트의 전체 에코시스템을 사용할 수 있도록 이식 작업이 진행됐다. 여기에는 컴파일러, 표준 라이브러리를 비롯해 주요 라이브러리인 디스패치(dispatch), 파운데이션(Foundation), XC테스트(XCTest)가 포함된다.  개발자는 이러한 라이브러리를 통해 기본적인 시스템의 수많은 세부사항을 처리할 필요 없이 손쉽게 애플리케이션을 작성할 수 있다.  이번 지원은 시작에 불과하다. lldb 및 스위프트 패키지 매니저(Swift Package Manager)와 같은 에코시스템은 여전히 더 많은 이전 작업이 필요하다. 리들(Readdle) 등의 얼리어답터 업체들은 기존 스위프트 라이브러리를 윈도우로 가져오면서 스위프트로 작성된 크로스 플랫폼 애플리케이션을 실험하고 있다.  한편 2014년 6월, ‘오브젝티브-C(Objective-C)’의 후속으로 출시된 스위프트는 애플 맥OS, iOS, 워치OS, tvOS 및 리눅스를 대상으로 한다. ‘스위프트 5.3’은 9월 16일 공개됐다. 이는 상용구, 중복 코드, 런타임 메모리 사용량 등을 줄여 언어를 개선하는 데 초점을 맞췄다. ciokr@idg.co.kr  

애플 프로그래밍 언어 개발 언어 스위프트 오브젝티브-C 윈도우 윈도우10 툴체인 컴파일러 표준 라이브러리 디스패치 파운데이션 XC테스트 스위프트 패키지 매니저 리들

2020.09.25

애플의 프로그래밍 언어, 스위프트(Swift)의 윈도우 지원이 준비됐다. 물론 이식(porting) 작업이 아직 완전히 완료된 것은 아니다.    1년간의 이식 작업 끝에 드디어 애플의 프로그래밍 언어 스위프트를 윈도우에서 사용할 수 있게 됐다. 스위프트 코어(Swift Core) 팀의 살렘 압둘라술은 “스위프트로 윈도우 경험을 구축해볼 수 있는 단계에 도달했다”라고 밝혔다.  22일(현지 시각) 윈도우10용 스위프트 5.3 툴체인이 공개됐다. 현재 사이트에서 다운로드받을 수 있다. 스위프트 공식 사이트에 따르면 윈도우에서 스위프트의 전체 에코시스템을 사용할 수 있도록 이식 작업이 진행됐다. 여기에는 컴파일러, 표준 라이브러리를 비롯해 주요 라이브러리인 디스패치(dispatch), 파운데이션(Foundation), XC테스트(XCTest)가 포함된다.  개발자는 이러한 라이브러리를 통해 기본적인 시스템의 수많은 세부사항을 처리할 필요 없이 손쉽게 애플리케이션을 작성할 수 있다.  이번 지원은 시작에 불과하다. lldb 및 스위프트 패키지 매니저(Swift Package Manager)와 같은 에코시스템은 여전히 더 많은 이전 작업이 필요하다. 리들(Readdle) 등의 얼리어답터 업체들은 기존 스위프트 라이브러리를 윈도우로 가져오면서 스위프트로 작성된 크로스 플랫폼 애플리케이션을 실험하고 있다.  한편 2014년 6월, ‘오브젝티브-C(Objective-C)’의 후속으로 출시된 스위프트는 애플 맥OS, iOS, 워치OS, tvOS 및 리눅스를 대상으로 한다. ‘스위프트 5.3’은 9월 16일 공개됐다. 이는 상용구, 중복 코드, 런타임 메모리 사용량 등을 줄여 언어를 개선하는 데 초점을 맞췄다. ciokr@idg.co.kr  

2020.09.25

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

MS의 함수형 개발 언어 ‘F#’, 버전 5 기능 개발 완료

지난 8월 27일(현지 시각) 마이크로소프트가 F# 버전 5의 기능 개발 작업을 완료했다고 밝혔다. F#은 닷넷(.NET)과 호환되는 오픈소스 함수형 프로그래밍 언어다.    최신 미리보기에서는 F# 개발자들이 가장 많이 요청했던 기능인 문자열 보간(string interpolation)이 추가됐다. 이는 C#과 자바스크립트의 문자열 보간과 상당히 유사하다. 개발자가 문자열 리터럴(string literals)에 이른바 ‘구멍{ }’을 작성할 수 있다는 뜻이다. 또한 F# 문자열 보간은 스프린트 함수와 유사한 타입화된(typed) 보간을 허용, 보간된 컨텍스트의 내부 표현식이 특정 타입을 따르도록 한다.   마이크로소프트에 따르면 F# 버전 5는 닷넷 5 소프트웨어 개발 플랫폼과 함께 오는 11월 최종 안정화 버전(GA)이 공개될 예정이다. 최종 결함 검토만 남은 현재 릴리즈 캔디데이트(RC) 버전에서는 버그 수정 및 피드백 해결에 집중할 계획이라고 마이크로소프트는 덧붙였다.  F# 버전 5는 닷넷 5 미리보기 SDK를 설치하거나 혹은 닷넷 및 주피터 노트북을 통해 액세스할 수 있다. F# 5의 다른 기능은 다음과 같다.  • 사용 중인 기호를 확인하고 F# 소스에서 부르는 이름으로 만들어주는 nameof를 지원한다. 이 기능은 여러 상황에서 유용할 수 있는데, 이를테면 로깅 시에 소스 코드가 변경되더라도 로깅을 보호해준다.  • 개방형 선언(Open type declarations)을 지원한다. 이는 F# 의미 체계에 따라 약간 다른 구문과 동작을 제외하고는 C# 정적 클래스와 유사하다. 개방형 선언을 사용하면 개발자는 모든 타입을 열어서 내부의 정적 콘텐츠를 노출할 수 있다. 또한 F#으로 정의된 공용체 및 레코드를 사용하여 해당 콘텐츠를 노출할 수도 있다. 특히, 공용체가 모듈에 정의돼 있고, 해당 케이스에 액세스하고 싶지만 전체 모듈을 열지 않으려는 경우 유용하다.  • 개발자가...

마이크로소프트 닷넷 F# 언어 프로그래밍 언어 개발 언어 C# 자바스크립트 문자열 보간 주피터 노트북

2020.09.02

지난 8월 27일(현지 시각) 마이크로소프트가 F# 버전 5의 기능 개발 작업을 완료했다고 밝혔다. F#은 닷넷(.NET)과 호환되는 오픈소스 함수형 프로그래밍 언어다.    최신 미리보기에서는 F# 개발자들이 가장 많이 요청했던 기능인 문자열 보간(string interpolation)이 추가됐다. 이는 C#과 자바스크립트의 문자열 보간과 상당히 유사하다. 개발자가 문자열 리터럴(string literals)에 이른바 ‘구멍{ }’을 작성할 수 있다는 뜻이다. 또한 F# 문자열 보간은 스프린트 함수와 유사한 타입화된(typed) 보간을 허용, 보간된 컨텍스트의 내부 표현식이 특정 타입을 따르도록 한다.   마이크로소프트에 따르면 F# 버전 5는 닷넷 5 소프트웨어 개발 플랫폼과 함께 오는 11월 최종 안정화 버전(GA)이 공개될 예정이다. 최종 결함 검토만 남은 현재 릴리즈 캔디데이트(RC) 버전에서는 버그 수정 및 피드백 해결에 집중할 계획이라고 마이크로소프트는 덧붙였다.  F# 버전 5는 닷넷 5 미리보기 SDK를 설치하거나 혹은 닷넷 및 주피터 노트북을 통해 액세스할 수 있다. F# 5의 다른 기능은 다음과 같다.  • 사용 중인 기호를 확인하고 F# 소스에서 부르는 이름으로 만들어주는 nameof를 지원한다. 이 기능은 여러 상황에서 유용할 수 있는데, 이를테면 로깅 시에 소스 코드가 변경되더라도 로깅을 보호해준다.  • 개방형 선언(Open type declarations)을 지원한다. 이는 F# 의미 체계에 따라 약간 다른 구문과 동작을 제외하고는 C# 정적 클래스와 유사하다. 개방형 선언을 사용하면 개발자는 모든 타입을 열어서 내부의 정적 콘텐츠를 노출할 수 있다. 또한 F#으로 정의된 공용체 및 레코드를 사용하여 해당 콘텐츠를 노출할 수도 있다. 특히, 공용체가 모듈에 정의돼 있고, 해당 케이스에 액세스하고 싶지만 전체 모듈을 열지 않으려는 경우 유용하다.  • 개발자가...

2020.09.02

무서운 질주··· 파이썬, 자바 제치고 단독 2위 <레드몽크>

파이썬이 자바스크립트를 바짝 따라붙었다. 한편 자바가 파이썬에 밀려 3위를 차지했다. 자바는 2012년 이후 8년 만에 레드몽크 프로그래밍 언어 최저 순위를 기록했다.  27일(현지 시각) 발표된 2020년 6월 자 상반기 레드몽크(RedMonk) 프로그래밍 언어 순위에 따르면 파이썬이 자바스크립트에 이어 2위에 올랐다. 지난 1월 발표된 레드몽크 프로그래밍 언어 순위에서 파이썬은 자바와 함께 공동 2위를 기록한 바 있다. 이번에는 자바를 제치고 단독 2위 자리를 차지했다는 점에서 큰 의미가 있다. 레드몽크 프로그래밍 언어 순위는 6개월마다 발표된다.   자바 또는 자바스크립트 이외의 프로그래밍 언어가 단독 2위 자리를 차지한 것은 2012년 레드몽크 순위를 시작한 이래로 처음이다. 또한 자바가 2위권 밖으로 밀려난 것도 처음이다. 레드몽크는 파이썬이 수 천개의 소규모 프로젝트를 위한 지원 역할을 하고 있으며, 수많은 개인용 스크립트 언어의 근간으로 자리 잡았다고 설명했다. 이어서 파이썬이 데이터 과학 등의 분야에서도 많이 채택되고 있다고 레드몽크는 덧붙였다.  레드몽크에 따르면 자바가 현재처럼 치열한 경쟁에 직면한 적은 없다. 물론 자바는 앞으로 오랫동안 주요 프로그래밍 언어로 사용되겠지만 이러한 지배적 위치가 계속해서 보장되진 않을 것이라고 회사 측은 예측했다(자바는 최근 티오베(Tiobe) 프로그래밍 언어 순위에서도 C에 밀려 2위로 떨어졌다). 레드몽크 프로그래밍 언어 순위는 기트허브(GitHub) 및 스택 오버플로우(Stack Overflow) 분석을 기반으로 한다. 기트허브에서는 ‘기트허브 아카이브(GitHub Archive)’를 활용, 풀 리퀘스트를 바탕으로 프로그래밍 언어를 쿼리한다. 개발자 커뮤니티인 스택 오버플로우에서는 프로그래밍 언어와 관련된 개발자들의 게시물을 평가한다.  이 밖에 5년 전 48위를 기록했던 러스트(Rust)가 처음으로 20위권에 진입했다. 코틀린(Kotlin) 역시...

개발자 개발 언어 프로그래밍 언어 레드몽크 티오베 파이썬 자바 자바스크립트 기트허브 스택 오버플로우 러스트 코틀린

2020.07.30

파이썬이 자바스크립트를 바짝 따라붙었다. 한편 자바가 파이썬에 밀려 3위를 차지했다. 자바는 2012년 이후 8년 만에 레드몽크 프로그래밍 언어 최저 순위를 기록했다.  27일(현지 시각) 발표된 2020년 6월 자 상반기 레드몽크(RedMonk) 프로그래밍 언어 순위에 따르면 파이썬이 자바스크립트에 이어 2위에 올랐다. 지난 1월 발표된 레드몽크 프로그래밍 언어 순위에서 파이썬은 자바와 함께 공동 2위를 기록한 바 있다. 이번에는 자바를 제치고 단독 2위 자리를 차지했다는 점에서 큰 의미가 있다. 레드몽크 프로그래밍 언어 순위는 6개월마다 발표된다.   자바 또는 자바스크립트 이외의 프로그래밍 언어가 단독 2위 자리를 차지한 것은 2012년 레드몽크 순위를 시작한 이래로 처음이다. 또한 자바가 2위권 밖으로 밀려난 것도 처음이다. 레드몽크는 파이썬이 수 천개의 소규모 프로젝트를 위한 지원 역할을 하고 있으며, 수많은 개인용 스크립트 언어의 근간으로 자리 잡았다고 설명했다. 이어서 파이썬이 데이터 과학 등의 분야에서도 많이 채택되고 있다고 레드몽크는 덧붙였다.  레드몽크에 따르면 자바가 현재처럼 치열한 경쟁에 직면한 적은 없다. 물론 자바는 앞으로 오랫동안 주요 프로그래밍 언어로 사용되겠지만 이러한 지배적 위치가 계속해서 보장되진 않을 것이라고 회사 측은 예측했다(자바는 최근 티오베(Tiobe) 프로그래밍 언어 순위에서도 C에 밀려 2위로 떨어졌다). 레드몽크 프로그래밍 언어 순위는 기트허브(GitHub) 및 스택 오버플로우(Stack Overflow) 분석을 기반으로 한다. 기트허브에서는 ‘기트허브 아카이브(GitHub Archive)’를 활용, 풀 리퀘스트를 바탕으로 프로그래밍 언어를 쿼리한다. 개발자 커뮤니티인 스택 오버플로우에서는 프로그래밍 언어와 관련된 개발자들의 게시물을 평가한다.  이 밖에 5년 전 48위를 기록했던 러스트(Rust)가 처음으로 20위권에 진입했다. 코틀린(Kotlin) 역시...

2020.07.30

상수부터 멀티라인 람다까지··· '파이썬'에 추가됐으면 하는 기능 4가지 

‘파이썬(Python)’에 어떤 기능이 추가되길 원하는가? 여기서는 파이썬에 추가됐으면 하는 기능 4가지를 살펴본다. 물론 가능성 있지만 단정하긴 어렵다.  ‘파이썬’은 끊임없이 발전하고 있는 언어다. 파이썬 소프트웨어 재단(Python Software Foundation)은 표준 라이브러리와 C파이썬(CPython) 참조 구현에 내용을 추가하는 것에 그치지 않고 언어 자체에 새 기능과 개선 사항들을 계속해서 도입하고 있다.    예를 들면 파이썬 3.8(Python 3.8)의 새로운 기능인 대입 표현식은 ‘바다코끼리 연산자(walrus operator)’로도 부르며, 이는 특정 작업을 더욱 간결하게 만들어준다. 또 다른 새 기능인 패턴 매칭(pattern matching)은 가능한 한 많은 사례 중 하나를 평가하는 코드 작성을 수월하게 해 준다. 이 두 가지는 다른 언어에서 이미 유용하게 사용되고 있는 기능들에서 영감을 받은 것이다.  이 두 가지 외에도 파이썬에 추가될 수 있는 유용한 기능들이 많다. 파이썬을 더 빠르고, 더 강력하며, 더 트렌디하게 만들 수 있도록 말이다. 또 어떤 것들이 있을까? 여기서는 파이썬에 추가된다면, 가치를 더할 수 있는 기능 4가지를 소개한다.  상수(constants)  파이썬에는 상수(constant) 개념이 따로 없다. 현재 파이썬의 ‘상수’는 작성 규칙(convention)의 문제다. 이를테면 전부 대문자와 밑줄로 이뤄진 이름(예: DO_NOT_RESTART)을 사용한다는 것은 해당 변수를 상수로 쓰겠다는 뜻이다.  이와 비슷하게 typing.Final 유형 주석은 객체를 수정해서는 안 된다는 점을 린터(linter)에 알려주지만 런타임에 이를 적용하지는 않는다. 왜? ‘변경가능성(mutability)’이 파이썬의 기반이기 때문이다. 변수에 값을 할당하면(예: x=3 ) 로컬 네임스페이스에 이름(x)이 생성되고, 이는 정수 값 3인 객체를 가리키는...

파이썬 개발 언어 프로그래밍 언어 상수 오버로딩 제네릭 꼬리 재귀 최적화 멀티라인 람다

2020.07.24

‘파이썬(Python)’에 어떤 기능이 추가되길 원하는가? 여기서는 파이썬에 추가됐으면 하는 기능 4가지를 살펴본다. 물론 가능성 있지만 단정하긴 어렵다.  ‘파이썬’은 끊임없이 발전하고 있는 언어다. 파이썬 소프트웨어 재단(Python Software Foundation)은 표준 라이브러리와 C파이썬(CPython) 참조 구현에 내용을 추가하는 것에 그치지 않고 언어 자체에 새 기능과 개선 사항들을 계속해서 도입하고 있다.    예를 들면 파이썬 3.8(Python 3.8)의 새로운 기능인 대입 표현식은 ‘바다코끼리 연산자(walrus operator)’로도 부르며, 이는 특정 작업을 더욱 간결하게 만들어준다. 또 다른 새 기능인 패턴 매칭(pattern matching)은 가능한 한 많은 사례 중 하나를 평가하는 코드 작성을 수월하게 해 준다. 이 두 가지는 다른 언어에서 이미 유용하게 사용되고 있는 기능들에서 영감을 받은 것이다.  이 두 가지 외에도 파이썬에 추가될 수 있는 유용한 기능들이 많다. 파이썬을 더 빠르고, 더 강력하며, 더 트렌디하게 만들 수 있도록 말이다. 또 어떤 것들이 있을까? 여기서는 파이썬에 추가된다면, 가치를 더할 수 있는 기능 4가지를 소개한다.  상수(constants)  파이썬에는 상수(constant) 개념이 따로 없다. 현재 파이썬의 ‘상수’는 작성 규칙(convention)의 문제다. 이를테면 전부 대문자와 밑줄로 이뤄진 이름(예: DO_NOT_RESTART)을 사용한다는 것은 해당 변수를 상수로 쓰겠다는 뜻이다.  이와 비슷하게 typing.Final 유형 주석은 객체를 수정해서는 안 된다는 점을 린터(linter)에 알려주지만 런타임에 이를 적용하지는 않는다. 왜? ‘변경가능성(mutability)’이 파이썬의 기반이기 때문이다. 변수에 값을 할당하면(예: x=3 ) 로컬 네임스페이스에 이름(x)이 생성되고, 이는 정수 값 3인 객체를 가리키는...

2020.07.24

R 언어, 인기 지수 8위로 껑충··· “코로나19 연구서 많이 사용”

통계 분석을 위한 프로그래밍 언어 R이 2020년 7월 티오베 프로그래밍 언어 인기 지수(Tiobe Index)에서 크게 약진했다. 최근 C 언어가 부상한 이유로 꼽혔던 코로나19 사태는 이번 R 언어의 순위 상승에도 영향을 미친 것으로 추정된다.  R 언어는 지난해 20위에서 올해 역대 최고 순위인 8위에 올랐다. 티오베는 코로나19 백신 연구와 관련된 통계 분석 및 데이터 마이닝의 급증으로 R 언어가 인기를 얻고 있다고 설명했다.    지난 5월, 5년 넘게 1위를 지켜왔던 자바를 제치고 C 언어가 가장 인기 있는 프로그래밍 언어로 부상했다. 여기에 이어 이번 달에는 R 언어의 인기 순위가 급격하게 상승했다. 당시 티오베는 C 언어의 급상승 요인으로 코로나19 사태와 함께 C 언어가 의료기기에 많이 사용됐기 때문이라고 분석했다. R 언어의 경우 통계 분석을 위해 SAS, STRATA, SPSS와 같은 상용 패키지보다 R과 파이썬을 채택하는 대학 및 연구소가 늘었기 때문이라고 티오베는 전했다. 이 밖에 러스트(Rust)는 지난달 20위에서 이번 달 18위를 기록했으며, 코틀린(Kotlin)은 이번 달 27위로 3계단 상승했다. 델파이/오브젝트 파스칼(Delphi/Object Pascal)은 30위로 하락했다. C 언어는 3개월 연속 1위를 차지했다.  2020년 7월 티오베 인덱스의 상위 10개 프로그래밍 언어는 다음과 같다.  1. C 언어 (16.45%) 2. 자바 (15.1%) 3. 파이썬 (9.09%) 4. C++ (6.21%) 5. C# (5.25%) 6. 비주얼 베이직 (5.23%) 7. 자바스크립트 (2.48%) 8. R 언어 (2.41%) 9. PHP (1.9%) 10. 스위프트 (1.43%) 한편 프로그래밍 언어 튜토리얼의 구글 검색 빈도를 기반으로 등수를 매기는 PyPL(PopularitY of Programming Language)의 2020년 7월 인기 순위는 ...

티오베 티오베 인덱스 프로그래밍 언어 개발 언어 자바 C 언어 R 언어 러스트 코틀린 통계 분석 코로나19 코로나19 백신

2020.07.08

통계 분석을 위한 프로그래밍 언어 R이 2020년 7월 티오베 프로그래밍 언어 인기 지수(Tiobe Index)에서 크게 약진했다. 최근 C 언어가 부상한 이유로 꼽혔던 코로나19 사태는 이번 R 언어의 순위 상승에도 영향을 미친 것으로 추정된다.  R 언어는 지난해 20위에서 올해 역대 최고 순위인 8위에 올랐다. 티오베는 코로나19 백신 연구와 관련된 통계 분석 및 데이터 마이닝의 급증으로 R 언어가 인기를 얻고 있다고 설명했다.    지난 5월, 5년 넘게 1위를 지켜왔던 자바를 제치고 C 언어가 가장 인기 있는 프로그래밍 언어로 부상했다. 여기에 이어 이번 달에는 R 언어의 인기 순위가 급격하게 상승했다. 당시 티오베는 C 언어의 급상승 요인으로 코로나19 사태와 함께 C 언어가 의료기기에 많이 사용됐기 때문이라고 분석했다. R 언어의 경우 통계 분석을 위해 SAS, STRATA, SPSS와 같은 상용 패키지보다 R과 파이썬을 채택하는 대학 및 연구소가 늘었기 때문이라고 티오베는 전했다. 이 밖에 러스트(Rust)는 지난달 20위에서 이번 달 18위를 기록했으며, 코틀린(Kotlin)은 이번 달 27위로 3계단 상승했다. 델파이/오브젝트 파스칼(Delphi/Object Pascal)은 30위로 하락했다. C 언어는 3개월 연속 1위를 차지했다.  2020년 7월 티오베 인덱스의 상위 10개 프로그래밍 언어는 다음과 같다.  1. C 언어 (16.45%) 2. 자바 (15.1%) 3. 파이썬 (9.09%) 4. C++ (6.21%) 5. C# (5.25%) 6. 비주얼 베이직 (5.23%) 7. 자바스크립트 (2.48%) 8. R 언어 (2.41%) 9. PHP (1.9%) 10. 스위프트 (1.43%) 한편 프로그래밍 언어 튜토리얼의 구글 검색 빈도를 기반으로 등수를 매기는 PyPL(PopularitY of Programming Language)의 2020년 7월 인기 순위는 ...

2020.07.08

구글 다트(Dart), 마침내 ‘널 안전성(Null safety)’ 확보

구글의 웹프로그래밍용 언어인 다트(Dart)가 ‘널 안정성(null safety)’을 제공한다. 이를 통해 일반적인 널 역참조 오류를 제거하고 성능을 최적화할 수 있다.  다트가 이제 ‘견고한(sound)’ 널 안전성을 갖추게 됐다. 이는 개발자들이 발견하기 어려운 버그를 방지할 수 있도록 돕는다. 여기서 다트의 ‘견고한 널 안정성’이란 ‘널을 허용하지 않는(non-nullable)’ 변수가 널(null)일 수 없음을 100% 보장한다는 의미다. 해당 기능은 현재 테크 프리뷰로 사용해볼 수 있다.   또한 구글 다트 개발팀의 10일 발표에 따르면 다트의 널 안정성은 성능도 향상시킨다. 이는 2018년 8월 출시된 다트 2(Dart 2) 이후 가장 주요한 추가 기능이기도 하다. 널 안정성은 다트패드(DartPad) 버전에서 테스트해볼 수 있으며, 2020년 말 해당 기능을 포함한 정식 릴리즈가 출시될 예정이다.  다트는 타입 세이프(type-safe)한, 즉 예측 불가능한 결과를 내지 않는 언어다. 이는 곧 컴파일러가 변수의 타입을 보장할 수 있다는 뜻이다. 그러나 타입 안정성(type safety) 자체는 변수가 널을 허용하지 않는 것을 보장하진 않는다. 다트 코드에서도 널 오류로 많은 문제가 발생했고, 많은 사람들이 이 문제를 해결하고자 노력을 기울였다. 이제 널 안전성을 통해 개발자는 훨씬 수월하게 코드를 파악할 수 있다. 런타임 널 역참조 오류를 걱정할 필요가 없어진다.  널 안정성의 견고함은 다트 프로그램을 더 빠르고 작게 만들 수 있다. 다트는 코드를 분석해 변수가 널을 허용하지 않는 것으로 판단하고, 항상 널을 허용하지 않도록 보장한다. 변수가 널을 허용하지 않기 때문에 선행 컴파일러는 널에 대한 검사를 할 필요가 없고 더 작고 빠른 코드를 생성할 수 있다.  이 밖에 다트 개발팀은 널 안정성을 최대한 사용하기 쉽도록 개발 중이라고 설명했다. 널 안정성은 이전 버전과 호환되며, 강제적인 변화는...

구글 개발 언어 개발자 다트 널 안정성

2020.06.12

구글의 웹프로그래밍용 언어인 다트(Dart)가 ‘널 안정성(null safety)’을 제공한다. 이를 통해 일반적인 널 역참조 오류를 제거하고 성능을 최적화할 수 있다.  다트가 이제 ‘견고한(sound)’ 널 안전성을 갖추게 됐다. 이는 개발자들이 발견하기 어려운 버그를 방지할 수 있도록 돕는다. 여기서 다트의 ‘견고한 널 안정성’이란 ‘널을 허용하지 않는(non-nullable)’ 변수가 널(null)일 수 없음을 100% 보장한다는 의미다. 해당 기능은 현재 테크 프리뷰로 사용해볼 수 있다.   또한 구글 다트 개발팀의 10일 발표에 따르면 다트의 널 안정성은 성능도 향상시킨다. 이는 2018년 8월 출시된 다트 2(Dart 2) 이후 가장 주요한 추가 기능이기도 하다. 널 안정성은 다트패드(DartPad) 버전에서 테스트해볼 수 있으며, 2020년 말 해당 기능을 포함한 정식 릴리즈가 출시될 예정이다.  다트는 타입 세이프(type-safe)한, 즉 예측 불가능한 결과를 내지 않는 언어다. 이는 곧 컴파일러가 변수의 타입을 보장할 수 있다는 뜻이다. 그러나 타입 안정성(type safety) 자체는 변수가 널을 허용하지 않는 것을 보장하진 않는다. 다트 코드에서도 널 오류로 많은 문제가 발생했고, 많은 사람들이 이 문제를 해결하고자 노력을 기울였다. 이제 널 안전성을 통해 개발자는 훨씬 수월하게 코드를 파악할 수 있다. 런타임 널 역참조 오류를 걱정할 필요가 없어진다.  널 안정성의 견고함은 다트 프로그램을 더 빠르고 작게 만들 수 있다. 다트는 코드를 분석해 변수가 널을 허용하지 않는 것으로 판단하고, 항상 널을 허용하지 않도록 보장한다. 변수가 널을 허용하지 않기 때문에 선행 컴파일러는 널에 대한 검사를 할 필요가 없고 더 작고 빠른 코드를 생성할 수 있다.  이 밖에 다트 개발팀은 널 안정성을 최대한 사용하기 쉽도록 개발 중이라고 설명했다. 널 안정성은 이전 버전과 호환되며, 강제적인 변화는...

2020.06.12

러스트, ‘가장 사랑받는’ 언어 5년 연속 1위 <스택 오버플로우 발표>

스택 오버플로우에 따르면 러스트가 5년 연속 ‘가장 사랑받는’ 프로그래밍 언어 1위를 차지했다. 이어서 타입스크립트가 파이썬을 제치고 2위에 올랐다.  2020년 스택 오버플로우(Stack Overflow) 개발자 설문조사에서 러스트가 ‘가장 사랑받는(most loved)’ 언어로 조사됐다. ‘가장 관심 있는(most wanted)’ 언어로는 파이썬, ‘가장 많은 급여를 받는(top paying)’ 언어는 펄, 스칼라, 고(Go)인 것으로 나타났다.    ‘가장 사랑받는’ 언어 순위는 해당 언어를 현재 사용 중이며 계속 사용하겠다고 응답한 비율이 높은 순으로 나열됐다. 또한 ‘현재 사용 중이지만 더 사용하고 싶지 않은(most dreaded)’, ‘현재 사용하지 않지만 가장 관심이 많은(most wanted)’, ‘가장 많은 급여를 받는(top paying)’, ‘가장 일반적으로 사용되는(most popular)’ 언어 순위도 함께 조사됐다.  스택 오버플로우는 지난 2월 전 세계 6만 5,000명의 개발자를 대상으로 설문조사를 실시했으며, 그 결과는 5월 27일 공개됐다. 앞서 언급한 범주의 상위 10개 결과는 다음과 같다. ‘가장 사랑받는’ 프로그래밍 언어 톱 10  1. 러스트(86.1%) 2. 타입스크립트(67.1%) 3. 파이썬(66.7%) 4. 코틀린(62.9%) 5. 고(62.3%) 6. 줄리아(62.2%) 7. 다트(62.1%) 8. C#(59.7%) 9. 스위프트(59.5%) 10. 자바스크립트(58.3%) ‘현재 사용 중이지만 더 사용하고 싶지 않은’ 언어 톱 10 1. VBA(80.4%) 2. 오브젝티브-C(76.6%) 3. 펄(71.4%) 4. 어셈블리(70.6%) 5. C(66.9%) 6. PHP(62.7%) 7. 루비(57.1%) 8. C++(56.6%) 9. 자바(55.95%) 10. R(55.5%) ‘현재 사용하지 않지만 가장 관심이 많은’ 언어 톱 10 1. 파이썬(30%)...

스택 오버플로우 개발자 개발 프로그래밍 개발 언어 프로그래밍 언어 러스트 파이썬 스칼라 타입스크립트 코틀린 스위프트 자바스크립트 티오베

2020.06.03

스택 오버플로우에 따르면 러스트가 5년 연속 ‘가장 사랑받는’ 프로그래밍 언어 1위를 차지했다. 이어서 타입스크립트가 파이썬을 제치고 2위에 올랐다.  2020년 스택 오버플로우(Stack Overflow) 개발자 설문조사에서 러스트가 ‘가장 사랑받는(most loved)’ 언어로 조사됐다. ‘가장 관심 있는(most wanted)’ 언어로는 파이썬, ‘가장 많은 급여를 받는(top paying)’ 언어는 펄, 스칼라, 고(Go)인 것으로 나타났다.    ‘가장 사랑받는’ 언어 순위는 해당 언어를 현재 사용 중이며 계속 사용하겠다고 응답한 비율이 높은 순으로 나열됐다. 또한 ‘현재 사용 중이지만 더 사용하고 싶지 않은(most dreaded)’, ‘현재 사용하지 않지만 가장 관심이 많은(most wanted)’, ‘가장 많은 급여를 받는(top paying)’, ‘가장 일반적으로 사용되는(most popular)’ 언어 순위도 함께 조사됐다.  스택 오버플로우는 지난 2월 전 세계 6만 5,000명의 개발자를 대상으로 설문조사를 실시했으며, 그 결과는 5월 27일 공개됐다. 앞서 언급한 범주의 상위 10개 결과는 다음과 같다. ‘가장 사랑받는’ 프로그래밍 언어 톱 10  1. 러스트(86.1%) 2. 타입스크립트(67.1%) 3. 파이썬(66.7%) 4. 코틀린(62.9%) 5. 고(62.3%) 6. 줄리아(62.2%) 7. 다트(62.1%) 8. C#(59.7%) 9. 스위프트(59.5%) 10. 자바스크립트(58.3%) ‘현재 사용 중이지만 더 사용하고 싶지 않은’ 언어 톱 10 1. VBA(80.4%) 2. 오브젝티브-C(76.6%) 3. 펄(71.4%) 4. 어셈블리(70.6%) 5. C(66.9%) 6. PHP(62.7%) 7. 루비(57.1%) 8. C++(56.6%) 9. 자바(55.95%) 10. R(55.5%) ‘현재 사용하지 않지만 가장 관심이 많은’ 언어 톱 10 1. 파이썬(30%)...

2020.06.03

‘좋은 걸 어떡해’··· 손이 가는 프로그래밍 일탈 10가지

규칙을 어기면 약간의 스릴을 느낄 수 있다. 때로는 더 좋고 더 효율적인 코드를 작성할 수 있기도 하다.   우리 모두 해본 적이 있다. 엄마가 보지 않을 때 쿠키를 집어 들고, 저녁으로 와인을 좀 많이 마시고, 차를 애매한 곳에 잠깐 살짝 주차하는 것 등등 말이다. 종종 제한속도를 초과하기도 한다.  그리고 맞다, 우리 개발자 모두는 프로그래밍의 기본적인 규칙들을 위반한 적 있다. 모두가 동의하는 규칙들이 걸리적거렸기에 우리 모두는 몰래 그렇게 하는 것을 좋아했다. 나쁜 코드를 입력하기도 하면서 우리는 살아왔다.  그럼에도 불구하고 프로그래밍 신이 번개를 내리지는 않았으며, 데스크톱은 폭발하지 않았다. 사실, 우리 코드는 컴파일된 채 발송됐고, 고객들은 충분히 행복해 보였다. 왜냐하면 나쁜 프로그래밍은 예를 들어, 전기 울타리를 핥거나 호랑이의 꼬리를 잡아당기는 것과 같지 않기 때문이다. 대부분의 경우 잘 작동된다. 규칙은 방침이나 양식상의 제안인 경우가 더 많지, 반드시 따라야 하거나 죽음이 수반되는 융통성 없는 지침이 아니다.  물론, 당신의 코드가 비웃음을 살 수도 있고, 어쩌면 공개적으로 조롱당할 수도 있다. 하지만 당신이 규칙을 어기고 있다는 사실은, 근엄한 사회적 관행을 살짝 뒤집는다는 유쾌한 스릴을 더해주기도 한다. 규칙을 어기는 것이 더 나은 경우도 있다. 코드가 더 깔끔하게 나온다. 심지어 더 빠르고 더 간단할 수도 있다. 규칙은 보통 너무 광범위한데, 숙련된 프로그래머라면 규칙을 어김으로써 코드를 개선할 수도 있다. 상사에게 자랑할 정도는 아닐지라도 가끔은 당신 방식대로 코딩하는 게 말이 된다.  다음은 사람에 따라 도저히 납득할 수 없겠지만, 우리들 중 대부분이 성공적으로 그리고 즐겁게 자주 어기는 규칙 10가지다. 나쁜 프로그래밍 습관 No. 1 : 베끼기(Copying)  학교에서는 분명히 금지된 행동이다. 단 직장에서는 그리 분명하지 않다. 차용하지 말아야 할 코...

코드 작성 프로그래밍 코딩 개발 언어

2020.01.06

규칙을 어기면 약간의 스릴을 느낄 수 있다. 때로는 더 좋고 더 효율적인 코드를 작성할 수 있기도 하다.   우리 모두 해본 적이 있다. 엄마가 보지 않을 때 쿠키를 집어 들고, 저녁으로 와인을 좀 많이 마시고, 차를 애매한 곳에 잠깐 살짝 주차하는 것 등등 말이다. 종종 제한속도를 초과하기도 한다.  그리고 맞다, 우리 개발자 모두는 프로그래밍의 기본적인 규칙들을 위반한 적 있다. 모두가 동의하는 규칙들이 걸리적거렸기에 우리 모두는 몰래 그렇게 하는 것을 좋아했다. 나쁜 코드를 입력하기도 하면서 우리는 살아왔다.  그럼에도 불구하고 프로그래밍 신이 번개를 내리지는 않았으며, 데스크톱은 폭발하지 않았다. 사실, 우리 코드는 컴파일된 채 발송됐고, 고객들은 충분히 행복해 보였다. 왜냐하면 나쁜 프로그래밍은 예를 들어, 전기 울타리를 핥거나 호랑이의 꼬리를 잡아당기는 것과 같지 않기 때문이다. 대부분의 경우 잘 작동된다. 규칙은 방침이나 양식상의 제안인 경우가 더 많지, 반드시 따라야 하거나 죽음이 수반되는 융통성 없는 지침이 아니다.  물론, 당신의 코드가 비웃음을 살 수도 있고, 어쩌면 공개적으로 조롱당할 수도 있다. 하지만 당신이 규칙을 어기고 있다는 사실은, 근엄한 사회적 관행을 살짝 뒤집는다는 유쾌한 스릴을 더해주기도 한다. 규칙을 어기는 것이 더 나은 경우도 있다. 코드가 더 깔끔하게 나온다. 심지어 더 빠르고 더 간단할 수도 있다. 규칙은 보통 너무 광범위한데, 숙련된 프로그래머라면 규칙을 어김으로써 코드를 개선할 수도 있다. 상사에게 자랑할 정도는 아닐지라도 가끔은 당신 방식대로 코딩하는 게 말이 된다.  다음은 사람에 따라 도저히 납득할 수 없겠지만, 우리들 중 대부분이 성공적으로 그리고 즐겁게 자주 어기는 규칙 10가지다. 나쁜 프로그래밍 습관 No. 1 : 베끼기(Copying)  학교에서는 분명히 금지된 행동이다. 단 직장에서는 그리 분명하지 않다. 차용하지 말아야 할 코...

2020.01.06

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