분류 전체보기77 [Design] 결합도(Coupling) 결합도(Coupling) 커플링은 서로 다른 모듈이나 클래스가 얼마나 강하게 연결되어 있는지를 나타내는 개념입니다. 즉 서로 상호 작용하는 시스템들간의 의존성을 나타내며 모듈 간의 독립성 정도를 나타내는 지표입니다. Tight Coupling 두 요소가 강하게 결합되어 있다는 것은 한 요소가 다른 요소의 내부 동작에 의존하거나 직접 접근하는 상태를 말합니다. 이런 상태에서는 한 요소의 변경은 다른 요소에 직접적인 영향을 미치고 다른 요소에 대한 많은 변경을 요구하게 됩니다. Tight Coupling은 다른 오브젝트에 대한 상당히 많은 정보를 필요로 하고 보통 두 객체간의 인터페이스들에게 서로 높은 의존성을 가지고 있습니다. Loose Coupling 두 요소가 느슨하게 결합되어 있다는 것은 한 요소가 .. 2023. 8. 18. [GoF] 파사드 패턴(Facade Pattern) Facade Pattern 파사드 패턴(Facade Pattern)은 Gang of Four(GoF) 디자인 패턴 중 하나로 Design Patterns: Elements of Reusable Object-Oriented Software 책에서 소개 된 23가지 디자인 패턴 중 하나입니다. 파사드 패턴은 구조 패턴으로써 하위 시스템을 보다 쉽게 사용할 수 있게 해주는 고급 인터페이스로 표현됩니다. 먼저 파사드(Facade)는 프랑스어 Façade 에서 유래된 단어로 건물의 '외관'이라는 뜻입니다. 하위 시스템(내부 구조)에 있는 인터페이스들에 대한 통합된 고급 인터페이스(외벽)를 제공하는 패턴입니다. 이로써 내부 시스템의 복잡도를 감추기 위해 복잡한 기능을 감싸고 상호 작용할 더 단순한 메소드를 제공하는.. 2023. 8. 17. [CS] 내부 기억장치(Internal Memory)(1) 기억장치 기억장치의 분류와 특성 CPU가 어떤 정보를 기억장치에 쓰거나 기억장치로부터 읽는 동작을 액세스(access)한다고 말하는데 액세스 유형은 일반적으로 다음과 같이 분류됩니다. 순차적 액세스(sequential access): 기억장치에 젖아된 정보들을 처음부터 순서대로 액세스합니다. 자기 테이프(magnetic tape) 저장장치가 이방식을 이용하는데 저장되는 모든 정보는 테이프의 처음 위치에서 시작하여 연속적으로 위치하게 됩니다. 그 내용들은 내부적으로 레코드(record)라고 불리는 정보 단위로 분리되어 저장되고 각 레코드는 고유의 주소를 가집니다. 테이프 내 임의의 위치에 저장된 특정 정보를 읽기 위해서는 그위치에 도달할때까지 앞부분의 테이프를 모두 통과해야합니다. 따라서 정보가 저장된 위.. 2023. 8. 16. [Network] 트랜스포트 계층(Transport Layer)(4) 연결지향형 트랜스포트: TCP 혼잡 제어에 대한 접근법 실제로 TCP가 혼잡 제어를 수행하는 두 가지 광범위한 접근 방식이 있습니다. 가장 크게 보면 네트워크 계층이 혼잡 제어를 목적으로 트랜스포트 계층에 어떤 직접적인 도움을 제공하는지에 따라 혼잡 제어 접근을 구별할 수 있습니다. 종단 간의 혼잡 제어: 혼잡 제어에 대한 종단 간의 접근 방식에서 네트웤 ㅡ계층은 혼잡 제어 목적을 위해 트랜스포트 계층에게 어떤 직접적인 지원도 제공하지 않습니다. 네트워크에서 혼잡의 존재는 단지 관찰된 네트워크 동작에 기바초하여 종단 시스템이 추측해야합니다. IP 계층은 네트워크 혼잡에 관해 종단 시스템에게 어떠한 피드백 제공도 요구받지 않으므로 TCP가 혼잡 제어를 위한 종단 간의 접근 방식을 취합니다. TCP 세그먼트.. 2023. 8. 15. [Network] 트랜스포트 계층(Transport Layer)(3) 연결지향형 트랜스포트: TCP 흐름 제어 TCP 연결의 각 종단에서 호스트들은 연결에 대한 개별 수신 버퍼를 설정합니다. TCP 연결이 순서대로 올바르게 바이트를 수신할 때 TCP는 데이터를 수신 버퍼에 저장합니다. TCP는 송신자가 수신자의 버퍼를 오버플로시키는 것을 방지하기 위해 애플리케이션에게 흐름 제어 서비스(flow-control service)를 제공합니다. 흐름 제어는 속도를 일치시키는 서비스로 수신하는 애플리케이션이 읽는 속도와 송신자가 전송하는 속도를 같게 합니다. 송신자 제어의 이 형태는 혼잡 제어(congestion control)이라 부릅니다. TCP는 송신자가 수신 윈도(receive window)라는 변수를 유지하여 흐름 제어를 제공합니다. 수신 윈도는 수신 측에서 가용한 버퍼 .. 2023. 8. 14. [Network] 트랜스포트 계층(Transport Layer)(2) 연결지향형 트랜스포트: TCP TCP가 신뢰적인 데이터 전송을 제공하기 위해 오류 검출, 재전송 누적 확인응답, 타이머, 순서 번호와 확인응답 번호를 위한 헤더 필드를 포함한 방법을 설명하겠습니다. TCP 연결 TCP는 애플리케이션 프로세스가 데이터를 다른 프로세스에게 보내기 전에 두 프로세스가 서로 '핸드셰이크'를 먼저 해야하므로 연결지향형(connection-oriented)입니다. 즉 데이터 전송을 보장하는 파라미터들을 각자 설정하기 위한 어떤 사전 세그먼트들을 보내야합니다. TCP 포로토콜은 오직 종단 시스템에서만 동작하고 중간의 네트워크 요소(라우터와 링크 계층 스위치)에서는 동작하지 않으므로 중간의 네트워크 요소들은 TCP 연결 상태를 유지하지 않습니다. (중간 라우터들은 이들의.. 2023. 8. 12. [Network] 트랜스포트 계층(Transport Layer)(1) Transport Layer 트랜스포트 계층 프로토콜은 각기 다른 호스트에서 동작하는 애플리케이션 프로세스간의 논리적 통신(logical communication)을 제공합니다. 논리적 통신은 애플리케이션 관점에서 보면 프로세스들이 동작하는 호스트들이 직접 연결된 것처럼 보인다는 것을 의미합니다. 또한 트랜스포트 계층은 프로토콜은 네트워크 라우터가 아닌 종단 시스템에서 구현됩니다. 트랜스포트 계층 세그먼트라고 알려진 트랜스포트 계층 패킷으로 변환되어 네트워크 계층 패킷(데이터그램) 안에 캡슐화되어 목적지로 전달됩니다.(라우터는 데이터그램 안에 캡슐화된 트랜스포트 계층 세그먼트의 필드를 검사하지 않습니다.) 이 후 수신 애플리케이션의 트랜스포트 계층에서 세그먼트 내부의 데이터를 이용할 수 있도록 수신된 세.. 2023. 8. 11. [GoF] 어댑터 패턴(Adapter Pattern) Adapter Pattern 어댑터 패턴(Adapter Pattern)은 Gang of Four(GoF) 디자인 패턴 중 하나로 Design Patterns: Elements of Reusable Object-Oriented Software 책에서 소개 된 23가지 디자인 패턴 중 하나입니다. 어댑터 패턴은 구조 패턴으로써 인터페이스를 사용자가 기대하는 다른 인터페이스로 변환하는 패턴으로 호환되지 않는 인터페이스 때문에 함께 동작할 수 없는 인터페이스들이 함께 작동할 수 있도록 변환해주는 디자인 패턴입니다. 이는 인터페이스가 현재의 시스템과 호환되지 않는다고해서 현재의 시스템을 변경을 해야하는 것이 아닌 새로운 소스 코드 수정 없이 함께 작동하도록 만들어주는 것에 의미가 있습니다. 어댑터 패턴은 주로 다.. 2023. 8. 10. [Web] REST REST 출처 REST(REST: Representational State Transfer)는 리소스의 표현으로 구분하여 해당 리소스의 상태를 주고 받는 아키텍처 스타일입니다. REST는 2000년 로이 필딩(Roy Fielding)이 정의한 아키텍처 스타일(architectural style)로 아키텍처 스타일이란 아키텍처에 적용되는 제약조건들의 집합을 의미합니다. 로이필딩은 REST를 Starting With the Null Style 방식을 이용하여 아키텍처를 설계하였으며 이는 어떤 제약 조건 없이 시스템의 전반에서 시작하여 점진적으로 제약 조건을 추가하는 방식입니다. 추가한 제약 조건들은 시스템내에서 조화롭고 자연스럽게 동작할 수 있도록 설계되며 이는 시스템 맥락에 대한 이해와 규제를 강조합니다... 2023. 8. 9. 이전 1 ··· 3 4 5 6 7 8 9 다음