TODAY TOTAL
licence/정보처리기사_필기 (8)
[정보처리기사] 8. 제품 소프트웨어 패키징

애플리케이션 패키징(Application Packaging)개념

 

개발이 완료된 제품 소프트웨어를 배포,설치할 수 있도록 고객에 전달

설치와 사용에 필요한 제반 내용을 포함하는 매뉴얼을 작성하는 활동이다.

 

 

패키징 특징

 

버전관리 및 릴리즈 노트를 통해 지속적으로 관리한다.

 

 

사용자 관점에서의 패키징 고려사항

 

경정의

UI제공

리서비스

패키징의

환유관병 -> 환관 유비를 체포하기 위하여 관병이 출동했다.

 

 

애플리케이션 배포 도구의 기술요소

 

호화

관리

별 기술

작권 표현

호화 파일 생성

책관리

랙 방지

 

암키식저 파정크인

 

:: 역공학 : 기존 개발된 시스템의 기술적인 원리를

             시스템의 코드나 데이터등의 구조분석을

             통해 도출해 내는 작업이다.

 

애플리케이션 배포 도구 활용 시 고려사항

 

호화/보안

기종 연동

잡성 및 비효율성 문제

적합 암호화 알고리즘 적용

 

암이복최 ->암표를 팔다 만난 이복형제 최씨

 

 

 

DRM(Digital Rights Management)의 개념

 

정보보호 기술 중 하나로 암호화 기술을 이용해서

비허가 사용자로부터 디지털 컨텐츠를 보호하게

하는 기술을 말한다.

 

 

DRM은 콘텐츠 제공자와 콘텐츠 소비자, 클리어링 하우스로 구성된다.

  Comments,     Trackbacks
[정보처리기사] 7. 인터페이스 설계 (간단하게)

 

 

요구공학의 개념

 

사용자 요구사항에 대한 도출,분석,명세, 확인 및 검증하는 구조화된 활동이다.

 

 

요구공학의 목적은 의사소통의 수단 제공, 공통된 이해를 설정, 불필요한 비용을 절감, 변경 추적을 가능하게 하는 것

 

 

요구사항 확인 및 검증 단계의 주요 기법

 

정형 기술 검통 활용

동료검토 명세서 작성자가 설명하고 이해관계자가 설명을 들으면 결함을 발견하는 형태로 진행
워크스루 검토자료를 회의 전에 배포해서 사전검토한 후 짦은 시간 동안 회의를 진행하는 형태로 리뷰를 통해 오류를 검출하고 문서화
인스펙션 다른 전문가 또는 팀이 검사하여 오류를 찾아내는 공식적 검토 방법

 

 

미들웨어 솔루션의 개념 

 

컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있도록 해주고 이에 대한 관리를 도와주는 소프트웨어이다.

 

구분 설명
DB 미들웨어 애플리케이션과 DB간에 통신을 원할하게
원격 프로시저 호출(RPC) 원격 프로시저를 로컬 프로시저처럼 호출
메시지 지향 미들웨어(MOM) 비동기형 메시지 전달 방식 미들웨어
트랜젝션 처리 모니터(TP) 트랙젝션을 처리, 감시하는 미들웨어
주로 사용자가 많고, 안정적, 즉각 처리 가능
레거시웨어(기존의 시스템) 새로운 업데이트된 기능을 덧붙이고자 할때 사용
객체 기반 미들웨어(ORB) 코바(CORBA) 표준 스펙을 구현한 객체지향 미들웨어
WAS(Web Application Server) 다른 이기종 시스템과의 애플리케이션을 연동하는 미들웨어
웹 서버 기능뿐만 아니라 자바, 컴포넌트 구현 가능
  Comments,     Trackbacks
[정보처리기사] 6. 객체지향 설계 (★★)

객체지향(Object Oriented)의 개념

 

객체지향은 실세계의 개체를 속성과 메서드가 결합한 형태의 객체로 표현하는 기법이다.

 

구성요소 설명
클래스(Class) 객체지향 프로그램에서 데이터를 추상화하는 단위
객체(Object) 클래스에 정의된 행위에 대한 정의를 공유함
메서드(Method) 클래스로부터 생성된 객체를 사용하는 방법
메시지(Message) 객체 간 상호작용을 하기 위한 수단,객체에서 객체로 전달
인스턴스(Instance) 객체지향 기법에서 클래스에 속한 각각의 객체
속성(Property) 클래스에 속한 객체들이 가지고 있는 데이터 값 단위별 정의
 

