minho Yoo's blog

두 가지 가치에 대한 이야기

2. 두 가지 가치에 대한 이야기 모든 소프트웨어 시스템은 이해관계자에게 서로 다른 두 가지 가치를 제공 행위(behavior)와 구조(structure) 행위 소프트웨어의 첫 번째 가치는 바로 행위 이해관계자를 위해 기계에서 수익을 창출하거나 비용을 절약하도록 만든다. 많은 프로그래머가 이러한 활동이 자신이 해야 할 일의 전부라고 생각하고...

설계와 아키텍처란?

1. 설계와 아키텍처란? 설계(design)와 아키텍처에는 어떤 차이가 있는가? 둘 사이에는 아무런 차이가 없다! 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 흔히 사용됨 설계는 저수준의 구조 또는 결졍사항 등을 의미할 때가 많다. 아키텍트가 실제로 하는 일을 살펴보면 이렇나 구분은 무의미 저수준의 세부사항과 고수준...

스트림의 새로운 표준 - 리액티브 스트림

3. 스트림의 새로운 표준 - 리액티브 스트림 모두를 위한 반응성 API 불일치 문제 과도하게 많은 선택지로 인해 시스템을 지나치게 복잡하게 만들 수 있음 핵심적인 문제는 라이브러리 공급자가 일관된 API를 만들어낼 수 있는 표준화된 방법이 없다는 사실 풀 방식과 푸시 방식 일반적인 풀 방식(요소를 하나씩 요청) 서비스에서 데이터베이스로의...

스프링을 이용한 리액티브 프로그래밍 - 기본 개념

2. 스프링을 이용한 리액티브 프로그래밍 - 기본 개념 리액티브를 위한 스프링 프레임워크의 초기 해법 관찰자(Observer) 패턴 관찰자라고 불리는 자손의 리스트를 가지고 있는 주체(subject)를 필요로 함 주체는 일반적으로 자신의 메소드 중 하나를 호출해 관찰자에게 상태 변경을 알림 관찰자 패턴을 사용하면 런타임에 일대다 의존성 등록 ...

왜 리액티브 프로그래밍인가?

1. 왜 리액티브 프로그래밍인가? 왜 리액티브인가? 요청이 집중되는 날에 장애 발생 가능 -> 증가한 부하에 대한 응답 능력을 유지하지 못한 결과 애플리케이션은 변화에 대응해야 함(수요의 변화 및 외부 서비스의 가용성 변화) 즉, 사용자 요청에 대한 응답 능력에 영향을 미칠 수 있는 모든 변화에 대응해야 함 첫 번째 방법은 탄력성(ela...

쿠버네티스 입문

5. 쿠버네티스 입문 5.1 쿠버네티스란 무엇인가? 쿠버네티스: 컨테이너 운영을 자동화하기 위한 컨테이너 오케스트레이션 도구 많은 수의 컨테이너를 협조적으로 연동시키기 위한 통합 시스템 컨테이너를 다루기 위한 API 및 명령행 도구 제공 도커 호스트 관리/서버 리소스의 여유를 고려한 컨테이너 배치/스케일링/로드 밸런싱/헬스체크 쿠버네티스의 ...