728x90 반응형 목차훔치기204 노출모듈 패턴(면접을 위한 CS 전공지식 노트) 노출모듈 패턴 노출모듈 패턴 노출모듈 패턴(Exposure Module Pattern)은 소프트웨어 디자인 패턴의 하나로, 복잡한 시스템이나 애플리케이션에서 모듈 간의 의존성을 최소화하고 모듈들 사이의 상호작용을 단순화하기 위한 패턴입니다. 이 패턴은 대규모 프로젝트나 복잡한 소프트웨어 아키텍처에서 특히 유용하며, 모듈화를 통해 유지보수성을 개선하고 개발 과정을 더욱 용이하게 만드는데 목적이 있습니다. 노출모듈 패턴의 핵심 아이디어 모듈 간의 의존성 최소화: 노출모듈 패턴은 시스템의 모듈들을 각각의 역할과 책임에 따라 분리합니다. 이때, 각 모듈은 외부 모듈들과 최소한의 의존성만을 가지며, 필요한 정보나 기능을 노출(공개)합니다. 이렇게 하면 모듈 간의 결합도를 낮출 수 있어, 한 모듈의 변경이 다른 모.. 2023. 8. 13. 이터레이터 패턴(면접을 위한 CS 전공지식 노트) 이터레이터 패턴 이터레이터 패턴 이터레이터 패턴은 소프트웨어 디자인 패턴 중 하나로, 컬렉션(데이터의 집합)을 반복(iterate)하면서 내부 구조를 노출하지 않고 순차적으로 접근할 수 있는 방법을 제공하는 패턴입니다. 이터레이터 패턴은 객체 지향 프로그래밍에서 많이 사용되며, 컬렉션의 내부 구조가 변경되더라도 이터레이터 인터페이스를 수정하지 않고도 반복 동작을 유지할 수 있도록 도와줍니다. 이터레이터 패턴 주요 컴포넌트 Iterator (이터레이터): 컬렉션 내의 항목들을 반복하는 인터페이스를 정의합니다. 주로 next() 메서드와 현재 위치나 종료 여부를 판단하는 hasNext() 메서드를 포함합니다. Concrete Iterator (구체적인 이터레이터): Iterator 인터페이스를 구체화하여 실.. 2023. 8. 12. 프록시 패턴과 프록시 서버(면접을 위한 CS 전공지식 노트) 프록시 패턴과 프록시 서버 프록시 패턴 프록시 패턴은 소프트웨어 디자인 패턴의 하나로, 다른 객체에 대한 대리자나 대변 역할을 하는 객체를 제공하는 패턴입니다. 이 패턴은 다른 객체에 접근할 때 추가적인 제어를 가능하게 해 주거나, 객체의 생성 및 초기화를 지연시키는 등의 목적으로 사용될 수 있습니다. 프록시 서버 프록시 서버는 네트워크 환경에서 중계 역할을 수행하는 서버입니다. 클라이언트가 웹 페이지나 다른 리소스에 접근하려고 할 때, 이러한 요청을 프록시 서버를 통해 보내게 되면 프록시 서버가 대신 해당 요청을 처리하거나 중계합니다. 이를 통해 몇 가지 장점을 얻을 수 있습니다. 프록시란? 프록시는 어떤 것을 대신하여 처리하거나 중계하는 역할을 하는 중개자나 대리자를 가리키는 개념입니다. 컴퓨터 과학.. 2023. 8. 11. 옵저버 패턴(면접을 위한 CS 전공지식 노트) 옵저버 패턴 옵저버 패턴 옵저버 패턴은 소프트웨어 디자인 패턴 중 하나로, 객체의 상태 변화를 관찰하고 이에 따른 동작을 행하는 구조를 정의하는 패턴입니다. 이 패턴은 주로 객체 간의 의존성을 줄이고, 느슨한 결합(Loose Coupling)을 이루며, 객체 간의 상호작용을 효과적으로 관리하고 확장하기 위해 사용됩니다. 옵저버 패턴 구성요소 Subject (주체) 또는 Observable (관찰 대상): 상태 변화를 관찰하고자 하는 객체입니다. 이 객체는 옵저버들의 목록을 유지하며, 상태가 변경될 때마다 등록된 옵저버들에게 알림을 보냅니다. Observer (관찰자): 주체(Subject)의 상태 변화를 관찰하고 이에 따른 특정 동작을 수행하는 객체입니다. 옵저버들은 주체에 등록되어야 하며, 주체가 상태.. 2023. 8. 10. 전략 패턴(면접을 위한 CS 전공지식 노트) 전략 패턴 전략 패턴 전략 패턴은 소프트웨어 디자인 패턴의 하나로, 객체 지향 프로그래밍에서 자주 사용되는 개념입니다. 이 패턴은 다양한 상황에서 유용하게 적용할 수 있는 알고리즘 또는 동작 방식을 캡슐화하고, 이를 객체로 만들어 상황에 맞게 교체하거나 조합할 수 있는 유연성을 제공합니다. 이를 통해 시스템의 유지 보수성과 확장성을 향상할 수 있습니다. 전략 패턴 구성 요소 전략(Strategy): 알고리즘을 추상화한 인터페이스나 추상 클래스입니다. 여러 다른 알고리즘들이 구체적으로 구현되어 이 인터페이스를 따르게 됩니다. 구체적인 전략(Concrete Strategies): 실제 알고리즘 구현체로, 전략 인터페이스를 구현하여 특정한 동작을 수행하는 클래스들입니다. 전략 컨텍스트(Context): 전략 .. 2023. 8. 9. 팩토리 패턴(면접을 위한 CS 전공지식 노트) 팩토리 패턴 팩토리 패턴 팩토리 패턴(Factory Pattern)은 소프트웨어 디자인 패턴 중 하나로, 객체 생성을 처리하기 위한 패턴입니다. 객체 생성 코드를 클라이언트 코드에서 분리하여 객체 생성의 유연성과 확장성을 높이는데 목적이 있습니다. 이 패턴은 객체 생성과정을 추상화하여 객체의 유형에 따라 적절한 클래스의 인스턴스를 생성하도록 도와줍니다. 객체 생성의 복잡성: 객체 생성이 복잡하거나 생성 과정이 다양한 단계로 이루어져 있는 경우, 팩토리 패턴을 사용하여 클라이언트 코드를 단순화할 수 있습니다. 객체 생성의 변화: 객체 생성 방식이 변경될 수 있는 경우, 클라이언트 코드를 수정하지 않고도 변경된 생성 방식을 적용할 수 있습니다. 클래스 인스턴스화의 추상화: 생성되는 클래스의 인스턴스화를 추상.. 2023. 8. 8. 싱글톤 패턴(면접을 위한 CS 전공지식 노트) 싱글톤 패턴 싱글톤 패턴 싱글톤 패턴은 소프트웨어 디자인 패턴 중 하나로, 클래스의 인스턴스가 단 하나만 생성되도록 보장하는 패턴입니다. 이 패턴은 어떤 클래스가 항상 하나의 인스턴스만을 갖도록 하며, 그 인스턴스에 접근하는 전역적인 접근점을 제공합니다. 주로 리소스를 공유하거나 중복된 작업을 피하고자 할 때 사용됩니다. 싱글톤 패턴 특징 단일 인스턴스: 싱글톤 패턴은 클래스의 인스턴스가 오직 하나만 생성되도록 보장합니다. 어떤 이유로든 인스턴스가 여러 개 생성되지 않습니다. 전역적인 접근 포인트: 싱글톤 패턴을 사용하면 해당 클래스의 인스턴스에 접근하는 전역적인 접근 지점을 제공합니다. 이로써 어디서든 동일한 인스턴스에 접근하여 사용할 수 있습니다. 지연 초기화: 인스턴스가 필요한 시점에 생성됩니다. .. 2023. 8. 7. OSI참조 모델과 요약(하루 3분 네트워크 교실) OSI참조 모델과 요약 OSI참조 모델과 요약 OSI(Open Systems Interconnection) 참조 모델은 네트워크에서 데이터 통신을 위한 표준화된 프로토콜 아키텍처로, 7개의 계층으로 구성되어 있습니다. 각 계층은 특정 기능을 담당하며, 상위 계층과 하위 계층 간에는 서비스를 제공하고 받는 관계가 있습니다. 이 모델은 각 계층이 독립적으로 작동하여 네트워크 장비와 서비스의 호환성을 증가시키고, 개방적인 시스템 간 상호운용성을 강화하는 데 목적이 있습니다. 물리 계층 (Physical Layer): 물리적으로 연결된 노드 간의 데이터 전송을 담당합니다. 전기 신호, 광 신호 등을 전송하여 데이터를 비트 단위로 전송합니다. 데이터 링크 계층 (Data Link Layer): 노드 간의 직접 통.. 2023. 7. 31. 5계층 ~ 7계층 (하루 3분 네트워크 교실) 5계층 ~ 7계층 5계층 ~ 7계층 (5계층) 세션 계층 (Session Layer): 세션 계층은 양 끝단의 애플리케이션 사이의 세션을 확립하고 유지합니다. 데이터 교환의 순서와 동기화를 담당하여 통신 세션을 설정하고 종료하는 역할을 합니다. (6계층) 표현 계층 (Presentation Layer): 표현 계층은 데이터의 표현 방식을 정의하고 변환합니다. 데이터를 압축, 암호화, 인코딩하거나 포맷을 변경하여 상위 계층이 이해할 수 있는 형태로 변환하는 작업을 수행합니다. (7계층) 응용 계층 (Application Layer): 응용 계층은 사용자가 네트워크에 접근할 수 있도록 서비스를 제공합니다. HTTP, FTP, SMTP 등과 같은 프로토콜이 이 계층에서 동작하며, 이메일, 웹 브라우저, 파일 .. 2023. 7. 30. 이전 1 ··· 15 16 17 18 19 20 21 ··· 23 다음 728x90 반응형