1. 객체지향 SRP (Single Responsibility Principle)
- 단일 책임 원칙은 객체지향 설계의 중요한 원칙 중 하나로, 클래스는 하나의 책임만 가져야 한다는 개념입니다. 즉, 클래스는 하나의 기능만 수행해야 하고, 변경의 이유가 하나만 있어야 한다는 원칙입니다. 이를 통해 시스템의 유지보수성을 높이고, 코드의 모듈화를 촉진할 수 있습니다.
2. 디자인 패턴 - 서브클래스
- 서브클래스는 상속을 통해 부모 클래스의 속성과 메서드를 재사용하거나 확장할 수 있게 합니다. 디자인 패턴에서 서브클래스와 관련된 패턴 중 대표적인 것은 템플릿 메서드 패턴이 있습니다. 이 패턴은 부모 클래스에서 알고리즘의 뼈대를 정의하고, 구체적인 내용은 서브클래스에서 구현하게 합니다.
1. 템플릿 메서드 패턴 (Template Method Pattern)
- 부모 클래스에서 알고리즘의 뼈대를 정의하고, 세부 구현을 서브클래스에서 결정하는 패턴입니다. 부모 클래스에서 메서드의 실행 순서나 큰 틀은 고정하되, 서브클래스에서 특정 단계의 구현을 바꿀 수 있습니다.
- 예: 프레임워크에서 기본 기능을 제공하되, 구체적인 구현은 서브클래스가 담당하는 경우.
2. 팩토리 메서드 패턴 (Factory Method Pattern)
- 객체 생성을 서브클래스에 위임하는 패턴입니다. 부모 클래스에서 객체 생성에 대한 인터페이스를 제공하지만, 구체적인 객체의 생성은 서브클래스가 결정합니다.
- 예: 추상적인 제품을 생성하는 부모 클래스가 있고, 구체적인 제품을 서브클래스에서 구현합니다.
3. 추상 팩토리 패턴 (Abstract Factory Pattern)
- 서로 연관된 객체들의 집합을 생성할 수 있도록 서브클래스에서 구현하는 패턴입니다. 이 패턴은 구체적인 객체 생성 코드를 서브클래스에 위임하여 다양한 제품 계열을 생성할 수 있게 합니다.
- 예: 서로 다른 환경에서 작동하는 UI 컴포넌트 세트를 팩토리 메서드로 생성.
4. 전략 패턴 (Strategy Pattern)
- 특정 작업을 수행하는 알고리즘을 서브클래스에서 정의하여, 실행 시점에 전략을 변경할 수 있게 만드는 패턴입니다. 부모 클래스는 알고리즘을 정의하는 인터페이스만 제공하고, 실제 동작은 서브클래스에서 처리합니다.
- 예: 동일한 계산을 수행하는 여러 알고리즘이 있는 경우, 서브클래스에서 구체적인 알고리즘을 제공하고, 부모 클래스는 인터페이스를 통해 호출.
5. 상태 패턴 (State Pattern)
- 객체의 상태에 따라 서브클래스가 서로 다른 동작을 수행하는 패턴입니다. 상태가 변할 때 객체의 행동도 달라지도록 서브클래스가 상태에 따른 행동을 구현합니다.
- 예: 문서의 상태가 '작성 중', '검토 중', '완료'일 때 각 상태에 따라 다른 동작을 하도록 구현.
6. 데코레이터 패턴 (Decorator Pattern)
- 서브클래스를 사용하여 객체에 기능을 동적으로 추가하는 패턴입니다. 기본 기능을 제공하는 객체에 다양한 데코레이터 서브클래스를 만들어 추가적인 기능을 계층적으로 붙여나가는 방식입니다.
- 예: 커피를 주문할 때 기본 커피에 우유, 설탕 등의 옵션을 추가하는 방식으로 서브클래스를 사용해 확장.
7. 브리지 패턴 (Bridge Pattern)
- 구현부와 추상부를 분리하여 독립적으로 변형이 가능하도록 하는 패턴입니다. 서브클래스를 통해 서로 다른 구현체를 연결하여 확장이 가능합니다.
- 예: UI 컴포넌트를 다루는 추상 클래스와 이를 실제로 그리는 구현 클래스가 서로 분리되어, 여러 그래픽 라이브러리에 적용할 수 있습니다.
8. 컴포지트 패턴 (Composite Pattern)
- 객체를 트리 구조로 구성하고, 서브클래스에서 단일 객체와 복합 객체를 동일하게 처리할 수 있도록 하는 패턴입니다. 이를 통해 클라이언트는 개별 객체와 복합 객체를 동일하게 다룰 수 있습니다.
- 예: 파일 시스템에서 폴더와 파일을 동일한 인터페이스로 다룰 수 있게 처리.
9. 빌더 패턴 (Builder Pattern)
- 복잡한 객체를 서브클래스를 사용하여 단계적으로 생성하는 패턴입니다. 빌더 클래스를 서브클래스로 확장하여 객체의 구성을 다르게 만들 수 있습니다.
- 예: 복잡한 객체를 만드는 과정에서 중간 단계의 구성 요소들을 서브클래스를 통해 유연하게 변경 가능.
3. IPsec 구성요소
IPsec은 네트워크 계층에서 보안 프로토콜을 제공합니다. 구성 요소는 다음과 같습니다:
- AH (Authentication Header): 데이터 무결성과 출처 인증을 제공
- ESP (Encapsulating Security Payload): 데이터 암호화, 무결성, 인증을 제공
- IKE (Internet Key Exchange): 안전한 통신을 위한 키 관리 및 협상 프로토콜
4. VLAN (Virtual LAN)
- VLAN은 물리적으로 같은 네트워크 내의 장비를 논리적으로 구분하여 다른 네트워크처럼 사용할 수 있게 합니다. 이는 네트워크 트래픽의 분리와 보안 강화를 위해 주로 사용되며, 네트워크 효율성을 높입니다.
5. NAT (Network Address Translation)
- NAT는 사설 IP 주소를 사용하는 내부 네트워크와 외부 공용 네트워크 간의 IP 주소 변환을 수행하여, 내부 네트워크의 보안을 강화하고 IP 주소 공간을 효율적으로 사용하도록 합니다.
6. CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance)
- CSMA/CA는 무선 네트워크에서 충돌을 방지하기 위한 프로토콜입니다. 전송하기 전에 채널이 사용 중인지 감지하고, 만약 사용 중이라면 충돌을 방지하기 위해 대기합니다. 주로 Wi-Fi(802.11) 네트워크에서 사용됩니다.
7. 물리계층 - 브릿지, 스위치
- 브릿지는 두 개 이상의 네트워크 세그먼트를 연결하고, 각 세그먼트 사이의 트래픽을 필터링합니다. 주로 MAC 주소를 기반으로 동작합니다.
- 스위치는 데이터를 각 장치의 MAC 주소에 기반하여 전달하는 장치로, LAN에서 데이터의 전송을 효율적으로 처리합니다. 스위치는 각 포트에 대한 개별적인 네트워크 세그먼트를 제공하여 충돌 도메인을 분리하고 네트워크 성능을 향상시킵니다.
'전산 관련 시험 > 전산학(컴퓨터일반) 개념정리' 카테고리의 다른 글
[자료구조] AVL 트리 개념 및 특성, (9-3-2-4-6-7) 삽입 (2) | 2024.10.16 |
---|---|
[소프트웨어 공학] Dependency Inversion Principle (0) | 2024.09.10 |
[네트워크] CSMA 프로토콜 (0) | 2024.09.10 |
[자료구조] 해싱 VS 이중해싱 (0) | 2024.09.10 |
[네트워크] 스패닝 트리 프로토콜(Spanning Tree Protocol, STP) (0) | 2024.09.10 |
댓글