능히 해낼 수 있다
230316 CS지식 습득을 위한 메모: 싱글톤 패턴 편 본문
반응형
✍️✍️✍️ 위 글은 면접을 위한 CS 전공지식 노트를 읽고 학습한 내용으로 구성되었으며,
작성자의 지식습득에 따라 추후 퇴고 될 수 있음을 알려드립니다(피드백 환영).
Singleton Pattern은 하나의 Class에 오직 하나의 Instance만 가지고 패턴이다. 하나의 Class를 기반으로 여러개 개별적인 Instance를 만들 수 있으나, 싱글톤 패턴은 하나 대 하나로 로직을 만들 때 사용하며 보통 DB연결 모듈에 많이 사용한다.
장점 | 단점 |
하나의 Instance를 기반으로 해당 Instance를 타 모듈이 공유. 때문에 Instance생성비용이 줆 | 높은 의존성 |
I/O(Input/Output) Bound 작업에 사용됨(인스턴스 생성에 많은 비용이 드는 작업) | TDD(Test Driven Development)시, 단위테스트의 어려움 발생: 어떤 순서로든 실행 가능하도록 독립적이여야하지만 유기적으로 연결되어있는 Singleton Pattern특징 상, 어려움이 있음 |
의존성 주입
종속성이라고도 하며 A와 B가 연결 되어 있을 때, A가변하면 B도 변하고, B가변하면 A도 변한다는 것을 말한다.
주입 전은 직접 하위로 전달을 한다. 클래스 수는 적고, 런타임 시간은 짧아지는 장점이 있지만, 마이그레이션이 어렵고 직접전달로 인해 모듈교체가 어려울 수 있다.
때문에 메인 모듈을 의존성 주입자를 통해 간접적으로 하위로 전달하게되면 테스팅이 쉽고, 의존성 방향과 모듈간의 관계가 명확해지며 어플리케이션을 쉽게 추론이 가능하다.
위 의존성 주입에는 원칙이 있는데,
1. 상위 모듈은 하위 모듈에서 어떠한 것도 가져오지 않을 것.
2. 둘 다 추상화에 의존해야 하며, 이때 추상화는 세부 사항에 의존하지 말아야 한다.
반응형
'개발🌐 > CS지식' 카테고리의 다른 글
230320 CS지식 습득을 위한 메모: 네트워크의 기초 편 (0) | 2023.03.20 |
---|---|
230317 CS지식습득을 위한 메모: 팩토리 패턴 편 (0) | 2023.03.17 |
230130 컴퓨터지식: 프레임워크와 라이브러리 차이 (0) | 2023.01.30 |
230127 네트워크: 컴퓨터의 이해 소프트웨어공학 배경지식 편 (0) | 2023.01.27 |
230125 개발지식: JSON 편 (0) | 2023.01.25 |