[Swift] 지연 저장 프로퍼티(Lazy Stored Properties)
·
Apple/Swift
지연 저장 프로퍼티(Lazy Stored Properties) Swift에서 인스턴스를 생성할 때 프로퍼티에 값이 필요 없다면 프로퍼티를 옵셔널로 선언해줄 수 있습니다. 그런데 그것과는 조금 다른 용도로 필요할 때 값이 할당되는 지연 저장 프로퍼티(Lazy Stored Properties)가 있습니다. 또한 지연 저장 프로퍼티는 호출이 있어야 값을 초기화를 하게 되고 lazy라는 키워드를 써서 사용합니다. 지연 저장 프로퍼티는 초기 값이 필요할 때 계산되지 않고, 처음으로 접근될 때만 계산이 됩니다. 지연 저장 프로퍼티는 주로 복잡한 클래스나 구조체를 구현할 때 많이 사용합니다. 지연 저장 프로퍼티를 사용한다면 리소스를 절약하고 성능을 향상시킬 수 있다는 장점이 있습니다. 지연 저장 프로퍼티를 사용하는 ..
[네트워크] 데이터 링크 계층과 주요 기능
·
CS/네트워크
데이터 링크 계층 Data Link Layer OSI 참조 모델 7계층 중 제 2계층 물리적으로 연결된 이웃 간 전송 데이터의 신뢰성을 제공 전송하는 데이터는 프레임이라는 논리적인 단위로 구성 프레임에는 주소, 길이, 오류 검출 등의 다양한 제어 정보가 포함 주요 기능 노드 대 노드 통신 전송 제어 흐름 제어 오류 제어 동기화 노드 대 노드 통신 이웃 노드 간의 데이터 링크를 설정 데이터 앞에 헤더, 뒤에는 트레일러를 추가 헤더와 트레일러에는 발신지 주소와 목적지 주소 등 정보가 들어 있음 수신 측의 데이터 링크 계층에서는 이 헤더와 트레일러를 삭제 후 수신 측의 상위 계층(네트워크 계층)으로 전달 전송 제어 데이터 전송의 신뢰성을 보장하기 위한 일련의 절차를 제어 장점 문자나 비트에 관계없이 전송 가능..
[네트워크] OSI 7계층 프로토콜과 물리계층
·
CS/네트워크
OSI 7계층 프로토콜 계층 구조 7개의 계층으로 정의 각 계층 간에는 동일한 프로토콜을 사용 각 계층 간 데이터 전달 최상위 계층(7계층)에서 발생한 데이터를 하위 계층으로 차례로 전달 처음의 데이터에 각 계층에서 전달받은 헤더 정보를 추가하여 전달 수신부에서는 각 계층의 헤더에 해당되는 부분을 벗긴 후 상위 계층으로 전달 물리 계층 Physical Layer OSI 참조 모델 7계층 중 최하위 계층인 첫 번째 계층 즉, 제 1계층 LAN 카드, 케이블, 허브, 라우터 등 물리적인 것과 데이터 전송에 사용하는 전압등의 전기적인 특성을 다루는 영역 데이터 단위 : bit 물리적 연결에서 비트 단위의 데이터 전송을 위해 신호의 부호화, 전송 방식 등을 결정 송신 측은 상위 계층(2계층)에서 0과 1로 구성..
[디자인 패턴] 팩토리 패턴과 전략 패턴의 개념과 예제 소스
·
CS/디자인 패턴
팩토리 패턴(factory pattern) 팩토리 패턴(Factory Pattern)은 객체 생성을 담당하는 디자인 패턴 중 하나입니다. 이 패턴은 객체를 생성하기 위한 인터페이스를 정의하고, 이 인터페이스를 통해 구체적인 객체의 생성을 서브클래스에게 위임하는 방식으로 동작합니다. 일반적으로, 클라이언트 코드에서는 어떤 클래스의 인스턴스를 직접 생성하는 대신에 추상화된 인터페이스를 통해 객체를 요청합니다. 이 추상화된 인터페이스는 팩토리 메서드로 정의되어 있습니다. 실제로 객체를 생성하는 작업은 구체적인 팩토리 클래스에서 수행됩니다. 각각의 구체적인 팩토리 클래스는 추상화된 인터페이스를 상속받거나 해당 인터페이스를 구현하여 실제 객체의 생성을 담당합니다. 팩토리 메서드 내부에서는 적절한 구체적인 제조자(..
[네트워크] 통신 프로토콜의 구조와 기능
·
CS/네트워크
통신 프로토콜의 구조 프로토콜의 계층화 미래의 변화에 유연하게 대처 통신을 제어하는 기능을 여러 계층에 분리 각 층마다 독립적으로 프로토콜 적용 모델화를 위한 4가지 기본 요소 모델화를 위한 4가지의 기본 요소에는 응용 객체와 개방형 시스템, 물리 매체, 접속 또는 연결이 존재합니다. 각 요소를 좀 더 자세하게 알아보도록 하겠습니다. 먼저 응용 객체입니다. 응용 객체는 상호 간의 정보를 교환하는 주체로, 응용 프로그램, 단말 장치의 운영자 등이 이에 해당합니다. 개방형 시스템은 응용 프로세서 간에 통신이 가능하도록 통신 기능을 제공합니다. 호스트 컴퓨터, 단말 장치, 통신 제어 장치, 단말 제어 장치 등이 이에 해당되게 됩니다. 물리 매체는 정보와 신호를 교환해주는 전기적 매체로 통신회선과 채널 등이 해..
[Swift] 함수에 대한 개념과 다양한 예시 소스
·
Apple/Swift
이번 시간에는 Swift에서 함수에 대해서 간단히 알아보고 함수를 어떻게 사용하는지와 예시를 통해서 살펴보도록 하겠습니다. 함수란? 먼저 함수를 사용하려면 함수에 대해서 알아야겠죠? 프로그래밍을 배우신 분이라면 잘 알고 계실 겁니다. 다른 언어와 마찬가지로 Swift에서의 함수도 크게 다른 부분은 없습니다. Swift에서 함수는 특정 작업을 수행하는 코드 블록으로 실행시 데이터를 제공해야 하거나, 함수를 호출한 코드에 작업한 결과를 반환할 수도 있습니다. 함수를 제대로 이해하려면 parameter(매개변수)와 argument(인수)의 차이점에 대해서 알아야 합니다. 쉽게 정리해보자면 함수 정의부의 값을 매개변수, 호출시의 값은 아규먼트라고 부릅니다. func fun(param: Int) { print(p..