Go는 C를 대체 할 수 있을까 ? 

원문 그렇지 않다. 애초에 Go는 C/C++를 대체하기 위한 목적으로 디자인하지 않았다. Go는 구글의 네트워킹 인프라스트럭처를 유지하던 C++ 의 엄청난 복잡성과 긴 컴파일 시간을 해결하기 위한 C++의 대체폼으로 설계됐다. 여기에서 중요한 점은 프로그래머들은 구글러이며, 연구자들이 아니란 것이다. 그들은 일반적으로 매우 젊고, 이제 막 학교를 졸업했으...

Dart Class 

다트는 클래스와 믹스인(mixin)기반의 상속을 사용하는 객체지향언어다. 모든 객체는 클래스의 인스턴스이며 모든 클래스는 객체로부터 파생된다. 믹스인은 부모 클래스로부터 상속받아서 메서드를 사용하지 않고, 다른 클래스를 "포함"하는 방식으로 사용한다. 다중상속에서 발생하는 다이아몬드 문제(diamond problem)를 해결 할 수 있다. 믹스인은 "구현된...

첫번째 Flutter App 만들기 

Flutter 관련 문서를 찾아다녔는데, 초반에는 문서를 따라서 첫번째 앱을 만들어보기로 했다.이 문서는 첫번째 flutter 앱을 만드는 기본 안내서다. 루프, 조건, 객체지향등의 기본 프로그래밍 개념을 가지고 있다면, 이 자습서를 쉽게 완료 할 수 있을 것이다. Dart 혹은 모바일 프로그래밍에 대한 사전 경험은 필요하지 않다.스타트업 이름을 만들어주는...

NeoVim 기반 개발환경 설정 

NeoVim과 CoC를 이용해서 개발 환경을 만들기로 했다. 개발 환경을 vi 기반으로 해보려고 하다가 결국 문서를 정리하게 됐다. 운영체제 사용언어 software-properties-common은 apt 레포지토리 관리를 위한 툴들을 제공한다. 이 툴을 이용해서 배포판을 관리를 쉽게 할 수 있다. # sudo apt-get install softwar...

Dart function 

다트는 순수 객체지향 언어(True object-oriented language)이므로 함수도 유형이 Function인 객체로 다룬다. 즉 함수를 변수에 할당하거나 다른 함수에 인자로 전달 할 수 있다. Dart 클래스의 인스턴스를 함수처럼 호출 할 수도 있다. 아래는 함수 구현 예제다.main() { print("Factorial ${factorial(1...

VSCode 기반의 Flutter 개발환경 만들기 

을 만들기는 했지만, 인간적으로 너무 무겁다. 그렇다고 작업을 못 할 정도라거나 그런건 아니고, 그동안 vim만 사용하다보니 적응하기가 쉽지 않았다. 키보드 입력 속도를 간당간당하게 따라가는 느낌. 이것 저것 너무 산만한 느낌. 그래서 VSCode로 환경을 구축하기로 했다. Vim 기반 개발환경도 찾아보긴 했는데, 좀 무리인 것 같았다. 설치 운영체제는 우...

Dart Tour 

우분투 리눅스 19.04 에 Dart를 설치했다. 편집기는 vim을 이용하고 있다. flutter는 Android studio를 쓰고 있는데, 언어를 학습하는데에는 너무 무겁다. 언젠가 VS Code로 설정해봐야 겠다.$ sudo apt-get update$ sudo apt-get install apt-transport-https$ sudo sh -c cu...

GoLang 디버거 - Delve 

Delve는 Go 언어를 위한 디버깅 툴이다.# go get -u github.com/derekparker/delve/cmd/dlvdlv 실행파일은 $HOME/go/bin 에 설치된다. PATH를 등록하고 테스트해 보자.# export PATH=$HOME/go/bin# dlv versionDelve DebuggerVersionBuild테스트 애플리케이션을 ...

flutter 시작하기 

모바일 애플리케이션은 포기한지 오래다. Java는 왠지 싫고, iOS 쪽도 별로 관심이 없고. 그냥 언젠가는 지금 알고 있는 HTML, Javascript, CSS 와 같은 웹 기술로 모바일 애플리케이션 개발이 가능해지면 그때 무임승차해야지 하는 자세였다. 그래서 관심을(만) 가지고 있던게 Progress Web App이였다. 그러다가 flutter라는 프...

Go 패키지관리 

Go1.10 버전까지는 패키지를 관리하기 위한 마땅한 도구가 없었다. 하지만 프로젝트의 규모가 커지다 보면, 패키지 관리가 필요해지기 마련이라서 dep, glide, vgo 등의 다양한 툴들이 개발됐다. 요즘 같은 시대에 개발환경을 통일해야 하나라는 주장이 있기도 하지만, 소프트웨어 의존성을 관리의 경우 다양한 툴이 있다는 것은 좋은 소식이 아니다. 다행...