이번 글에서는 시스템 설계와 구조에 대해서 글을 작성해보고자 한다. 소프트웨어 아키텍처(software architeture)서브시스템과 컴포넌트를 찾아서 이들 사이의 관계(인터페이스)를 정의해야 한다.서브시스템을 나누었을 때의 장점독립적인 개발 단위가 줄어들고, complexity가 작아진다.(재사용성이 높아지고, 유지보수에 용이하며, 이식성이 높아진다.)서브시스템은 Layering & Partitioning 과 MVC 두 가지 방법으로 나뉜다.Layering & PartitioningLayering : 서브시스템을 수직으로 나누는 것Partitioning : 같은 레이어 안에서 기능별로 서브시스템을 나누는 것Layering은 두 가지로 또 나뉘는데closed architecture인접한 레이어에 메세..