객체지향 설계 원칙(SOLID)

 

원칙  설명
단일 책임의 원칙 하나의 클래스는 하나의 목적을 위해서 생성
개방 폐쇄의 원칙 소프트웨어의 구성요소는 확장에는 열려 있고, 변경에는 닫혀 있어야 한다.
리스코프 치환의 원칙 서브타입은 어디서나 자신의 기반 타입으로 교체 할수 있어야 한다.
인터페이스 분리의 원칙 한 클래스는 자신이 사용하지 않는 인터페이스는 구현 하지 말아야 한다.
의존성 역전의 원칙 실제 사용 관계는 바뀌지 않고, 관계를 최대한 느슨하게 만든다.

 

객체지향 방법론 종류 (만든사람 - 설명)

 

야콥슨 - 유스케이스를 모든 모델의 근간으로 활용

 

럼바우 - 객체 모델링 ->동적 모델링 -> 기능 모델링_ 순서로 모델링 함 (객동기)

 

            (객체 모델링 - 정적 구조, 동적 모델링 - 제어 흐름, 기능 모델링 - 변화 과정)

 

부치 - 설계 부분만 존재

 

 

디자인 패턴의 개념

 

디자인 패턴은 소프트웨어 설계에서 공통으로 발생하는 문제에 대해 자주 쓰이는 설계 방법을 정리한 패턴

 

 

디자인 패턴 구성요소

 

패턴의 이름 - 문제 및 배경 - 솔루션 - 사례 - 결과 - 샘플 코드

(패문솔사결생)

 

 

디자인 패턴 유형

 

목적 - 생성 = 캡슐화를 수행하는 패턴

       - 구조 = 클래스나 객체의 조합을 다루는 패턴

       - 행위 = 역할 분담을 다루는 패턴

(생구행)

 

범위 - 클래스 = 컴파일 타입에 정적으로 결졍

       - 객체   = 런타임에 동적으로 결정

 

 

디자인 패턴 종류

 

 

구분 패턴 설명(엄청 간단하게)
생성
패턴
Builder 생성 단계를 캡슐화
Protoype 새 개체를 생성
Factory Method 객체를 생성하기 위한
Abstract Factory 생성군들을 하나에 모아놓고
Singleton 유일한 하나의 인스턴스를 보장하도록
구조
패턴
Brige 추상과 구현을 분리
Decorator 기능을 확장
Facade 느슨한 결합
Flyweight 대량의 작은 객체들을 공유
Proxy 대리인이 대신 그일을
Composite 개별객체와 복합 객체
Adapter 클래스를 함께 사용
행위
패턴
Interpreter 언어 규칙 클래스
Template Method 알고리즘 골격
Chain of Responsibilty 객체들끼리 연결고리
Command 요청 자체를 캡슐화
lterator 내부 표현 x 순회하는 패턴
Mediator 객체 간 상호작용을
Memento 미리 저장해 두었다가 복구
Observer 자동 업데이트하는
State 상태에 따라서 행위를 변경
Strategy 알고리즘 대체가 가능하도록
Visitor 별도의 클래스에 새롭게 정의

 

 

디자인 패턴의 장단점

 

장점

- 소스 코드 변경을 최소화할 수 있게 해줌

 

- 재사용을 통한 개발 시간 단축 가능

 

- 소프트웨어 구조 파악 용이

 

- 객체지향 설계 및 구현의 생산성을 높이는 데 적합

 

단점

-객체지향 설계/구현 위주로 사용

 

- 초기 투자 비용의 부담

 

  Comments,     Trackbacks
[정보처리기사] 5. 소프트웨어 아키텍처 (★★★)

 

1. 소프트웨어 아키텍처

 

 

소프트웨어 아키텍쳐는 소프트웨어의 골격이 되는 기본 구조이자, 소프트웨어를 구성하는 요소들 간의 관계를

표현하는 시스템의 구조는 또는 구조체이다.

 

 

  • 모듈화(Modularity)

모듈화란 관리가 용이하게 모듈 단위로 나누는 것

 

  • 추상화(Abstraction)

불필요한 부분을 생략, 필요한 부분을 강조하여 모델화 하는 것

 

  • 정보 은닉(Information Hiding)

정보은닉은 감기약 캡슐에 어떤 재료가 들어 있는지는 몰라도

감기 결렸을때 먹는 약이라는 것만 알고 복용하는 것을 의미

 

 

@@Information Hiding,Abstraction,Modularity,Encapsulation(캡슐화)

