왜 디자인 패턴?
Source: Dev.to
디자인 패턴은 코드를 무작위로, “모두에게 맞는 하나의 해결책”처럼 적용하기 위한 해킹식 지름길이 되도록 고안된 것이 아니라는 점을 이해하는 것이 중요합니다. 소프트웨어 엔지니어링에서는 궁극적으로 진정한 문제 해결 능력을 대체할 수 있는 것은 없습니다.
그럼에도 불구하고, 디자인 패턴은 올바른 상황과 올바른 이유로 사용될 때 매우 유용할 수 있습니다. 전략적으로 활용하면, 이미 다른 사람에 의해 다듬어진 방법을 사용함으로써 프로그래머가 비유적인 “바퀴를 다시 만들” 필요 없이 효율성을 크게 높일 수 있습니다. 또한, 반복되는 문제와 해결책을 개념화할 때 공통된 언어를 제공하여 다른 사람과 논의하거나 대규모 팀에서 코드를 관리할 때 도움이 됩니다.
하지만 중요한 전제 조건은 각 패턴 뒤에 있는 방법과 이유를 개발자가 충분히 이해하고 있어야 한다는 점입니다.
가장 중요한 디자인 패턴
Singleton
클래스의 객체를 생성하는 것은 아주 간단하지만, 어떻게 하면 오직 하나의 객체만 생성되도록 보장할 수 있을까요? 답은 해당 클래스를 싱글톤으로 정의하기 위해 생성자를 private 로 만드는 것입니다. 이렇게 하면 클래스 내부 멤버만이 private 생성자에 접근할 수 있고, 외부에서는 접근할 수 없습니다.
중요한 고려 사항: 생성자를 private 대신 protected 로 만들면 싱글톤을 서브클래스화할 수 있습니다. 이는 특정 상황에서 적합할 수 있습니다. 이러한 경우에 취할 수 있는 한 가지 접근 방식은 서브클래스들의 싱글톤 레지스트리를 만들고, getInstance 메서드가 매개변수를 받거나 환경 변수를 사용해 원하는 싱글톤을 반환하도록 하는 것입니다. 레지스트리는 문자열 이름과 싱글톤 객체 사이의 매핑을 유지하며, 필요에 따라 접근할 수 있습니다.