정처기 필기 TIL) 220329 오답노트 - 210327 1~50번

2022. 3. 29. 14:47코딩/TIL

21.03.07 정보처리기사 1회 기출문제 오답(1~50번) 22.03.29

 

1. 리눅스 명령어 

pwd : Print Working Directory 현재 디렉토리 출력 

uname 시스템 정보 출력 

uname은 시스템의 정보를 확인하는 명령어. 시스템의 이름, 사용중인 운영체제와 버전, 호스트명, 하드웨어 정보 등을 확인할 수 있다. 

 

 

2. DB링크 기술 (Database Link) 

https://wickedmagic.tistory.com/235

다음 조건을 만족하는 데이터베이스 서버들을 연동하여 로컬(사용자) 요구가 있을 때 각 데이터베이스 서버의 개별 자료를 통합, 처리하는 기술 

* 연동되는 데이터베이스 서버들은 다음과 같은 조건을 만족해야 한다 

(상호논리적인 관계로 구성, 컴퓨터 통신망에 연결, 지역적인 분리) 

 

스크럼 기술 

럭비에서 반칙으로 경기가 중단된 경우 양 팀의 선수들이 럭비공을 가운데 두고 상대팀을 밀치기 위해 서로 대치해있는 대형이 스크럼. 이처럼 팀이 중심이 되어 개발의 효율성을 높인다는 의미 

 

프로토타입 기술 

프로토타이핑을 통해 사용성을 검증받아가며 개발하는 기법(시스템 개발 초기에 사용자의 요구 기능을 시제품으로 만들어서 사용자로부터 사용성을 검증받아가면서 시스템 개발) 

 

3. GoF 디자인 패턴 Gang of Four 

4명의 개발자로 구성됨. 소프트웨어 개발 영역에서 디자인 패턴을 구체화하고 체계화한 사람들 

생성패턴 종류 

생성패턴은 객체의 생성과 관련된 패턴으로 객체를 직접 인스턴스화 하지 않고 객체를 생성하고 조합하여 캡슐화하고 특정 객체가 생성되거나 변경되어도 프로그램 구조에 영향을 크게 받지 않도록 유연성 제공 

- Abstract Factory 추상 팩토리 : 동일한 주제의 다른 팩토리를 묶어준다

- Builder : 생성과 표기를 분리해 복잡한 객체를 생성한다

- Factory Method : 생성할 객체의 클래스를 구현하지 않고 객체를 생성한다 

- ProtoType : 기촌 객체를 복제함으로서 객체 생성 

- Singleton : 한 클래스에 한 객체만 존재하도록 제한 

 

구조 패턴 

어댑터 패턴 : 클래스나 객체를 조합하여 더 큰 구조로 확장하는 패턴으로 상속을 사용하여 인터페이스를 구성하고 객체를 작성하여 새로운 기능을 얻는 방법 > 새로운 기능을 제공하는 패턴 

어Adapter,Bridge,Composite,Decorator,Facade,Flyweight,Proxy 

 

행위 패턴 

책임 연쇄,커맨트,인터프리터,이터레이터,중재자,메멘토,옵서버,상태 등 

 

4. 미들웨어 종류 

WAS 어플리케이션 수행 미들웨어 Web Application Server 

MOM 메시지 지향 미들웨어 Message Oriented Middleware 

ORB 네트워크 호출 미들웨어 Object Request Broker 

 

RPC는 원격 프로시저 호출 Remote Procedure Call 

 

5. 바람직한 소프트웨어 설계를 위해서는 결합도는 최소화 해야한다. 

 

6. 객체지향 방법 분석론 

Coad와 Yourdon 방법 

E-R 다이어그램을 사용하여 객체의 행위를 모델링 

객체 식별, 구조 식별, 주제 정의, 속성과 인스턴스 연결 정의, 연산과 메시지 연결 정의 등의 과정으로 주로 관계를 분석하는 기법 

 

럼바우 분석 기법 

객체,동적,기능 모델로 나누어 수행하는 방법 

정보모델링이라고도 하며 시스템에서 요구되는 객체를 찾아내어 속성과 연산 식별 및 객체들 간의 관계를 규정하여 다이어그램 표시 : Object 

동적 모델링 : 상태도(상태 다이어그램)을 이용하여 시스템의 행위 기술 

기능 모델링 : 자료 흐름도를 이용ㅎ하여 다수의 프로세스들 간의 자료 흐름을 중심으로 처리 과정 표현 

 

Booch 방법 

미시적 개발 프로세스와 거시적 개발 프로세스를 모두 사용하는 방법 

 

