추상화

계층이 잘 분리되면 좋은점? 어떤 계층에서 작업할 때 해당 계층만 생각하면 된다는 점. 즉, 전체를 이해할 필요가 없어지는 것 어셈블리 언어, JVM 바이트 코드가 무엇인지 몰라도 프로그래밍할 수 있음 추상화 레벨 높은 레벨로 갈수록 프로세서(물리 장치)로부터 멀어짐 높은 레벨일수록 걱정해야 하는 세부적인 내용들이 적어지지만(단순함을 얻는다.), 제어력을 읽어버림 c언어는 메모리 관리를 직접 할 수 있으나, 자바는 가비지 컬렉터가 자동으로 관리 해줌 메모리 사용을 최적화하는 것이 힘듬 높은 레벨(고수준)일 수록 비즈니스 핵심 로직에 가까움 추상화 레벨 통일 코드도 추상화를 계층처럼 만들어 사용할 수 있는데, 이를 위한 기본적인 도구가 함수 class CoffeeMachine { fun makeCoffee..
객체의 책임과 메시지 객체 설계를 더 잘하기 위해 객체를 이해해보자.. 객체는 객체지향 공동체에서 어떤 역할을 하는 것일까..? 자율적인 책임 객체지향 공동체를 구성하는 기본 단위는 ‘자율적'인 객체 자율적인 객체? 스스로 정한 원칙에 따라 판단하고 스스로의 의지를 기반으로 행동하는 객체 객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임 이라고 한다. 즉, 자율적인 객체란 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체 객체가 자율적이기 위해서는 객체에게 할당되는 책임의 수준 역시 자율적이어야 한다. 상세한 수준의 책임들은 자율성을 제한한다. 즉 요청하는 객체에 의존할 수 밖에 없다. 증언해라 vs 목격..
초기 지하철 노선도는 지형 위에 구불구불한 운행 노선과 불규칙적인 역 간의 거리를 사실적으로 묘사하였었다. 문제는 사실적인 정보가 오히려 지하철을 이용하는 승객들로 하여금 노선도를 이해하기 어렵게 만들었다는 점이다. 지하철 노선도 디자인에서 가장 중요한 것은 얼마나 사실적으로 묘사했느냐가 아니고 역과 역 사이의 연결성을 얼마나 직관적으로 표현했느냐인 것이다. 그 후 사실적인 지형과 축적은 무시하고 역 사이의 연결성에만 집중한 혁신적인 지하철 노선도를 창조하게 된다. 승객이 꼭 알아야 하는 사실만 정확하게 표현하고(연결, 열차를 갈아타는 것) 몰라도 되는 정보는 무시함으로써 이해하기 쉽고 단순하며 목적에 부합하는 지하철 노선도를 만든 것이다. 즉 ,지하철 노선을 추상화한 것이다. 추상화는 목적에 맞게 현상..
추상화를 통한 복잡성 극복 추상화 란 현실에서 출발하되 불필요한 부분을 도려내가면서 사물의 놀라운 본질을 드러나게 하는 과정 어떤 양상, 세부사항, 구조를 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이뤄진다. 구체적인 사물들 간의 공통점은 취하고 차이점은 버리는 일반화를 통해 단순하게 만드는 것 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것이라는 점을 기억해야 한다. 객체지향 패러다임은 객체라는 추상화를 통해 현실의 복잡성을 극복한다. 그리고 객체 지향 패러다임을 이해하고 유용하고 아름다운..
깡냉쓰
'추상화' 태그의 글 목록