minho Yoo's blog

객체 지향 프로그래밍

5. 객체 지향 프로그래밍 캡슐화? 데이터와 함수를 쉽고 효과적으로 캡슐화하는 방법을 OO언어가 제공 이를 통해 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 사실 C언어에서도 완벽한 캡슐화 가능 오히려 OO언어에서 캡슐화 기능이 훼손됨 이 때문에 OO가 강력한 캡슐화에 의존한다는 정의는 받아들이기 힘들다....

두 가지 가치에 대한 이야기

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

설계와 아키텍처란?

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

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

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

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

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

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

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