51. 객체지향기법의 접근 제한자
- JAVA 접근 제한자(접근 지정자)
- private : 클래스를 선언하고, 그 클래스를 구성하는 객체에 대해 외부에서는 사용이 불가, 해당 클래스에서만 접근이 가능
- public : 클래스를 선언하고, 그 클래스를 구성하는 객체에 대해 외부에서는 사용이 가능
- protected : 클래스를 선언하고, 그 클래스를 구성하는 객체에 대해 동일 패키지 내에서만 접근이 가능
- 접근 제한자 사용 효과
- JAVA : 정보은닉을 위해 다른 객체에게 자신의 정보를 숨기고 자신의 연산만을 통해 접근하도록 함
- 캡슐화된 클래스를 선언 시, 그 클래스를 구성하는 속성, 메소드에 대하여 private, public, protected 접근 제한자를 선언하여 정보 은닉을 실현
- 이를 통해 유지보수와 소프트웨어 확장 시 오류를 최소화할 수 있음
52. 유즈케이스 구현에 필요한 분석클래스
- 하나의 유즈케이스를 실현하기 위하여 3개 이상의 클래스가 역할 기준으로 도출되어야 함
- 유즈케이스 별로 실현에 필요한 클래스가 추적 가능해야 클래스 누락 여부를 확인할 수 있음
- 유즈케이스 별로 도출된 분석클래스들이 역할 기준으로 경계, 엔터티, 제어 클래스가 도출되어 스테레오 타입으로 표시되었는지 확인
- 분석 클래스의 종류
- 경계클래스와 엔터티 클래스 사이에 중간 역할
- 사용 사례의 초기에 생성되고 끝까지 존재하며 경계클래스로부터 정보를 받아 엔터티클래스에 전달1. 객체지향기법의 접근 제한자
- 엔터티 클래스
- 시스템에서 계속 추적해야 할 자료가 들어 있는 클래스
- 책 주문 정보는 데이터베이스에 계속 저장하고 취소하더라도 주문내역으로 저장할만한 자료이므로 엔터티클래스에 해당
- 고객, 주문 아이템에 관한 데이터 등도 영구적으로 시스템에서 기록되어야 할 자료이므로 엔터티클래스로 분류
- 경계 클래스
- 주로 시스템 외부의 액터와 상호작용하는 클래스로 사용자 인터페이스를 제어하는 역할
- 액터와 연결된 시스템 인터페이스를 나타내며 각 사용 사례에서 액터는 적어도 하나의 경계 클래스와 인터페이스
- 액터로부터 정보를 수집하여 엔터티 객체나 제어 객체가 사용할 수 있는 형태로 변경
- 제어 클래스
- 경계클래스와 엔터티 클래스 사이에 중간 역할
- 사용 차례의 초기에 생성되고 끝까지 존재하며 경계클래스로부터 정보를 받아 엔터티 클래스에 전달
53. 유즈케이스 구현에 필요한 분석클래스-경계 클래스
- 경계 클래스
- 주로 시스템 외부의 액터와 상호작용하는 클래스로 사용자 인터페이스를 제어하는 역할
- 액터와 연결된 시스템 인터페이스를 나타내며 각 사용 사례에서 액터는 적어도 하나의 경계 클래스와 인터페이스
- 액터로부터 정보를 수집하여 엔터티 객체나 제어 객체가 사용할 수 있는 형태로 변경
54. 유즈케이스 구현에 필요한 분석클래스-앤터티클래스
- 엔터티 클래스
- 시스템에서 계속 추적해야 할 자료가 들어 있는 클래스
- 책 주문 정보는 데이터베이스에 계속 저장하고 취소하더라도 주문내역으로 저장할만한 자료이므로 엔터티클래스에 해당
- 고객, 주문 아이템에 관한 데이터 등도 영구적으로 시스템에서 기록되어야 할 자료이므로 엔터티클래스로 분류
55. 애자일 방법론
- 어느 특정 개발 방법론은 가리키는 말은 아님
- 애자일 개발을 가능하게 해주는 다양한 방법론 전체
- 지속적인 요구사항의 분석, 반영을 통해 변화에 신속하게 대응하는 개발방법론
- 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 등장하게 된 방법론
- 애자일 방법론의 테스트는 잦은 개발-테스트 주기를 통해 많은 시간과 비용이 들어가기 전에 기능을 검증하게 됨
- 애자일 선언문 : 가치 있게 여기는 사항
- 공정과 도구보다 개인과 상호작용
- 포괄적인 문서보다 작동하는 소프트웨어
- 계약 협상보다 고객과의 협력
- 계획을 따르기보다 변화에 대응하는 가치
57. XP 방법론
- 의사소통 개선과 즉각적인 피드백에 의한 단순한 코딩으로 S/W 품질을 높이기 위한 방법
- 1~3주 반복주기 iteration
- 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존경
- 12개 실천항목
60. 애자일 방법론
- XP (eXtreme Programming)
- 의사소통 개선과 즉각적인 피드백에 의한 단순한 코딩으로 S/W 품질을 높이기 위한 방법
- 1~3주 반복주기 iteration
- 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존경
- 12개 실천항목
- SCRUM
- 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법론
- 30일마다 동작 가능한 제품을 제공하는 스프린트
- 백로그 : 제품과 프로젝트에 대한 요구사항
- 스프린트 : 30일 단위의 짧은 개발기간으로 분리하여 반복적 수행
- 스크럼미팅 : 매일 스크럼(15분 정도) 미팅으로 오늘과 내일 해야 할 일의 계획 수립
- 스크럼마스터 : 프로젝트 리더, 스크럼 수행 시 문제 인지 및 이를 해결하고 노력하는 사람
- Lean
- 린 시스템의 품질 기법을 소프트웨어 개발 프로세스에 적용하여 프로세스의 낭비 요소를 제거 후 결과를 측정, 성과를 분석하여 소프트웨어의 품질을 향상시키는 개발방법론
- 7가지 원칙 : 낭비 제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
- FDD (Feature Driven Development)
- 개발을 상품이나 서비스 단위가 아니라 신규 기능 단위로 하는 개발 방법론
- 기능별 개별적으로 수행해야 하는 구체적이고 짧은 단계의 작업
- 하나의 기능 개발을 위해 전체 팀에서 필요한 내용을 중재하고 전체 시스템의 흐름을 정의할 수 있는 아키텍트의 역할 필요
- 각 개발 컴포넌트별 코디네이션이 중요
- feature마다 2주정도의 반복개발 실시
- Peter Coad가 제창한 방법론
- UML을 이용한 설계 기법과도 밀접한 관련을 가짐
65. 요구사항
- 요구사항 추출 : 사용자들로부터 제시되는 추상적 요구에 대해 관련 정보를 식별하고 수집하여 구체적 요구사항으로 표현하는 활동
- 요구사항 분석 : 추출된 불완전하고 추상적인 요구사항들에 대해 충돌, 중복, 누락 등에 대한 분석을 통하여 완전성과 일관성을 가지고 참여자들 사이에 동의된 요구사항을 구성하는 활동
- 요구사항 검증 : 요구사항 명세서에 사용자의 요구가 올바르게 기술되었는지에 대해 검토하고 베이스라인으로 설정하는 활동
- 요구사항 변경 관리 : 요구사항의 베이스라인을 정하고 베이스라인과 다르게 될 경우 영향분석, 수용여부 의사 결정 수행
66. UML-액티비티 다이어그램의 노드 종류
- Action / Activity : 어떤 Action이나 Action의 집합으로 동사, 명사로 명명
- Object Node : 한 Activity 에서 다른 Activity로 이어지는 정보의 흐름을 나타냄
- Control Flow : 실행 순서를 나타내는 화살표
- Object Flow : Flow of Object
- Initial Node : Activity Diagram의 시작점, Action들의 시작점
- Final Node : Activity Diagram의 종료지점, Activity Flow들이 모두 끝나는 시점
- Decision Node : 분기점
- Merge Node : Decision Path들을 하나로 모으는 노드, Decision Node로 나눠진 Control flow를 다시 합침
- Fork Node : 평행적으로 수행되는 Flow를 나누는 노드
- Join Node : Fork Node로 나눠진 Control Flow를 다시 하나로 합치는 노드
67. UML의 종류
- 구조적 다이어그램
- class
- 시스템 내 클래스들의 정적 구조를 표현
- 클래스는 객체들의 집합으로 속성과 동작으로 구성
- object
- 클래스의 여러 객체 인스턴스를 나타내는 대신 실제 클래스를 사용
- 관계 있는 모든 인스턴스를 표현
- component
- 코드 컴포넌트에 바탕을 둔 코드의 물리적 구조 표현
- 컴포넌트는 논리적 클래스 혹은 클래스 자신의 구현에 대한 정보를 포함하고 실질적인 프로그램 작업에 사용
- depolyment
- 시스템 하드웨어와 소프트웨어 간의 물리적 구조를 표현
- 실질적인 컴퓨터와 디바이스 간의 관계를 표현하는데 이용
- 컴포넌트 사이의 종속성을 표현
- package UML 2.0
- 시스템 계층적인 구조 표현
- 클래스들로 이루어진 패키지와 그들 간의 의존 관계를 보여줌
- composite Structure UML 2.0
- 전체 클래스 안에 각 컴포넌트 클래스 표현
- 클래스 내부 구조 파악에 용이
- class
- 행위 다이어그램
- use case
- 사용자의 입장에서 본 시스템의 행동 표현
- 유즈케이스는 시스템의 기능적인 요구를 정의
- state
- 클래스의 객체가 가질 수 있는 모든 가능한 상태와 상태 간의 전이를 표현
- 진입조건, 탈출조건, 상태전이에 필요한 사건 등 자세한 사항이 기술
- 설계단계에서 클래스 객체의 동적인 행동 방식을 표현하는데 사용
- activity
- 행위의 순서적 흐름을 표시
- 순서도나 병렬적인 처리를 요하는 행위를 표현할 때 사용
- use case
- 상호작용 다이어그램
- sequence
- 객체와 객체 간의 상호작용을 메시지 흐름으로 표시
- 오브젝트 사이에 메시지를 보내는 시간, 순서를 보여주기 위해 사용
- communication
- 상호작용에 참여하는 객체, 컴포넌트 간의 관계를 명시적으로 표현
- interaction overview UML 2.0
- 활동 다이어그램과 시퀀스 다이어그램 혼합
- 상호작용에 대한 제어흐름을 표현
- timing UML 2.0
- 시간적 제약과 객체상태의 변화를 표현
- 인스턴스 간의 상태 전이와 상호작용을 시간 제약으로 표현
- sequence
68. 유즈케이스 다이어그램의 구성
- 시스템 System
- 만들고자 하는 프로그램을 나타냄
- 유즈케이스들을 둘러싼 사각형 틀로 시스템 명칭을 안쪽 상단에 자것ㅇ
- 액터 Actor
- 시스템의 외부에 있고 시스템과 상호작용을 하는 사람 (시스템의 기능을 사용하는 사람), 시스템 (시스템에 정보를 제공하는 또 다른 시스템)을 의미
- 원과 선을 조합하여 사람 모양으로 표현
- 액터명은 위나 아래에 표시하고 액터의 역할을 작성
- 유즈케이스 Use case
- 사용자 입장에서 바라본 시스템의 기능으로 시스템이 액터에게 제공해야 하는 기능
- 시스템의 요구사항을 나타냄
- 타원으로 표시하고 안쪽에 유즈케이스 명을 작성
- 관계 Relation
- 액터와 유즈케이스 사이의 의미 있는 관계를 나타냄
- 연관 관계, 포함 관계, 확장 관계, 일반화 관계
69. 유즈케이스 다이어그램의 관계표현 방법
- 연관 관계
- 유즈케이스와 액터 간의 상호작용이 있음을 표현
- 표기 : 액터와 유즈케이스 간 실선으로 연결하여 표기
- 포함 관계
- 하나의 유즈케이스가 다른 유즈케이스의 실행을 전제로 할 때 형성되는 관계
- 포함되는 유즈케이스는 포함하는 유즈케이스를 실행하기 위해 반드시 실행되어야 하는 경웨 적용
- 포함하는 유즈케이스에서 포함되는 유즈케이스 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기
- 확장 관계
- 확장 기능 유즈케이스와 확장 대상 유즈케이스 사이에 형성되는 관계로 확장 대상 유즈케이스를 수행 할 때 특정 조건에 따라 확장 기능 유즈케이스를 수행하는 경우에 적용
- 확장 기능 유즈케이스에서 확장 대상 유즈케이스 반대 방향으로 화살표를 점선으로 연결하고 <<extend>>라고 표기
- 일반화 관계
- 유사한 유즈케이스 또는 액터를 모아 추상화한 유즈케이스 또는 액터와 연결시켜 그룹을 만들어 이해도를 높이기 위한 관계
- 구체적인 유즈케이스에서 추상적인 유즈케이스 방향으로 끝부분이 삼각형으로 표현된 화살표를 실선으로 연결하여 표현
70. 유즈케이스 개발 범위
- 유즈케이스의 개발 범위 : 시스템을 표현하는 네모 박스 안의 유즈케이스에 해당
- 개발 범위가 아닌 것 : 액터 등
71. 유즈케이스 확장과 포함
- 포함 관계
- 하나의 유즈케이스가 다른 유즈케이스의 실행을 전제로 할 때 형성되는 관계
- 포함되는 유즈케이스는 포함하는 유즈케이스를 실행하기 위해 반드시 실행되어야 하는 경웨 적용
- 포함하는 유즈케이스에서 포함되는 유즈케이스 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기
- 확장 관계
- 확장 기능 유즈케이스와 확장 대상 유즈케이스 사이에 형성되는 관계로 확장 대상 유즈케이스를 수행 할 때 특정 조건에 따라 확장 기능 유즈케이스를 수행하는 경우에 적용
- 확장 기능 유즈케이스에서 확장 대상 유즈케이스 반대 방향으로 화살표를 점선으로 연결하고 <<extend>>라고 표기
72. 유즈케이스 확장과 포함
- 포함 관계
- 하나의 유즈케이스가 다른 유즈케이스의 실행을 전제로 할 때 형성되는 관계
- 포함되는 유즈케이스는 포함하는 유즈케이스를 실행하기 위해 반드시 실행되어야 하는 경웨 적용
- 포함하는 유즈케이스에서 포함되는 유즈케이스 방향으로 화살표를 점선으로 연결하고 <<include>>라고 표기
- 확장 관계
- 확장 기능 유즈케이스와 확장 대상 유즈케이스 사이에 형성되는 관계로 확장 대상 유즈케이스를 수행 할 때 특정 조건에 따라 확장 기능 유즈케이스를 수행하는 경우에 적용
- 확장 기능 유즈케이스에서 확장 대상 유즈케이스 반대 방향으로 화살표를 점선으로 연결하고 <<extend>>라고 표기
83. UI-설계 단계의 작업의 순서
- 문제 정의
- 시스템의 목적을 기술하고 해결해야 할 문제를 정의
- 사용자 모델 정의
- 사용자의 특성을 명확히 하지 않고는 시스템의 사용성을 확보할 수 없으므로 사용자의 특성을 결정
- 사용자의 컴퓨터 소프트웨어와 작업에 대한 지식 정도에 따라 초보자, 중급자, 숙련자로 분류할 수 있음
- 작업 분석
- 항상 해결해야 할 문제를 정제하고 사용자의 특징들을 상세화하여 시스템을 통해 수행해야 할 작업들을 정의
- 컴퓨터 오브젝트 및 기능 정의
- 분석한 작업을 컴퓨터의 어떤 사용자 인터페이스를 통해 표현할 것인지를 정의
- 실제 사용자는 시스템을 이용해 작업할 경우, 컴퓨터 오브젝트를 통해 수행
- 사용자 인터페이스 정의
- 컴퓨터나 작업 수행 방법에 대하여 상호작용하는 오브젝트를 선택하고 시스템의 상태를 명확히 정의
- 상호작용 오브젝트란 작업을 위한 마우스나 키보드, 스크린 등의 물리적인 입력이나 출력 디바이스를 의미
- 디자인 평가
- 설계한 인터페이스가 분석한 작업에 맞게 잘 설계가 되었는지, 사용자의 능력이나 지식에 대해 적당한지, 사용자가 쓰기 쉽고 편리한지 등을 평가
- 사용성 평가 실험을 통해 설계한 인터페이스에 대한 사용성 평가를 할 수 있음
- 평가방법론 : GOMS나 휴리스틱 등 사용성 공학 방법론이 활용됨
86. UI-설계 단계의 사용자 인터페이스 정의
- 사용자 인터페이스 정의
- 컴퓨터나 작업 수행 방법에 대하여 상호작용하는 오브젝트를 선택하고 시스템의 상태를 명확히 정의
- 상호작용 오브젝트란 작업을 위한 마우스나 키보드, 스크린 등의 물리적인 입력이나 출력 디바이스를 의미
87. 감성공학기술
- 인간공학, 인지공학 등 인간의 특성을 파악하려는 연구에 기본을 둔 생체 측정 기술
- 인간 특성에 적합하도록 사용자 인터페이스를 실현하기 위한 기술
- 센서 공학, 퍼지 뉴럴 네트워크 기술, 신경망 기술 등 인간의 오감 센서 및 감성 처리 기술
- 산업 디자인 등의 감성 디자인 기술
- 마이크로 기구 설계, 극소 기계 으이용 등 마이크로 가공 기술
- 사용성 평가 기술, 가상현실 기술 등으로서 인간에 대한 적합성을 판단하고 새로운 감성을 창출하기 위한 기술
- 감성공학의 종류
- 감성공학 1류
- 인간의 감성을 형용사로 표현할 수 있다고 보고 인간의 감성 이미지를 측정하는 방법
- 제품에 대한 이미지를 조사, 분석하여 제품의 다지인 요소와 연계시킴
- 감성공학 2류
- 개인의 연령, 성별 등의 개별적 특성과 생활 방식으로부터 개인이 갖고 있는 이미지를 구체화하는 방법
- 감성의 심리적 특성을 강조한 접근 방법
- 감성의 개인성에 중점을 둔 문화적 감성의 일부를 반영하기도 함
- 감성공학 3류
- 기존의 감성적 어휘 대신 공학적인 방법으로 접근하여 인간의 감각을 측정
- 이를 바탕으로 수학적 모델을 구축하여 활용
- 대상이 되는 제품의 물리적 특성과 인간의 감각이 객관화된 지표 사이의 연관성을 분석하여 제품 설계에 응용할 수 있으며, 측정 시 감성의 생리적 특성을 중시
- 감성공학 1류
96. 소프트웨어 관련 개념
- 캡슐화 Encapsulation
- 속성(데이터)과 메서드(연산)을 하나로 묶어서 객체로 구성
- Readability 향상 : 유지보수가 용이
- 재사용성이 높은 S/W 개발이 가능
- 정보은닉으로 내부 자료의 알관성이 유지됨
- 객체 간 인터페이스를 이용, 종속성을 최소화
- 다형성 Polymorphism
- 동일한 이름의 여러 오퍼레이션(메서드)을 다른 사양으로 정의 가능
- 오버로딩 : 매개변수의 수 또는 타입을 달리하여 구분
- 오버라이딩 : 부모 클래스의 메서드를 재정의
- 상속성 Inheritance
- 부모 클래스의 속성과 메서드를 상속받아 사용
- 부모와 자식 클래스 간의 관계가 슈퍼클래스와 서브클래스로 유지됨
- 부모 클래스는 추상적, 자식 클래스는 구체적인 성지를 가짐
99. 소프트웨어 설계모델의 분류와 구성요소
- 구조 모델
- 소프트웨어를 구성하는 컴포넌트들의 유형, 인터페이스, 내부 설계 구조 및 이들의 상호 연결 구조를 모델링
- 구성요소 : 프로시저, 데이터구조, 모듈, 파일구조
- 시스템 구조 : 구성 요소들의 연결 구조, 포함 관계
- 정적 요소
- 구성 요소의 유형 및 유형 계통
- 구성 요소들의 배열, 결합 관계
- 구성 요소들의 인터페이스
- 구성 요소들의 상호 작용 채널
- 동적 요소
- 동적 생성 및 소멸
- 동적 결합 / 연결
- 위치 이동, 복제
- 행위 모델
- 소프트웨어 구성요소들의 기능과 이들이 언제, 어떠한 순서로 기능을 수행하고 상호작용하는지를 모델링
- 입출력 데이터, 데이터 흐름, 데이터 변환, 데이터 저장, 상태전이, 데이터 흐름 경로, 사건 발생 순서, 실행 경로등
- 정적 요소
- 입력 / 출력 데이터
- 입출력 맵핑
- 데이터 흐름 채널
- 동적 요소
- 제어
- 상호작용 프로토콜
- 상호 작용 실행 경로
- 상태전이
- 처리순서, 입출력 순서, 알고리즘
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사 필기] 기출문제 - 151 ~ 200. 오답노트 (2) | 2025.03.04 |
---|---|
[정보처리기사 필기] 기출문제 - 101 ~ 150. 오답노트 (3) | 2025.03.03 |
[정보처리기사 필기] 기출문제 - 001 ~ 050. 오답노트 (0) | 2025.02.27 |
[정보처리기사 필기] 시스템 보안 구축 - 157. 보안 솔루션 (0) | 2025.02.26 |
[정보처리기사 필기] 시스템 보안 구축 - 156. 로그 분석 (0) | 2025.02.26 |