시험에서 영어로 나올때가 있어서 영어도 외우자

 

  • 소프트웨어 아키텍처의 품질 속성

 

품질 속성으로는 성능,보안,가용성,기능성,사용성이 있다.

(성능,보안은 말 그대로니깐 넘어갈께요)

 

가용성 : 장애 없이 서비스를 제공

기능성 : 사용자가 요구한 기능을 만족스럽게 구현

사용성 : 사용자가 헤매지 않게 명확하고 편리하게 구현

 

 2. 아키텍처 패턴

 

아키텍처 패턴의 장점

 

  • 시행착오를 줄여 개발시간 단축
  • 공통된 아키텍처 공유할 수 있어 의사소통 간편
  • 아키텍처 패턴으로 레이어 패턴, 클라이언트-서버 패턴, 파이프-필터 패턴, 모델-뷰-컨트롤러 패턴

레이어 패턴 : 계층으로 구분하여 구성, OSI 참조 모델

 

클라이언트-서버 패턴 : 요청과 응답을 받기 위해 동기화되는 경우를 제외하고는 서로 독립적

 

파이프-필터 패턴 : 대포적으로 UNIX의 쉘이 있다.

                            데이터 변환, 버퍼링, 동기화 등에 주료 사용

 

모델 - 뷰 - 컨트롤러 패턴 

 

 

3. 객체 지향

 

객체 지향의 주요 구성 요소와 개념에는

객체(Object), 클래스(Class), 캡슐화(Encapsulation), 상속(Inheritance)

, 다형성(Polymorphism)이 있다.

 

객체는 데이터와 데이터를 처리하는 함수를 묶어 놓은 하나의 소프트웨어 모듈

클래스는 공통된 속성과 연산을 갖는 객체의 집합

 

캡슐화(Encapsulation)

데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는 것을 의미한다.

캡슐화된 객체들은 재사용이 용이한다.

인터페이스가 단순해지고, 객체 간의 결합도가 낮아진다.

 

상속(Inheritance)

부모클래스의 속성,연상을 자식클래스가 물려받는 것.

 

다형성(Polymorphism)

 

4. 모듈(Module)

 

 

결합도(Coupling)

 

모듈 간에 상호 의존하는 정도 또는 두 모듈 사이의 연관 관계를 의미

 

★★★결합도순서는 거의 필수로 나온다 ★★★

 

자료 결합도 스탬프 결합도 제어 결합도 외부 결합도 공통 결합도 내용 결합도

<- 결합도가 약함                                                                                                                                              결합도가 강함->

 

자스제외공내 (약한순으로)

 

응집도(Cohesion)

정보은닉개념을 확장한 것으로 즉, 모듈이 독립적인 기능으로 정의 되어있는 정도를 의미

 

기능적 응집도 순차적 응집도 교환적 응집도 절차적 응집도 시간적 응집도 논리적 응집도 우연적 응집도

<- 응집도 강함                                                                                                                                              응집도 약함->

 

우논시절교순기(약한순으로)

 

ex) 우논시에 친구와 절교순기가 살고 있다.(전 이렇게 외웠어요ㅋㅋ)

 

팬인(Fan-in) / 팬아웃(Fan-out)

 

팬인은 어떤 모듈을 제어하는 모듈의 수를 나타낸다.

팬아웃은 어떤 모듈에 의해 제어되는 모듈의 수를 나타낸다.

 

ex) G의 팬인은 BCD (그 이유는 어떤모듈에 의해 제어당하고 있는지가 팬인

팬아웃은 G가 제어가하고 있는 모듈 I,J)

  Comments,     Trackbacks
[정보처리기사] 4.사용자 인터페이스 (UI)

 

1. 사용자 인터페이스(User Interface)

 

 

사용자 인터페이스는 사용자와 시스템 간의 상호작용이 위험하게 이뤄지도록 도와주는

장치나 소프트웨어를 의미한다.

 

  • 사용자 인터페이스 특징

(많은 특징이 있지만, 간략하게)

 

  1. 변경이 제일 많이 생긴다.(사용자의 만족도 영향을 제일 받는 곳 UI)
  2. 수행결과의 오류를 줄인다.
  3. 정보 제공자와 공급자 간의 매개 역할을 수행한다.
  4. 소프트웨어 아키텍쳐를 반드시 숙지해야한다.

