서브클래싱과 서브타이핑
13. 서브클래싱과 서브타이핑 상속의 첫 번째 용도는 타입 계층을 구현하는 것 타입 계층 안에서 부모 클래스는 일반적인 개념을 구현하고 자식 클래스는 특수한 개념을 구현한다. 타입 계층의 관점에서 부모 클래스는 자식 클래스의 일반화(generilization)이고 자식 클래스는 부모 클래스의 특수화(specialization) 상속의 두 번째 ...
13. 서브클래싱과 서브타이핑 상속의 첫 번째 용도는 타입 계층을 구현하는 것 타입 계층 안에서 부모 클래스는 일반적인 개념을 구현하고 자식 클래스는 특수한 개념을 구현한다. 타입 계층의 관점에서 부모 클래스는 자식 클래스의 일반화(generilization)이고 자식 클래스는 부모 클래스의 특수화(specialization) 상속의 두 번째 ...
12. 다형성 코드 재사용을 목적으로 상속을 사용하면 변경하기 어렵고 유연하지 못한 설계에 이를 확률이 높아진다. 상속은 타입 계층을 구조화하기 위해 사용 타입 계층은 객체지향 프로그래밍의 중요한 특성 중 하나인 다형성의 기반을 제공 최근의 언어들은 상속 이외에도 다형성을 구현할 수 있는 다양한 방법들을 제공하고 있기 때문에 과거에 비해 상속의...
11. 합성과 유연한 설계 상속이 부모 클래스와 자식 클래스를 연결해서 부모 클래스의 코드를 재사용하는 데 비해 합성은 전체를 표현하는 객체가 부분을 표현하는 객체를 포함해서 부분 객체의 코드를 재사용 상속에서 부모 클래스와 자식 클래스 사이의 의존성은 컴파일타임에 해결되지만 합성에서 두 객체 사이의 의존성은 런타임에 해결된다. 상속 관계는 is...
10. 상속과 코드 재사용 객체지향 프로그래밍의 장점 중 하나는 코드를 재사용하기가 용이하다는 것 전통적인 패러다임에서 코드를 재사용하는 방법은 코드를 복사한 후 수정하는 것 객체지향에서는 코드를 재사용하기 위해 ‘새로운’ 코드를 추가 재사용 관점에서 상속이란 클래스 안에 정의된 인스턴스 변수와 메서드를 자동으로 새로운 클래스에 추가하는 구현 ...
9. 유연한 설계 9.1 개방-폐쇄 원칙 개방-폐쇄 원칙(Open-Closed Principle, OCP): 소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다. 확장에 대해 열려 있다: 애플리케이션의 요구사항이 변경될 때 이 변경에 맞게 새로운 ‘동작’을 추구해서 애플리케이션의 ...
7. 캐시 웹 캐시는 자주 쓰이는 문서의 사본을 자동으로 보관하는 HTTP 장치 캐시는 불필요한 데이터 전송을 줄여서, 네트워크 요금으로 인한 비용을 줄여준다. 캐시는 네트워크 병목을 줄여준다. 캐시는 원 서버에 대한 요청을 줄여준다. 페이지를 먼 곳에서 불러올수록 시간이 많이 걸리는데, 캐시는 거리로 인한 지연을 줄여준다. 7...
8. 의존성 관리하기 8.1 의존성 이해하기 변경과 의존성 의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가짐 실행 시점: 의존하는 객체가 정상적으로 동작하기 위해서는 실행 시에 의존 대상 객체가 반드시 존재해야 함 구현 시점: 의존 대상 객체가 변경될 경우 의존하는 객체도 함께 변경됨 어떤 객체가 예정된 작업을 정상적으로 수...
6. 프락시 웹 프락시 서버는 중개자 프락시는 클라이언트와 서버 사이에 위치하여 그들 사이의 HTTP 메시지를 정리하는 중개인 6.1 웹 중개자 웹 프락시 서버는 클라이언트의 입장에서 트랜잭션을 수행하는 중개인 HTTP 프락시 서버는 웹 서버이기도 하고 웹 클라이언트이기도 함 프락시는 HTTP 클라이언트의 요청을 받게 되므로, 반드시 웹 서...
5. 웹 서버 5.1 다채로운 웹 서버 웹 서버는 HTTP 요청을 처리하고 응답을 제공 웹 서버는 기능, 형태, 크기가 다양 기능은 달라도, 모든 웹 서버는 리소스에 대한 HTTP 요청을 받아서 콘텐츠를 클라이언트에게 돌려줌 5.1.1 웹 서버 구현 웹 서버는 HTTP 및 그와 관련된 TCP 처리를 구현한 것 웹 서버는 자신이 제공하는 리...
4. 커넥션 관리 4.1 TCP 커넥션 전 세계 모든 HTTP 통신은 TCP/IP를 통해 이루어진다 4.1.1 신뢰할 수 있는 데이터 전송 통로인 TCP TCP 커넥션의 한쪽에 있는 바이트들은 반대쪽으로 순서에 맞게 정확히 전달 4.1.2 TCP 스트림은 세그먼트로 나뉘어 IP 패킷을 통해 전송 TCP는 IP패킷이라고 불리는 작은 조각을 ...