Jacobson 방법 

Use-case를 사용하여 분석(사용자 외부 시스템, 다른 요소들이 시슽템과 상호 작용하는 방법을 기술) 

Use-case는 시스템 동작을 사용자의 입장에서 표현한 시나리오 > 시스템에 관련한 요구사항을 알아내는 과정 

 

Wrifs-Brock 방법

분석과 설계간 구분X 고객 명세서를 평가하여 설계 작업까지 연속적으로 수행 

 

7. Fan-in, Fan-out 

Fan-in : 어떤 모듈을 제어(호출)하는 모듈의 수, 게이트가 수용할 수 있는 최대 입력 수 

Fan-out : 어떤 모듈에 의해 제어(호출)되는 모듈의 수, 출력 단자에 접속하여 신호를 추출할 수 있는 최대 허용 출력 수 

* 시스템 복잡도 최적화를 위해서는 팬인은 높게, 팬아웃은 낮게 설계 

 

8. 현행 시스템 분석 고려 사항 

플랫폼 기능 분석, 네트워크 분석, 플랫폼 성능 특성 분석, 운영체제 분석, 네트워크 분석, DBMS 분석, 비즈니스 융합 분석 등 

 

9. 소프트웨어 종류 

open-hubware : 많은 사용자들이 판매,구매,유통 등의 서비스를 지원받을 수 있도록 지원하는 개발형 소프트웨어

온라인쇼핑, 택배회사 등에서 사용 

Grayware : 악성 프로그램과는 다르게 사용자의 동의를 얻어 설치되며 컴퓨터에 직접적인 위협X 

사용자 입장에서는 불편을 야기하는 악성 프로그램 일 수 있지만 유용한 소프트웨어일 수 있음 

 

10. CASE (Computer Aided Software Engineering) 컴퓨터 지원 소프트웨어 공학 

시스템 개발 방법론들의 자동화를 지원하는 소프트웨어 도구를 제공해 개발자의 반복적인 작업량을 줄임

일관성 분석을 통해 요구사항 변경사항의 추적 및 분석,관리,표준 준수여부를 확인 

 

 

11. UML (Unified Modeling Language) 통합모델링 언어 

모델을 만드는 표준언어. 모델은 어떤 것을 실제로 만들 때 이렇게 만들면 잘 작동하겠다!를 미리 검증해보는 것이며 실제 물건을 만드는 비용보다 비용이 훨씬 적을 경우에 모델을 만들어 설계 검사

사용자 측면에서 본 시스템 기능이며 Use Case Diagram 사용 

정적 모델 - 객체, 속성, 연관관계, 오퍼레이션의 시스템 구조를 나타내며 UML에서는 Class Diagram 사용 

동적 모델 - 시스템의 내부 동작을 말하며 UML에서는 Sequence Diagram, State Diagram, Activity Diagram 사용 

 

* State Diagram : 객체가 가진 상태와 상태 변환을 나타낸다. 

 

12. Use case 구성요소 관계 

- 연관 : use case - actor와의 관계

- 확장 : use case 수행 시 특별한 조건을 만족할 때 수행할 usecase 

- 일반화 : 하위 use case/action이 상위 use case/actor에게 기능 역할을 상속받음

- 그룹화 : 여러 개의 use case 단순화 

 

13. 요구사항 모델링 

애자일 방법 : 공정과 도구 < 개인과 상호작용

계획 < 변화

포괄적인 문서 < 동작하는 소프트웨어

계약 협상 < 고객 협력 

, 유스케이스 다이어그램, 시컨스 다이어그램 

* 단계 다이어그램(Phase Diagram)은 물리 화학 등에서 사용하는 다이어그램으로 요구사항 모델링과 관계 없음 

 

14. 상향식,하향식 설계 

https://ko.gadget-info.com/difference-between-top-down

하향식 설계 : 복잡한 모듈을 하위 모듈로 나눔 

= 주어진 문제를 분석하여 모듈의 전체적인 구조와 데이터를 개괄적으로 설계하고 이를 기반으로 하위 레벨에서 점차 세부적인 기능을 중심으로 모듈 설계 

상향식 설계 : 초등모듈로 시작하여 더 결합 

최하위 수준에서 각각의 모듈들을 설계하고 모듈이 완성되면 결합하여 검사 

 

* 모듈화 : 복잡한 알고리즘은 모듈이라고 하는 작은 부분으로 나뉘며 분할 과정은 모듈화라고 한다.