(소프트웨어 아키텍쳐는 초기설계라고도 불리고 기본틀을 만드는 것, 밑그림이라고 생각하면 된다)

 

  • 사용자 인터페이스의 기본 원칙
  1. 직관성 : 누구나 쉽게 이해
  2. 유효성 : 목적을 정확,완벽 달성
  3. 학습성 : 누구나 쉽게 배우고 익힘
  4. 유연성 : 요구사항을 최대한 수용, 실수 최소
2. UI 설계 도구

 

 

UI의 화면 구조나 화면 배치 설계할때 쓰는 도구

종류로는 (와이어프레임, 목업, 스토리보드,프로토타입, 유스케이스)

 

  • 와이어프레임(Wireframe)

기획 단계 초기에 제작, 뼈대를 설계하는 단계

 

와이어프레임 툴로는

(손그림,파워포인트, 키노트,스케치,일러스트,포토샵)

 

  • 목업(Mockup)

실제화면과 유사하게 만든 정적인 형태의 모형

 

목업 툴로는

(파워목업,발사믹 목업)

 

  • 스토리보드(Story Board)

와이어프레임에 설명,페이지,이동흐름 추가한 모형

 

스토리보드 툴로는

(파워포인트, 키노트, 스케치,Axure)

 

  • 프로토타입(Prototype)

테스트가 가능한 동적인 형태의 모형

프로토타입 툴로는

(HTML/CSS, Axure,Flinto,네이버 프로토나우,카카오 오븐)

 

여기서, 목업은 툴에 목업이 들어있어 헷갈리지 않지만,
생소한 Axure은 스토리,프로토타입에 있다는거 메모!

 

  • 유스케이스(Use Case)

사용자가 원하는 목표를 달성하기 위해 수행할 내용을 기술 함

 

(사용자 측면에서 기술한다는 것만 기억)

 

 

3. UI 프로토타입 제작 및 검토

 

장점 단점
사용자를 설득,이해시키기 쉽다 요구사항으로 인해 작업 시간 증가,필요이상의 자원 소모
사전에 오류를 발견할 수 있다. 프로토타이밍으로 인해 중요한 작업이 생략 가능

 

  • UI 시나리오 문서로 인한 기대 효과
  1. 요구사항,의사소통에 대한 오류 감소
  2. 재작업이 감소, 혼란 최소화
  3. 불필요한 기능 최소화
  4. 개발 비용 절감
  5. 개발 속도 향상

ex.) 다음 중 UI 시나리오 문서에 대한 설명으로 틀린 것은

 

X ( 해당 시스템의 기능에 초점을 맞춰 작성한다)

--> UI 시나리오 문서는 시스템의 기능보단 사용자의 테스크에 초점에 맞춰 있음)

 

 

  Comments,     Trackbacks
[정보처리기사] 3. UML(Unified Modeling Language)

 

1. UML(통합 모델링 언어)

 

시스템 개발자와 고객 또는 개발자 상호간의 의사소통이 원활하게 이루어질수있도록 

표준화한 대표적인 객체 지향적 언어

 

 

사물(Things)

 

ex.) UML의 구성 요소 중 사물에 속하지 않는 것은?

이렇게 문제가 나온다.

 

  • 구조 사물 (Structural Things)
  • 행동 사물 (Behavioral Things)
  • 그룹 사물 (Grouping Things)
  • 주해 사물 (Annotation Things)

 

관계(Relationships)

 

사물과 사물 사이의 연관성을 표현하는 것

 

정처기 3번째인데 문제가 다 일반화 관계만 나온거 같다.

다른 연관,집합,포함,의존가 있는데 대부분 이름만 들어도 대충 알 수 있는거라 뺏다.(귀찮으..ㄴ거 절대아님)

  • 일반화 관계 

하나의 사물이 다른 사물에 비해 더 일반 적인지 구체적인지를 표현

 

 

ex)아메리카노와 에스프레소는 커피이다. 다시 말하면, 커피에는 아메리카노와 에스프레소가 있다.

다이어그램(Diagram)

