멀티-티어 아키텍처
여러 개의 계층으로 나누어서 시스템을 구성하는 방법으로 가장 흔하게 사용하는 것은 3티어 아키텍처이다.
3티어 아키텍처
Presentation - Business - Data Source 세 부분으로 구성된다.
Presentation : 사용자와 소통하는 부분 (Front-End)
Business : 사용자가 요청한 것을 처리하는 부분 (Back-End)
Data Source : 처리한 결과가 보존되는 곳 (DataBase)
이 중에서 Business 부분에는 Layered Architecture 라는 것이 존재한다.
Layered Architecture : 4개의 레이어로 시스템을 만드는 것으로 UI, Application, Domain, Infrastructure로 나뉜다.* 각 레이어는 아래 단계의 레이어에 의존되어 사용되지만 윗 단계의 레이어를 사용하지 않는다. 이렇게 사용하는 이유는 프로젝트의 복잡도를 낮출 수 있다.
TDD(Test Driven Development)
테스트 주도 개발 혹은 목표 주도 개발을 의미한다. 테스트는 개발에서의 목표를 실험해보게 되고 사용자 입장에서 실행하게 되므로 사용자 주도 개발이라고도 한다.
TDD를 사용하는 이유는 목표를 달성하기 위함이고 좀 더 보기 좋은 코드를 만드는 데에 목표가 있다.
1) 올바르게 작동하는 코드 구현
2) 깔끔하게 작동하도록 리팩토링 -> 작동은 그대로 두고 코드만 변경