모듈화는 알고리즘 설계의 복잡성을 크게 줄이고 프로세스를 보다 쉽게 설계하고 구현할 수 있게 해준다.

 

15. Selction Sort 선택 정렬

정렬되지 않은 값 중 가장 작은 값을 선택한 후에 정렬되지 않은 첫번째 요소와 값을 바꾸는 정렬 

8 3 4 9 7 

1) 3 8 4 9 7 

2) 3 4 8 9 7 

3) 3 4 7 9 8 

4) 3 4 7 8 9 

 

16. 상향식 통합 테스트, 하향식 통합 테스트

상향식 통합 테스트 Bottom up Integration Test : 프로그램의 하위 모듈에서 상위 모듈 방향으로 통합하면서 테스트 하는 기법. 하나의 주요 제어 모듈과 관련된 종속 모듈의 그룹인 클러스터 필요

* 드라이버 

 

하향식 통합 테스트 Top Down Integration Test : 프로그램의 상위 모듈에서 하위 모듈 방향으로 통합하면서 테스트 하는 기법 (깊이 우선 통합법,넓이 우선 통합법 사용) 

테스트 초기부터 사용자에게 시스템 구조를 보여줄 수 있음 

* 일시적으로 필요한 조건만을 가지고 임시로 제공되는 시험용 모듈 : Stub 스텁 

 

17. 전위,중위,후위 표기법 

- / * A + B C D E 

전위 표기법 - 연산자가 앞에 (연산자에 따라 묶는다) (-(/(*A(+BC))D)E) 

중위 표기법 - 연산자가 안에 

후위 표기법 - 연산자가 뒤에 A B C + * D / E

 

18. 선형구조 비선형구조

선형구조 : 배열,선형리스트,스택,큐,데크

비선형구조 : 트리,그래프 

 

19. 스택과 큐 

입출력이 한쪽 끝으로만 제한된 리스트, LIFO 구조, 더 이상 삭제할 데이터가 없는 상태에서 데이터를 삭제하면 Underflow 발생 

Top 포인터 : 자료의 삽입과 삭제가 발생하는 부분 - 항상 제일 위에 있는 자료를 가리ㅣㅁ 

Bottom 포인터 : 막혀있는 다른 한쪽 끝 

 

한쪽에서는 삽입, 다른 한 쪽에서는 삭제 작업이 이루어짐, FIFO 구조 

 

20. DRM 기술 : 디지털 권리 관리 Digital Rights Management 

출판자 또는 저작권자가 그들이 배포한 디지털 자료나 하드웨어의 사용을 제어하고 이를 의도한 용도로만 사용하도록 제한하는데 사용되는 모든 기술 

 

기술요소 : 암호화,키관리,암호화 파일생성,식별기술,저작권 표현,정책관리,크랙방지,인증 

 

21. 선택 박스(버튼)

체크박스 : 여러 개의 선택상황에서 1개 이상의 값 선택 가능 

라디오버튼 : 여러 항목 중 하나만 선택할 수 있는 버튼 

토글 버튼 : ON/OFF와 같이 둘중 하나의 값을 선택하는 버튼 

 

22. 블랙박스 검사 기법 Black Box Test (사용자 관점의 테스트) 

소프트웨어의 내부 구조나 작동 원리를 모르는 상태에서 동작 검사 

사용자가 직접 특정 앱이나 디바이스를 가지고 이리저리 작동시키는 과정이 블랙박스 테스트와 동일 

= 내부에 어떤 내용이 있는지 하나도 모른 채, 내가 원하는 기능이 예측대로 정상동작 하는지를 확인 

 

블랙박스 테스트의 종류 : 동치분하럼사,경계값 분석, 원인-효과 그래프 검사, 오류 예측 검사,비교 검사 

 

이와 반대로 화이트박스 테스트(개발자 관점의 테스트) 

응용프로그램의 내부 구조, 동작을 디테일하게 검사 

내부 소스 코드를 테스트하는 기법이며 사용자가 들여다볼 수 없는 구조 간의 코드 단위를 테스트 

개발자가 소프트웨어 또는 컴포넌트 등의 로직에 대한 테스트를 수행하기 위해 설계 단계에서 요구된 사항을 확인하는 테스트 

 

23. 이진 검색 알고리즘 

정렬된 리스트에서 원하는 항목을 찾기에 효율적인 알고리즘 

후보 범위가 한 항목으로 좁아질 때까지 찾고자 하는 항목을 포함하고 있는 리스트를 반으로 나누는 과정 

이진 검색을 가장 많이 사용하는 경우는 배열에서 어떤 특정한 항목을 찾아야 할 때 

 

