본문 바로가기
반응형

개발/기본16

Module 소프트웨어에서 "모듈"이라는 용어는 일반적으로 작고, 독립적이며, 교체 가능한 소프트웨어 구성 요소를 지칭합니다. 이 개념은 소프트웨어 설계와 프로그래밍에서 매우 중요합니다. 다음은 모듈에 대한 주요 특징들입니다: 독립성 모듈은 일반적으로 특정 기능이나 관심사를 담당합니다. 이들은 독립적으로 작동하며, 다른 모듈들과 최소한의 상호 작용을 합니다. 재사용성 모듈은 재사용 가능하도록 설계되어 있습니다. 즉, 다양한 프로그램이나 프로젝트에서 동일한 모듈을 사용할 수 있습니다. 유지 보수성 모듈화는 소프트웨어의 유지 보수를 용이하게 합니다. 특정 모듈에서 발생한 문제는 해당 모듈 내에서 해결할 수 있으며, 전체 시스템에 영향을 미치지 않습니다. 캡슐화 모듈은 내부 구현을 숨기고, 필요한 기능만을 외부에 노출합니.. 2023. 12. 17.
공간복잡도 프로그래밍에서 공간 복잡도(Space Complexity)는 알고리즘이 실행될 때 필요한 메모리 공간의 양을 나타내는 척도입니다. 이는 프로그램이 실행되면서 필요한 총 저장 공간을 의미하며, 일반적으로 입력 크기에 대한 함수로 표현됩니다. 공간 복잡도를 이해하기 위해 몇 가지 주요 개념을 살펴보겠습니다: 고정 공간(Fixed Space) 이는 알고리즘의 입력 크기나 문제의 크기와 무관하게 고정된 양의 공간을 차지합니다. 예를 들어, 데이터 타입, 변수, 상수 등이 여기에 해당합니다. 가변 공간(Variable Space) 이는 문제의 크기나 입력의 크기에 따라 변하는 메모리 공간입니다. 예를 들어, 동적 할당, 재귀 스택 공간, 배열의 크기 등이 여기에 포함됩니다. 공간 복잡도는 다음과 같이 계산됩니다:.. 2023. 12. 13.
시간복잡도 시간 복잡도(Time Complexity)는 프로그래밍에서 알고리즘의 효율성을 측정하는 방법 중 하나입니다. 구체적으로, 시간 복잡도는 어떤 알고리즘이 문제를 해결하는 데 얼마나 많은 시간이 소요되는지를 나타내는 지표입니다. 이는 일반적으로 알고리즘에 입력되는 데이터의 크기에 따라 어떻게 변화하는지를 나타냅니다. 시간 복잡도를 이해하기 위해서는 다음의 개념들을 알아야 합니다: 빅 오 표기법 (Big O Notation) 가장 널리 사용되는 시간 복잡도 표현 방법으로, 최악의 경우를 나타냅니다. 예를 들어, O(n)은 알고리즘이 입력 데이터의 크기(n)에 비례하여 실행 시간이 증가한다는 것을 의미합니다. 상수 시간 (Constant Time) - O(1) 입력 데이터의 크기와 상관없이 알고리즘의 실행 시간.. 2023. 12. 13.
[Network] Socket 소켓(Socket)은 네트워크를 통해 데이터를 교환하기 위한 엔드포인트(EndPoint)를 제공하는 메커니즘입니다. 소켓은 네트워크에서 통신을 가능하게 하는 기본적인 수단으로, 네트워크 프로그래밍에서 중요한 역할을 합니다. 소켓의 기본 개념 엔드포인트 소켓은 네트워크 상의 두 프로그램 간의 통신 엔드포인트로 작동합니다. 각 소켓은 IP 주소와 포트 번호의 조합으로 식별됩니다. TCP/UDP 소켓 소켓은 주로 TCP(Transmission Control Protocol) 또는 UDP(User Datagram Protocol) 위에서 작동합니다. TCP 소켓은 연결 지향적이고 신뢰성 있는 통신을 제공하는 반면, UDP 소켓은 비연결성이고 신뢰성이 떨어지지만 더 빠른 통신을 제공합니다. 서버 소켓과 클라이언트.. 2023. 12. 12.
반응형