카테고리 없음

소프트웨어 아키텍처 What? Why?

벌게진눈 2021. 3. 4. 00:01
반응형

소프트웨어 아키텍처

소프트웨어 아키텍처란 무엇이고, 왜 해야하는지에 대해 알아봅시다.

What

소프트웨어 아키텍처의 정의를 살펴보면
구성요소들의 관계, 환경, 설계와 발전을 관리하는 원칙으로 이루어진 시스템의 근본적인 구조 입니다.

정의만 봐서는 무슨말인지 이해가 되질 않을겁니다. 소프트웨어 설계(디자인)과 비교하여 개념을 살펴보면 좀더 명확해집니다.
소프트웨어 설계란 소프트웨어 해결책을 위한 문제해결과 계획 과정입니다.
프로그래밍을 진행하기전 A라는 기능은 어떤 디자인 패턴으로 구현할 것인지?
새로운 기능을 어느 클래스에 넣을지, 클래스를 새로 생성할지에 대한 방법으로 코드나 모듈에 가까운 개념입니다.

소프트웨어 아키텍처는 소프트웨어 설계보다 좀 더 큰 범위라고 생각하시면 됩니다.
프로젝트의 인프라부터 시작하여 시스템의 구조가 어떠한지, 이해 당사자와의 의사소통은 어떻게 하는지 등
소프트웨어 개발에 있어 전반적인 구조라고 생각하시면 됩니다.

Why

그렇다면 소프트웨어 아키텍처는 왜 중요할까요?
바로 지속적인 개발을 위함입니다. 소프트웨어 아키텍처가 고려되지 않은 프로젝트는 처음에 퍼포먼스를 좋을지 몰라도
시간이 흐르면 흐를수록 점점 속도가 늦어지고 추가 변경이 힘들어집니다.
반면 소프트웨어 아키텍처가 잘 고려된 프로젝트의 경우 초반에는 비용과 시간이 많이들어 비효율적으로 보일지라도
시간이 지나면 지날수록 더 빠르고 많은 기능을 추가 개발할 수 있습니다.

의견

소프트웨어 아키텍처는 중요하지만 요즘과 같이 변화가 빠른 시기에는
빠른 결과물을 만들어 고객들의 반응을 살펴보고 지속적으로 개발하는 에자일적인 마인드가 중요하다고 생각합니다.

현실적으로 힘들지라도 개인적으로 추구하는 개발 방향은
프로젝트 초기에는 빠른 프로토 타입으로 시장의 반응을 확인해보고
틈틈히 소프트웨어 아키텍처를 정리하면서 나아가는 방향이 좋은 방향이 아닌가 생각이 됩니다.
소프트웨어 아키텍처를 정리하며 적용하기 위해서는 이게 무엇인지,
어떻게 정리하고 적용할 수 있는지 확실히 알아야 가능할 겁니다.

앞으로 소프트웨어 아키텍처에 대한 부분도 정리해 보도록 하겠습니다.

반응형