본문 바로가기

CS BASIC

(45)
[CS BASIC] 개발 일정 관리 모델(Development Managing Model)과 다양한 개발 도구(Development Kit)들 개요 지난 포스팅에서는 소프트웨어를 잘 설계하기 위한 다양한 다이어그램, 모델링 기법을 중점으로 알아보았는데요. 오늘은 소프트웨어의 개발 일정 관리 모델(Development Managing Model)과 형상 관리(Configuration Management), 그리고 개발 방법론 그리고 다양한 개발 도구(Development Kit)에 대해서 알아보도록 하겠습니다. 소프트웨어 일정 관리 모델 일정 관리 모델 설명 주 공정법 (CPM, Critical Path Method) 여러 작업의 수행 순서가 얽혀 있는 프로젝트의 일정을 계산하는 기법 모든 자원 제약사항을 배제한 상태로 프로젝트의 시작과 끝을 나타내는 노드(Node)와 노드 간의 연결을 통해 공정을 계산하기 위한 액티비티(Activity) 표기법..
[CS BASIC] COCOMO, 자료흐름도(DFD), 자료 사전(DD), 코드 설계(Code Design) 개요 지난 포스팅에서는 소프트웨어의 모델(Model)에 대해서 알아보고, 이러한 모델을 효과적으로 만들기 위한 모델링 기법과 코드 설계에 대해서 알아보았습니다. 소프트웨어 공학(Software Egineering)에서 모델링(Modeling)은 고객이 요청한 요구사항을 만족하는 소프트웨어를 제공하기 위하여, 소프트웨어의 내부적인 구조, 동적인 행위 등을 만들고 분석, 검증하는 과정을 통해 만들어진 모든 산출물을 총칭하는 개념입니다. 요약하자면, 주어진 요구사항으로 부터 앞으로 어떻게 소프트웨어를 개발할지 청사진을 그려가는 과정이라고 할 수 있습니다. 소프트웨어 모델링에 대한 자세한 설명은 아래의 포스팅을 참고하시면 좋을 것 같습니다. https://1-hee.tistory.com/55 [CS BASIC]..
[CS BASIC] 모델(Model)과 UML, 다이어그램(Diagram) 개요 오늘은 소프트웨어의 모델링(Modeling)에 사용하는 통합 모델링 언어(UML, Unified Modeling Language)와 다양한 다이어그램(Diagram)에 대해서 알아보도록 하겠습니다. 소프트웨에서 모델(Model)이란 요구사항을 이해하기 쉽도록 현실의 상황을 단순화하여 개념적으로 표현한 것입니다. 모델(Model)은 문제가 발생하는 상황에 대하여 원인을 진단하고, 이해도를 높여주어 해결 방안을 모색할 수 있도록 도움을 줍니다. 따라서, 소프트웨어를 개발하기 위해 요구사항을 분석할 때에 핵심이라고 할 수 있습니다. 모델은 개발 대상의 종류, 범위, 역할 등에 따라 고유한 도메인(Domain)으로 분류할 수 있는데, 이렇게 특정한 목적을 위해 설계된 모델이 고유한 분야를 가지면서 다른 모..
[CS BASIC] 소프트웨어의 디자인 패턴 개요 오늘은 소프트웨어 개발에 사용 되는 다양한 디자인 패턴(design patterns)에 대해서 알아보도록 하겠습니다. 소프트웨어는 다양한 모듈과 함수, 프로퍼티, 객체 지향 프로그래밍에서는 객체 들 까지 서로 상호작용하여 하나의 기능을 제공하게 됩니다. 이러한 소프트웨어는 개발자가 어떻게 그 프로그램을 설계하고 개발 했는지에 따라서 종류를 구분할 수 있는데요. 정말 신기하게도 지구상에 존재하는 국적, 인종, 나라 별로 다양한 배경에서 프로그래밍을 하는 개발자라도 큰 틀에서 보면 그들이 만든 소프트웨어 모듈의 구조와 설계한 방식은 비슷한 경향성을 띄게 된다고 합니다. 그리고 이러한 소프트웨어가 설계된 방식, 사용 방법, 모듈의 구조 등을 종합적으로 평가하여 분석해보면 몇 가지 비슷한 경향성을 갖는 종..
[CS BASIC] 모듈(Module)과 모듈 평가 기준, 소프트웨어 아키텍처 뷰와 프레임워크 개요 오늘은 소프트웨어의 모듈(Module)에 대해서 알아보고, 모듈을 평가하는 기준, 그리고 소프트웨어 아키텍처 뷰와 프레임워크에 대해서 알아보도록 하겠습니다. 만일 여러분이 개발자가 되어 프로그램을 하나 만들어야 하는데, 그 프로그램을 오로지 하나의 파일로 작성하도록 요구 받았다면 어떨까요? 요구사항 명세서에 C언어로 개발해야 하며, 프로그램의 모든 코드는 메인 함수를 벗어날 수 없고 모든 변수와 기능은 메인 함수의 스코프 안에서 모두 이루어져야 한다면요? 자바(Java)를 예로 들자면, 하나의 .java 파일에서 벗어날 수 없고 궁극적으로는 하나의 클래스 파일 안에서 모든 기능을 구현해야 한다면 어떨까요? 잠시 상상만 하더라도 정말 쉽지 않은 프로그래밍이 될 것 같습니다. 설령 실제로 그러한 프로그..
[CS BASIC] 소프트웨어 비즈니스 계획과 연속성 관리 개요 오늘은 소프트웨어의 비즈니스 계획과 연속성 관리에서 사용되는 다양한 용어와 개념에 대해서 알아보도록 하겠습니다. 좋은 소프트웨어를 만들기 위해서는 잘 짜여진 계획은 꼭 필요하고, '계획'이라는 설계도를 잘 만들었따면 실재하는 제품인 프로그램도 잘 나오기 마련이겠죠. 오늘은 이처럼 소프트웨어 개발에서 사용되는 다양한 비즈니스 계획 용어와 개념에 대해서 살펴보도록 하겠습니다. 비즈니스 연속성 계획 비즈니스 연속성 계획(BCP)조직이 심각한 운영 중단 사태를 예방하고, 해당 사태가 발생했을 때 신속하게 회복할 수 있는 능력을 확보하기 위해 마련하는 상세한 전략과 일련의 시스템 BCP(Business Continuity Planning) 재난 및 재해 상황을 대비하여 기업의 비즈니스 연속성을 유지하기 위한..
[CS BASIC] 웹(Web)과 웹 애플리케이션(Web Application) 개요 오늘은 현대 사회에서 가장 많이 사용하는 웹(Web)과 웹 어플리케이션(Web Application)에 대해서 알아보도록 하겠습니다. 이번 포스팅은 크게 웹의 등장 배경과 정의를 소개하고, 언제 어디서나 웹 사이트를 사용할 수 있게 해주는 웹과 관련된 다양한 서버 등에 대해 소개하도록 하겠습니다. 웹(web)이란 무엇인가? 우리가 통상적으로 사용하는 단어인 웹(Web)은 월드 와이드 웹(World Wide Web)의 약자로 인터넷에 연결된 컴퓨터를 통해 사람들이 정보를 공유할수 있는 정보의 공간을 일컫는 말입니다. 즉, 웹은 정보의 ‘공간’이며 이러한 공간을 연결하기 위해 인터넷(Internet)이라는 기술이 사용 되는 것입니다. *인터넷(Internet)이란? : 개인, 학교, 기업, 정부 네트워..
[CS BASIC] 스마트폰에는 어떤 소프트웨어가 있을까 개요 오늘은 스마트폰에 있는 다양한 소프트웨어에 대해서 알아보도록 하겠습니다. 금번 포스팅을 작성하게 된 계기는 스마트폰에 있는 다양한 소프트웨어에 대해서 찾다보니 스마트폰 하나에 존재하는 다양한 종류의 소프트웨어에 대해서 정리해보면 좋겠다고 생각이 들었습니다. 저는 노모포비아는 아닐지 의심될 정도로 스마트폰을 자주 사용하는 것 같은데요. 오늘날 현대 사회에서는 신분증 다음으로 자기 자신임을 증명하는 신분증의 역할도 수행하는 만큼 스마트폰 없는 일상은 정말 불편할 것 같으면서도, 정작 스마트폰에 어떤 소프트웨어가 있는지는 크게 관심을 갖지 않았던거 같아요. 그래서 오늘은 깊고 자세한 내용까진 아니지만, 스마트폰의 핵심이라 할 수 있는 모바일 OS를 중심으로 해서 어떤 소프트웨어가 스마트폰에 존재하는지 ..