CS/디자인패턴&아키텍쳐3 테스트 주도 개발(TDD)란? TDD(Test Driven Development) 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다. 짧은 개발 주기의 반복에 의존하는 개발 프로세스이며, 애자일 방법론 중 하나인 eXtream Programming(XP)의 'Test-First’개념에 기반을 둔 단순한 설계를 중요시한다. 이 기법을 개발했거나 '재발견’한 것으로 인정되는 Kent Beck(켄트 벡)은 2003년 TDD가 단순한 설계를 장려하고 자신감을 불어넣어 준다고 말하였다. eXtream Programming(XP)란? 익스트림 프로그래밍 미래에 대한 예측을 최대한 하지 않고 지속적으로 프로토타입을 완성하는 애자일 기방법론 중 하나이다. 이 방법.. 2023. 11. 13. 헥사고날 아키텍처(Hexagonal Architecture)란 헥사고날 아키텍처란 자료 출처 Hexagonal은 사전적 의미로 '육각형 건축물’을 의미한다. 소프트웨어 설계에 사용되는 아키텍처 패턴중 하나로 여러 소프트웨어 환경에 쉽게 연결할 수 있도록, MSA와 같이 느슨하게 결합된 애플리케이션 구성요소를 만드는 것을 목표로 하는 아키텍처이다. 도메인의 비즈니스 로직을 외부 라이브러리 및 툴로부터 분리 할 때 포트와 어댑터로 사용하기 때문에 포트&어댑터 아키텍처라고도 부른다. (막상 6각형 네이밍보다는 포트&어댑터 아키텍처가 조금 더 맞는 표현이라 생각한다.) 헥사고날 핵심 도메인 비즈니스 로직이 외부요소에 의존하지 않게 만들고, 프레젠테이션 계층(controller)과 데이터 소스 계층(persistence) 같은 외부 요소들이 도메인 계층에 의존하도록 한다. .. 2023. 10. 28. MSA(MicroService Architecture)에 대해서 MSA란?MicroService Architecture의 줄임말애플리케이션을 느슨하게 결합된 서비스의 모임으로 구조화하는 서비스 지향 아키텍처(SOA) 스타일의 일종인 소프트웨어 개발 기법이다. 서비스 지향 아키텍처(SOA)란Service Oriented Architecture의 줄임말애플리케이션 구성요소가 통신 프로토콜을 통해 다른 구성요소에 서비스를 제공하는 아키텍처 접근 방식이다.대규모 컴퓨터 시스템을 구축할 때의 개념으로 업무상에 일 처리에 해당하는 소프트웨어 기능을 서비스로 판단하여 그 서비스를 네트워크상에 연동하여 시스템 전체를 구축해 나가는 방법론이다.각 서비스는 독립적인 단위이다. MSA 등장배경Monolithic Architecture는 소프트웨어의 모든 구성요소가 한 프로젝트에 통합되어.. 2023. 10. 28. 이전 1 다음