티스토리 뷰

안녕하세요. 오늘은 아키텍처, 프레임워크, 플랫폼이 무엇인지 그리고 그것들에 대한 기본 개념을 포스팅하려고합니다.


1. 아키텍처(Architecture) : 소프트웨어의 주요 설계 구조 


소프트웨어의 주요 특징들을 결정짓는 주요 설계 구조이다. 

  즉, 소프트웨어의 주요 구성 요소 및 구성, 이들간의 주요 인터페이스, 중요 동작 방식 등 소프트웨어의 주요 특징들을 결정짓는 모든 설계 구조이다. 

  소프트웨어의 주요 특징을 결정짓고 소프트웨어 개발에 미치는 영향도 매우 커서 소프트웨어 개발에 있어서 가장 중요한 부분이라고 할 수 있다. 

  지원 프로그램, 라이브러리, 언어, 다른 소프트웨어 구성 요소 등과 같이 구체적인 구현을 포함하지 않는다는 점에서 프레임워크나 플랫폼과는 명확히 구분된다. 

  


2. 프레임워크(Framework): 소프트웨어 뼈대 구조 


프레임워크는 다른 소프트웨어 프로젝트가 개발될 수 있는 뼈대 구조이다.  

  지원 프로그램, 라이브러리, 언어, 다른 소프트웨어 구성 요소들을 엮어 주는 소프트웨어 등을 포함하고 있다.  

  UI 프로그램 개발을 위한 부분 만을 떼어내서 프레임워크라고 할 수도 있다. 

  UI 프로그램 개발을 위한 부분 만으로는 완전한 소프트웨어 실행 환경이 되지 않으므로 플랫폼은 아니지만 프레임워크이다. 

  


3. 플랫폼(Platform) : 소프트웨어 실행 환경 


가장 일반적이면서도 명료한 의미는 "소프트웨어가 실행되는 환경"이다. 

  개발 언어나 개발 환경을 플랫폼에 포함시키기도 하지만 이는 부수적 개념 혹은  확장된 개념에 불과하고, 핵심은 "소프트웨어가 실행되는 환경"이다. 

  각 프로그램은 아무 플랫폼에서나 실행되는 것이 아니고 특정 플랫폼에서만 실행된다. 일반적으로, O/S는 모두 플랫폼이다.  

  Windows는 윈도우즈 프로그램만을 실행시킬 수 있는 플랫폼이고, 리눅스는 리눅스 프로그램만을 실행 시킬 수 있는 플랫폼이다. 

  자바 런타임 환경도 플랫폼이다. 자바 프로그램은 O/S에 대한 종속성은 거의 없고 자바 런타임 환경 없이는 실행되지 않으므로 자바 런타임 환경을 주요 플랫폼으로서 필요로 한다. 


이것으로 아키텍처, 프레임워크, 플랫폼에 대해서 간단히 알아봤고, 추후에 저도 공부를 더 해서 자세히 알아보는 시간을 가져보려고 합니다. 그럼 이것으로 포스팅을 마치도록 하겠습니다.