사물과 관계를 도형으로 표현한 것

 

  • 구조적 다이어그램
  1. 클래스 다이어그램 : 클래스와 클래스가 가지는 속성, 클래스 사이의 관계를 표현
  2. 객체 다이어그램 : 클래스에 속한 사물들 , 객체와 객체 사이의 관계로 표현
  3. 컴포넌트 다이어그램 : 구현 단계에서 사용되는 다이어그램
  4. 배치 다이어그램 : 물리적 요소들의 위치를 표현, 구현단계에서 사용 ( 컴포넌트와 차이라면 물리적 요소!)
  5. 복합체 구조 다이어그램
  6. 패키지 다이어그램
  • 행위 다이어그램
  1. 유스케이스 다이어그램
  2. 시퀀스 다이어그램 : 상호 작용하는 시스템이나 객체들이 주고 받는 메세지 표현
  3. 커뮤니케이션 다이어그램
  4. 상태 다이어그램 : 상호작용에 따라 상태가 어떻게 변화하는지
  5. 활동 다이어그램 : 처리의 흐름을 순서에 따라 변화한다.
  6. 상호작용 개요 다이어그램
  7. 타이밍 다이어그램

 

  Comments,     Trackbacks
[정보처리기사] 2. 스크럼(Scrum), XP(eXtreme Programming)
1. 스크럼 기법

스크럼은 럭비에서 반칙으로 경기가 중단된 경우 양 팀의 선수들이 럭비공을 가운데 두고 상대팀을 밀치기 위해

서로 대치해 있는 대형을 말한다.

 

  • 스크럼 팀은 제품책임자, 스크럼 마스터, 개발팀으로 구성
  • 제품 책임자(PO)  :  요구사항을 책임지고, 요구사항이 담긴 백로그를 작성, 우선순위 갱신
  • 스크럼 마스터(SM) : 객관적인 시간에서 조언, 일일 스크럼 회의 주관, 진행 사항을 점검 
  • 개발팀(DT) : 제품 책임자와 스크럼 마스터를 제외한 모든 팀원

 

스크럼 개발 과정 순서

 

스프린트 계획 회의 -> 스프린트 -> 일일 스크림 회의 -> 스프린트 검토 회의 -> 스프린트 회고 

 

2. XP 기법

 

XP는 수시로 발생하는 고객의 요구사항에 유연하게 대응하기 위해 고객의 참여와 개발 과정의 반복을 극대화하여 개발 생산성을 향상시키는 방법이다.

 

  • 짦고 반복적인 개발주기
  • 단순한 설계
  • 고객의 적극적인 참여로 빠르게 개발
  • XP의 5가지 핵심 가치
  1. 의사소통
  2. 단순성
  3. 용기
  4. 존중
  5. 피드백

  (의단용존피)

 

사용자 스토리 -> 릴리즈 계획 수립 -> 스파이크 -> 이터네이션 -> 승인 검사 -> 소규모 릴리즈
  Comments,     Trackbacks
[정보처리기사] 1. 소프트웨어 생명주기

 

소프트웨어 주기 -> 소프트웨어 개발단계와 각 단계별 주요활동 그리고 활동의 결과에 대한 산출물로 표현

(=소프트웨어 수명 주기)

 

 

  • 폭포수 모형(Waterfall)
  • 프로토타입 모형(Prototype Model, 원형모형)
  • 나선형 모형(Spiral Model, 점직적모형)
  • 애자일 모형(Agile Model)

 

폭포수 모형

말 그대로 폭포 흘러가면 되돌릴 수 없다고 생각

오랫동안, 폭넓게 사용된 전통적,고전적인 생명주기모형 매뉴얼을 작성해야 한다.

 

타당성 검토 -> 계획 -> 요구분석 -> 설계 -> 구현(코딩) -> 시험 -> 유지보수

 

프로토타입 모형

프로토타입 = 시제품이라고 생각 그리고 인터페이스 중점

폭포수 모형 단점을 보안한 모형

 

 

나선형 모형

보헴이 제안 폭포수,프로토타입 장점에 위험분석기능을 추가한 모형

점진적 모형, 위험을 관리하고 최소화하는 것을 목적

 

 

계획 및 정의 -> 위험 분석 -> 공학적개발 -> 고객 평가

 

애자일 모형

고객과 소통에 초점을 맞춘 방법론

고객의 요구사항 변화에 유연하게 대응

짦은 개발주기 대응

 

 

애자일 방법론
프로세스와 도구보다는 개인과 상호작용에 더 가치를 둔다.
방대한 문서보다는 실행되는 SW에 더 가치를 둔다
계약협상보다는 고객과 협업에 더 가치를 둔다
계획을 따르기보다는 변화에 반응하는 것에 더 가치를 둔다

고객부터! 생각

 

폭포수 애자일
새로운 요구사항 반영 어려움 지속적으로 반영
계획,문서 고객
마지막에 모든 기능 테스트 반복되는 일정주기가 끝날때마다 테스트
  Comments,     Trackbacks