지식정보/좋은글공유

아키텍쳐(architecture)란 무엇인가?

알콩달콩아빠 2023. 7. 5. 10:35
728x90
반응형

보통 아키텍쳐란 건축학을 의미한다고 한다.

컴퓨터 아키텍쳐(Computer architecture)의 경우 "

컴퓨터 구조(computer architecture)는 컴퓨터 공학에서 개념의 설계요, 컴퓨터 시스템의 근간이 되는 운영 구조이다. 컴퓨터의 여러 부분에 대해 설계적으로 이식되는 것들과 요구 사항들(특히 속도와 상호 연결)이 무엇인지 기능적으로 설명되어 있는 청사진이다. 주로 중앙 처리 장치 (CPU)가 메모리 주소에 내부적으로 수행하고 접근하는 방법이 집중적으로 설명된다.

하드웨어 부품을 골라서 상호적으로 연결하여 기능, 성능, 비용적인 목표를 충족하는 컴퓨터를 만들어 내는 과학과 기술로 정의될 수도 있다."라고 설명될수있다.

소프트웨어적 의미로는 "소프트웨어 구조(software architecture)는 소프트웨어의 구성요소들 사이에서 유기적 관계를 표현하고 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다"

참 간단하다.ㅋㅋ

 

좀더 자세한 정의라면 "

Architecture(아키텍처)는 컴퓨터 시스템의 하드웨어 구조를 말합니다. 아키텍처는 컴퓨터 시스템을 구성하고 있는 하드웨어 장치인 CPU, 레지스터, 기억 장치, 입출력 장치 등과 같은 여러 가지 컴퓨터 구성 요소들에 대한 전반적인 기계적 구조와 이를 설계하는 방법입니다.

 

 

보통 규모에 관계없이 건물을 지을 때에는 우선적으로 시공에 앞서 대략적인 조감도를 작성한 후 전체적인 구조와 설계도를 먼저 작성합니다. 정보 시스템도 이와 비교될 수 있습니다. 이미 금융, 통신 같은 부분은 말할 것도 없이 거의 전 부문에 걸쳐 정보시스템은 점차 필수적인 요소라고 할 수 있습니다. 이러한 정보시스템은 중소기업에서 사용되는 시스템일지라도 건물에 못지않은 복잡성을 가지고 있습니다. 더군다나 이에 부가되어 웹과 인터넷의 발전에 따른 여러 가지 문제, 보안의 문제, 소비자의 코드에 맞추어야하는 화면 디자인의 문제 등을 해결하면서 동시에 과거의 시스템과의 연동을 고려해야만 하는 골치 아픈 문제들이 소프트웨어 개발자들을 괴롭히고 있습니다.

 

 

 

 

복잡성에 더해 과거와는 달리 어떤 소프트를 써서 어떤 방식으로 시스템을 만드는 가에 대해서도 다양한 선택의 문제도 있습니다. 이러한 문제를 해결하고자 하는 노력이 바로 아키텍처입니다. 아키텍처란 소프트웨어 개발자들이 어쩔 수 없이 작성해야만 하는 전체시스템의 밑그림을 말합니다. 아키텍처는 선택이 아니라 시스템의 개발에 있어 필연적으로 작성해야만 합니다. 설계도 없는 건물은 있을 수 없습니다. 만일 있다고 가정하더라도 당연히 안정성을 보장할 수 없고 그 가치 또한 매우 낮아질 것입니다. 제대로 된 상•하수도 지도를 가지지 못해 매년 가스관, 송수관 파열등의 사고를 반복하고 세금을 낭비하는 수도공사의 경우가 그 예가 될 것입니다.

 

 

메인 프레임의 시대로서 아키텍쳐의 중요한 부분은 하드나 OS 등의 플랫폼에 구축되고 있고 그 위에 어플리케이션을 구현하면 솔루션이라고 할 수 있습니다. 하지만 이제는 오픈시대가 되어 플랫폼도 선택사항이 증가하여 C/S로 어떤 기능 분할을 해야 할 것인가라든지 때때로 하드나 소프트의 특성에 맞추어 설계의 최적화를 생각할 사람이 필요하게 되었습니다.

 

 

 

 

아키텍쳐는 소프트웨어의 환경이 변화되고 있는 것을 감지해야 합니다. 그것은 비즈니스의 신속성(business velocity)를 증가시킵니다. ‘기업이 올바른 방향을 설정하는 한편, 그 운영 속도를 가속화 할 수 있는 능력’ 그것을 빠르게 표현하는 것입니다. 90년대의 소프트웨어의 화두는 ‘얼마나 빠르게 소프트웨어를 구축하는가?’ 라는 것이 최고의 목표였습니다, 그러나 21세기의 화두는 ‘올바른 방향을 유지하는 동시에 신속하고 품질을 보장할 수 있는 소프트웨어를 만들 것인가?’ 입니다.

 

 

90년대의 소프트웨어는 ‘목표’만 정확하면 그 품질을 개량화하기 수월한 소프트웨어들이 대다수였습니다. 일반 패키지들이 그러했고, 일반 업무들도 단위업무 중심이었기 때문입니다. 이제 21세기 소프트웨어는 수많은 프레임워크와 수많은 업무들이 연관관계를 가지는 구조이기에 그 품질목표마저도 모호한 상태이거나 계량화하기 힘들어진 상태입니다. 그러하기 때문에 아키텍쳐는 Service중심의 소프트웨어를 구상하여야 합니다. 최근 인터넷의 급속한 진화와 함께 이슈가 되고 있는 웹2.0 기술의 근간은 사용자 참여형 아키텍쳐라 할 수 있습니다." 이정도 되시겠다.

 

출처 : 아키텍쳐(architecture)란 무엇인가? : 네이버 블로그 (naver.com)

728x90
반응형