📚 1과목 1회독을 마치고 풀어본 CBT에서 헷갈리는 부분, 놓친 부분 정리
1. 요구사항 개발 프로세스 순서
도출 → 분석 → 명세 → 확인
2. 요구사항 관리 도구의 필요성
1) 요구사항 변경으로 인한 비용 편익 분석
2) 요구사항 변경의 추적
3) 요구사항 변경에 따른 영향 평가
3. 소프트웨어 설계
1) 시스템 품질속성
가용성, 성능, 보안성, 사용성, 변경용이성, 시험용의성 (6가지)
2) 상/하위 설계 구분
- 상위 설계 : 아키텍처 설계, 데이터 설계, 시스템 분할, 인터페이스 정의, UI 설계
- 하위 설계 : 모듈 설계, 인터페이스 작성
4. CASE(Computer-Aided Software Engineering) : 시스템 개발과정의 일부 또는 전체를 자동화 시킨 것
- 소프트웨어 생명주기의 전체 단계를 연결해주고, 자동화해주는 통합된 도구를 제공
- 소프트웨어, 하드웨어, 데이터베이스, 테스트 등을 통합하여 소프트웨어 개발 환경 제공
- 그래픽 지원
1) 상위 CASE : 요구 분석, 설계 단계 지원
- 모델 간의 모순검사 기능
- 모델의 오류 검증 기능
- 자료흐름도 작성 기능
2) 하위 CASE : 코드를 작성하고 테스트하며 문서화하는 과정 지원
- 원시코드 생성 기능
5. CASE 원천 기술
1) 구조적기법 (Structured Technique) : 복잡한 시스템을 여러개의 작은 부분으로 분할하여 문제 해결, 설계&개발 과정을 구조화
2) 프로토타이핑 (Prototyping Technique) : 초기 단계에서 사용자와 시스템 간의 상호작용을 모방한 모형으로 요구사항을 더 쉽게 이해하는 데 도움을 줌
3) 정보 저장소 (Information Repository Technique) : 시스템의 모든 정보를 중앙에 모아 모든 관련 정보를 쉽게 액세스, 업데이트 할 수 있게 함
📌 일괄처리 (Batch Processing Technique) : 누적된 작업을 일괄 처리하는 기술로 CASE로 간주되지는 않음
6. 아키텍처 스타일 특징
1) 클라이언트-서버 구조 : 컴포넌트가 다른 컴포넌트에게 서비르를 요청, 데이터가 여러 컴포넌트를 거치며 처리
2) 계층 구조 : 모듈들로 응집된 계층 단위로 SW를 구성, 계층간에 사용 가능의 관계로 표현
3) MVC 구조 : 모델-뷰-컨트롤러 기능을 분리한 아키텍처
4) 파이프 필터 구조 : 서브시스템이 입력 데이터를 받아 처리하고 결과를 다른 시스템에 보내는 작업이 반복, 오버헤드 발생
7. UML 다이어그램의 분류
1) 정적(구조적) 다이어그램 : 클객컴배복패
- 클래스, 객체, 컴포넌트, 배치, 복합 구조체, 배치
2) 동적(행위적) 다이어그램 : 유상활시통상타
- 유스케이스, 상태, 활동, 시퀀스(순차), 통신, 상호작용, 타이밍
✨시퀀스(순차) 다이어그램은 동적✨
8. LOC(Line of code) 기법 - 맨먼스 계산
맨먼스 : 소프트웨어 개발에서의 작업량을 나타내는 단위
M/M = 원시 코드 라인 수 / 1인당 월 평균 생산 코드 라인 수
개발기간 = (M/M) / 참여 인원
9. UML
📌 관계
1) 의존(Dependency) 관계 : 한 사물의 명세서가 바뀌면 그것을 사용하는 다른 사물에게도 영향을 끼침
2) 실체화(Realization) 관계 : 한 객체가 다른 객체에 의해 오퍼레이션을 수행하도록 지정
3) 일반화(Generalization) 관계 : 일반화된 사물과 특수화된 사물 사이의 관계 (is-a 관계)
4) 연관(Association) 관계 : 두 사물간의 구조적 관계로, 한 사물이 다른 사물과 연결되어 있음을 말함 (has-a 관계)
📌 Usecase 구성요소와의 관계
1) 연관 : use case와 actor의 관계
2) 확장 : 기본 use case 수행시 특별한 조건을 만족할 때 수행할 case
3) 포함 : 시스템의 기능이 별도의 기능을 포함
4) 일반화 : 하위 use case/action이 상위 use case/actor에게 기능/역할을 상속받음
5) 그룹화 : 여러개의 use case를 단순화
📌 UML 구성요소
1) Things : 사물
2) Relationship : 관계
3) Diagram : 다이어그램
✨띵다리✨
10. 마스터-슬레이브(Master-Slave) 아키텍처
마스터 : 작업을 분리/배포
슬레이브 : 요청 작업 처리
슬레이브는 마스터의 작업 요청을 처리하고, 처리된 결과를 되돌려줌
마스터는 슬레이브가 반환한 결과값으로부터 최종 결과값을 계산
슬레이브 프로세스는 데이터 수집기능을 수행할 수 있음
11. Gof(Gang of Four) 디자인패턴
23가지 디자인 패턴을 3가지로 분류
생성 : 추상팩토리, 빌더, 팩토리메소드, 프로토타입, 싱글톤 (추빌팩프싱)
구조: 어댑터, 브릿지, 컴포짓, 데코레이터, 퍼케이드, 플라이웨잇, 프록시 (어브컴데퍼플프)
행위 : 나머지
12. 럼바우(Rumbaugh)의 객체지향 분석 기법 ✨객, 동, 기✨
객체 : 객체 다이어그램, 정보 모델링이라고도 함
동적 : 상태 다이어그램
기능 : 자료흐름도(DFD)
✨DFD : 시간 흐름을 명확하게 표현 X, 구조적 분석 기법, 화살표·원·직선으로 표시✨
+ DFD의 구성요소 : Process, Data Flow, Data Store, Terminator
📌 Rumbaugh(객,동,기) / Booch(미시적, 거시적) / Jacobson(유스케이스) / Coad-Yourdon(E-R) / Wirfs-Brock(고객명세서)
13. 객체지향 분석 기법은 동적 모델링, ✨상향식✨
14. 객체지향 설계 원칙(SOLID)
1) 단일 책임 원칙 (SRP, Single Responsibility Principle) : 모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화
2) 개방 폐쇄의 원칙 (OCP, Open-Closed Principle) : 소프트웨어 개체(클래스, 모듈, 함수 등)는 확장에 대해 열려있어야 하고, 변경에 대해서는 닫혀있어야 함
3) 리스코프 치환의 원칙 (LSP, Liskov Substitution Principle) : 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 함
4) 인터페이스 분리 원칙 (ISP, Interface Segregation Principle) : 클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 함
5) 의존성 역전 원칙 (DIP, Dependency Inversion Principle) : 의존 관계를 맺을 때 변화하기 쉬운 것보다 어려운 것에 의존
14. 미들웨어
1) WAS (Web Application Server) : 애플리케이션 수행 미들웨어
2) MOM (Message Oriented Middleware) : 메세지 지향 미들웨어, 느리지만 안정적인 응답 추구
3) RPC (Remote Procedure Call) : 응용 프로그램의 프로시저를 사용하여 원격 프로시저를 로컬 프로시저처럼 호출
4) ORB(Object Request Broker) : 네트워크 호출 미들웨어
15. 시스템 연계 기술
1) DB링크 : 데이터베이스에서 제공하는 DB링크 객체를 이용, 수신측에서 링크를 생성하고 송신측에서 직접 참조
2) DB커넥션 : 수신측의 WAS에서 송신측 데이터베이스로 연결하는 DB Connection Pool을 생성
3) API/OpenAPI : 송신측의 데이터베이스에서 데이터를 가져와 제공하는 응용 프로그래밍 인터페이스 프로그램
4) JDBC : 수신측의 프로그램에서 JDBC 드라이버를 이용해 송신 시스템 데이터베이스와 연결, DBMS유형, IP, Port, Instance 정보 필요
5) 하이퍼링크 : 웹 응용에서 하이퍼링크를 이용한다
6) 소켓 : 서버는 통신을 위한 Socket을 생성하여 Port를 할당. 클라이언트의 통신 요청 시 클라이언트와 연결하고 통신
16. 애자일 방법론
1) 익스트림 프로그래밍(XP), 스크럼(Scrum), 익스트림 모델링, 크리스털 패밀리, 기능 중심 개발(FDD, Feature-Driven Development)
17. XP(eXtreme Programming) 기본원리
1) Pair Programming : 짝 프로그래밍, 모든 프로그래밍은 하나의 컴퓨터에 두명의 프로그래머가 같이 공동작업
2) Collective Ownership : 공동소유, 소스코드에 대한 책임은 팀의 공통책임이자 누구든지 수정이 가능함
3) Continuous Integration : 지속적인 통합, 컴포넌트 또는 모듈 단위로 나눠 개발된 소스코드는 작업이 끝날 때마다 지속적으로 통합되고 동시에 테스트를 진행함
18. 협약에 의한 설계(Design by Contract)
- 클래스에 대한 여러 가정을 공유하도록 명세한 것
📌 세가지 타입
1) 선행조건(Precondition) : 오퍼레이션이 호출되기 전에 참이 되어야 할 조건
2) 결과조건(Postcondition) : 오퍼레이션이 수행된 후 만족하여야 하는 조건
3) 불변조건(Invariant) : 클래스 내부가 실행되는 동안 항상 만족되어야 하는 조건
19. 인터페이스 요구사항 검토 방법
1) 동료 검토(Peer Review) : 요구사항 명세서 작성자가 명세서를 설명하고 이해관계자들이 설명을 들으며 결함 발견
2) 워크스루(Walk Through) : 검토 회의 전, 명세서를 미리 배포하여 사전검토 후에 짧은 검토 회의를 통해 결함 발견
3) 인스펙션(Inspection) : 요구사항 명세서 작성자를 제외한 다른 검토 전문가들이 명세서를 확인하며 결함 발견
20. 시퀀스 다이어그램 구성 항목
- 액터, 활성 객체(Object), 생명선(Life Line), 메시지, 제어 삼각형 (액, 객, 생, 메, 실)
📌 단어 뜻 외울 것
Object : 객체, 실제로 존재하는 것
Class : 객체를 정의해둔 것, 객체의 설계도, 틀
Package : 클래스를 묶어두는 단위, 클래스의 집합
Message : 객체에게 어떤 행위를 하도록 지시하는 명령
Method : 객체에 소속된 함수
Module : 실행 코드와 객체들(함수, 클래스, 변수)의 묶음
Instance : 실행 중인 임의의 프로세스, 클래스의 현재 생성된 객체, 클래스로 정의된 객체의 복사본
Item : 어떤 조직의 구성원, 객체에서는 객체에 속하는 데이터, 메소드 지칭, 데이터베이스에서는 테이블의 열을 의미함
Hiding : 정보은닉, 캡슐화된 항목을 다른 객체로부터 숨기는 것
Operation : 클래스의 동작을 의미, 클래스에 속하는 객체에 대하여 적용될 메서드를 정의한 것, UML에서는 동작에 대한 인터페이스를 지칭함
'자격증 > 정보처리기사' 카테고리의 다른 글
2023년 정보처리기사 3회 필기 시험 후기 (0) | 2023.07.19 |
---|---|
[정보처리기사] CBT 5과목 정보시스템 구축관리 기억할 내용 (0) | 2023.07.17 |
[정보처리기사] CBT 4과목 프로그래밍 언어 활용 기억할 내용 (0) | 2023.07.14 |
[정보처리기사] CBT 3과목 데이터베이스 구축 기억할 내용 (0) | 2023.07.13 |
[정보처리기사] CBT 2과목 소프트웨어 개발 기억할 내용 (0) | 2023.07.12 |