요구사항 도출
- 인터뷰
→
- 관찰
→
- 프로토타입
→
- 벤치마킹
→
- 사용자 스토리텔링
→
- 문헌조사
→
- 업무절차 및 양식 조사
→
- 설문
→
- 브레인스토밍
→
요구사항 검토
* 방법
- 동료검토
→
- 워크스루
→
- 인스펙션
→
요구사항 정의
- 기능적 요구사항
→ 시스템에서 제공되어야 할 특정 기능을 정의
- 비기능적 요구사항
→ 시스템의 전체적 품질이나 기능적 요구사항의 구현 시 고려해야하는 제약사항
2022.07.22 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (객체지향)
클라우드 컴퓨팅
- IaaS (Infra as a Service)
→ 인프라 서비스 제공
- PaaS (Platform as a Service)
→ 플랫폼 제공 서비스 제공
- SaaS (Service as a Service)
→ 온디맨스(on-demand) 서비스 제공
2022.07.17 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (UML 다이어그램)
애자일(Agile) 개발 프로세스
→ 애자일 : 좋은 것을 빠르고 낭비 없게 만드는 것.
→ 절차보다는 사람이 중심, 변화에 유연하고 신속하게 적응, 일정한 주기 반복, 개발하는 방법론
- XP (eXtreme Programming)
→ 의사소통 개선과 즉각적인 피드백에 의한 단순한 코딩으로 SW 품질을 높이기 위한 방법론
→ 5가지 가치 : 용기, 단순성, 의사소통, 피드백, 존경
→ 12개 실천 항목
- SCRUM
→ 매일 정해진 시간에 정해진 장소에서 짧은 시간의 개발을 하는 팀을 위한 프로젝트 관리 중심의 방법론
백로그 : 제품과 프로젝트에 대한 요구사항
스프린트(Sprint) : 30일 단위(iteration)의 짧은 개발기간으로 분리하여 반복적 수행
스크럼 미팅: 매일 스크럼 미팅으로 오늘과 내일의 해야할일의 계획 수립
스크럼 마스터 : 프로젝트 리더, 스크럼 수행 시 문제 인지 및 이를 해결하려고 노력하는 사람
- Lean
→ 린 시스템의 품질 기법을 소프트웨어 개발 프로세스에 적용하여 프로세스의 낭비요소를 제거 후 결과를 측정, 성과를 분석하여 소프트웨어의 품질을 향상시키는 개발 방법론
→ 7가지 원칙 : 낭비제거, 품질 내재화, 지식 창출, 늦은 확정, 빠른 인도, 사람 존중, 전체 최적화
* 모델링
→ 실세계의 물리현상을 특정한 목적에 맞추어 이용하기 쉬운 형식으로 표현하는 일
- 개념 모델링 역할
→ 요구사항 분석의 핵심, 문제가 발생하는 상황에 대한 이해를 증진시키고 해결책을 설명
- 종류와 표기법
→ 유즈케이스 다이어그램
→ 데이터흐름 모델
→ 상태모델
→ 목표기반 모델
→ 사용자 인터액션
→ 객체 모델
→ 데이터모델 등 다양한 모델 작성
→ 대부분 모델링 표기법은 UML 사용
2022.07.15 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (결합도, 응집도)
요구사항 설계
* 설계 방법
- 개념적 설계
→ 사용자의 요구사항을 개념적 데이터 모델을 이용하여 표현하는 설계 단계 (E-R 모델 대표적)
- 논리적 설계
→ 개념적 설계의 산출물인 E-R 다이어그램을 데이터 베이스 관리 시스템에 매핑 하는 설계 단계
→ 논리적 설계의 산출물은 테이블 명세서
- 물리적 설계
→ 논리적 구조로 표현된 데이터를 디스크 등의 물리적 저장장치에 저장할 수 있는 물리적 구조 데이터로 변환
→ 실제 Database에 테이블을 생성하는 단계
소프트웨어 아키텍쳐
* SW 아키텍쳐 4+1 View
- 사용자 사례관점(Use Case View)
→ 시스템의 외부 사용자 관점에서 사용사례(Use Case)들 간의 관계를 정의
- 논리 관점 (Logical View)
→ 상위 수준에서 시스템의 논리적인 구조/행위를 클래스 인터페이스 협력관계(Collaboration)로 정의
- 구현 관점 (Implementation View)
→ 독립적으로 실행되는 컴포넌트와 이들 간 관계를 정의
- 프로세스 관점 (Process View)
→ 시스템의 병렬처리 및 동기화 처리를 위한 스레드와 프로세스를 정의
- 배치 관점 (Deployment view)
→ 실행되는 시스템 하드웨어와 소프트웨어 관계를 정의
2022.07.15 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (디자인패턴)
2022.07.17 - [Software 공부/Software Database Knowledge] - [Database][기본] Data의 종류, Database의 종류
2022.07.17 - [Software 공부/Software Database Knowledge] - [Database][SQL Query][데이터베이스 이상]
2022.07.17 - [Software 공부/Software Database Knowledge] - [Database][정규화][데이터베이스 키]
트랜젝션
→ 데이터 베이스의 상태를 변화시키기 위해서 수행하는 작업의 단위를 의미
→ 하나의 트랜젝션은 Commit 또는 Rollback을 완료
* 트랜젝션 특성
- 원자성(Atomicity)
→ 트랜잭션과 관련된 작업들이 부분적으로 실행되다가 중단되지 않는 것을 보장
→ Commit과 Rollback 명령어에 의해 보장 받는다.
- 일관성(Consistency)
→ 트랜잭션이 실행을 성공적으로 완료하면 언제나 일관성 있는 데이터베이스 상태로 유지하는 것을 의미한다.
→ 무결성 제약이 모든 계좌는 잔고가 있어야 한다면 이를 위반하는 트랜잭션은 중단된다.
- 격리성(Isolation)
→ 트랜잭션을 수행 시 다른 트랜잭션의 연산 작업이 끼어들지 못하도록 보장
→ 트랜잭션 밖에 있는 어떤 연산도 중간 단계의 데이터를 볼 수 없음
- 지속성(Durability)
→ 성공적으로 수행된 트랜잭션은 영원히 반영됨
- XML (Extensible Markup Language)
→ W3C에서 개발된, 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어
- JSON (JavaScript Object Notation)
→ 데이터를 저장하거나 전송할 때 많이 사용되는 경량의 DATA 교환 방식
→ 키-쌍 값 사용 (XML 대체해서 데이터 전송등에 많이 사용)
- SOAP (Simple Object Access Protocol)
→ HTTP, HTTPS, SMTP 등을 통해 XML 기반의 메시지를 컴퓨터 네트워크 상에서 교환하는 프로토콜
→ SOA 개념을 실현하기 위한 기술
- AJAX (Asynchronous JavaScript And XML)
→ XML HttpRequest 객체를 이용해서 전체 페이지를 새로 고치지않고 페이지 일부분만을 위한 데이터를 로드
- REST (Representational State Transfer)
→ 기존 SOA 기반의 아키텍처의 비 효율성을 극복
→ UDDI 같은 중간 매체 없이, 고유한 URL로 직접 전송하기 때문에 빠르다
→ HTTP에서 제공하는 기본 메소드인 PUT, GET, POST, DELETE, PATCH만으로 자원에 접근할 수 있따
Code
C언어, PYTHON
기본 연산자
재귀 함수
선택정렬
버블정렬
UI (User Interface)
→ 사람들이 컴퓨터, 시스템, 기기, 도구 등 그사이에서 일어나는 상호작용을 매개하는 것
* 목적
→ 심리학과 심리학에 기반하여 사용자가 필요로 하는 요소를 쉽게 찾고 사용하며 명확하게 의도한 결과를 쉽게 얻어 낼 수 잇어야함
* 종류
- CUI (Character based UI)
→ 문자방식의 명령어 입력 사용자 인터페이스
- GUI (Graphic UI)
→ 그래픽 환경 기반의 마우스 입력 사용자 인터페이스
- NUI (Natural UI)
→ 사용자의 말과 행동 기반 제스처 입력 인터페이스 등
* 기본 원칙
- 직관성
→ 앞의 구조를 큰 노력 없이도 쉽게 이해하고 쉽게 사용할 수 있게 제작해야 함
→ 용이한 검색 쉬운 사용성 일관성이 있어야 한다는 원칙
- 유효성
→ 정확하고 완벽하게 사용자의 목표가 달성될 수 있도록 제작해야 하는 원칙
- 학습성
→ 초보와 숙련자 모두가 쉽게 배우고 사용할 수 있게 제작해야 함
→ 쉽게 학습, 쉬운 접근, 쉽게 기억해야 한다는 원칙
- 유연성
→ 사용자의 인터렉션을 최대한 포용하고, 실수를 방지할 수 있도록 제작해야 함
→ 오류예방, 실수 포용, 오류 감지가 가능하도록 해야한다는 원칙
2022.07.17 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (소프트웨어 테스트)
V-모델
테스트 레벨에 따른 테스트의 유형
인수테스트
알파테스트
베타 테스트
- 에러
→ 결함의 원인 되는 것을 의미
→ 사람에 의해 생성된 실수가 대표적인 케이스
- 결함, 결점, 버그
→ 에러가 원인이 되어 제품에 포함된 결함
→ 제거하지 않으면 실패 또는 문제으 ㅣ원이 된다
- 실패, 문제
→ 제품의 결함이 있는 부분이 실행될 때 발생되는 현상
통합 테스트
- 하향식 통합방법
→ 스텁(Stub)
인자를 통해 받은 값을 가지고 테스트를 수행한 후 그 반환 값만 테스트할 모듈에 넘겨주는 역할
- 상향식 통합 방법
→ 드라이버(Driver)
상위나 하위 모듈이 개발될 때까지 기다릴 수 없어 가상의 상위나 하위 모듈을 만들어 사용
상위 모듈 역할을 하는 가상의 모듈
테스트할 모듈을 호출하고, 모듈 테스트 수행 후의 결과를 도출하는 역할
2022.07.18 - [Software 공부/Software Database Knowledge] - [Database][SQL Query] 데이터 정의어
2022.07.18 - [Software 공부/Software Database Knowledge] - [Database][SQL Query] 데이터 조작어
2022.07.15 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (암호화 알고리즘)
2022.07.22 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (소프트웨어 개발 보안)
분산 컴퓨팅 구조
교착 상태
* 교착 상태 발생 조건
- 상호배제 (Mutual Exclusive)
→ 프로세스가 자원을 배타적으로 점유하여 다른 프로세스가 그 자원을 사용할 수 없습니다
- 점유와 대기 (Block & Wait)
→ 한 프로세스가 자원을 점유하고 있으면서 또 다른 자원을 요청하여 대기하고 있는 상태
- 비 선점 (Non Preemption)
→ 한 프로세스가 점유한 자원에 대한 다른 프로세스가 선점할 수 없고, 오직 점유한 프로세스만이 해제 가능
- 환형 대기 (Cicular wait)
→ 두개 이상의 프로세스 간 자원의 점유와 대기가 하나의 원형을 구성한 상태
* 교착상태 해결 방안
- 예방(Prevention)
→ 상호배제, 점유와 대기, 비선점 및 환형대기 조건의 부정
- 회피 (Avoidance)
→ 은행가 알고리즘 (Banker's Algorithm)
→ Wait-die, wound-wait 알고리즘
- 발견 (Detection)
→ 시스템의 상태를 감시 알고리즘을 통해 교착 상태 검사
→ 자원 할당 그래프,. wait for Graph
- 회복 (Recovery)
→ Deadlock이 없어질 때까지 프로세스를 순차적으로 Kill하여 제거
2022.07.16 - [자격/정보처리기사] - [정보처리기사][실기] 개인적인 정리 (OSI 7계층)
프로토콜
* 정의
→ 서로 다른 시스템에 있는 두개체 간에 성공적으로 데이터를 전송하는 통신규약
(외교분야에서의 의례 또는 의정서를 의미하는 용어)
→ 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며
도착하지 않았을 경우 메시지를 재전송하는 일련의 방법
* 기능
- 단편화(Fragmentation)와 재합성(Assembly)
→ 송신 측에서는 긴 데이터 블록을 전송이 용이하도록 같은 크기의 작은 블록으로 나누어 전송
→ 수신 측에서는 작은 데이터 블록을 재합성하여 원래의 메시지로 복원하는 기능
- 캡슐화 (Encapsulation)
→ 비연결 데이터 전송(데이터그램)과 연결 위주 데이터전송(가상회선)을 위한 통신로를 개설 유지 종결하는 기능
- 흐름 제어 (Flow Control)
→ 데이터 양이나 통신 속도 등이 수신측의 처리 능력을 초과하지 않도록 조정하는 기능
- 오류제어(Error Control)
→ 데이터 전송 중 발생할 수 있는 오류나 착오 등을 검출하고 정정하는 기능
- 순서 결정 (Sequencing)
→ 연결 위주의 데이터를 전송할 때 송신 측이 보내는 데이터 순서대로 수신측에 전달하는 기능
- 주소 설정(Addressing)
→ 발생지, 목적지 등의 주소를 명기하여 데이터를 정확하게 전달하는 기능
- 동기화(Synchronization)
→ 하나의 통신로를 여러개로 나누거나(Upward) 회선 여러개를 하나의 통신로로 변환(Downward) 시켜
→ 다수의 가입자가 동시에 사용하는 기능
- Transmission Service
→ 통신 객체를 사용하기 쉽도록 별도로 추가 서비스 (패러티 검사, 보안도, 서비스 등급, 우선순위 등)를 제공하는 기능
* 기본 3요소
- 구분(Syntax)
→ 데이터의 구조나 형태(포맷)을 정의
→ 16bit 정보 송신 시 앞에 8bit는 주소, 다음 8bit는 데이터로 정의
- 타이밍(Timing)
→ 어떤 데이터를 보낼 것인지 얼마나 빨리 보낼 것인지를 결정
- 의미(Semantics)
→ 데이터의 각 부분이 무엇을 뜻하는지 알 수 있게 미리 정해둔 규칙
→ 오류 제어, 동기화, 흐름제어
- ISO9126
→ SW의 최상위의 품질 목표 달성을 위한 소프트웨어 품질 특성에 대한 국제 표준
→ 기능성
→ 신뢰성
→ 사용성
→ 효율성
→ 유지보수성
→ 이식성
스키마
→ 전체적인 구조와 제약조건에 대한 명세 기술 정의
- RIP (Routing Information Protocol)
→ 인접해 있는 라우터와 라우팅 정보를 교환하는 거리벡터 라우팅
→ 소규모 동종의 네트워크 내에서 효율적인 방법
→ 최대 홉(Hop) 수를 15로 제한
→ 벨만포드 알고리즘, Hop Count, Distance Vector
- OSPF (Open Shortest Path First)
→ 홉수에 제한이 없어 대규모 네트워크에서 많이 사용되는 프로토콜
→ 라우팅 정보에 변화가 있을 때 변화된 정도만 네트워크 내의 모든 라우테게 알리는 링크상태 라우터
- BGP(Border Gateway Protocol)
→ AS(Autonomous System) number가 서로 다른 네트워크 간에 라우팅 정보를 주고 받을 때, 기용될 수 있는 Exterior Gateway Protocol
→ 다익스트라 알고리즘, Cost(Bandwidth), LS(Link-State)
- 인덱스
→ 검색 연산의 최적화를 위해 데이터 베이스 내의 튜플들에 대한 정보를 구성하는 데이터 구조
- 뷰
→ 사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해
→ 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상의 테이블
'자격 > 정보처리기사' 카테고리의 다른 글
[정보처리기사][실기] 개인적인 정리 (소프트웨어 테스트) (0) | 2022.07.23 |
---|---|
[정보처리기사][실기] 개인적인 정리 (디자인패턴) (0) | 2022.07.23 |
[정보처리기사][실기] 개인적인 정리 (결합도, 응집도) (0) | 2022.07.23 |
[정보처리기사][실기] 개인적인 정리 (UML 다이어그램) (0) | 2022.07.23 |
[정보처리기사][실기] 개인적인 정리 (객체지향) (0) | 2022.07.23 |