Circuit Breaker 패턴 

대부분의 소프트웨어들은 다른 프로세스를 호출하기 마련이다. 내부에 있는 프로세스를 (IPC를 이용해서) 호출하는 경우도 있겠지만, 특히 MSA, OpenAPI가 일반화된 요즘에는 다른 네트워크에서 실행 중인 프로세스 원격으로 호출하는 경우가 많다.IPC 통신과 원격 통신하는 소프트웨어의 가장 큰 차이점은 "상황을 완전히 통제 할 수 없다는 점"이다. 요청이...

Taming big data with apache spark hands-on : What's new in Spark 3 

Spark의 최신 버전은 "Spark 3"다. Spark의 역사를 대략 정리했다.Spark는 2009년 UC Berkeley AMPLab에서 빅 데이터 분석을 위한 시스템 개발을 목표로 시작했다. 2014년 Spark 1.0 이 릴리즈 되고 같은해 탑-레벨 아파치프로젝트가 된다. 들을 둘러보자. 기술을 선택하는데 큰 도움이 될 것이다. 2018년 Spark...

Taming big data with apache spark hands-on : Getting Started 

Apache Spark 개발 환경을 세팅한다. 나는 우분투 리눅스를 사용하고 있다. 모든 내용은 우분투 리눅스를 기준으로 한다. 우분투 리눅스 19.04를 사용하고 있다.# cat /etc/issueUbuntu 19.04 \n \l# uname -aLinux yundream 5.0.0-40-generic #44-Ubuntu SMP Wed Jan 15 02S...

Consul 

Consule는 서비스 디스커버리(Service discovery)와 설정을 관리하는 툴이다. Consule는 분산&클라우드 환경에 적응하기 위한 고가용성, 유연한 스케일링, 분산시스템의 특징을 가진다. Consul의 핵심 기능은 아래와 같다. 서비스 디스커버리 Health Checking KV(Key/Value) 저장소(Store) 멀티 데이터센터...

Continuous integration 

소프트웨어 엔지니어링에서 CI는 모든 개발자의 작업 사본을 공유하고, 하루에 여러 번(수시로 혹은 짧은 간격으로) 병합하는 프로세스를 말한다. 1991년 Grady Booch가 CI라는 용어를 처음 제안했으나 당시에는 여러 번 통합하는 것을 권유하지는 않았다. XP(eXtreme programming)에서는 하루에 한번이상 통합할 것을 권하고 있다. CI는...

Web Architecture ABC With AWS 

예전에 를 다룬적이 있다. 인터넷 웹 서비스에서 일반적으로 사용 할 수 있는 아키텍처를 묘사하고 구성요소들에 대해서 간단히 살펴봤다. 이 아키텍처를 AWS 기반으로 다시 만들어 보려 한다. 웹 서비스 아키텍처 ABC 에서 설명했던 아키텍처는 아래와 같다.위 아키텍처는 Joinc 서비스에서 사용하고 있는 아키텍처다. Joinc는 wiki 문서의 작성과 관리...

웹 서비스 아키텍처 ABC 

원문 웹 서비스를 개발 할 때 참고 할 수 있는 기본 아키텍처다. 실 서비스에서는 구성요소들이 복잡해지고 다뤄야 하는 내용이 깊어질 수는 있겠지만 많은 서비스들은 여기에서 소개한 아키텍처를 확장 & 응용하는 것만으로 큰 틀을 잡을 수 있을 것이다. 위 그림은 운영중인 joinc 웹 서비스 아키텍처를 묘사하고(개인 사이트이기 때문에, 실제 위의 구성요소를 모...

Spark 

Apache Spark는 빅데이터 처리에 사용되는 오픈 소스 분산 처리 시스템이다. 메모리 기반으로 바르게 작동하며, 배치처리, 스트리밍 분석, 머신러닝등 다양한 영역에서 사용한다.Spark는 RDD(Resilient distributed dataset)이라고 부르는 자료구조로 여러 노드에 분산 할 수 있는 분산 collection이다. 대량의 데이터를 처...

kafka를 이용한 chatting 프로그램 개발 

Kafka 프로듀소와 컨슈머의 개발하는 법을 익힌다. 컨슈머 그룹에 대한 개념을 잡는다. 메시지 교환 프로그램의 구조를 개발한다. IoT응용을 찾는다.kafka의 구성을 끝냈다고 가정한다. 아직 kafka 구성을 마치지 않았다면 문서를 참고해서 구성을 끝내자.채팅 프로그램은 아래의 구조를 가진다. 가장 단순한 구조로 만들고, 이 구조를 확장해 나가자.쉽...

디바이스 인증 

디바이스를 인증하기 위한 방법을 고민한다. 이 방법은 아래의 조건을 만족해야 한다. 해당 디바이스가 유저의 것임을 인증 할 수 있어야 한다. 인증 정보는 안전하게 보관할 수 있어야 한다. 인증 정보는 주기적으로 갱신되야 하며, 이 과정은 자동으로 이루어져야 한다. 인증정보가 누출 될 수 있을 것이다. 누출될 경우 인지 할 수 있어야 하며, 초기화 및 복구를...