본문 바로가기
카테고리 없음

step1. Spring 개념

by 댓츠굿 2013. 4. 15.

Spring DI (IOC)                        ->                        AOP                        ->                        MVC

?

or

Spring을 Meta Frame이라 불림


* - XML 기반

  - Annotation 기반 : 메소드 위에 @param 이런거 - 생산성은 좋지만 유지보수성은 잘..


* framework

* component(CBD)

* library

* API


강사님이 정리해주신 정의

api(application programming interface)

운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식


library 

 컴퓨터 이용의 효율화를 꾀하기 위해서 이용자가 필요에 따라서 사용하는 표준화된 프로그램 및 서브루틴의 모음


component

소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 쉽게 할 수 있도록 하는 기술을 말한다.즉, 기존의 코딩 방식에 의한 개발에서 벗어나 소프트웨어 구성단위(module)를 미리 만든 뒤 필요한 응용 기술을 개발할 때 이 모듈을 조립하는 기술을 말한다


framework

소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다



-----------------------------------------------------------------------------------------------------------------

- framework
소프트웨어 프레임워크(software framework)는 복잡한 문제를 해결하거나 서술하는 데 사용되는 기본 개념 구조이다. 간단히 뼈대, 골조(骨組), 프레임워크(framework)라고도 한다.
강사님 말씀 : -> pattern + component,
  -> 반완전한 apllication


- component
소프트웨어 개발을 마치 레고(Lego) 블록을 쌓듯이 쉽게 할 수 있도록 하는 기술을 말한다.즉, 기존의 코딩 방식에 의한 개발에서 벗어나 소프트웨어 구성단위(module)를 미리 만든 뒤 필요한 응용 기술을 개발할 때 이 모듈을 조립하는 기술을 말한다.
 *package - class를 디렉토리별로 관리

(class     등이 모여서        독립적 기능

 object     연동하면서         독립적 기능 )


- library 
 컴퓨터 이용의 효율화를 꾀하기 위해서 이용자가 필요에 따라서 사용하는 표준화된 프로그램 및 서브루틴의 모음
 (재사용될 수 있는 class, API를 먹는공장)

- API(application programming interface)
운영체제와 응용프로그램 사이의 통신에 사용되는 언어나 메시지 형식


-----------------------------------------------------------------------------------------------------------------

* 프레임워크(framework): 소프트웨어의 뼈대

소프트웨어를 개발할 떄 사용하는 뼈대 구조로 특정 영역의 소프트웨어 개발을 용이하게 하기 위해 '재사용 가능한 디자인'을 구성하는 클래스들의 집합입니다. 소프트웨어를 개발하는데 사용하는 기반 요소로 개발의 방향이나 사용 기술을 미리 정의한 뼈대로 재사용이 가능하고, 특정 문제의 해결을 위해 고안된 지원 프로그램으로 언어, 다른 소프트웨어 구성 요소들을 엮어 주는 소프트웨어 등을 포함하고 있습니다. 개발시 설정에 맞도록 응용할 수 있도록 설계되었으며 프레임워크는 재사용 범위가 크고 확장이 가능합니다.

따라서 플랫폼도 프레임워크의 일종이라고 볼 수 있으며, MS사의 닷넷 플랫폼을 닷넷 프레임워크라고 지칭하는 것도 틀린 것은 아닙니다. 또한 UI 프로그램 개발을 위한 부분만을 떼어내서 프레임워크라고 할 수도 있습니다. UI 프로그램 개발을 위한 부분만으로는 완전한 소프트웨어 실행 환경이 되지 않으므로 플랫폼은 아니지만 프레임워크로 볼 수 있습니다. 이러한 점에서 프레임워크와 플랫폼은 다른 경우가 많습니다.


* 컴포넌트(Component)

컴포넌트는 효율적인 솔루션을 말합니다. 다양한 시스템을 지원하여야 하므로 복잡하며 배우는 기간기 필요하고 커스텀화가 필요합니다. 컴포넌트 기반 개발(CBD, Component Based Development)은 객체지향 기술을 바탕으로 작성한 단위 프로그램을 하나의 부품(Component)처럼 여기고, 이 부품을 조립하여 소프트웨어를 제작하는 기법이다. MSF(Microsoft Solotion Framework)도 컴포넌트 기반의 C++제작지법의 하나입니다.


* 라이브러리 (library) 혹은 툴킷(tool kit)
함수들을 제작하다 보면 분명히 나중에 다시 써먹을 수 있는 것들이 나오게 된다. 이러한 함수들을 모아 두었다가, 유사한 프로그램을 제작할 때 사용할 수 있다면 생산성이 증가하게 된다. 이것은 컴퓨터를 조립할 때 미리 제작되어 있는 부품들을 모아서 빠르게 제작하는 것과 동일한 개념이다.
하나 이상의 함수를 모아둔 것을 라이브러리(library)라고 하며 프로그램을 제작할 때마다 필요한 함수들을 꺼내 쓰게 되는 것이다. 라이브러리 라는 단어 대신 툴킷 혹은 API(Application Programming Interface)라는 용어가 사용되기도 한다.

라이브러리를 제작하는 주체는 첫번째, 프로그램 개발 언어와 컴파일러를 제작하는 업체들, 두번째 자신이 만들어둔 함수를 재사용하기를 원하는 개발자 스스로가 될 수 있다. 더불어, 컴파일러를 제작하지도 않고 직접 라이브러리를 사용하지도 않지만 개발자들에게 필요한 라이브러리를 제작해 공급하는 업체들이 있다. 이들을 일컬어 써드 파티(third party)라고 부른다.

출처 : http://blog.naver.com/bj2034?Redirect=Log&logNo=60067775422


* 플랫폼(Platform)

플랫폼은 소프트웨어가 실행되는 하드웨어와 소프트웨어 환경을 뜻합니다. 플랫폼은 컴퓨터 시스템의 맨 하위층을 이루는 부분을 말하는데 응용 프로그램의 설계자들은 하드웨어와 소프트웨어를 모두 플랫폼이라고 합니다. 그 이유는 하드웨어와 소프트웨어가 응용에 대한 지원을 제공하기 때문입니다.

출처 : http://blog.daum.net/question0921/880


* 아키텍쳐(Archotecture): 소프트웨어의 주요 설계 구조

아케텍처란 시스템의 기능면에서 본 구서 방식으로 컴퓨터의 구성, 기억장치의 주소 방식, 입출력 장치의 채널 구성 따위를 말합니다. 소프트웨어의 주요 특징을 경정짓는 설계 구조를 말하며 소프트위어의 주요 구성 요소 및 구성 요소들 간의 주요 인터페이스 등 작동 방식으로 규정한 것입니다.

아키텍처는 소프트웨어의 주요 틀징을 결정짓고 소프트웨어 개발에 미치는 영향이 매우 커서 소프트웨어 개발에 있어서 가장 중요한 부분이라고 할 수 있다. 지원 프로그램, 라이브러리, 언어, 다른 포스트웨어 구성 요소 등과 같이 구체적인 구현을 포함하지 않는 다는 점에서 프레임워크나 플랫폼과는 명확이 구분됩니다.

출처 : http://blog.daum.net/question0921/880


반응형