인터페이스
·
💻 CS/용어
인터페이스 서로 다른 소프트웨어 구성 요소가 서로 상호 작용하는 방법을 지정하는 계약 또는 규칙 집합을 정의하기 위해 컴퓨터 과학 및 프로그래밍에서 사용되는 개념 인터페이스는 두 개 이상의 시스템 간에 경계 또는 브리지 역할을 하여 표준화된 방식으로 통신하고 정보를 교환할 수 있습니다. 프로그래밍에서 인터페이스는 일반적으로 구현 클래스 또는 모듈이 지원해야 하는 작업 또는 동작을 정의하는 메서드 또는 함수 모음으로 구성됩니다. 이러한 방법은 서로 다른 구성 요소가 서로 상호 작용하는 방법에 대한 청사진 역할을 합니다. 인터페이스는 소프트웨어 개발에서 추상화 및 모듈성을 달성하는 방법을 제공합니다. 이를 통해 개발자는 구성 요소의 구현 세부 사항을 다른 구성 요소와의 사용 또는 상호 작용에서 분리할 수 있..
Swinject를 사용한 iOS 의존성 주입
·
🍎 iOS/Swift
배경 Inversion Of Control (제어의 역전) 개발자가 작성한 객체나 메서드의 제어를 개발자가 아니라 외부에 위임하는 설계 원칙 객체 지향 프로그래밍에서는 코드에서 의존성을 제거해야한다. 의존성 주입 하나의 객체가 다른 객체에게 의존성을 제공하는 기술 의존성 주입은 IOC를 달성하는 방법 중 하나다. 이것의 이면에 있는 아이디어는 별도의 개체가 필요한 의존성을 생성하고 클라이언트에 전달하도록 하는 것이다. 이점 1. 테스트 하기 편하다. 2. 의존성 역전 원칙(DIP)를 지킬 수 있다. DI Container 객체를 인스턴스화하고 구성하는 방법을 알고있는 객체 DI Container는 의존성 주입을 구현하기 위한 디자인 패턴이다. 복잡한 의존성을 해결하기 위해 사용한다. Swinject Sw..
[Swift] 순열과 조합 간단히 구하기
·
📝 코테/꿀팁
import Foundation let arr = [1, 2, 3] let n = 3 // O(n!) func perm(_ current: [Int]) { if current.count > n { return } arr.forEach { perm(current + [$0]) } if current.count < n { return } print(current) } perm([]) // O(2^n) func comb(_ current: [Int], _ idx: Int) { guard current.count < n else { print(current) return } for i in idx..
JerryiOS
Jerry