ISP: 인터페이스 분리 원칙
10. ISP: 인터페이스 분리 원칙 다수의 사용자가 한 클래스에서 각기 다른 메소드 사용 자신이 사용하지 않는 메소드가 배포될 때 영향을 받음 그래서 분리가 필요함 ISP와 언어 정적 타입 언어는 소스코드에 포함된 선언문(import, include …)로 인해 소스코드 의존성이 발생하고, 이로 인해 재컴파일 또는 재배포가 필요함 동적 타...
10. ISP: 인터페이스 분리 원칙 다수의 사용자가 한 클래스에서 각기 다른 메소드 사용 자신이 사용하지 않는 메소드가 배포될 때 영향을 받음 그래서 분리가 필요함 ISP와 언어 정적 타입 언어는 소스코드에 포함된 선언문(import, include …)로 인해 소스코드 의존성이 발생하고, 이로 인해 재컴파일 또는 재배포가 필요함 동적 타...
5. 객체 지향 프로그래밍 캡슐화? 데이터와 함수를 쉽고 효과적으로 캡슐화하는 방법을 OO언어가 제공 이를 통해 데이터와 함수가 응집력 있게 구성된 집단을 서로 구분 짓는 선을 그을 수 있다. 사실 C언어에서도 완벽한 캡슐화 가능 오히려 OO언어에서 캡슐화 기능이 훼손됨 이 때문에 OO가 강력한 캡슐화에 의존한다는 정의는 받아들이기 힘들다....
4. 구조적 프로그래밍 증명 Goto 문의 좋은 사용 방식은 if/then/else와 do/while과 같은 분기와 반복이라는 단순한 제어 구조 이러한 제어 구조는 순차 실행과 결합했을 때 좋다. 모든 프로그램은 순차, 분기, 반복으로 표현 가능하다는 사실을 증명 해로운 성명서 성명서로 인해 goto문과 논쟁 goto가 패배 기능적 분해...
3. 패러다임 개요 구조적 프로그래밍 점프들을 if/then/else와 do/while/until과 같이 더 익숙한 구조로 대체 구조적 프로그래밍은 제어흐름의 직접적인 전환에 대해 규칙을 부과 이해관계자를 위해 기계에서 수익을 창출하거나 비용을 절약하도록 만든다. 많은 프로그래머가 이러한 활동이 자신이 해야 할 일의 전부라고 생각하고 믿는다....
2. 두 가지 가치에 대한 이야기 모든 소프트웨어 시스템은 이해관계자에게 서로 다른 두 가지 가치를 제공 행위(behavior)와 구조(structure) 행위 소프트웨어의 첫 번째 가치는 바로 행위 이해관계자를 위해 기계에서 수익을 창출하거나 비용을 절약하도록 만든다. 많은 프로그래머가 이러한 활동이 자신이 해야 할 일의 전부라고 생각하고...
1. 설계와 아키텍처란? 설계(design)와 아키텍처에는 어떤 차이가 있는가? 둘 사이에는 아무런 차이가 없다! 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬 때 흔히 사용됨 설계는 저수준의 구조 또는 결졍사항 등을 의미할 때가 많다. 아키텍트가 실제로 하는 일을 살펴보면 이렇나 구분은 무의미 저수준의 세부사항과 고수준...
3. 스트림의 새로운 표준 - 리액티브 스트림 모두를 위한 반응성 API 불일치 문제 과도하게 많은 선택지로 인해 시스템을 지나치게 복잡하게 만들 수 있음 핵심적인 문제는 라이브러리 공급자가 일관된 API를 만들어낼 수 있는 표준화된 방법이 없다는 사실 풀 방식과 푸시 방식 일반적인 풀 방식(요소를 하나씩 요청) 서비스에서 데이터베이스로의...
2. 스프링을 이용한 리액티브 프로그래밍 - 기본 개념 리액티브를 위한 스프링 프레임워크의 초기 해법 관찰자(Observer) 패턴 관찰자라고 불리는 자손의 리스트를 가지고 있는 주체(subject)를 필요로 함 주체는 일반적으로 자신의 메소드 중 하나를 호출해 관찰자에게 상태 변경을 알림 관찰자 패턴을 사용하면 런타임에 일대다 의존성 등록 ...
1. 왜 리액티브 프로그래밍인가? 왜 리액티브인가? 요청이 집중되는 날에 장애 발생 가능 -> 증가한 부하에 대한 응답 능력을 유지하지 못한 결과 애플리케이션은 변화에 대응해야 함(수요의 변화 및 외부 서비스의 가용성 변화) 즉, 사용자 요청에 대한 응답 능력에 영향을 미칠 수 있는 모든 변화에 대응해야 함 첫 번째 방법은 탄력성(ela...
7. 쿠버네티스 실전편 7.1 쿠버네티스의 그 외 리소스 잡 잡은 하나 이상의 파드를 생성해 지정된 수의 파드가 정상 종료될 때까지 이를 관리하는 리소스 정상 종료된 후에도 삭제되지 않고 그대로 남아있기 때문에 작업이 종료된 후에 파드의 로그나 실행 결과 분석 가능 배치 작업 위주의 어플리케이션에 적합 apiVersion: batch/v1 ...