본문 바로가기
Dependency Injection Container & Swinject Dependency Injection Container = DI Container = Dependency Container = IoC Container DI Container란? 의존성 주입을 해줄때는 밖에서 인스턴스를 만들어서 주입하므로 앱의 여러군데에서 주입이 일어난다. => 인스턴스를 만드는 위치가 "분산" 되어있다. Container는 모든 인스턴스를 다 가지고 있어 모두 관리 Container에 앞으로 내가 사용할 모든 인스턴스를 다 만들어서 등록(register) 및 관리 필요한 시점에 Container에게 특정타입의 인스턴스를 달라고 하면 Container가 꺼내준다(resolve) Swinject // example 1 // Service : Animal // Component 1 : Ca.. 2022. 3. 14.
Dependency Injection, 의존성 주입 Dependency, 의존성 위에 그럼 처럼 B 클래스(상위계층)에서 A 클래스(히위계층) 를 내부에 변수로 사용한다 B 클래스(상위계층)는 A 클래스(하위계층)에 의존관계가 생기게 됩니다. => 상위계층은 하위계층에 의존하게 된다 객체가 의존성을 스스로 생성 Dependency Injection, 주입 내부가 아니라 외부에서 객체를 생성해서 넣어주는 것 객체가 의존성을 스스로 생성하고 관리하지 않는다 우리가 객체에 의존성을 주입시킴으로써 의존 관계 역전 법칙으로 의존 관계를 분리 IoC, Inversion of Control, 의존 관계 역전 예를 들어 A 객체에서 B 객체가 필요하다고 할 때(A는 B에 의존), A 클래스에는 B인스턴스를 직접 생성하여 사용할 수 있다 문제는 B의 구현체가 변경되었을 .. 2022. 3. 11.
SOLID 원칙 SOLID 원칙 로버트.C마틴이 "객체 설계"를 할 때 중요하게 생각하는 것으로 제시한 다섯 가지 원칙 장점 1. 모듈화를 통해 재상용성이 높은 코드를 만들고 생산성을 높일 수 있다 2. 테스트 가능한 코드를 만들고 관리할수있어, 테스트 코드의 장점을 취할수 있다. TDD : https://yongminlee26.tistory.com/348?category=569784 3. 변경에 유연하며 확장성이 높은 코드를 만들수 있다. 4. 유지보수의 리소스가 줄어든다. 종류 1. SRP (Single-Responsibility Principle), 단일 책임 원칙 2. OCP (Open-Close Principle), 개방 폐쇄 원칙 3. LSP (Liskov Substitution Principle), 리스코프.. 2021. 12. 23.
Repository 패턴 Repository 패턴이란 - 데이터 출처(로컬 DB인지 API응답인지 등)와 관계 없이 동일 인터페이스로 데이터에 접속할 수 있도록 만드는 것 - viewModel은 내가 원하는 데이터가 로컬껀지 서버껀지 알 필요없이 그냥 repository에게 요청 - viewModel 밑에 Repository라는 layer를 하나 더 두어서 viewModel은 오직 비즈니스로직만 집중 - 데이터를 로컬과 서버 중 어디서 가져올지, 또 어떻게 가공할지는 Repostitory가 한다 - viewModel들간 Repository를 공유해서 데이터 일관성을 유지한다. 참고 https://eunjin3786.tistory.com/198 2021. 12. 8.
Singleton Pattern Singleton? - 싱글톤 객체는 응용 프로그램이 몇번 요청하는지에 관계없이 동일한 인스턴스를 반환 - 싱글톤패턴은 특정용도의 객체를 단 하나의 인스턴스만을 정적으로 생성하여 공용으로 사용하고자할때 사용 -> 주로 환경설정, 로그인 정보 등을 특정용도로 생성해둔 객체에 넣어두고 여러 객체에서 접근 가능하도록 하여 데이터를 사용 - 싱글톤 객체의 인스터스는 메모리에서 해제해주지 않는 이상 프로그램이 끝날 때 까지 메모리에 유지 Singleton in iOS example class MySingleton { static let shared = MySingleton() // ... } // singleton classes let screen = UIScreen.shared let application = .. 2021. 2. 17.
OOP 요약 https://www.youtube.com/watch?v=elhtjfDeFeU 1. OOP 개념 2. 추상화 3. 캡슐화 4. 상속 5. 다형성 6. 동적바인딩 1. Object-Oriented Programming 개념 - 객체 지향 프로그래밍은 컴퓨터 프로그래밍의 패러다임 중 하나로 기존의 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. - class, 클래스 : 같은 종류의 집단에 속하는 속성(attribute)과 행위(behavior)를 정의한 것. - object, 객체 : 클래스의 인스턴스(실제로 메모리상에 할당된 것). - OOP 장점 a) 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이 b) 코드 재.. 2020. 7. 26.