메시지와 인터페이스
6. 메시지와 인터페이스 훌륭한 객체지향 코드를 얻기 위해서는 클래스가 아니라 객체를 지향해야 한다 객체가 수행하는 책임에 초점을 맞춰야 함 객체지향 애플리케이션의 가장 중요한 재료는 클래스가 아니라 객체들이 주고받는 메시지 애플리케이션은 클래스로 구성되지만 메시지를 통해 정의됨 객체가 수신하는 메세지들이 객체의 퍼블릭 인터페이스를 구성 6...
6. 메시지와 인터페이스 훌륭한 객체지향 코드를 얻기 위해서는 클래스가 아니라 객체를 지향해야 한다 객체가 수행하는 책임에 초점을 맞춰야 함 객체지향 애플리케이션의 가장 중요한 재료는 클래스가 아니라 객체들이 주고받는 메시지 애플리케이션은 클래스로 구성되지만 메시지를 통해 정의됨 객체가 수신하는 메세지들이 객체의 퍼블릭 인터페이스를 구성 6...
3. HTTP 메시지 3.1 메시지의 흐름 HTTP메시지는 HTTP 애플리케이션 간에 주고받은 데이터의 블록들 이 데이터의 블록들은 메시지의 내용과 의미를 설명하는 텍스트 메타 정보로 시작하고 그 다음에 선택적으로 데이터가 올 수 있다. 3.1.1 메시지는 원 서버 방향을 인바운드로 하여 송신된다 HTTP는 인바운드와 아웃바운드라는 용어를 트...
5. 책임 할당하기 책임에 초점을 맞춰서 설계할 때 직면하는 가장 큰 어려움은 어떤 객체에게 어떤 책임을 할당할지를 결정하기가 쉽지 않다는 점 책임 할당 과정은 일종의 트레이드오프 활동 GRASP 패턴은 책임 할당의 어려움을 해결하기 위한 답을 제시해 줌 5.1 책임 주도 설계를 향해 데이터 중심의 설계에서 책임 중심의 설계로 전환하기 위해서...
2. URL과 리소스 URL은 인터넷 리소소를 가리키는 표준이름 2.1 인터넷의 리소스 탐색하기 URL의 첫 부분인 http는 URL의 스킴(웹 클라이언트가 리소스에 어떻게 접근하는지 알려줌) (ex. http, malito, ftp) 두번째 부분은 서버의 위치 세 번째 부분은 리소스의 경로 대부분의 URL은 “스킴://서버위치/...
4. 설계 품질과 트레이드오프 책임 주도 설계라는 이름에서 알 수 있는 것처럼 역할, 책임, 협력 중에서 가장 중요한 것은 책임 책임이 객체지향 애플리케이션 전체의 품질을 결정 객체지항 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동 설계는 변경을 위해 존재하고 변경에는 어떤 식으로든 비용...
3. 역할, 책임, 협력 객체지향 패러다임 관점에서 핵심은 역할(role), 책임(responsibility), 협력(collaboration) 클래스, 상속, 지연 바인딩은 구현 측면에 치우쳐 있기 때문에 객체지향 패러다임의 본질과는 거리가 멀다 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것 객체지향 설계의 핵심은 협력을 구성하기 ...
1. HTTP 개관 1.1 HTTP: 인터넷의 멀티미디어 배달부 HTTP 통신이 전송 중 파괴되거나, 중복되거나, 왜곡되는 것을 걱정 X 1.2 웹 클라이언트 서버 웹 서버는 HTTP 프로토콜로 의사소통하기 때문에 보통 HTTP 서버라고 불린다. 클라이언트는 서버에게 HTTP 요청을 보내고, 서버는 요청된 데이터를 HTTP 응답으로 돌려줌 ...
2. 객체지향 프로그래밍 2.1 영화 예매 시스템 할인 조건 할인 정책 2.2 객체지향 프로그래밍을 향해 협력, 객체, 클래스 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있다. 이를 위해서는 프로그래밍하는 동안 다음의 2가지에 집중 어떤 클래스가 필요한지를 고민하기 전에 어떤 객...
1. 객체, 설계 소프트웨어 개발에서는 아직 실무가 이론보다 앞서 있는 분야가 많음 1.1 티켓 판매 에플리케이션 구현하기 소극장 이벤트를 통해 관람권을 나눠준 상황 관람객을 입장시키기 전에 이벤트 당첨 여부를 확인해야 하고 이벤트 당첨자가 아닌 경우에는 티켓을 판매 후 입장 구현 했지만 문제 발생 1.2 무엇이 문제인가 소프트웨어 모듈이...
1. 성능과 최적화 1.1 자바 성능: 잘못된 방법 과거에는 메서드를 분리하지 않는 것이 성능에 좋다고 함 -> 현재와는 전혀 다름 자바 코드가 실행되는 속도는 매우 변화무쌍하며 전적으로 코드를 실행하는 하부 JVM에 따라 다름 우수한 성능 목표를 달성하기 위해 필요한 여러 가지 단면을 종합적으로 집중 소개 전체 소프트웨어 수명주기...