포스트

소프트웨어 개발 방법론, 아키텍처 패턴과 디자인 패턴

소프트웨어 공학 중 햇갈리는 개념인

소프트웨어 개발 방법론, 아키텍처 패턴과 디자인 패턴에 대해서 정리할 겸 알아봄

한줄로 요약하면

소프트웨어 개발 방법론은 프로젝트 개발 절차에 관한 내용,

아키텍처는 프로젝트의 설계도,

디자인 패턴은 건축 자재와 시공 방법으로 정리할 수 있겠다

1. 소프트웨어 개발 방법론


  • Software Development Methodology

소프트웨어를 생산하는데 필요한 프로그래밍 개발 과정들을 정리하고 표준화하여, 프로그래머들이 프로그래밍 개발 과정에서 각 개인이 개발과정에서 일관성을 유지하고, 프로그래머들간의 효과적인 협업이 이루어질 수 있도록 돕기 위한 방법론

  • 소프트웨어를 개발하는 방법에 대한 이론

  • 소프트웨어 개발 과정, 절차, 방법, 산출물 기법, 도구 등을 체계적으로 정리하고 표준화 시킨 것

소프트웨어 개발 방법론 종류

소프트웨어 개발 방법론

  • 크게 구조적 방법론, 정보공학 방법론, 객체지향 방법론, CDB방법론, 애자일 방법론으로 나눌 수 있다

  • 폭포수 방법론, 애자일 방법론, Lean 방법론 등

2. 아키텍처 패턴


  • Architecture Pattern

  • 주어진 상황의 소프트웨어 구조에서 발생하는 문제점을 해결하기 위한

  • 아키텍처는 더 큰 뼈대를 말하고, 디자인 패턴은 코드 수준에서의 설계를 담당

소프트웨어 아키텍처가 한 소프트웨어의 뼈대나 고수준의 기반을 담당하는데에 반해, 디자인 패턴은 각각의 모듈들이 어떤 것을 하는지, 클래스의 범위, 함수의 목적 등 코드 수준의 디자인을 담당하는 것.

아키텍처 패턴의 종류


  • MVC (Model-View-Controller)
  • MVP (Model-View-Presenter)
  • MVVM (Model-View-ViewModel)
  • 계층화 패턴(Layer)
  • 클라이언트-서버 패턴(Client-Server)
  • 마스터-슬레이브 패턴
  • 브로커 패턴(Broker)
  • Peer to Peer 패턴(P2P)
  • 이벤트-버스 패턴(Event-Bus)
  • 블랙보드 패턴(Blackboard Pattern)
  • 인터프리터 패턴(Interpreter Pattern)

3. 디자인 패턴


  • 소프트웨어 디자인 과정에서 자주 발생하는 문제들에 대한 전형적인 해결책

  • 패턴은 재사용할 수 있는 코드 조각이 아니라, 특정 문제를 해결하는 방식을 알려주는 일반적인 개념임

  • 아키텍처 패턴보다 작은 개념. 아키텍처 패턴이 프로젝트 전체의 뼈대를 구성하는 패턴이라면, 디자인 패턴은 하나의 함수, 일부 기능 등의 수준에서의 디자인을 담당함

디자인 패턴 종류


  • GoF 디자인 패턴 GoF
  1. 생성 패턴 : 객체의 생성과 관련된 패턴
  2. 구조 패턴 : 클래스나 객체를 조합해 더 큰 구조를 만드는 패턴
  3. 행위 패턴 : 객체나 클래스 사이의 알고리즘이나 책임 분배에 관련된 패턴

참조


소프트웨어 개발 방법론 -위키백과

소프트웨어 개발방법론 - 해시넷

디자인 패턴 종류

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.