Go 언어를 이용해서 Dynamodb에 CRUD하는 방법을 살펴볼 것이다. 우분투 리눅스 19.04 Go version 1.12 AWS Cloud 서울 리전 데이터베이스 DynamoDB는 AWS의 관리형 NoSQL 데이터베이스다. 서버가 필요 없는 서버리스(ServerLess) 환경을 제공한다. 개발자는 가용성, 확장, 성능 등에 대한 고민 없이 개발 할 ...
원문 Go 애플리케이션의 구조는 다소 논쟁적인 주제가 될 수 있다. Go 애플리케이션에 대한 구조는 에 잘 정의되어 있다. 어떤 개발자는 참고하는 정도로 이용하지만 어떤 개발자는 반드시 이 구조를 따라야 한다고 주장하기도 한다. 내 입장은 "소프트웨어에서의 규칙은 가능하면 지키려고 하되 얽매일 필요는 없다"이다. 위 문서는 좋은 내용을 담고 있지만 이 도입...
코드는 매 빌드마다 테스트 코드를 중복해서 실행한다. 빌드를 성공하기 위해서는 테스트를 통과해야만 한다. 따라서 "테스트를 성공했다면" 이전의 품질목표는 달성했다는 것을 보장 할 수 있다. 기능이 많아질 수록 문제를 찾기가 점점 힘들어진다. 프러덕트화 될 수록 문제 해결이 힘들어진다 품질을 예측 할 수가 없다. 빈번한 빌드와 통합 빌드의 자동화 통...
원문 그렇지 않다. 애초에 Go는 C/C++를 대체하기 위한 목적으로 디자인하지 않았다. Go는 구글의 네트워킹 인프라스트럭처를 유지하던 C++ 의 엄청난 복잡성과 긴 컴파일 시간을 해결하기 위한 C++의 대체폼으로 설계됐다. 여기에서 중요한 점은 프로그래머들은 구글러이며, 연구자들이 아니란 것이다. 그들은 일반적으로 매우 젊고, 이제 막 학교를 졸업했으...
다트는 클래스와 믹스인(mixin)기반의 상속을 사용하는 객체지향언어다. 모든 객체는 클래스의 인스턴스이며 모든 클래스는 객체로부터 파생된다. 믹스인은 부모 클래스로부터 상속받아서 메서드를 사용하지 않고, 다른 클래스를 "포함"하는 방식으로 사용한다. 다중상속에서 발생하는 다이아몬드 문제(diamond problem)를 해결 할 수 있다. 믹스인은 "구현된...
Flutter 관련 문서를 찾아다녔는데, 초반에는 문서를 따라서 첫번째 앱을 만들어보기로 했다.이 문서는 첫번째 flutter 앱을 만드는 기본 안내서다. 루프, 조건, 객체지향등의 기본 프로그래밍 개념을 가지고 있다면, 이 자습서를 쉽게 완료 할 수 있을 것이다. Dart 혹은 모바일 프로그래밍에 대한 사전 경험은 필요하지 않다.스타트업 이름을 만들어주는...
NeoVim과 CoC를 이용해서 개발 환경을 만들기로 했다. 개발 환경을 vi 기반으로 해보려고 하다가 결국 문서를 정리하게 됐다. 운영체제 사용언어 software-properties-common은 apt 레포지토리 관리를 위한 툴들을 제공한다. 이 툴을 이용해서 배포판을 관리를 쉽게 할 수 있다. # sudo apt-get install softwar...
다트는 순수 객체지향 언어(True object-oriented language)이므로 함수도 유형이 Function인 객체로 다룬다. 즉 함수를 변수에 할당하거나 다른 함수에 인자로 전달 할 수 있다. Dart 클래스의 인스턴스를 함수처럼 호출 할 수도 있다. 아래는 함수 구현 예제다.main() { print("Factorial ${factorial(1...
을 만들기는 했지만, 인간적으로 너무 무겁다. 그렇다고 작업을 못 할 정도라거나 그런건 아니고, 그동안 vim만 사용하다보니 적응하기가 쉽지 않았다. 키보드 입력 속도를 간당간당하게 따라가는 느낌. 이것 저것 너무 산만한 느낌. 그래서 VSCode로 환경을 구축하기로 했다. Vim 기반 개발환경도 찾아보긴 했는데, 좀 무리인 것 같았다. 설치 운영체제는 우...
429 POSTS HERE
GoLang과 DynamoDB
Go 언어를 이용해서 Dynamodb에 CRUD하는 방법을 살펴볼 것이다. 우분투 리눅스 19.04 Go version 1.12 AWS Cloud 서울 리전 데이터베이스 DynamoDB는 AWS의 관리형 NoSQL 데이터베이스다. 서버가 필요 없는 서버리스(ServerLess) 환경을 제공한다. 개발자는 가용성, 확장, 성능 등에 대한 고민 없이 개발 할 ...
Go Project structure Best Practices
원문 Go 애플리케이션의 구조는 다소 논쟁적인 주제가 될 수 있다. Go 애플리케이션에 대한 구조는 에 잘 정의되어 있다. 어떤 개발자는 참고하는 정도로 이용하지만 어떤 개발자는 반드시 이 구조를 따라야 한다고 주장하기도 한다. 내 입장은 "소프트웨어에서의 규칙은 가능하면 지키려고 하되 얽매일 필요는 없다"이다. 위 문서는 좋은 내용을 담고 있지만 이 도입...
TDD 세미나 문서
코드는 매 빌드마다 테스트 코드를 중복해서 실행한다. 빌드를 성공하기 위해서는 테스트를 통과해야만 한다. 따라서 "테스트를 성공했다면" 이전의 품질목표는 달성했다는 것을 보장 할 수 있다. 기능이 많아질 수록 문제를 찾기가 점점 힘들어진다. 프러덕트화 될 수록 문제 해결이 힘들어진다 품질을 예측 할 수가 없다. 빈번한 빌드와 통합 빌드의 자동화 통...
Spring boot 설치 및 개발환경 설정
$ uname -aLinux yundream 5.0.0-38-generic #41-Ubuntu SMP Tue Dec 3 00$ java -versionopenjdk version "11.0.5" 2019-10-15OpenJDK Runtime Environment (build 11.0.5+10-post-Ubuntu-0ubuntu1.119.04)OpenJDK ...
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 기반 개발환경도 찾아보긴 했는데, 좀 무리인 것 같았다. 설치 운영체제는 우...