전체 파일을 두 개의 서브파일로 분리해가면서 키 레코드를 검색하는 방식 

 

24. 소프트웨어 품질목표 중 쉽게 배우고 사용할 수 있는 정도 : Usability

 

25. 테스트 케이스에서의 명세

입력 명세 : 테스트 조건, 테스트 데이터 

출력 명세 : 예상 결과 

* 명세 : 프로그래밍의 유지 보수가 가능하도록 프로그램의 구조와 기능을 상세하게 기술한 문서 

 

26. Chief Programmer Team (소프트웨어 형상관리 문제에서 오답으로 나옴) 

소프트웨어 형상관리는 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 한다. 

 

위의 Chief 팀과 형상관리는 관련은 없다. 이 팀은 효율성을 제고하기 위해 능력과 경험이 풍부한 책임 프로그램 작성자를 중심으로 하여 구성한 개발 팀 

 

27. 퀵 정렬 

레코드의 많은 자료 이동을 없애고 하나의 파일을 부분적으로 나누어 가면서 정렬하는 방식 

 

28. 해싱 함수 종류 

제산법(division),제곱법,중첩법(폴딩법),숫자분석법,기수 변환법,무작위 방법

 

29. 필드 테스팅 = 베타 검사 

개발자 없이 사용 환경에 소프트웨어를 설치하여 검사를 수행하는 인수검사 기법

형상 검사 : 구성 요소, 목록, 유지보수를 위한 모든 사항이 표현되었는가를 검사 

알파 검사(중요) : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 검사 기법 

통제된 환경, 오류와 사용상 문제점을 사용자와 개발자가 함께 확인하며 기록 

 

 

30. 순회 

전위 순회 Preorder (Root-Left-Right) 위 앞 뒤 

중위 순회 Inorder (Left-Root-Right) 앞 위 뒤 

후위 순회 Postorder (Left-right-root) 앞 뒤 위 

 

 

31. DBMS 용어 

https://m.blog.naver.com/kookh1/120184872122

릴레이션 = 테이블 

RDBMS에서 정보를 구분하여 저장하는 기본 단위 

튜플 = 한 릴레이션에 포함되는 각각 하나의 행

카디날리티(Cardinality) 릴레이션 튜플의 개수 (카디날리티 영어 뜻은 집합의 크기이다) 

애트리뷰트(Attribute) 하나의 릴레이션은 현실세계의 어떤 개체(엔티티)를 표현하고 저장 

차수(degree) 애트리뷰트의 수 

 

32. 트랜잭션 

쪼갤 수 없는 업무 처리의 최소 단위 = 거래내역 

영어로 간단히 Tx라고 표기하기도 한다. 

 

트랜잭션의 특징 

일관성(Consistency) : 트랜잭션의 수행 전, 후의 데이터 간의 불일치가 생겨서는 안된다. 

격리성(isolation) : 여러 트랜잭션이 동시에 수행되고 각각 독립적으로 수행되어야 한다 

영속성,지속성(durability) : 성공적으로 수행된 트랜잭션의 결과는 지속성이 있어야 한다 

Atomicity : 트랜잭션의 연산은 데이터베이스에 모두 반영되든지 아니면 전혀 반영되지 않아야 한다. 모든 명령은 완벽히 수행되어야 하며 모두가 완벽히 수행되지 않고 어느 하나라도 오류가 발생하면 트랜잭션 전부가 취소되어야 한다

 

33. 병행제어의 로킹(Locking) 단위

데이터베이스 병행 제어를 위해 트랜잭션이 접근하고자 하는 데이터를 잠가(lock) 다른 트랜잭션이 접근하지 못하도록 하는 병행 제어 기법  

트랜잭션이 어떤 데이터에 접근하고자 할 때 로킹을 수행하며, 로킹이 되어 있는 데이터에는 다른 트랜잭션이 접근할 수 없다 

로킹 단위 : 필드,레코드,테이블,파일,데이터베이스 모두 로킹 단위가 될 수 있다. 

한꺼번에 로킹할 수 있는 객체의 크기를 로킹 단위라고 한다. 

 

* 로킹 단위가 작아지면 오버헤드가 증가하고 병행성 수준이 높아진다

* 로킹 단위가 작아지면 병행성 수준은 높아진다 

* 로킹 단위가 커지면 한 번에 수행할 수 있는 크기가 커지기 때문에 데이터베이스 공유도가 감소한다 

 

34. VIEW 

