본문 바로가기

전체 글

45. 아파치 빔과 카프카 구성 오픈소스의 단점은 문서가 부실하고, 버그와 장애 시 자체 인력으로 모든 문제를 해결해야 한다. 라이센스를 구매한 것이 아니라서 내부적으로 모든 문제를 해결해야만 한다. 개발도 어렵지만, 구성하고 변경하는 것도 간단한 작업이 아니다. 블로그 원래의 의도는, 개발 위주로 내용을 전개하려고 했다. 구성이 복잡해서 소스만 설명한다면 의미를 전달하는데 효과적이지 않을거라 판단하고, 설치와 구성도 함께 설명한다. 문제는 내용이 너무 길어져서 개발 소스와 설치 구성 스크립트는 분리해서 블로그에 작성 중이다. 아파치 빔과 카프카 구성에 대해서 설명하는 것이 목적인데, 글이 너무 길어졌다. 카프카 첫번째 데모 kafka_2.12-2.5.0의 주키퍼와 카프카 프로세스를 시작 [root@localhost bin]# pwd .. 더보기
44. GoLand 원격 디버깅 GORM, Echo 웹 서버, gRPC 서버를 실행하고, GoLand에서 원격 디버깅을 진행하였다. 결론부터 말하면, GoLand는 원격 디버깅을 잘 지원한다. 1. GORM 원격 디버깅 GoLand를 사용해서 일반적인 Go 어플리케이션을 원격 디버깅하는 데모를 진행한다. 동일한 프로젝트로 생성, GOPATH 이하에 같은 폴더와 같은 소스명으로 구성한다. build 시 옵션을 추가한다. go build -gcflags="all=-N -l" -o gorm [root@localhost ~]# systemctl stop firewalld [root@localhost gorm]# go get -u github.com/go-delve/delve/cmd/dlv go: downloading github.com/go-.. 더보기
43. 클라우드 네이티브 Go 실습 5편 gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공 Apache Beam은 배치와 실시간 데이터 파이프라인을 개발하고, 다양한 런타임 환경을 지원 Go-kit는 마이크로서비스 프레임워크이고 다양한 마이크로서비스 디자인 패턴을 지원 Mongo는 가장 유명한 NoSQL이고 JSON의 관리 및 집계에 유용 Redis는 가장 유명한 캐시 저장소 Tracing는 관찰가능성 중 분산추적을 위한 프레임워크를 제공 Echo는 웹 어플리케이션 프레임워크이고 Air와 함께 auto reload를 지원 MySQL은 오픈소스 R.. 더보기
42. 클라우드 네이티브 Go 실습 4편 gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공 Apache Beam은 배치와 실시간 데이터 파이프라인을 개발하고, 다양한 런타임 환경을 지원 Go-kit는 마이크로서비스 프레임워크이고 다양한 마이크로서비스 디자인 패턴을 지원 Mongo는 가장 유명한 NoSQL이고 JSON의 관리 및 집계에 유용 Redis는 가장 유명한 캐시 저장소 Tracing는 관찰가능성 중 분산추적을 위한 프레임워크를 제공 Echo는 웹 어플리케이션 프레임워크이고 Air와 함께 auto reload를 지원 MySQL은 오픈소스 R.. 더보기
41. 클라우드 네이티브 Go 실습 3편 gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공 Apache Beam은 배치와 실시간 데이터 파이프라인을 개발하고, 다양한 런타임 환경을 지원 Go-kit는 마이크로서비스 프레임워크이고 다양한 마이크로서비스 디자인 패턴을 지원 Mongo는 가장 유명한 NoSQL이고 JSON의 관리 및 집계에 유용 Redis는 가장 유명한 캐시 저장소 Tracing는 관찰가능성 중 분산추적을 위한 프레임워크를 제공 Echo는 웹 어플리케이션 프레임워크이고 Air와 함께 auto reload를 지원 MySQL은 오픈소스 R.. 더보기
40. 클라우드 네이티브 Go 실습 2편 적어도 향후 몇년 동안은 Go, Mongo에 집중해야 겠다는 생각이 들어서, 블로그를 통해서 내용을 정리하고 공유하고 있다. 데이터와 프론트엔드에 집중하다 보니, 백엔드와 객체지향적인 설계에 소홀한 것 같다. 요즘 객체지향, 포인터, 클래스 등을 다시 공부하면서 즐거움을 느끼고 있다. 보면 볼수록 Go는 여러가지로 매력적인 언어다. gRPC는 구글이 최초로 개발한 오픈 소스 원격 프로시저 호출 시스템이다. 전송을 위해 HTTP/2를, 인터페이스 정의 언어로 프로토콜 버퍼를 사용하며 인증, 양방향 스트리밍 및 흐름 제어, 차단 및 비차단 바인딩, 취소 및 타임아웃 등의 기능을 제공 Apache Beam은 배치와 실시간 데이터 파이프라인을 개발하고, 다양한 런타임 환경을 지원 Go-kit는 마이크로서비스 프.. 더보기
39. 클라우드 네이티브 Go 실습 1편 모든 것을 이해하고 한번에 글을 써 나가는 게 아니라, 이해하고 경험하고 조금씩 글을 써 나가다보니, 글이 조각처럼 나누어지고 나중에 다시 읽어보면서 퍼즐처럼 붙여나가게 된다. 잘못된 부분은 수정하고, 글을 자르고 붙이다 보면 글의 인과관계가 안 맞는 경우가 자주 발생한다. 계속 읽어보면서 수정하는데, 시간이 많이 걸린다. 이해바란다. 과거에는 풀스택 자바스크립트, 데이터분석 파이썬이 인기가 많은 프로그래밍 언어였다. 클라우브 네이티브에서 가장 인기있는 유용한 언어는 바로 Go이다. 요즘은 예전에는 백엔드 서버(자바 스프링) 프로그래밍을 할 기회가 없는 대신에, 데이터 엔지니어링과 프론트엔드에서 API 개발을 많이 하므로 파이썬과 자바스크립트에 집중했다. 클라우드 네이티브와 오픈소스 커스터마이징이 많은 .. 더보기
38. 마이크로서비스 레퍼런스 4편 블로그에서는 서비스 메시 솔루션으로 이스티오를 소개했다. 다양한 오픈소스 서비스 메시가 있으며, 컨설은 하시코프 서비스 메시 및 검색 솔루션이다. 서비스 메시와 검색 솔루션으로 컨설을 사용하기 위한 주요 단계는 다음과 같다. 서비스 정의를 고려할 때 서비스 식별자, 메세지 모델, 인터페이스 등의 정의는 중앙 집중식 관리 없이 수행 가능한 작업이다. 그러나 이러한 서비스 정의는 중앙 집중식 서비스 레지스트리에 게시돼야 한다. 서비스 레지스트리는 중앙 집중식 구성 요소이며, 서비스를 설명하기 위한 정규 모델을 정의한다. 모든 서비스 소유자는 정규형으로 서비스 정의를 서비스 레지스트리에 게시해야 한다. 서비스가 크게 상이한 기술로 구현된 경우에도 해당 서비스에 대한 공통 메타데이터를 찾아서 서비스 레지스트리에.. 더보기