본문 바로가기

아키텍처17

추정 아키텍처와 레퍼런스 아키텍처 추정(Presumptive) 아키텍처와 레퍼런스(Reference) 아키텍처의 이해와 차이 추정 아키텍처는 특정 도메인에서 지배적인 아키텍처군이다. 해당 도메인의 개발자가 추정 아키텍처 이외의 아키텍처를 선택해서 사용하려면 합당한 이유가 있어야 한다. 일반적인 웹 서비스라면 보통 3 레이어의 아키텍처를 가진다. Presentation layer - Business layer - persistence layer 관성에 의해서 움직이거나 호기심이 적은 개발자라면 추정 아키텍처 이외의 아키텍처를 심각하게 고려하지 않거나, 모든 소프트웨어가 추정 아키텍처를 준수해야 한다고 오해할 수도 있다. 추정 아키텍처는 레퍼런스 아키텍처와 유사하다. 레퍼런스 아키텍처는 문제에 대한 이키텍처 해결책을 설명하는 아키텍처군이며 .. 2023. 1. 28.
소프트웨어 아키텍처의 정의 소프트웨어 아키텍처의 정의 이 정의는 가장 널리 사용되는 것으로 소프트웨어 공학 연구소(Software Engineering Institute)[Clements el al., 2010]에서 나온 내용이다. 원문 The software architecture of a computing system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. 번역 컴퓨팅 시스템의 소프트웨어 아키텍처는 시스템에 대해 추론하는 데 필요한 일련의 구조로, 소프트웨어 요소, 이들 사이의 관계 및 속성으로 구성됩니다. 정의는 명확.. 2023. 1. 24.
소프트웨어 아키텍팅의 기본 소프트웨어 아키텍팅의 기본 소트프웨어는 점점 커지고, 점점 복잡해진다. 네이버나 카카오톡을 보자. 네이버는 처음에는 지식을 찾아주는 검색 사이트였다. 그러나 지금은 미용실도 예약할 수 있고, 네비게이션으로 이용할 수도 있다. 카카오톡의 경우도 처음에는 친구들과 메시지를 주고 받는 기능만 있었으나 현재는 쇼핑도 할 수 있고, 돈도 보낼 수 있다. 소프트웨어 엔지니어링의 발전은 소프트웨어 규모와 복잡성 증가와 일치해왔다. 어셈블리 언어는 고급 언어(사람에게 더 친화적일 수록 고급 언어라고 부른다. 어쩜 이 개념은 기계어와 구분하기 위하여 만든 것 같다.)와 구조적 프로그래밍에 밀려 특수한 경우에만 사용되며, 절차지향적 프로그래밍은 객체 지향적, 함수형 언어에 밀려 지양해야하는 방식이 되었다. 또한 서브루틴에.. 2023. 1. 23.
리스크 주도 소프트웨어 아키텍처란? 리스크 주도 소프트웨어 아키텍처란? 성공적인 소프트웨어 개발을 위해 다양한 프로세스를 사용할 수 있다. 애자일 프로세스를 이용하는 그룹은 선행 설계 작업이 거의 없이 개발 도중에 설계가 나온다. 반대의 그룹은 세밀한 설계 작업을 진행하여 시스템을 개발한다. 어떤 방법이 가장 좋은 방법일까? 그 선택을 도울 이상적인 원칙이 있다. 아키텍처에 얼마나 많은 노력을 투자할지를 결정하기 위해 소프트웨어 리스크를 기준으로 삼을 수 있다. 리스크 주도 모델(risk-driven model) 적절한 아키텍처링 기법을 선택하여 적용하고, 얼마나 많은 시간을 투자할지도 파악하도록 기준을 제시하여 적정 아키텍처(just enough architecture) 작업을 수행하도록 안내한다. 아키텍터링에 투입할 노력은 실패 리스크.. 2023. 1. 23.