한국   대만   중국   일본 
소프트웨어 展開 - 위키百科, 우리 모두의 百科事典 本文으로 移動

소프트웨어 展開

위키百科, 우리 모두의 百科事典.

소프트웨어 開發 프로세스
活動과 段階
要求事項 分析   · 機能 明細
救助   · 設計
具現   · 테스팅
配置   · 維持補修
開發 模型
애자일 소프트웨어 開發   · 클린룸
DSDM   · 循次漸增的 開發   · 反復型 開發
RAD   · RUP   · 나선 模型
瀑布水 모델   · 익스트림 프로그래밍
스크럼   · V 모델   · TDD
支援 活動
構成 管理   · 文書化
品質保證   · 프로젝트 管理
使用者 經驗 設計
道具
컴파일러   · 디버거   · 프로파일러
GUI 디자이너   · 統合 開發 環境

소프트웨어 展開 (software deployment)는 소프트웨어 시스템 을 使用할 수 있도록 만드는 모든 活動을 말한다.

一般的인 展開 過程은 過程 사이에 있을 수 있는 變異와 함께 서로 關係 있는 여러 活動으로 된다. 이런 活動들은 소프트웨어 開發者  側 或은 소프트웨어 使用者 側 或은 兩쪽 모두에서 일어날 수 있다. 모든 소프트웨어 시스템이 固有하므로, 各 活動 사이의 正確한 過程과 節次를 定義하기란 매우 어렵다. 그러므로, "展開"는 特定 要求事項이나 特性에 따라 커스터마이징 되어야 하는 全般的인 過程 으로 解釋되어야 한다. 各 活動에 對한  大略的인 說明은 以後에 나온다.

歷史 [ 編輯 ]

컴퓨터가 엄청나게 크고, 비싸며 부피가 컸던 때(메인 프레임과 미니 컴퓨터), 소프트웨어는 대게 하드웨어와 함께 製造社에 依해 묶어서 提供되었다. 비지니스 소프트웨어 를 旣存의 컴퓨터에 設置해야 하는 境遇, 費用과 時間을 들여 시스템 아키텍트 或은 컨설턴트 가 訪問해야 하는 境遇도 있었다. 오늘날 엔터프라이즈 소프트웨어의 複雜한 直接 設置를 위해, 이런 境遇가 가끔 있기도 한다.

하지만, 1980年 代의  마이크로컴퓨터 의 새로운 時代에 大量 市長 소프트웨어 開發과 함께 새로운 形態의 소프트웨어 展開가 나왔다. 첫番째로 카트리지 가 나왔고, 그 뒤에 카세트 테이프 , 그리고 플로피 디스크 그 뒤로(1990년대와 그 以後에) 光學 미디어 , 인터넷 그리고 플래시 드라이브 가 나왔다. 卽, 소프트웨어 展開는 顧客의 몫이 되었다. 하지만, 또한 時間이 지남에 따라 顧客이 소프트웨어를 構成할 수 있다는 것이 重要하다는 것과, 以上的으로 소프트웨어 構成에 있어 (例를 들어, 顧客이 윈도우의 레지스트리 個體를 修正하지 않도록) 사용자 親和的인 인터페이스가 있어야 한다는 것이 認識되었다.

인터넷 時代 以前의 소프트웨어 展開에서, 展開(그리고 그와 四寸 格인, 새로운 소프트웨어의 릴리즈)는 費用이 많이 들고 드물게 있어나는 성가신 일이었다. 그러므로 인터넷의 普及이 엔드-投-엔드 애자일 소프트웨어 開發 을 可能하게 만들었다고 해도 過言이 아니다. 實際로, 클라우드 컴퓨팅 서비스型 소프트웨어(SaaS, software as a service) 의 出現은 소프트웨어가 大規模의 顧客에게 數分 內로 인터넷을 통해 展開될 수 있음을 의미한다. 이는 또한 一般的으로, 展開 스케줄이 이제 顧客이 아닌 소프트웨어 供給者에 依해 決定된다는 것을 의미하기도 한다. 이러한 柔軟性 德分에 特히 危險性이 적은 웹 애플리케이션의 境遇 實行 可能한 옵션으로 持續的인 傳達이 可能해졌다.

