CS 공부/면접 준비

기타 (비즈니스 로직, 디자인 패턴, etc)

Ju Young Pang 2023. 3. 7. 10:20

문제 모음

더보기
  1. 애자일 방법론이란?
  2. 워터폴 방법론이란?
  3. 싱글톤 패턴이란?
  4. 팩토리 패턴이란?
  5. 옵저버 패턴이란?

해답

Q) 애자일 방법론이란?

더보기

개발 생명 주기의 모든 단계를 엄격하게 계획하고 진행합니다.
각 단계가 순차적으로 이루어지며, 다음 단계로 진행하기 전에 이전 단계가 완전히 끝나야 합니다.
요구사항 분석, 설계, 구현, 테스트, 유지보수 등 단계별로 업무가 구분되며, 이후 단계로 이동하기 전에 이전 단계의 결과물이 검증되어야 합니다.
프로젝트의 결과물이 미리 예상되어 계획할 수 있고, 이에 따라 예산과 일정을 미리 계획할 수 있습니다.
하지만, 계획에 대한 변경이 생길 경우 수정이 어렵고, 개발자와 고객간의 소통이 부족할 수 있습니다.

Q) 워터폴 방법론이란?

더보기

작은 주기로 반복되는 개발 주기를 갖습니다.
프로젝트의 요구사항이나 환경에 따라 작업의 우선순위를 조정하면서 진행합니다.
개발팀과 고객간의 소통을 중요시하며, 요구사항의 변경에 대해 유연하게 대처합니다.
프로토타입을 빠르게 제작하고, 이를 바탕으로 고객의 요구사항을 파악하며 개발합니다.
하지만, 개발 주기가 짧아지므로 일정이 불안정할 수 있습니다.

Q) 싱글톤 패턴이란?

더보기

싱글톤 패턴이란 한 클래스가 오직 하나의 객체만을 생성하는 것을 보장하는 디자인 패턴입니다. 싱글톤 패턴에서 클래스는 처음에만 객체가 생성이되고 이후에 해당 클래스를 사용해야하는 객체들은 getInstance() 메서드를 사용하여 해당 클래스의 객체를 주입받습니다. 해당 디자인 패턴은 어플리케이션의 여러 부분에서 공유되는 리소스를 관리할 때 유용합니다.

Q) 팩토리 패턴이란?

더보기

팩토리 패턴이랑 인스턴스를 생성하는 생성 절차를 추상화하는 패턴입니다.  여러 개의 서브 클래스를 가진 슈퍼 클래스가 있을 때 인풋에 따라 하나의 자식 클래스의 인스턴스를 리턴해주는 방식입니다. 예를들어 Pizza라는 abstract class를 상속받는 페퍼로니 피자와 불고기 피자라는 자식 클래스가 있을 때 그때그때 필요한 피자를 생성하는 것이 아닌, 타입을 parameter로 주면 해당 타입의 피자를 리턴해주는 팩토리 클래스를 생성하는 것입니다. 이를 통해 Application에서는 Pizza의 서브 클래스에 대한 정보는 모르는 채 인스턴스를 생성할 수 있습니다.

해당 팩토리 클래스는 Singleton으로 구현하거나 서브클래스를 리턴하는 메소드를 static으로 구현해도 됩니다.

Q) 옵저버 패턴이란?

더보기

옵저버 패턴은 subject와 observer로 이루어진 디자인 패턴으로 subject는 본인의 observer들의 리스트를 관리하여 만약 상태의 변화가 생기변 그 observer들에게 알리는 디자인 패턴입니다.