profile
김카레

[프로그래밍 패턴] 사이드카(Sidecar) 패턴

개요 기본 Application 외 필요한 추가 기능을 별도의 Application으로 구현하고 이를 동일한 프로세스 또는 컨테이너 내부에 배치 저장 공간, 네트워크 등의 리소스를 공유하며 모니터링, 로깅, 프록시 등의 동작 가능 컨테이너와 함께 사용되는 경우가 많으며 사이드카 컨테이너 또는 사이드킥 컨테이너라고도 한다. image.png 장점 사이드카 ...

2020년 1월 6일
·
0개의 댓글

[프로그래밍 패턴] 제한(Throttling) 패턴

이 시리즈는 GOF의 디자인 패턴 이외의 패턴을 다룹니다. > 항상 아래의 2가지를 염두해두고 사용하고자 합니다. > 1. 불필요한 패턴은 복잡성을 증가시킨다. > 2. 패턴이 필요하다는 의미는 언어 차원에서 지원하지 못하는 기능이 있다는 반증일 수 있다. 개요 개별 tenant가 전체 서비스에서 사용하는 리소스를 제어해야 할 때 사용 image.png...

2019년 12월 23일
·
0개의 댓글

자바 개발자를 위한 Scala

대상 : 이 글은 자바에 익숙하며, 스칼라로 당장 개발해야 하는 자바 개발자를 위해 쓰여졌습니다. > 목표 > Scala의 기본적인 문법과 서비스에서 주로 쓰일 라이브러리, 주의사항 등을 다룹니다. > 또한, 자바를 기준으로 스칼라의 구현체계 및 방식에 관해 설명합니다. 타입 및 변수 타입들 일반적으로 알고 있는 타입들 : Int, Float, Doubl...

2019년 9월 17일
·
1개의 댓글
post-thumbnail

Scala Dotty

Scala 3 주요 컨셉 : Dependent Object Types (DOT) DOT 이란 : core calculus for path-dependent types, Scala 3의 핵심 개념 DOTTY란? Scala 3의 프로젝트명이자, DOT을 지원하는 새로운 컴파일러 이름이다. (Scala 3 에서는 scalac 대신 dotc를 사용한다) Path...

2019년 8월 26일
·
0개의 댓글
post-thumbnail

CQRS & Event Sourcing

CQRS (Command Query Responsibility Segregation) bertrand meyer의 책 객체 지향 소프트웨어에서 시작된 개념. 상태를 변경하는 명령과 단순 질의를 분리하여, 응집력있는 프로그램을 만드는 것. 구현 방식 : command가 발생하면 변경된 결과가 query에 전달되어 update된 상태를 반영한다. db는 두 ...

2019년 3월 22일
·
0개의 댓글

Java work stealing & fork-join

Work stealing Algorithm 병렬 처리를 위해 작업을 잘게 나누어 각각을 처리하는 별개 쓰레드를 만든다면? 쓰레드를 만들고 제거하는 작업 자체가 큰 오버헤드여서 시간이 더 걸릴 수 있다. 그렇다면 일정 개수의 쓰레드와 병렬 처리를 위해 전체 작업 목록을 관리하는 작업큐를 사용한다면? 이 작업큐에서 task를 꺼내 병렬로 처리한다고 한다면, 작...

2019년 3월 22일
·
0개의 댓글

MSA (Microservice)

Patterns image.png 장애 전파 방지 : Fail-Fast, Circuit Breaker Circuit Breaker 일정 시간, 일정 개수 이상의 호출 시, 일정 비율의 에러가 발생한다면 호출 차단 (Circuit open). 빨리 실패 (Fail-fast)하게 하여 Thread-pool 등이 차서 장애가 전파되지 않게 한다. 몇몇 호출을 ...

2019년 3월 22일
·
0개의 댓글

Publisher - Processor - Subscriber

기본 로직 publisher (inner 클래스로 subscription 있음)에 subscriber가 등록되면 subscriber는 몇 개를 요청할지 정해서 subscription.request(n)를 호출한다. subscription은 n개 만큼 subscriber.onNext(v)를 호출한다. Processor의 역할 하나의 subscriber의 결과...

2019년 3월 22일
·
0개의 댓글

Docker

개요 컨테이너 기반의 가상화 플랫폼 개념 Infrastructure as Code > Mutable -> Ansible, Chef, Puppet > Immutable -> Docker 컨테이너 : 무거운 OS기반 가상화에서 -> 점차 프로세스 격리로 진화. 컨테이너라고 불림. 이미지 : 컨테이너 실행에 필요한 의존성 파일과 시스템 설정값 등을 포함하고 있...

2019년 2월 28일
·
0개의 댓글

[프로그래밍 패턴] Circuit Breaker 패턴

Circuit Breaker가 왜 필요한가 외부 API 호출과 같은 remote call시, 호출 실패나 hang 등을 고려하지 않을 수 없습니다. 일시적이고 단발성인 오류는 적절히 timeout을 주고 오류를 try-catch 하면 되지만, 오류가 장시간 계속 발생할

2019년 1월 2일
·
0개의 댓글
post-thumbnail

React의 새로운 패러다임, React Hooks

React Hooks이 생긴 배경과 Basic Hook인 useState, useEffect에 대해서 알아보고, custom hook에 관해 살펴봅니다.

2018년 12월 15일
·
5개의 댓글