1. UML
기본 구성 요소
- 사물 -things
- 관계 - relationship
- 다이어그램 - diagram
1) 구조적 다이어그램 (Structure Diagram): 구조를 설계
- 클래스 다이어그램(Class Diagram) : 클래스의 속성, 메서드로 구성된 정적 다이어그램
- 컴포넌트 다이어그램 (Component Diagram): 컴포넌트들 간의 관계
- 객체 다이어그램 (Object Diagram): 인스턴스
- 컴포지트 다이어그램 (Composite Diagram ) : 아키텍처 다이어그램
- 배치 다이어그램 (Deployment Diagram): 컴포넌트들의 물리적 구성
- 패키지 다이어그램 (Package Diagram) : 관련있는 모델링 요소들을 그룹화
2) 행위 다이어그램 : 구조가 어떻게 움직이는지
- 활동 다이어그램 (Activity Diagram) : 활동의 흐름
- 유스케이스 다이어그램 (Use case Diagram): 사용자 관점에서 바라본 시스템을 표현
- 상태 다이어그램 (State Diagram): 객체의 상태변화
- 시퀀스(순차) 다이어그램 (Sequence Diagram) : 시간적 흐름에 따른 메세지 교환
- 커뮤니케이션 다이어그램 (): 객체들이 주고 받는 메세지 표현
- 인터렉션 오버뷰 다이어그램 : 활동 다이어그램 + 시퀀스 다이어그램
- 타이밍 다이어그램 : 시간의 흐름에 따른 상태변화를 표현
2. 디자인 패턴 (생성패턴, 구조패턴, 행위패턴)
1) 생성패턴
- factory method : 객체 생성을 위한 인터페이스를 따로 정의, 객체를 생성하는 일을 서브 클래스가 담당하도록 하는 패턴.
- Singleton : 지정한 클래스의 인스턴스가 반드시 1개만 존재하도록 하는 패턴.
- Abstract factory (추상팩토리): 구체적인 클래스를 지정하지 않고, 관련성을 갖는 객체들의 집합을 생성하거나 서로 독립적인 객체 들의 집합을 생성할 수 있는 인터페이스를 제공하는 패턴.
- Builder : 복잡한 객체를 생성하는 방법과 표현하는 방법을 정의하는 클래스를 별도로 분리해서 서로 다른 표현이라도 이를 생성할 수 있는 동일한 절차를 제공하는 패턴.
- Prototype : 원본이 되는 인스턴스를 사용하여 생설할 객체의 종류를 명시하고 견본을 복사해서 새로운 객체를 생성하는 패턴.
2) 구조패턴
- Adaptor : 클래스의 재사용성을 높이기 위해 클래스간의 기능을 변환 제공하여 호환성으르 확보하는 패턴.
- Bridge : 인터페이스가 서로 다른 클래스를 연결하는 패턴으로 기능의 계층과 구현의 계층을 연결시키는 패턴.
- Composite : 복잡한 객체 구조를 표현하여 객체 집합 속에 또 다른 객체 집합을 갖는 패턴.
- Decorator(데코레이터) : 새로운 기능이 추가 될 때마다 새로운 객체를 만들고, 이전 객체의 기능은 새로운 객체 내에서도 그대로 유지, 보장해주는 패턴.
- Facade (퍼싸드) : 서브 시스템이 복잡할 경우, 간단한 인터페이스를 통해 서브 시스템의 주요 기능을 사용할 수 있는 패턴.
- Fly weight : 인스턴스를 가능 한 공유시켜 불필요한 생성을 하지 않도록 하는 패턴.
- Proxy (프록시): 객체 접근을 제어하려는 목적으로 인터페이스 역할 을 하는 객체를 사용하여 제어하는 패턴.
3) 행위패턴
- Template method : 상위 클래스에서 처리의 흐름을 정하고 하위 클래스에서 구체적인 내용을 재정의.
- Interpreter : 간단한 언어의 문법을 정의하는 방법과 그 언어로 문장을 구성하는 방법, 문장을 해석하는 방법을 제시하는 패턴.
- Iterator : 접근이 잦은 객체에 대해 동일 인터페이스를 사용하도록 하는 패턴, 집합 개체 요소들의 내부 표현 방식을 공개하지 않고, 순차적으로 접근하는 구조를 제공
- Command :요청 자체를 객체화 하고 매개변수를 추가하여 여러가지 요구사항을 추가할 수 있는 패턴.
- Chain of Responsibillity : 요청을 처리할 수 있는 기회를 하나 이상의 객체에 부여함으로써 객체간의 결합도를 없애려는 패턴, 각 객체들이 고리로 묶여있어 요청이 해결될 때까지 고리를 따라 책임이 넘어감.
- State : 상태를 일반적인 데이터 변수로 두지 않고, 객체로 만들어 그 상태에 따른 행동들을 분리한 패턴.
- Strategy : 상황에 따라 알고리즘을 변화할 필요가 있을때, 각 알고리즘 클래스들을 공통된 인터페이스에 맞게 구현하여 다형성을 활용하는 패턴.
- Mediator (중재자): 중재자를 통해 한 집합에 속해있는 객체들의 상호작용을 캡슐화 하는 패턴.
- Visitor(방문자) : 데이터 구조안을 돌아다니는 주체인 방문자를 나타내는 클래스를 준비해서 그 클래스에게 처리를 맡김으로서 처리기능 분리
- Observer(옵저버) : 한 객체의 상태가 바뀌면 그 객체에 의존하는 다른 객체들에게 통지되고 필요 시 자동으로 내용이 갱신되는 패턴.
관련기출)
11. UML에서 시퀀스 다이어그램의 구성 항목에 해당하지 않는 것은?
1) 생명선
2) 실행
3) 확장
4) 메세지
(2020 3회 필기 기출)
2. XP 12가지 기본원리
(영어이름도 알고가기! )
1. 계획절차 (The Planning Process)
: 고객이 요구하는 비즈니스 가치 정의, 개발자가 필요한 것이 무엇이며, 어떤 부분에서 지연될 수 있는지 알려준다.
2. 소규모 릴리즈 ( Small Release)
: 작은 시스템을 먼저 만들고, 짧은 단위로 업데이트한다. = 소규모 배포
3. 상징 (Metaphor)
: 공통적인 이름의 체계를 갖고 공통적인 시스템 서술서를 갖게 되면, 개발과 의사소통을 돕는다.
4. 단순 설계 (Simple Design)
: 현재 요구사항에 들어맞는 가장 단순한 시스템을 설계한다.(미래를 위해서는 필요 X)
리팩토링을 통해서도 좋은 설계 가능.
5. 테스팅 (Testing)
: XP는 항상 소프트웨어의 적합성에 초점을 두고있다. 개발자는 테스트를 먼저 한 후에 소프트웨어를 작성한다.
-> 테스트에서 요구사항 충족.
6. 리팩토링 (Refactorong)
: 개발하는 동안 내내 시스템의 설계를 향상 시킨다.
7. 짝 프로그래밍 (Pair Programming)
: 개발자 둘이서 짝으로 코딩. 혼자코딩하는 것보다 비슷하거나 혹은 더 적은 비용을 들인다고한다.
8. 공동소유 (Collective Ownership)
: 모든 코드는 모든 개발자에게 속해있다. 팀을 최상 속도로 움직이게 하며, 변경이 필요할 때도 지연을 줄인다.
9. 지속적인 통합 (Continous Intergration)
: 매일 여러 번씩 소프트웨어를 통합하고 빌드한다.
10. 주당 40시간 업무 (40hour Week)
: 피곤한 개발자가 실수를 더 많이한다.
11. 현장고객 지원 (On site Customer)
: 의사소통을 향상시키고 문서의 양을 줄일 수 있다.
12. 코딩 표준 (Coding Standard)
: 효과적인 공동작업을 위해서는 모든 코드에 대한 표준을 정의한다.
관련문제)
01. XP(eXtreme Programming)의 기본원리로 볼 수 없는 것은?
1) Linear Sequential Method : 선형순회 xp와 전혀 관련 없음.
2) Pair Programming
3) Collective Ownership
4) Continuous intergration
(2020 4회 정보처리기사 필기)
※ ISO / IEC 9126 품질 특성 (시험전 참고용 하위특성 읽어보기)
- 기능성 : 적합성, 정확성, 상호 운영성, 보안성, 준수성
- 신뢰성 : 성숙성, 결함 허용성, 복구성
- 사용성 : 이해성, 학습성, 운용성, 준수성
- 효율성 : 시간반응성 자원 효율성, 준수성
- 유지보수성 : 분석성, 변경성, 안정성, 시험성, 준수성
- 이식성 : 적응성, 설치성, 공존성, 대체성, 준수성
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리기사필기] 2과목 : 소프트웨어 개발02 - 기출에 나온 개념 (2) | 2024.04.28 |
---|---|
[정보처리기사필기 정리] 2과목 - 소프트웨어 개발 (2) | 2024.04.22 |
[정보처리기사필기 정리] 1과목 - 소프트웨어 설계 02 (0) | 2024.04.02 |
[정보처리기사 필기 - 정렬] 버블정렬, 선택정렬, 삽입정렬 (0) | 2024.03.28 |
[정보처리기사필기 정리] 1과목 - 소프트웨어 설계 01 (0) | 2024.03.19 |