본문 바로가기

CS BASIC

(45)
[CS BASIC] 시스템 인터페이스와 인터페이스 대상 식별 시스템 아키텍처 요구사항 하드웨어 소프트웨어를 모두 포함하는 전체 시스템에 대한 논리적 기능 체계 그리고 그것을 실현하기 위한 구성 방식, 시스템 전체의 최적화를 목표로 한다. 요구사항과 시스템의 전체 생명주기를 고려한다. 시스템의 구성, 동작 원리를 정확하게 표현해야 하며 각 컴포넌트에 대한 설계, 구현을 지원하는 수준으로 자세히 기술한다. 각 컴포넌트 사이의 상호작용, 외부 환경과의 관계를 기술한다. 시스템 인터페이스 식별 개발 대상과 시스템 연계 시스템 사이의 인터페이스를 식별하는 것이다. 시스템의 업무 정의서, 시스템 아키텍처 정의서, 유스케이스 정의서 등을 통하여 송신, 수신, 중계 시스템을 식별한다. 인터페이스 요구명세서, 인터페이스 요구사항 목록을 기반으로 개발 대상과 시스템과 연계된 내/외..
[CS BASIC] HTTP, HTTPS, HTTP Method 1. HTTP란? HTTP(Hypertext Transfer Protocol)는 클라이언트와 서버 간 통신을 위한 통신 규칙 세트 또는 프로토콜 1.1. 프로토콜(Protocol) 이란? 둘 이상의 통신개체간에 교환되는 메세지 포멧과 순서뿐 아니라, 메세지의 송수신과 이벤트에 따른 행동들을 정의한다. 여러 계층으로 나눠진 네트워크 구조에서 동일 계층에서 사용하는 표준화된 통신 규약으로,네트워크 기능을 효율적으로 발휘하기 위한 협정 1.1.1. 프로토콜의 주요기능 단편화와 재합성 캡슐화 주소지정, 순서지정, 흐름제어 연결제어, 오류제어, 동기화, 다중화 1.2. HTTP의 기본 구조 ① 시작 라인 (Start line) 기본적으로 HTTP 버젼에 대한 정보를 가지고 있으며, Response인지 Reques..
[CS BASIC] 디자인 패턴과 GoF(Gang of Four) 디자인 패턴(Design Pattern)이란? 각 모듈의 세분화된 역할이나 모듈들 간의 인터페이스와 같은 코드를 작성하는 수준의 세부적인 구현 방안을 설계할 때 참조할 수 있는 전형적인 해결 방식 자주 사용하는 설계 형태를 정형화하여 유형별로 설계 템플릿을 만들어 두고 소프트웨어 개발 중 나타나는 과제를 해결하기 위한 방법 중 한 가지다. 다양한 응용 소프트웨어 시스템들을 개발할 때 서로 간에 공통되는 설계 문제가 존재하는 데, 각 해결책 사이에도 공통점이 있으며 이러한 유사점을 패턴이라 한다. 개발자 간 원활한 의사소통, 소프트웨어 구조 파악 용이, 설계 변경에 대한 유연한 대처, 개발의 효율성, 유지보수성, 운용성 등 소프트웨어 품질 향상에 도움을 준다. 객체 지향 프로그래밍 설계 시 유사한 상황에서..
[CS BASIC] 소프트웨어 아키텍처 디자인 패턴(Software Architecture Design Pattern) 소프트웨어의 아키텍처(Architecture)란? 외부에서 인식할 수 있는 특성이 담긴 소프트웨어의 골격이 되는 기본 구조로 볼수 있다. 데이터 중심 아키텍처는 공유 데이터저장소를 통해 접근자 간의 통신이 이루어지므로 각 접근자의 수정과 확장이 용이하다. 이해 관계자들의 품질 요구사항을 반영하여 품질 속성을 결정한다. 소프트웨어 아키텍처 패턴의 장점 개발 시간의 단축 고품질 소프트웨어 안정적 개발 가능 개발 단계 관계자 간 의사소통이 간편함 시스템 구조 이해도가 높아 유지보수에 유리함 시스템 아키텍처의 종류 계층화 패턴 (Layered pattern) | OSI 참조 모델 등 모듈들로 응집된 계층 단위로 SW를 구성. 계층간에 사용 가능의 관계로 표현 n-티어 아키텍처 패턴이라고도 불림. 구조화된 프로그..
[CS BASIC] 소프트웨어 아키텍처 (Software Architecture) 소프트웨어 아키텍처란? 요구사항을 기반으로 개발 대상 소프트웨어의 기본 틀(뼈대)를 만드는 것이다. 다수의 이해관계자가 참여하는 복잡한 개발에서 상호이해, 타협, 의사소통을 체계적으로 접근하기 위한 것이다. 전체 시스템의 전반적인 구조를 체계적으로 설계 하는 것이다. 소프트웨어를 구성하는 컴포넌트들의 상호작용 및 관계, 각각의 특성을 기반으로 컴포넌트들이 상호 유기적으로 결합하는 소프트웨어의 여러 가지 원칙들의 집합이다. 설계 및 구현을 위한 구조적/비구조적인 틀(Frame)을 제공한다. 소프트웨어 아키텍처 시스템의 품질 속성 ① 성능, ② 사용 운용성, ③ 보안성, ④ 시험 용이성, ⑤ 가용성, ⑥ 변경 용이성, ⑦ 사용성 소프트웨어 아키텍처 특징 ① 간략성 : 이해하고 추론할 수 있을 정도 간결해야 ..
[CS BASIC] 모듈(Module) 모듈(Module)이란? 전체 프로그램에서 어떠한 기능을 수행할 수 있는 실행 코드를 의미 자체적으로 컴파일 가능, 다른 프로그램에서 재사용 가능 시스템 개발 시 기관고 노동력을 절감할 수 있다. 모듈의 독립성은 결합도와 응집도에 의해 측정된다. 서브루틴 = 서브 시스템 = 작업 단위 변수의 선언을 효율적으로 할 수 있어 기억 장치를 유용하게 사용할 수 있다. 모듈마다 사용할 변수를 정의하지 않고 상속하여 사용할 수 있다. 각 모듈의 기능이 서로 다른 모듈과의 과도한 상호작용을 회피함으로서 이루어지는 것을 기능적 독립성이라고 한다. 여러 기능 및 프로그램에서 공통으로 사용할 수 있는 모듈(예-날짜 처리를 위한 유틸리티 모듈 등) 결합도 서로다른 두 모듈간의 상호 의존도로서 두 모듈간의 기능적인 연광 정도..
[CS BASIC] 사용자 인터페이스(UI, User Interface)의 설계 사용자 인터페이스(UI, User Interface)의 설계 단계 ① 문제 정의 : 시스템의 목적과 해결해야할 문제를 정의한다. ② 사용자 모델 정의 : 사용자 특성을 결정하고, 소프트웨 작업 지식 정도에 따라 초보자, 중급자, 숙련자로 구분한다. ③ 작업 분석 : 사용자의 특징을 세분화하고 수행되어야 할 작업을 정의한다. ④ 컴퓨터 오브젝트 및 기능 정의 : 작업 분석을 통하여 어떤 사용자 인터페이스에 표현할지를 정의한다. ⑤ 사용자 인터페이스 정의 : 모니터, 마우스, 키보드, 터치스크린 등 물리적 입-출력 장치 등 상호작용을 위한 오브젝트를 통해 시스템 상태를 명확히 한다. ⑥ 디자인 평가 : 사용자 능력, 지식에 적합한가? 사용자가 사용하기 편리한가? 등의 평가를 의미하며, 사용성 공학을 통하여 ..
[CS BASIC] 사용자 인터페이스(UI, User Interface)와 표준 및 지침 사용자 인터페이스(UI, UserInterface)란? 사람(사용자)과 사물 또는 시스템, 기계, 컴퓨터 프로그램 등 사이에서 의사소통을 할 수 있도록 일시적 또는 영구적인 접근을 목적으로 만들어진 물리적, 가상적 매개체를 뜻한다. 인간과 컴퓨터 사이의 상호작용(HCI)에 필요한 화상, 문자, 소리, 수단을 의미 사용자 인터페이스는 사람들이 컴퓨터와 상호 작용하는 시스템이다. 사용자 인터페이스는 물리적인 하드웨어와 논리적인 소프트웨어 요소를 포함한다. 사용자 인터페이스는 크게 다음과 같은 수단을 사용한다. ① 입력 : 사용자가 시스템을 조작할 수 있게 한다. ② 출력 : 시스템이 사용자가 이용한 것에 대한 결과를 표시한다. ③ 삭제 : 시스템이 사용자가 잘못 조작한 것을 삭제한다. 사용자 인터페이스를 판..