golang - OOP 프로그래밍 하기

캡슐화 Go에서는 구조체와 해당 필드, 함수, 메소드의 범위는 이름의 선두가 대문자, 소문자로 결정된다. 대문자이면 public, 소문자라면 같은 패키지 내로 닫힌 범위로. 그러므로 아래와 같이 쓰는 것으로 캡슐화를 실현할 수 있다. //human.go package class type Human struct { // 필드 이름을...
더 읽기

golang - go로 쓴 코드의 힙 할당 여부 확인하는 방법

출처 서두 Allocation Efficiency in High-Performance Go Services · Segment Blog 라는 기사를 읽었다. 좋기 때문에 꼭 일독을 권장한다. 이 글은 나의 이해와 실제로 시험해 본 결과의 메모이다. 가장 중요한 포인트는 go build -gcflags ‘-m’ 같이 옵션을 지정하여 빌드하면 코드의...
더 읽기

golang - 성능 튜닝하기

대전제 프로파일링을 취한 뒤 어떻게 최적화 할 것인가에 대한 이야기 추측하지말고 계측하라 알고리즘이나 데이터 구조는 최적인 것을 선택하고 있다고 가정. 손 재주로 최적화하는 것보다 알고리즘 자체를 바꾸는 쪽이 압도적으로 좋아진다. 이 기사의 각 벤치 마크는 Go 1.4(go version go1.4 linux/amd64)에서...
더 읽기

C++ - 컴파일러 최적화 copy elision

c++ 생성자와 move constructor 관련해서 궁금한 점이 있습니다. 라는 질문을 보고 알게된 것이다. 처음 질문을 봤을 때는 별거 아니라고 생각했는데 좀 더 보니 예전에 내가 C++11 표준 관련 강연을 했을 사용한 코드와 비슷한데 그때와 다른 결과가 나와서 구글링을 해보았다. 질문의...
더 읽기

회고 - 2018년에 본 책(IT)

당연히 올해에 본 책들도 다 회사의 도움을 받았다. 대부분의 회사들은 책 구입을 지원할테니 회사 도움을 받아서 가능하면 책을 사 보기 바란다. 2018년에는 아래의 책을 구입해서 보았다. PHP 7 예비학교 예비 웹 프로그래머를 위한 과외 수업 러닝 PHP PHP 입문에서 프레임워크를...
더 읽기

golang - 핸들러 패턴

type SpecialFunc func(int) bool SpecialFunc은 int를 받고 bool을 반환하는 함수를 뜻하는 타입이 된다. 이것에 대해서 메소드를 생성하는 것이 가능핟. func (sf SpecialFunc) SpecialMethod() { ... } 일회용 구조체에 의한 핸들러 패턴 핸들링 처리를 함수로서 넘기고, 이것을 내포한 핸들러를 반환하는 구현을...
더 읽기

golang - 구조체 구현 패턴

출처 생성자 함수 export에 의한 접근 허가 인터페이스에 의한 다형성 구조체에 의한 다형성 구조체에 의한 서브 클래스, responsibility 구조체에 의한 이양 함수에 의한 이양 생성자 함수 Go 언어는 구조체의 생성자가 없으므로 구조체를 초기화 하려면 구조체가 속하는 패키지에 생성자 함수를 정의한다....
더 읽기

AWS Lambda에서 C++ 프로그램 실행하기

이 글을 번역한 것이다. re:Invent 2018에서 AWS Lambda의 새로운 기능, Custom Runtime이 발표 되었다. 이 기능은 Custom Runtime을 준비하는 것으로서 임의의 언어로 Lambda를 사용할 수 있다. Custom Runtime은 직접 구현해도 괜찮고, AWS가 제공하는 것도 있다. 아래는 2018/11/30 18:00 시점에 공개되어...
더 읽기