1. 애자일 방법론
정의 : 고객 요구사항 변화에 중심을 둔 개발 방법론
주요 가치 : 의사소통, 피드백, 단순성, 존중, 용기
XP(익스트림 프로그래밍)은 애자일 방법론을 통한 프로그래밍 기법 중 하나
※ 고객 요구사항 최우선이기에 유연한 방법론이기에 문서 중심이 아니다.
2. UI 설계원칙
직관성 : 누구나 쉽게 이해하고 사용할 수 있어야 한다.
유효성 : 사용자 목적을 정확히 달성할 수 있어야 한다.
학습성 : 누구나 쉽게 배우고 익힐 수 있어야 한다.
유연성 : 사용자의 요구에 최대한 수용하고 오류를 최소화 해야한다.
※ 오류를 숨겨서는 안된다.
2-1 UI 종류
CLI(Command Line Interface) : 텍스트로만 이루어진거(윈도우 기준 파일 검색에서 cmd 치면 나오는 화면)
GUI(Graphic User Interface) : 우리가 흔히 쓰는 마우스를 이용해 그래픽을 클릭하는 UI
NUI(Natural User Interface) : 말과 행동으로 동작하는 UI
VUI(Voice User Interface) : 음성으로 동작
OUI(Organic User Interface) : 사물과 사용자가 상호작용
3. 요구사항 유형
기능적 요구사항 : 실제 시스템 수행에 필요한 요구사항들(ex: 조회/인출/입금/송금 등)
비기능적 요구사항 : 성능, 품질, 보안, 안정성 등 실제 수행에 보조적인 지표(ex: 모든 화면이 3초 이내에 보여져야 한다)
※ 기능이 있냐 없냐 -> 기능적 / 성능이 이정도는 나와야 되지 않나? -> 비기능적
3-1 요구사항 개발 프로세스
도출/추출 -> 분석 -> 명세 -> 확인/검토(검증)
3-2 요구사항 검토 방법
동료 검토(Peer Reivew) : 요구사항 명세서 작성자가 명세서 내용을 직접 설명하고 동료가 이를 들으면서 결함 발견
워크 스루(Walk Through) : 검토 회의 전 요구사항 명세서를 미리 배포해 사전 검토 후 짧은 회의로 결함 발견
-> Walk는 '걷다'의 의미인 만큼 걷을 때 전단지 나눠주면 보듯이 가볍게 결함 발견하는 느낌
인스펙션(Inspection) : 요구사항 명세서 작정자를 제외한 다른 전문가들이 명세서를 확인하면서 결함을 발견
-> 전문가가 등장하기에 꽤나 무거운 느낌의 검사
4. CASE 도구
Computer Aided Software Engineering 도구로, 컴퓨터의 도움을 받는 요구사항 검증 방법
- s/w 라이프 사이클 전 단계의 연결
- 그래픽 지원
- 다양한 소프트웨어 개발 모형 지원
- 다이어그램 작성 가능
- 개발자 협업에 도움
5. 럼바우 객체지향 분석 기법
객체 모델링(Object Modeling) : 객체 다이어그램, 시스템에서 요구하는 객체를 찾고 객체들 간의 관계를 정의하며 가장 중요하며 선행되어야 함
동적 모델링(Dynamic Modeling) : 상태 다이어그램, 시간의 흐름에 따라 객체들 사이의 제어 흐름, 동작 순서 등의 동적인 행위 표현
기능 모델링(Functional Modeling) : 자료 흐름도(DFD), 프로세스들의 자료 흐름 중심으로 처리 과정 표현
※ 객체 -> 동적 -> 기능 순서 외워야함
※ 더 깊게는 키워드 매칭 필요
객체 : 모델링, 객체 (모델링, 객체 키워드가 등장하면 객체)
동적 : 상태, 동작 순서 (상태, 동작 순서 등 키워드가 등장하면 동적)
기능 : 자료흐름도(DFD)
객모-동상-가자
6. 객체 지향 기법
캡슐화(Encapsulation)
- 데이터와 함수를 하나로 묶는 것
- 재사용성 증가, 오류 파급 효과 감소
- 인터페이스 단순화, 객체 간 결합도 낮아짐
정보 은닉(Infomation Hiding)
- 다른 객체에서 자신의 정보를 숨기고 자신의 연산만을 통해 접근
상속(Inheritance)
- 상위(부모) 클래스 속성 및 연산을 하위(자식) 클래스가 물려받는 것
추상화(Abstraction)
다형성(Polymorphism)
※ 캡슐화, 정보은닉, 상속 등은 개념도 숙지
7. 소프트웨어 생명 주기
폭포수 모델 : 고전적으로 전통적인 모델, 순차적인 개발이 특징, 이전 단계를 다시 보기 어려움
나선형 모델 : 위험 분석 및 위험 최소화가 목적 [계획 -> 위험 분석 -> 개발 및 검증 -> 고객 평가 과정] 이와 같은 과정을 여러 번 반복하면서 리스크를 줄이는게 특징
프로토타입 : 견본/시제품을 통해 최종 결과 예측, 인터페이스 중심, 요구사항 변경 용이
HIPO(Hireachy Input Process Output) : 하향식 설계이며 가시적, 총체적, 세부적 다이어그램으로 구성, 기능과 자료 의존 관계 동시 표현
8. 하향식 설계, 상향식 설계
하향식 설계 : 절차 지향(순차적) / 최상위 컴포넌트 설계 후 하위 기능 부여
상향식 설계 : 객체 지향 / 최하위 모듈부터 설계 후 이들을 결합해 검사 / 기능 추가 어려움
※ 회사에서 상사에게 무언가 요구하는게 어렵듯 상향식 설계는 무언가 기능을 추가하기 어렵다. 반대로 위에서 내려오는건 수시로 변경되기에 올라가는거보다 기능추가나 변화가 쉬운 편이라고 기억하자
9. 자료 흐름도 DFD
시스템이나 프로세스 내 정보의 흐름을 시각적으로 나타내는 도표
의미와 도형 연결
process : 원
data flow : 화살표
data store : 직선(단선/이중선)
terminator : 사각형
※ 삼각형은 쓰이지 않는다.
10. 다이어그램
구조, 정적 다이어그램 종류 : 클래스, 객체, 컴포넌트, 배치, 복합체, 패키지
행위, 동적 다이어그램 종류 : 유스케이스, 순차, 커뮤니케이션, 상태, 활동, 타이밍, 상호작용 개요
10-1 행위, 동적 다이어그램
유스케이스 다이어그램 : 사용자 요구를 분석
순차 다이어그램 : 시스템, 객체들이 주고 받는 메시지 표현하며 액터, 객체, 생명선, 메시지, 제어 삼각형 등 존재
액터란? 시스템과 상호작용하는 사람이나 다른 시스템에 의한 역할
- 사용자 액터 : 기능을 요구하는 대상이나 시스템의 수행결과를 통보받는 사용자
- 시스템 액터 : 본 시스템과 데이터를 주고 받는 연동 시스템
11. 디자인 패턴 GoF(Gang of Four)
디자인패턴은 자주 발생하는 문제를 해결하기 위한 반복적 해결 방법
주로 어떤 패턴에 어떤게 속하는지 나온다. 간단하게 무슨 패턴인지 알아두면 베스트
생성 패턴
- 추상 팩토리(Abstract Factory) : 연관 객체 그룹 생성 후 추상적 표현
- 빌더(Builder) : 조립, 객체 생성
- 팩토리메서드(Factory Method) : 객체 생성을 서브클래스에서 결정해서 생성
- 프로토타입(Prototype) : 원본 객체 복제해서 생성
- 싱글톤(Singleton) : 필요시 하나의 객체만 생성할 수 있게(DB연결 등)
※ 팩토리, 빌더가 나오면 일단 생성이다.
구조 패턴
- 어댑터(Adaptor) : 비호환 인터페이스에 호환성 부여할 수 있는 구조로 구성
- 브릿지(Bringe) : 독립적 확장이 가능하게 구조 구성. ※ 서로 연결하는 역할이 아니다.
- 컴포지트(Composite) : 복합, 단일 객체 구분없이 사용할 수 있게 구조 구성
- 데코레이터(Decorator) : 상속 없이 확장할 수 있는 구조 구성
- 퍼사드(Facade) : 상위 인터페이스 구성 후 서브클래스 기능 사용할 수 있게 구조 구성
- 플라이웨잇(Flyweight) : 인스턴스 공유 및 메모리 절약할 수 있게 구조 구성
- 프록시(Proxy) : 접근이 힘든 객체를 연결하는 인터페이스 역할할 수 있게 구조 구성
행위 패턴
- 메멘토(Memento)
- 옵저버(Observer)
- 상태(State)
- 전략(Strategy)
- 템플릿(Template Method)
- Chain of Reponsibility
- Command
- Interpreter
- Iterator
- Mediator
- Visitor
12. 코드의 종류
순차 코드 : 최초의 자료부터 일정한 일려번호를 부여하는 방법
블록코드 : 공통 블록으로 구분하고 블록내에 일련번호를 부여하는 방법
10진 코드 : 0~9까지 10진 분할해 코드 부여
그룹 분류 코드 : 대, 중, 소 등 그룹으로 분류
연상 코드 : 명칭이나 관계 있는 숫자, 문자 등을 부여
표의 숫자 코드 : 항목의 물리적 성질 등 그대로 부여(32인치 모니터 등)
합성 코드 : 위 코드 중 2개 이상을 조합해 적용하는 방법
13. 자료사전 기호
= 정의
+ 연결
{} 반복
[] 선택
() 생략
** 주석
'그 외' 카테고리의 다른 글
정보처리기사 실기 정리 11. 응용 SW 기초 기술 활용 (0) | 2024.09.30 |
---|---|
정보처리기사 실기 복원 2024 2회 해설 (0) | 2024.09.24 |
정보처리기사 실기 복원 2024 1회 해설 (0) | 2024.09.23 |
Doxygen 을 이용한 C++ API 문서 만들기 (0) | 2023.12.13 |
VSCode에서 코드 자동 정렬하는 법 (0) | 2023.07.27 |