展開 活動 [ 編輯 ]

릴리즈
릴리즈 活動은 完了된 開發 過程 뒤에 오며, 때로는 展開가 아닌 開發 過程의 一部로 適切하게 分類되기도 한다. 여기에는 어셈블리 를 위한 시스템을 準備하고 프로덕션 環境에서 實行될 컴퓨터 시스템으로 電送하기 위한 모든 作業이 包含된다. 그러므로, 시스템이 許容 可能한 性能으로 動作하는데 必要한 리소스 決定과 展開 過程의 後續 活動을 計劃하고(하거나) 文書化하는 일이 들어가기도 한다.
設置 및 活性化
簡單한 시스템의 境遇, 設置는 소프트웨어 實行을 위한 어떤 形態의 命令語 , 短縮키, 스크립트 或은 서비스 를 設定하는 일을 包含한다(수동이든 自動이든). 複雜한 시스템의 境遇, 最終 使用者에게 意圖한 用途에 對해 묻거나 直接的으로 어떻게 構成하려고 하는지를 물어봐서 그리고(或은) 모든 要求되는 서브 시스템을 使用할 準備를 끝내 시스템 構成을 包含할 수도 있다. 活性化는 처음으로 소프트웨어의 實行 可能한 컴포넌트를 始作하는 活動을 말한다( 디지털 權利 管理 시스템인 소프트웨어 라이센스와 關聯있는 activation 이라는 用語의 一般的인 用途와 混同하지 마세요). 서버 의 大規模 소프트웨어 展開에서, 使用者에 依해 使用되는 소프트웨어의 週 複寫本(産出物)은 運營 環境 내 運營 서버에 設置될 수 있다. 展開된 소프트웨어의 다른 버전은 테스트 環境, 開發 環境 그리고 災難 復舊 環境에 設置될 수도 있다.복잡한 持續的인 展開 環境 그리고(或은) SaaS(software as a service) 시스템에서, 다르게 構成된 버전의 시스템은 內外部 顧客을 위해 運營 環境에 存在할 수도 있거나(이것은 multi-tenant 아키텍처 라고 알려져 있다) 竝列 展開 中 한 個 以上을 取消할 可能性과 함께 다른 顧客 그룹과 竝列로 漸進的으로 展開될 수도 있다. 예를 들어,  트위터 는 새로운 機能의 A/B 테스트 와 使用者 인터페이스의 變更을 위해 後者의 接近 方式을 使用하고 있는 것으로 알려져 있다. 블루-그린 展開를 目的으로, 運營의 로드 밸런서 에 아직 連結되지 않은 서버들로 構成된, 運營 環境 內에서 "hidden live" 그룹이 생겨날 수 있다.
非活性化
非活性化는 活性化의 反對로, 이미 實行된 시스템 컴포넌트를 終了하는 것을 말한다. 非活性化는 대게 다른 展開 活動 實行을 必要로 하는데, 例를 들어, 업데이트를 實行할 수 있기 前에 소프트웨어 시스템이 비활성화되어야 할 수도 있다. 드물게 使用되거나 쓸모없는 시스템에서 서비스에서 除去하는 일을 대게 애플리케이션 滿了 또는 애플리케이션 廢棄라고 한다.
除去
除去는 設置의 反對이다. 더 以上 必要없는 시스템의 除去를 말한다. 또한 除去된 시스템의 依存性 을 除去하기 위해 다른 소프트웨어 시스템의 再構成이 必要할 수도 있다.
업데이트
업데이트 過程은 소프트웨어 시스템 全體 或은 部分의 移轉 버전을 새로운 버전으로 代替한다. 普通 非活性化 以後 設置로 된다. 시스템 패키지 매니저 를 使用 中인 리눅스와 같은, 一部 시스템에서 소프트웨어 애플리케이션의 以前 버전은 過程 中 自動化된 部分으로 除去된다(소프트웨어 패키지가 이러한 制限을 다루도록 特別하게 設計되지 않은 以上, 리눅스 패키지 매니저는 同時에 소프트웨어 애플리케이션의 여러 버전을 支援할 수 없기 때문이다).
빌트인 업데이트
업데이트 設置를 위한 메커니즘은 一部 소프트웨어 시스템 內에 만들어진다(혹은 리눅스 , 안드로이드 그리고 iOS 와 같은 一部 運營 體制의 境遇, 運營體制 自體 內에 構築되어 있다). 이런 업데이트 過程의 自動化는 完全 自動부터 使用者 初期化 및 制御까지 多樣하다.  노턴 인터넷 시큐리티 가 안티바이러스 正義와 시스템의 다른 컴포넌트 모두에 對한 업데이트를 찾고 設置하기 위한 半自動化 方式을 지닌 시스템의 한 例이다. 다른 소프트웨어 製品은 업데이트가 利用 可能한지를 決定하기 위한 照會 메커니즘을 提供한다.
버전 追跡
버전 追跡 시스템은 使用者가 소프트웨어 시스템의 업데이트를 찾아 設置할 수 있도록 돕는다. 例를 들어, 소프트웨어 카탈로그는 로컬 시스템 上에 設置된 各各의 소프트웨어 패키지에 對한 버전과 다른 情報를 貯藏한다. 한번의 버튼 클릭으로 브라우저 윈도우에서 로그인 要求되는 사이트에 對한 使用者 이름과 祕密番號 自動 채우기를 包含하는 소프트웨어 업그레이드 웹 페이지를 연다. 리눅스, 안드로이드, iOS에서, 이 過程은 相當히 쉽다. 왜냐하면 (公式 支援 方式으로 設置된 소프트웨어 패키지에 對한) 버전 追跡을 위한 標準化된 過程이 運營 體制 內에 構築되어 있기 때문이다. 그래서 個別的인 로그인, 다운로드 그리고 實行 段階가 必要하지 않다. 그러므로 이런 過程이 完全히 自動化되도록 構成할 수 있다. 또한, 一部 서드파티 소프트웨어는 特定 윈도우 소프트웨어 패키지에 對한 自動化된 버전 追跡과 업그레이드를 支援한다.
各色
各色 活動도 以前에 設置되었던 소프트웨어 시스템을 修正하기 위한 過程이다. 脚色이 顧客 사이트의 環境을 變更시킴으로써 地域的으로 일어나는데 反해, 업데이트는 새로운 릴리즈가 利用 可能하도록 만들어진 結果로 업데이트된다는 點에 差異가 있다. 脚色은 複雜한 境遇에 컴퓨터 프로그래밍과 같은 專門 技術을 要求할 수 있다.

展開 役割 [ 編輯 ]

마이애미의 "附加 價値 技術 開發"의 事例

소프트웨어 製品의 複雜함과 多樣性은 展開 過程을 調整하고 엔지니어링하기 위한 專門的인 役割의 出現이 促進되었다. 데스크톱 시스템의 境遇, 最終 使用者는 그들의 머신에 소프트웨어 패키지를 設置할 때 "소프트웨어 展開者"가 되곤 한다. 엔터프라이즈 소프트웨어의 展開는 많은 役割들을 必要로 하며, 애플리케이션이 테스트(運營 前)에서 運營 環境으로 進行함으로써 그 役割들은 典型的으로 變更된다. 엔터프라이즈 애플리케이션에 對한 소프트웨어 展開에 關聯된 典型的인 役割은 다음과 같다:

같이 보기 [ 編輯 ]

展開 道具 [ 編輯 ]

外部 링크 [ 編輯 ]