사용자에게 접근이 허용된 자료만을 제한적으로 보여주기 위해 하나 이상의 기본 테이블로부터 유도된 이름을 가지는 가상 테이블 - 기본 테이블과 같은 형태의 구조를 사용하고 조작도 기본 테이블과 거의 같다

저장장치 내에 물리적으로 존재하지 않지만(가상이니까) 사용자에게 있는 것처럼 간주 

(+) 논리적 데이터 독립성 제공, 사용자의 데이터 관리 간단하게 해준다, 접근 제어를 통한 자동 보안 

(-) 독립적인 인덱스를 가질 수 없다, ALTER VIEW문을 사용할 수 없다. 뷰로 구성된 내용에 대한 삽입,삭제,갱신,연산에 제약이 따른다. 

 

35. 정규화 

데이터베이스들의 데이터들을 최대한 중복을 제거하여 이상 현상을 방지하기 위한 기술 

 

이상 현상은 3가지가 있는데 (다 의도치 않은 데이터가 ,,,) 

갱신 이상 - 중복된 데이터 중 일부를 갱신할 때 의도치 않은 데이터가 갱신됨으로써 생기는 데이터 불일치

삽입 이상 - 새 데이터를 삽입할 때 의도치 않은 데이터가 삽입됨으로써 생기는 데이터 불일치

삭제 이상 - 데이터를 삭제할 때 의도치 않은 데이터까지 삭제됨으로써 데이터 불일치 

> 이상 현상은 이러한 현상을 해결하기 위해 데이터를 잘게 쪼개나감 

 

제1정규화 

https://mjn5027.tistory.com/46

위와 같은 테이블이 있다고 하면 테이블의 속성 하나는 하나의 속성값만을 가져야 한다. 

그런데 위의 테이블에서 수강과목컬럼에서 철수가 수강과목이 2개(속성값 2개)이므로 제1정규형에 위배 

이를 쪼개줌 = 원자값을 갖는다 

 

제1정규형 적용 

https://mjn5027.tistory.com/46

 

제2정규화 

제1정규화를 거친 테이블에서 중복데이터로 인해 학생이름을 ROW로 구분할 수 없고 나이 또한 ROW로 구분할 수 없다 )(중복값이 있으므로) 학생이름과 수강과목을 합친 [ 학생이름, 수강과목 ] 기본키로만 각 ROW 구분 

= 학생이름과 수강과목을 알면 나이를 알 수 있다 

나이는 학생 이름에 종속되어 있기 때문에 학생 이름 하나만 알더라도 나이를 알 수 있다

기본키 중에 특정 컬럼에만 종속된 컬럼이 존재할 경우 2차 정규형 위배 

 

학생 테이블 

 

https://mjn5027.tistory.com/46

과목 테이블 

https://mjn5027.tistory.com/46

 

제3정규화 

제2정규화를 만족하는 상태에서 이행 함수 종속을 제거

https://mjn5027.tistory.com/46

1. 고객 번호를 알면 각 컬럼의 속성 값들을 찾아낼 수 있다. 그런데 자세히 보면 등급은 고객 번호에 의해 결정

2. 할인율은 등급에 의해 결정된다.

> 할인율은 고객 번호에 의해 결정되어지는 아이러니한 모습 

X>Y, Y>Z일때 X>Z를 만족해버리면 이행 함수 종속이 발생한다고 한다. 이것을 제거하는 것이 제3정규화 

 

등급 테이블

https://mjn5027.tistory.com/46

고객 정보 테이블 

https://mjn5027.tistory.com/46

이렇게 하면 제2정규형을 만족하면서 이행 함수 종속을 제거한 제3정규형의 형태가 된다. 

 

36. 참조 무결성 

릴레이션 R1에 속한 애트리뷰트의 조합인 외래키를 변경하려면 이를 참조하고 있는 릴레이션 R2의 기본키도 변경해야 한다. 

 

37. 시스템 카탈로그 

데이터베이스 관리자의 도구로, 데이터베이스에 저장되어 있는 모든 데이터 개체들에 대한 정의나 명세에 대한 정보 수록 

갱신은 무결성 유지를 위하여 SQL을 이용하여 시스템에서 자동갱신 된다. 

'코딩 > TIL' 카테고리의 다른 글

Unity TIL) 2차시 수업  (0) 2022.03.31
220329 인공지능TIL 4주차  (0) 2022.03.30
웹TIL) 220324 리액트 대문자 에러, package-lock.json, 컴포넌트, JSX에서의 띄어쓰기  (0) 2022.03.25
220318 TIL  (0) 2022.03.18
220316 TIL  (0) 2022.03.16