본문 바로가기

분류 전체보기154

소프트웨어 아키텍처의 정의 소프트웨어 아키텍처의 정의 이 정의는 가장 널리 사용되는 것으로 소프트웨어 공학 연구소(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.
아키텍처, 아키텍트, 아키텍팅 용어 바로 알기 흔히 사용하는 IT용어 중 아키텍처, 아키텍트, 아키텍팅 용어를 정확하게 구분하여 사용해 보자. 직책: 아키텍트(architect) 아키텍팅을 전문으로 하는 역할을 뜻 한다. 프로세스: 아키텍팅 (architecting) 프로세스는 개발 중에 팀에서 발현되는 설계와 분리할 수 있다. 애자일에서는 아키텍처가 개발 중에 팀에서 발현된다고 신봉하는 사람들이 있다. 하지만 다른 진영(체계적인 개발: disciplined developement)에서는 아키텍처가 발현되는 것이 아니라고 믿는다. 엔지니어링 결과물: 아키텍처 (architecture) 엔지니어링은 개발, 운영 및 유지 보수에 대한 체계적이고 규율적이며 정량화 가능한 접근 방식을 적용한 것이다. 이러한 엔지니어링을 소프트웨어에 적용하여 만들어진 구조를.. 2023. 1. 23.