Architecture

Tips about software architecturing

Module

  • 다중성을 생각하는 것이 좋습니다. 단일 요소로 가정하고 만든 모듈은 추후 다중 요소로 확장하기 어려울 수도 있습니다.

  • 다른 모듈과 쉽게 통합이 가능해야 합니다. 이 모듈을 적용하기 위해 추가 작업이 많이 필요한 경우 그냥 기존 모듈을 수정하면서 확장하는 것이 더 낫습니다.

  • 이를 위해 기존의 사용 사례들을 파악하고, 특수한 경우가 있는 경우 이를 염두에 두는 것이 추후에 생길 통합 실패를 예방하는데 도움이 됩니다.

  • 모듈은 자주 사용되어야 합니다. 3번 미만으로 사용될 모듈은 3의 법칙을 따라 아직 추상화 할 필요가 없을 수도 있습니다. 모듈로 추상화하고 통합하는 데는 많은 비용이 소모되며 자주 사용되는 모듈 만이 이 비용을 정당화할 수 있습니다.

Architecture

  • 특수한 값에 특화된 데이터 보다는 일반화된 데이터에서 특수한 값을 추출하는 것이 장기적으로 재사용에 유리합니다.

  • 가능하다면 오프라인 플레이어 등 특수한 상태를 고려하여 구조를 짜는 것이 좋습니다.

  • 설정이 안되는 등 비정상적으로 라도 값이 없는 경우를 고려해야 합니다. 이 경우에 영구적 데이터 손실이 일어나서는 안됩니다.

Requirement

모듈에 발생하는 일반적인 요구 사항은 다음과 같습니다.

  • 관리 가능성, 로그

  • 오류 처리

Last updated