전체 글 (84) 썸네일형 리스트형 클린 아키텍처 6장 - 함수형 프로그래밍 프로그래밍 그 자체보다 앞서 등장 클로저 언어와 함수형 프로그래밍이 무엇인지 배우는 시간은 스스로 갖도록 하자 클로저 프로그램에서는 이러한 가변 변수가 전혀 없음. 함수형 언어에서 변수는 변경되지 않는다. →경합조건, 교착상태, 동시 업데이트 문제가 모두 가변 변수로 인해 발생하기 때문이다. 동시성 애플리케이션에서 마주치는 모든 문제, 즉 다수의 스레드와 프로세스를 사용하는 애플리케이션에서 마주치는 모든 문제는 가변 변수가 없다면 절대로 생기지 않는다. 가변성의 분리 애플리케이션의 내부 서비스를 가변 컴포넌트와 불변 컴포넌트로 분리하는 일. 불변 컴포넌트는 변수의 상태를 변경할 수 있는, 즉 순수형 컴포터는가 아닌 하나 이상의 다른 컴포넌트와 서로 통신한다. 상태 변경은 갖가지 동시성 문제에 노출하는 것.. 클린 아키텍처 5장 - 객체 지향 프로그래밍 좋은 아키텍처를 만드는 일은 ㅇㅇ설계 원칙을 이해하고 응용하는 데서 출발. 누군가는 데이터와 함수의 조합. 누군가는 "데이터와 함수의 조합", 1966년보다 훨씬 이전부터 프로그래머는 데이터 구조를 함수에 전달해 왔음 "실제 세계를 모델링하는 새로운 방법", 이거는 이해하기 모호하다? 근데 맞는 말임 에서 보듯이 실제 세계와 유사하게 만드는 이유는, 가독성을 높혀서 코드를 이해하는데 매우 쉬워지게 만드는 목적 본질을 설명하기 위해, 세 가지 개념을 설명하자면, 캡슐화, 상속, 다형성이다. 이것에 대해 알아보자 캡슐화 일부 함수들만 밖에 노출되고, 나머지는 노출되지 않게 하는 것. 내부의 데이터 구조와 어떻게 구현되었는지에 대해서는 조금도 알지 못한다. C++에서는 완벽한 캡슐화가 깨지게 되었음, 헤더에 .. 클린 아키텍처 4장 - 구조적 프로그래밍 프로그램은 어렵고, 프로그래머는 프로그래밍을 잘하지 못한다 → 증명이라는 수학적 원리를 적용하여 이 문제를 해결하고자 했다. 입증된 구조를 사용하고, 이들 구조를 코드와 결합시키며, 그래서 코드가 올바르다는사실을 스스로 증명하게 되는 방식. 기본적인 증명을 작성할 수 있는 기법을 보여줘야 한다는 사실을 깨달았다. 이 연구를 진행하면서 goto 문장이 모듈을 더 작은 단위로 재귀적으로 분해하는 과정에 방해가 되는 경우가 있다는 사실을 발견. 모듈을 분해할 수 없다면, 분할 정복 접근법을 사용할 수 없음. goto문의 좋은 접근 방식은, if/then/else와 do/while과 같은 분기와 반복이라는 단순한 제어 구조에 해당한다는 사실을 발견했다. 모듈이 이러한 제어 구조만을 사용한다면 증명 가능한 단위로.. 이전 1 ··· 19 20 21 22 23 24 25 ··· 28 다음