정처기 오답 - 정보처리기사 2020년 09월 26일 기출문제
동적 모델링(Dynamic Modeling)은 상태 다이어그램(상태도)를 이용해 시간 흐름에 따른 객체들 간의 제어 흐름, 상호 작용, 동작 순서 등의 동적인 행위를 표현하는 모델링을 말한다.
*럼바우(Rumbaugh) : 소프트웨어 구성요소를 그래픽 표기법으로 이용한 모델링
* " 분석: 객체 모델링, 동적 모델링, 기능 모델링
객체모델링:객체 다이어그램으로 표시, 가장 중요시 선행
동적모델링:상태 다이어그램(상태도), 동적인 흐름 행위
기능모델링:자료의 흐름을 이용하여 프로세스간의 자료 흐름을 처리
캡슐화는 필요한 속성(Attribute)와 행위(Method)를 하나로 묶고 그중 일부를 외부에서 사용하지 못하도록
은닉하는 것을 의미한다.
보기 4번의 설명은 상속에 대한 설명이다.
캡슐화(Encapsulation) = 은닉화
- 서로 관련성이 많은 데이터와 이와 관련도니 함수들을 한 묶음으로 처리하는 기법
- 결합도가 낮아지고 재사용이 용이
- 인터페이스가 단순화 됨
- 정보은닉과 관계가 깊음
- 변경 발생 시 오류의 파급효과가 적음
아키텍처(architecture)란 영어 뜻으로는 구조, 건축물, 건축학 등의 뜻
소프트웨어 아키텍처:소프트웨어 구조
1. 레이어 패턴 (Layers Pattern): 시스템을 계층으로 구분하여 구성 ex)OSI 참조 모델
2. 클라이언트-서버 패턴 (Client-Server Pattern): 하나의 서버 컴포넌트와 다수의 클라이언트 컴포넌트로 구성되는 패턴
3. 파이프-필터 패턴 (Pipe-Filter Pattern): 데이터 스트림 절차의 각 단계를 필터 컴포넌트로 캡슐화하여 파이프를 통해 데이터를 전송하는 패턴 ex)UNIX의 쉘
4. 모델-뷰-컨트롤러 패턴 (Model-View-Controller Pattern):서브시스템을 3개의 부분으로 구조화하는 패턴
-------------------
5. 마스터-슬레이브 패턴 6. 브로커 패턴 7. 피어-투-피어 패턴 8. 이벤트-버스 패턴 9. 블랙보드 패턴 10. 인터프리터 패턴
객체지향 설계/구현 위주 : 디자인 패턴은 객체지향 설계/구현에 많이 사용된다.
C 언어를 주로 사용하는 구조적 설계/구현에서도 사용할 수 있지만 너무 복잡해서 큰 도움이 되지 않는다.
소스코드분석 및 오류복구는 보통 back-end에서 컴파일러가 하는 역할로 User Interface Development System의 기능과는 거리가 멀다고 볼 수 있다.
정형 명세법
- 수학적 기반/모델링 기반
- Z, VDM, Petri-Net(모형기반)
- CSP, CCS, LOTOS(대수적방법)
- 시스템 요구특성이 정확하고 명세가 간결하다. 명세와 구현이 일치.
- 그러나 이해도가 낮으며 이해관계자의 작성 부담 가중.
비정형명세
- 상태, 기능, 객체 중심 명세법
- FSM(Finite state machine)
- Decision Table, ER모델링
- State chart(SADT)
- UseCase : 사용자기반모델링
- 명세 작성이 간편하고 의사전달 방법이 다양하다.
- 불충분한 명세가능성, 모호성
애자일 방법론
익스트림 프로그래밍(Extreme Programing, XP)
스크럼(Scrum), 익스트림 모델링, 크리스털 패밀리
기능 중심 개발(FDD, Feature-Driven Development)
GoF(Gangs of Four) 디자인 패턴 분류
1. 생성 패턴
2. 구조 패턴
3. 행위 패턴
- 추상 패턴은 없고, 생성 패턴으로 추상 팩토리가 있다.
모듈 간의 결합도가 약할 수록 좋다.
* 반대로 응집도는 강할 수록 좋다.
후위표기식은 연산 바로 앞의 두자리를 계산하고, 연산자를 빼줍니다.
Postfix 후위 표기식에 따라 정리하면 위의 식은 다음과 같습니다.
3*4+5*6
따라서 이 결과를 계산하면 12+30=42
피연산자 : left, right
연산자 : root
전위표기식(Prefix)
root → left → right
중위표기식(Infix)
left → root → right
후위표기식(Postfix)
left → right → root
후위표기식 (처음에는 크게, 갈수록 작게 구분하면 연산자,피연산자 구분하기 쉬워요)
→ (3 4 *) (5 6 *) (+)
→ (3 4 *) (+) (5 6 *)
→ (3 * 4) (+) (5 * 6)
→ (12) (+) (30)
→ 12 + 30 = 42
테스트 케이스 : 구현된 소프트웨어가 사용자의 요구사항을 정확하게 준수했는지를 확인하기 위해 설계된 입력 값, 실행 조건, 기대 결과 등으로 구성된 테스트 항목에 대한 명세서
테스트 시나리오 : 테스트 케이스를 적용하는 순서에 따라 여러 개의 테스트 케이스들을 묶은 집합
폴딩법 - 해싱함수 중 레코드 키를 여러부분으로 나누고 나눈 부분의 각 숫자를 더하거나 XOR한 값을 홈 주소로 사용
제산법 - 레코드키를 해시표로 나눈 나머지를 홈 주소로 사용
기수변환법 - 키 숫자의 진수를 다른 진수로 변환시켜 주소 크기를 초과한 높은 자릿수 절단, 다시 주소 범위에 맞게 조정
숫자분석법 - 키 값을 이루는 숫자의 분포를 분석하여 비교적 고른 자리를 필요한 만큼 선택
1. 인덱스 정규화 : 인덱스는 키 값으로 행 데이터의 위치를 식별하는데 사용하는 기능(인덱스 정규화는 인덱스를 효과적으로 사용하려면 정규화가 되어 있어야 하는 것을 말하는 듯)
2. 반정규화 : 정규화된 엔티티, 속성, 관계를 시스템의 성능 향상과 개발 운영의 단순화를 위해 중복, 통합, 분리 등을 수행하는 데이터 모델링 기법
3. 집단화 : 속성(유형, Type)들의 세트로 구성되는 새로운 속성(유형, Type)을 정의하는데 사용되는 개념
4. 머징 : 둘 이상의 데이터 세트를 단일 데이터 세트로 결합 또는 공통된 컬럼명 또는 행 이름에 따라 데이터 프레임을 병합
- 후보키(Candidate Key) : 릴레이션을 구성하는 속성 중 튜플을 유일하게 식별하기 위한 기본키로 사용할 수 있는 속성들을 뜻한다.
- 기본키(Primary Key) : 후보키 중에서 선택된 주키(Main Key)이다.
- 슈퍼키(Super Key) : 한 릴레이션 내에 있는 속성들의 집합으로 구성된 키이다. 슈퍼키는 릴에이션에 있는 튜플에 대해 유일성을 만족시키지만, 최소성은 만족 시키지 못한다.
- 외래키(Foregin Key): 관계를 맺고 있는 릴레이션 R1, R2에서 릴레이션 R1이 참조하고 있는 릴레이션 R2의 기본키와 같은 R1릴레이션의 속성 말한다.
<문제 해설> 문제에서 특정 컬럼을 지정하지 않았기 때문에 update컬럼 지정(update (컬럼1, 컬럼2, 컬럼3)은 생략 가능하다. - grant update(컬럼1, 컬럼2, 컬럼3) on 테이블명 to 사용자명; |
먼저 첫번째 select 과목이름 From 성적 where exists 구문을 살펴 보면, 성적 테이블에서 과목이름을 찾으라고 되어 있고, exists는 in과 비슷한 역할을 한다.
두번째 Select ~학생.주소 구문을 살펴 보면, 학생 테이블의 학번과 성적 테이블의 학번은 서로 동일하고, 학생 테이블에서 학과는 전기 또는 전산이고 주소가 경기인 학생을 찾는 구문이다.
여기에 해당되는 정보는 학번 2000, 4000 학생으로 성적 테이블에서 학번을 찾아보면 여기에 해당되는 과목은 "DB, DB, 운영체제" 이다.
<문제 해설> 데이터 모델 개념: 현실 세계의 정보를 컴퓨터가 이해할 수 있도록 추상화하여 표현한 모델 데이터 모델 구성요소: 논리적 데이터 구조, 연산, 제약 조건 데이터 모델 절차: 개념적 데이터 모델>논리적 데이터 모델>물리적 데이터 모델 |
<문제 해설>
릴레이션에서 차수(degree)는 속성의 수를 말합니다.
[해설작성자 : 오씨]
스키마 : 속성(attribute)의 집합 = 열
인스턴스 : 튜플의 집합 = 행,레코드
속성의 개수 = 차수
튜플의 개수 = 카디날리티(cardinality)
커널(kernel) : 프로세스(CPU스케줄링)관리, 기억장치 관리, 파일관리, 입출력 관리, 프로세스간 통신, 데이터 전송 및 변환 등 여러가지 가능 수행
쉘(shell) : 시스템과 사용자간의 인터페이스 담당, 명령어 해석기
출처: https://youtu.be/rWB8ZeY2Xvs
who 명령어는 현재 시스템에 로그인한 유저의 목록을 보여 준다.
|(파이프)는 앞의 who 명령어의 출력 결과를 뒤의 grep 명령어로 전달한다.
grep 명령어는 who 명령문의 결과 중 wow 유저가 로그인하면 그 결과를 필터링하여 출력한다.
sleep 명렁문 뒤의 숫자(초)만큼 잠시 수행을 대기한다.
출처:
Stop and Wait(정지 및 대기) 기법에 대한 설명이다.
① Slow start: 패킷이 문제없이 도착하면 혼잡 윈도우 크기를 패킷마다 1씩 증가시켜 한 주기가 지나면 혼잡 윈도우 크기가 2배로 되지만, 혼잡 현상 발생시 혼잡 윈도우 크기를 1로 줄여버리는 방식이다.
② Slding WIndow: 한 번에 여러 패킷(프레임)을 전송할 수 있어 전송 효율이 좋은 기법
- 수신 측으로부터 이전에 송신한 패킷에 대한 긍정 수신 응답(ACK)이 전달된 경우 윈도우 크기는 증가하고, 수신측으로부터 이전에 송신한 패킷에 대한 부정 수신 응답(NAK)이 전달된 경우 윈도우 크기는 감소한다.
④ Congestion Avoidance(혼잡 방지, Congestion Control): 네트워크 내에서 패킷의 지연이 너무 높아지게 되어 트래픽이 붕괴되지 않도록 패킷의 흐름을 제어하는 트래픽 제어(종류: AMID, Slow Start)
출처: https://youtu.be/rWB8ZeY2Xvs
스탬프 결합도
- 두 모듈이 매개변수로 자료를 전달할 때, 자료구조 형태로 전달되어 이용될 때 데이터가 결합되어 있다고 한다.
- 두 모듈이 동일한 자료 구조를 조회함
자료 결합도(data coupling)
어떤 모듈이 다른 모듈을 호출하면서 매게변수나 인수를 넘겨주고, 호출 받은 모듈은 받은 데이터에 대한 처리결과를 다시 돌려주는 방식
https://youtu.be/rWB8ZeY2Xvs?t=3218
응집도 : 하나의 모듈이 하나의 기능을 수행하는 요소들간의 연관성 척도, 독립적인 모듈이 되기 위해서는 응집도가 강해야 한다.(결합도는 약해야 한다.)
응집도 순서(강함 -> 약함)
1. 기능적 응집도(Functional Cohesion) : 모듈 내 모든 요소들이 단일 기능을 수행
2. 순차적 응집도(Sequential Cohesion) : 모듈 내의 한 요소의 출력 자료가 다음 요소의 입력 자료로 사용
3. 교환적 응집도(Communication Cohesion) : 모듈 내의 요소들이 동일한 입출력 자료로 서로 다른 기능을 수행
4. 절차적 응집도(Procedural Cohesion) : 모듈 수행 요소들이 반드시 특정 순서대로 수행
5. 시간적 응집도(Temporal Cohesion) : 특정 시간에 실행되는 기능들을 모아 작성된 모듈
6. 논리적 응집도(Logical Cohesion) : 논리적으로 유사한 기능을 수행 하지만 서로의 관계는 밀접하지 않음
7. 우연적 응집도(Coincidental Cohesion) : 모듈 내 요소들이 뚜렷한 관계가 없이 존재, 어떠한 의미 있는 연관관계도 지니지 않은 기능 요소로 구성되고 서로 다른 상위 모듈에 의해 호출되어 처리상의 연관성이 없는 서로 다른 기능을 수행하는 경우
<문제 해설> 논리주소= (세그먼트번호, 변위값) 물리주소= '세그먼트 시작주소+ 변위값' 논리주소(2,176)에서 세그먼트번호: 2 변위값: 176 표에서 세그먼트번호 시작주소 길이 2 222 198 물리주소=세그먼트 시작주소+변위값 =222 + 176 =398 |
SOA(Service Oriented Architecture,서비스 지향 아키텍처)계층
-표현 계층(Presentation Layer)
-프로세스 계층(Process Layer)
-서비스 계층(Service Layer)
-비즈니스 계층(Business Layer)
-영속 계층(Persistency Layer)
공개키 암호화 방식은 암호화와 복호화에 사용하는 키가 서로 다른 암호화 방식이다.
랜섬웨어 : 임의로 시스템을 잠그거나 혹은 데이터를 암호화하여 사용할 수 없게 한 다음 이를 빌미로 돈을 요구하는 기법.
파밍 : 홈페이지 주소를 바꿔 사용자가 진짜 사이트로 오인하게 하여 접속하게 한 다음 개인정보를 탈취하는 기법.
피싱 : 메일 등으로 공공기관이나 금융기관에서 보낸 것처럼 위장하여 사용자에게 계좌번호, 카드번호의 비밀번호를 빼내는 기법. 대표적으로 스미싱이 있습니다.
맵리듀스(MapReduce)
- 맵(Map) : 데이터가 텍스트 형태로 입력되면 64KB 분할한다. 텍스트 안에 단어를 분류하여 카운트한다.
- 리듀스(Reduce) : 각 텍스트에서 정리된 맵들을 결합하여 동일한 단어를 카운트한다.
▶애자일 방법론은 소프트웨어 개발 방법에 있어서 아무런 계획이 없는 개발 방법과 계획이 지나치게 많은 개발 방법들 사이에서 타협점을 찾고자 하는 방법론/적은 규모의 개발 프로젝트에 적용하기 좋다(그중에서도 XP와 SCRUM이 제일 많이 통용)
▶XP (Extreme Programming) 의 5원칙:단순성, 소통, 피드백, 용기, 존중
▷소통(Communication)-고객과 개발자와의 의사소통을 중요시
▷단순성(Simplicity)-사용되지 않는 구조와 알고리즘 배제, 가장 효율적인 디자인이나 코딩을 하는 것.
▷피드백(Feedback)-즉각적 피드백 통해 빠른 의사결정
▷용기(Courage)-개발자들이 자신감있게 변화를 수용하며 고객요구사항에 능동적 대처 용기
------------------
1.Linear Sequential Method(x) 순차적 방법
2.Pair Programming=모든 프로그래밍은 하나의 컴퓨터에 2명의 프로그래머가 같이 공동작업 진행
3.Collective Ownership=Collective Code Ownership=소스코드에 대한 팀의 공통책임이자 코드는 누구든지 수정가능함
4.Continuous Integration=컴포넌트 또는 모듈 단위로 나누어서 개발된 소스코드들은 하나의 작업이 끝날 때 마다 지속적으로 통합되고 동시에 테스트함
*객체지향 설계 원칙(SOLID)
- 단일 책임 원칙(SRP, Single Responsibility Principle):모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 함
- 개방 폐쇄의 원칙(OCP, Open-Closed Principle):소프트웨어 개체(클래스, 모듈, 함수 등등)는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다
- 리스코프 교체(치환)의 원칙(LSP, Liskov Substitution Principle):컴퓨터 프로그램에서 자료형 {\displaystyle S}S가 자료형 {\displaystyle T}T의 하위형이라면 필요한 프로그램의 속성(정확성, 수행하는 업무 등)의 변경 없이 자료형 {\displaystyle T}T의 객체를 자료형 {\displaystyle S}S의 객체로 교체(치환)할 수 있어야 한다는 원칙
-인터페이스 분리 원칙(ISP, Interface Segregation Principle):클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다는 원칙
-의존성 역전 원칙(DIP, Dependency Inversion Principle):의존 관계를 맺을 때 변화하기 쉬운 것 보다 변화하기 어려운 것에 의존하라는 원칙을 의미한다.
========================
*코드 정의:
데이터를 사용 목적에 따라 식별, 분류, 배열하기 위하여 사용되는 숫자, 문자 또는 기호로 컴퓨터 처리에 효율적인 것을 선정
*코드 종류
1) 순차 코드(Sequence Code)-자료의 발생순, 크기순, 가나다순 등 일정 순서대로 코드
2) 블록 코드(Block Code : 구분 코드)- 코드화 대상을 미리 파악하여 블록으로 구분한 후 그 안에서 순서대로 코드를 부여
3) 그룹 분류 코드(Group Classification Code)-구분 코드를 세분화한 형태로 대분류, 중분류, 소분류 등 각 분류별로 자릿수를 구성
4) 표의 숫자 코드(Significant Digit Code)-표현하려는 대상의 의미는 제외하고 수치만을 모아 만든 것으로 대상이 되는 물체의 중량, 면적, 크기 등을 직접 코드에 적용
5) 십진 분류 코드(Decimal Classification Code)-코드화 대상물을 일정한 소속으로 구분하여 십진수 한 자리씩 구분하여 대분류하고, 같은 방법으로 중 분류, 소분류한 코드
6) 연상 코드(Mnemonic Code)-숫자나 문자를 조합해서 나타내는 것으로 어떤 내용을 기억할 수 있도록 표시한 기호 코드
7) 약자 코드(Letter Code)-일반적으로 사용해온 단위의 약자를 코드로 사용
8) 끝자리 분류 코드(Final Digit Code)-다른 종류의 코드와 조합해서 사용하며, 코드의 끝에 붙여서 그 의미를 표현
상위 설계 : 아키텍처 설계, 데이터 설계, 시스템 분할, 인터페이스 정의, 사용자 인터페이스 설계(UI 설계)
하위 설계 : 모듈 설계, 인터페이스 작성
<문제 해설> = 정의 + 구성 [] 택일 {} 반복 () 생략가능 ** 설명 [해설작성자 : 나도 합격하고싶다] = : 자료의 정의(~로 구성되어 있다) + : 자료의 연결(그리고) () : 자료의 생략(생략 가능한 자료) [] : 자료의 선택(또는) ex) [ A | B | C ] {} : 자료의 반복 * * : 자료의 설명(주석) |
개발비용이 가장 많이 소요되는 단계는 유지보수 단계
미들웨어 솔루션 : 미들웨어 솔루션은 컴퓨터와 컴퓨터간의 연결을 쉽고 안전하게
할 수 있도록 해주고 이에 대한 관리는 도와주는 소프트웨어
미들웨어 솔루션 유형
- DB 미들웨어
- 원격 프로시저 호출(RPC)
- 메시지 지향 미들웨어(MOM)
- 트랜잭션 처리(TP) 모니터
- 레거시웨어(Legacyware)
- 객체 기반(ORB)미들웨어
- WAS(Web Application Server)
<문제 해설> EAI(Enterprise Application Integration) -> 모듈연계의 한 방식 EAI Hybrid = hub&spoke && messageBus hub&spoke = 그룹내의 담당 허브가 고장나면 전체에 영향 messageBus = 그룹 담당 Hybrid 는 중간에 미들웨어를 둔다 |
정적 분석 도구 - pmd, cppcheck, SonarQube, ccm등이 있다.
동적 분석 도구 - valance
형상검사: 구성요소 목록 유지보수 모든 사항이 표현 되었나 검사
알파검사: 사용자가 개발자 앞에서 행하는 검사
xUnit, STAF, FitNesse, NTAF, Selerium, Watir
빌드 자동화 도구
- 빌드를 포함하여 테스트 및 배포를 자동화하는 도구
- Ant, Make, Maven, Gradle, Jenkins 등이 있음
Jenkins
- JAVA 기반의 오픈소스 형태
- 서블릿 컨테이너에서 실행되는 서버 기반 도구
- 친숙한 Web GUI 제공
- 분산 빌드나 테스트 가능
Gradle
- Groovy를 기반으로 한 오픈 소스 형태
- 안드로이드 앱 개발 환경에서 사용
- 행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행
콘텐츠 분배자 - 암호화된 콘텐츠를 유통하는 곳 또는 사람
패키저 - 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화
1. Durability(연속성, 지속성)
- 성공적으로 완료된 트랜잭션의 결과는 시스템이 고장나더라도 영구적으로 반영되어야 한다.
2. Isolation(독립성, 격리성)
- 둘 이상의 트랜잭션이 동시에 병행 실행되는 경우 어느 하나의 트랜잭션 실행중에 다른 트랜잭션의 연산이 끼어들 수 없다.
3. Consistency(일관성)
- 시스템이 가지고 있는 고정요소는 트랜잭션 수행 전과 트랜잭션 수행 완료 후의 상태가 같아야 한다.
<참고 사이트> https://coding-factory.tistory.com/226
<문제 해설> 1. 관계대수는 관계형 데이터베이스에서 원하는 정보와 그 정보를 검색하기 위해서 어떻게 유도하는가를 기술하는 절차적인 언어이다. 2. 관계대수는 릴레이션을 처리하기 위해 연산자와 연산규칙을 제공하는 언어로 피연산자가 릴레이션이고 결과도 릴레이션이다. 3. 질의에 대한 해를 구하기 위해 수행해야 할 연산의 순서를 명시한다. 4. 대표적으로 순수 관계 연산자와 일반 집합 연산자가 있다. 관계해석이란? 1. 관계 데이터 모델의 제안자인 코드가 수학에 가까운 기반을 두고 관계 데이터베이스를 위해 제안하여 탄생하였다. 2. 관계해석은 관계 데이터의 연산을 표현하는 방법으로, 원하는 정보를 정의할 때는 계산 수식을 사용한다. 3. 관계해석은 원하는 정보가 무엇이라는 것만 정의하는 비절차적 특성을 지닌다. 4. 튜플 관계해석과 도메인 관계해석이 있다. 5. 기본적으로 관계해석과 관계대수는 관계 데이터베이스를 처리하는 기능과 능력면에서 동등하며 관계대수로 표현한 식은 관계해석으로 표현할 수 있다. 6. 질이어로 표현한다. |
비정규릴레이션 -> 도메인이 원자값
1NF -> 부분적 함수 종속 제거
2NF -> 이행적 함수 종속 제거
3NF -> 결정자이면서 후보키가 아닌 것 제거 ★
BCNF -> 다치 종속
4NF -> 조인 종속성 이용
5NF
[해설작성자 : mks]
정규화
1 2 3 bcnf 4 5
도 -> 부 -> 이 -> 결 -> 다 -> 조
도부이결다조 로 외우면 편합니다
데이터웨어하우스의 기본적인 OLAP(on-line analytical processing) 연산은 roll-up, slicing & dicing, drill-up & down, pivot, drill-through
1. configenv : 파이썬에서 사용, json 등.. 활용
2. printenv : 환경 변수의 값을 출력하는 명령어
3. env : 환경 변수 보기 및 변경
4. setenv : 환경 변수 추가 또는 업데이트
*응용 계층: 최종 사용자가 실제로 상호 작용하는 계층. 네트워크 리소스에 대한 액세스를 허용.
*세션 계층: 컴퓨터 간의 세션을 설정, 관리 및 종료하여 적절한 통신을 유지하는 역할을 수행.
*표현 계층: 데이터로 작동하는 계층. 주요 기능은 "데이터 변환, 암호화 및 압축", 기본적으로 사용하는
응용 계층과 상호 작용하여 데이터를 표현 계층으로 보낸다.
참고> https://velog.io/@bisu8018/ OSI-7-%EA%B3%84%EC%B8%B5- %EC%9D%B4%EB%9E%80
출처:
<문제 해설> a[시작점 : 끝점 : 넘어가는 수] 이렇게 생각하시면 됩니다. a[:7:2]이면, a[0]~a[7]까지의 값 [0,10,20,30,40,50,60,70]이고, 이를 2칸씩 넘어가라 했으니 a[0]부터 시작해서 [0,20,40,60]이 나오게 됩니다. [해설작성자 : MSJ] 아래와 같은 오류 신고가 있었습니다. 여러분들의 많은 의견 부탁 드립니다. 추후 여러분들의 의견을 반영하여 정답을 수정하도록 하겠습니다. 참고로 정답 변경은 오류 신고 5회 이상일 경우 수정합니다. [오류 신고 내용] a[:7:2]이면 a[0]~a[7]이 아니라 a[0]~a[6]라서 [0,10,20,30,40,50,60]까지에서 2칸씩 띄우는겁니다 |
더미코드
- 호출 시 로직 없이 응답만 수행하는 모듈
- 단위 테스트 시 아직 미개발 된 모듈을 대체하기 위해 사용
출처:
https://youtu.be/rWB8ZeY2Xvs?t=2507
UDP (User Datagram Protocol) - TCP/IP의 전송계층 프로토콜
- 비연결성 서비스 제공
- 단순한 헤더구조로 오버헤드 적음
- 사용하는 경우 : 빠른속도로 전송 요구시, 동시에 여러 사용자에게 데이터 전달시 , 반복적 전송
- 실시간 전송에 유리 , 신뢰성보다는 속도가 중요시 되는 네트워크에 사용
https://youtu.be/rWB8ZeY2Xvs?t=3483
https://youtu.be/rWB8ZeY2Xvs?t=3547
<문제 해설> 인터넷 계층의 프로토콜 - IP : 데이터 주소를 지정하고 경로 설정 - ICMP : IP와 조합하여 통신중의 오류처리와 전송 경로 변경등을 위한 제어 메세지 관리 - IGMP : 멀티캐스트를 지원하는 호스트나 라우터 사이에서 멀티캐스트 그룹유지를 위해 사용 - ARP : 호스트의 IP주소를 네트워크 접속 장치의 물리적 주소로 변환 ★ - RARP : ARP 반대 (물리적 주소를 IP 주소로 변환) --------------------------------------------------------------------- TCP 는 전송계층 프로토콜 FTP 는 응용계층 프로토콜 |
4장 보안 솔루션-방화벽종류
1.IDS : 침입 탐지 시스템
2.VPN : 가상 사설 통신망 (네트워크 암호화)
KDD는 한국에 무슨 협회
ZIGBEE는 저전력 라디오를 이용한 개인 통신망
CMM(Capability Maturity Model) 모델의 레벨
- 초기 단계
- 관리 단계
- 정의 단계
- 정량적 관리 단계
- 최적화 단계
[해설작성자 : 오씨]
능력성숙도모델 Capability Maturity Model
- 소프트웨어 개발업체들의 업무능력평가 기준을 세우기 위한 평가모형
- 레벨1:Initial(초기) : 표준화된 프로세스 없이 프로젝트 수행결과 예측이 곤란한 조직
- 레벨2:Managed(관리): 기본적인 프로세스 구축에 의해 프로젝트가 관리되고 있는 조직
- 레벨3:Defined(정의) : 세부표준 프로세스가 있어 프로젝트가 통제되는 조직
- 레벨4:Quantitatively Manaed(잘관리된) : 프로젝트 활동이 정략적으로 관리 통제되고 성과예측이 가능한 조직
- 레벨5:Optimizing(최적화) : 지속적인 개선활동이 정착화 되고 최적의 관리로 프로젝트가 수행되는 조직
* Capability Maturity Model (CMMI : 능력성숙도통합모델) : CMM 발전모형
DAS(Direct Attached Storage)에 대한 설명
2번 NAS(Network Attached Storage):서버와 저장장치가 네트워크로 연결된 저장장치
3번 N-SCREEN(앤스크린):PC-TV-휴대폰 등 여러 단말기로 같은 콘텐츠로 끊김없이 이용하는 체계
4번 NFC(Near Field Communication,근접 무선 통신): 10cm 이내의 가까운 거리에서 다양한 무선 데이터를 주고 받는 통신 기술
1.SREM(Software Requirements Enginering Methdology):TRW사가 우주 국방 시스템 그룹에 의해 실시간 처리 소프트웨어 시스템에서 요구사항을 명확히 기술하도록 할 목적으로 개발한 것으로,RSL과 REVS를 사용하는 자동화 도구이다.(RSL/REVS)
2.PSL/PSA:미시간 대학에서 개발한 것으로 PSL과 PSA를 사용하는 자동화 도구입니다.
3.HIPO(Hieracgy Input Process Output):하향식 소프트웨어 개발을 위한 문서화 도구입니다.
4.SADT(Structure Analysis and Design Technique): SoftTech사에서 개발된 것으로 구조적 요구 분석을 위해 블록 다이어그램을 채택한 자동화 도구입니다.
접근통제 기술-MAC/ DAC/ RBAC
1.MAC:강제 (Mandatory) 접근통제
-접근통제권한은 시스템이 지정
-주체와 객체의 등급을 비교하여 권한부여
2.DAC:임의 (Discretionary) 접근통제
-접근통제권한은 데이터소유자가 지정 및 제어
-데이터에 접근하는 사용자의 신원에 따라 권한부여
-부여된 권한을 다른 사용자에게 허가 가능
-관련 SQL 명령어: GRANT/ REVOKE
3.RBAC:역할기반 (Role Based) 접근통제
-접근통제권한은 중앙관리자가 지정
-사용자의 역할에 따라 권한부여
-임의+강제 접근통제의 단점보완
-다중프로그래밍환경에 최적화
PERT는 프로젝트 일정 관리 기법
[다중화]
: 하나의 통신 회선을 다수의 단말기가 공유할 수 있도록 하는 것, 자둥화를 위한 장치에는 다중화기, 집중화기, 공동 이용기
[다중화기 종류]
〮 TDM(Time Division Multiplexing)
- 시분할(시간) 다중화기
- 통신 회선의 대역폭을 일정한 시간 폭(Time slot)으로 나누어 여러 대의단말 장치가 동시에 사용할 수 있도록 한 것
- 디지털 회선 주로 이용
- STDM, ADTM
〮 FDM(Frequency Division Multiplexing)
- 주파수 분할 다중화기
- 통신 회선의 주파수를 여러 개로 분할하여 여러 대의 단말장치가 동시에 사용할 수 있도록 한 것
- 다중화기 중 주파수 대역폭을 다수의 작은 대역폭으로 분할 전송하는 방식
- 간섭 방지 위한 보호 대역(Gurad Band)필요 -> 대역폭의 나비 초래
- 저속의 비동기식전송, 멀티 포인트 방식, 아날로그 신호 전송 적합
〮 CDM(Code Division Multiplexing)
- 코드 분할 다중화 방식
- 무선 통신에서 가장 널리 사용, 도청과 간섭 방지가 가능하지만 잡음을 분리해야하는 오버헤드 발생
〮 WDM
- 파장 분할 다중화 방식
- 빛의 파장을 제외하고 FDM방식과 동일
- 초고속 대용량 전송 가능
- 시스템 확장성, 유연성 우수
네트워크 관련 신기술
소프트웨어 정의 데이터 센터
-데이터 센터의 모든 자원을 가상화
-다양한 소프트웨어 정의 기술이 사용된다.
-유연한 제어가능/ 비용절감가능/ 운영이 편리하다.
-하드웨어와 독립적이다
GPIB : EEE-488은 단거리 디지털 통신 버스이다. 1960년대 후반 전자 측정 장비에 사용되었으며 지금도 사용되고 있다. IEEE-488은 HP-IB(Hewlett-Packard Interface Bus)로서 개발되었으며, 보통 GPIB (General Purpose Interface Bus)로 불린다.
CentOS : 센트OS(영어: CentOS)는 센트OS 프로젝트에서 레드햇 제휴로 개발한 컴퓨터 운영 체제이다.
XSS : 웹 클라이언트가 제공하는 HTTP 쿼리 매개 변수 (예 : HTML 양식 제출)에서 적절하지 않고, 구문 분석 및 해당 사용자에 대한 결과의 페이지를 표시하는 공격 기법
<문제 해설> 직사각형을 포개어가는 것으로 나타낸다. [해설작성자 : 냐옹맨] 논리의 기술에 중점을 둔 도형을 이용한 표현 방법이다. 그리기가 어렵다.(전문성이 있어야 잘 그린다) 순차, 선택, 반복으로 표현한다. 임의의 제어 이동이 어렵다. goto구조가 어렵다. 그래픽 설계 도구이다. 상자 도표라고도 한다 프로그램으로 구현이 쉽다. 조건이 복합되어 있는 곳의 처리를 명확히 식별하기에 적합하다. if문이 여러개일 때 가능 |
SPICE(소프트웨어 처리 개선 및 능력 평가 기준) - 소프트웨어의 품질 및 생산성 향상을 위해 소프트웨어 프로세스를 평가 및 개선하는 국제 표준이다. 공식 명칭은 ISO/IEC 15504 |