TIL220724 [CS]

강지훈·2022년 7월 23일
0

디자인 패턴
:디자인 패턴이란 프로그램들을 설계할 때 발생했던 문제점들을 객체 간의 상호 관계 등을 이용하여 해결 할 수 있도록 하나의 '규약'형태로 만들어 놓은 것을 의미합니다.

라이브러리
:공통으로 사용될 수 있는 특정한 기능들을 모듈화한것을 의미한다. 폴더명, 파일명 등에 대한 규칙이 없고 프레임워크에 비해 자유롭다. 예를 들어 무언가를 자를 때 '도구'인 '가위'를 사용해서 '내가' 직접 컨트롤하여 자르는데, 라이브러리는 이와 비슷하다.

프레임워크
:공통으로 사용될 수 있는 특정한 기능들을 모듈화한 것을 의미한다. 폴더명, 파일명 등에 대한 규칙이 있으며 라이브러리에 비해 좀 더 엄격하다. 다른 곳으로 이동할 때 '도구'인 비행기를 타고 이동하지만 '비행기'가 컨트롤하고 나는 가만히 앉아 있어야 한다. 프레임워크는 이와 비슷하다.

싱글톤 패턴
:하나의 클래스에 오직 하나의 인스턴스만 가지는 패턴

장점: 하나의 인스턴스를 기반으로 해당 인스턴스를 다른 모듈들이 공유하여 사용하기 대문에 인스턴스를 생성할 때 드는 비용이 줄어듭니다. 그렇기 때문에 인스턴스생성에 많은 비용이 드는 데이터베이스 연결 모듈 등 I/O 바운드 적인 작업에 많이 사용합니다.

단점: 의존성이 높아지며 TDD (Test Driven Developmet)를 할 떄 걸림돌이 됩니다.
TDD를 할 때 단위 테스트를 주로하는데, 단위 테스트는 테스트가 서로 독립적이어야하며 테스트를 어떤 순서로든 실행할 수 있어야합니다.
하지만 싱글톤 패턴은 미리 생성된 하나의 인스턴스를 기반으로 구현하는 패턴이므로 각 테스트마다 '독립적인'인스턴스를 만들기가 어렵습니다.

profile
never stop

0개의 댓글