소프트웨어 아키텍처(Software Architecture)는 개발자들이 값만 넣으면 바로 쓸 수 있는 함수를 만들어내는 사람이다. 즉, 개발자가 하나하나 다 구현해야 하는 것들을 이게 필요할 때는 이 함수만 가져다 쓰면 돼! 하고 개발이 쉬워지도록 함수 패키지를 만들어 배포한다.
또한 이렇게 만든 함수를 요청에 따라 고도화 시켜 새로운 버전의 함수를 배포하는 일도 한다. 그렇다면 요청대로 무조건 함수를 고도화 시키는게 좋을까? 예를 들어보자.
A라는 팀에서 문자형태로 된 수와 숫자형태로 된 수가 섞인 데이터에서 문자와 숫자 구분 없이 계산할 수 있는 프로그램을 만들어 달라 해서 만들었다. 그런데 B라는 팀에서 우리는 데이터 중에 .이나 ; 같은 특수문자가 들어간 것들도 있어. 이런 경우에도 에러 없이 계산할 수 있게 해줘. 라는 요청이 들어왔다. B의 요청대로 함수를 고도화 시켰을 때 나중에 A팀에서도 어! 우리는 미처 생각지 못했던건데 우리 데이터에도 특수문자가 섞인 데이터가 있는데 새 버전의 함수에서 잘 돌아가네 고마워! 할 것이다.
하지만, 이런식의 요청은 엄청나게 많이 들어오고 그 모든 요청을 들어주다보면 함수는 계속 고도화가 되지만 결국 함수 자체가 너무 무거워져 아무도 쓰지 않게 되버린다. 결국 함수의 기능은 늘어났지만 함수의 본질인 신속함과 편의성을 잃어 함수 자체의 생명을 잃게 된다. 결국 함수를 다이어트 시키거나 처음부터 새로 시작해야한다. 따라서 요청을 받아 고도화를 하되 어떤 요청을 받아들이고, 어떤 요청을 받아들이지 않을지, 패키지에는 어떤 것들을 포함해 배포하고 어떻게 패키지를 분리해서 배포할 것인지를 고려해야한다.
'개발자 > 용어... 그 외의 것들...' 카테고리의 다른 글
JSON - JavaScript Object Notation (0) | 2020.04.07 |
---|---|
DevOps (0) | 2020.04.07 |
보안의 3대요소 (0) | 2020.04.04 |
뒤로 가는 계산 하기 (마이너스 계산) (0) | 2020.04.04 |
수학 용어 - 등차수열, 등비수열 (0) | 2020.04.04 |