정보처리기사

[정보처리기사] 2021년 2회 실기 기출

웹개발자(진) 2024. 7. 10. 16:28
반응형

 

 

 

[문제]

다음 (1), (2)에 알맞은 답안을 쓰시오

(1) 사용자가 시스템이나 서비스를 이용하면서 느끼고 생각하게 되는 총체적인 감정 및 경험

(2) 사용자와 시스템 간의 상호작용이 원할하게 ㅇ니뤄지도록 도와주는 장치나 소프트웨어

(1) : UX, 사용자 경험, User Exprience

(2) : UI, 사용자 인터페이스, User Interface

 

UI 설계원칙 


 

  1. 직관성 (Intuitiveness)
    • 정의: 사용자가 시스템을 처음 사용하더라도 쉽게 이해하고 사용할 수 있도록 설계해야 합니다.
    • 설명: UI는 사용자가 별도의 교육 없이도 바로 사용할 수 있을 만큼 직관적이어야 합니다. 예를 들어, 쓰레기통 아이콘이 파일 삭제를 의미하는 것처럼, 사용자들이 일반적으로 알고 있는 상징이나 기능을 활용하여 직관적으로 이해할 수 있도록 설계해야 합니다.
  2. 유효성 (Effectiveness)
    • 정의: 사용자가 목표를 달성하는 데 필요한 작업을 효율적으로 수행할 수 있도록 설계해야 합니다.
    • 설명: 유효성은 사용자가 적은 노력으로 원하는 결과를 얻을 수 있게 하는 것을 의미합니다. 예를 들어, 검색 기능을 제공하여 사용자가 필요한 정보를 빠르게 찾을 수 있도록 하면 유효성을 높일 수 있습니다.
  3. 학습성 (Learnability)
    • 정의: 사용자가 시스템을 배우고 익히는 데 필요한 시간과 노력을 최소화할 수 있도록 설계해야 합니다.
    • 설명: 학습성이 높은 UI는 사용자가 처음 접했을 때부터 쉽게 배우고 익힐 수 있도록 직관적이고 간단하게 설계되어야 합니다. 도구 설명(Tooltips), 안내 메시지, 단계별 가이드 등을 제공하여 사용자가 빠르게 학습할 수 있도록 도와야 합니다.
  4. 유연성 (Flexibility)
    • 정의: 다양한 사용자 요구와 상황에 맞게 시스템을 사용할 수 있도록 설계해야 합니다.
    • 설명: 유연성은 사용자가 자신의 필요에 따라 UI를 조정하고 커스터마이즈할 수 있는 능력을 의미합니다. 예를 들어, 단축키 설정, 테마 변경, 레이아웃 조정 등의 기능을 제공하여 다양한 사용자 요구를 충족시킬 수 있습니다.

 

 

 

[문제]

데이터베이스의 상태 변화를 일으키는 트랜잭션(Transaction)의 특성 중 
원자성(Atomicity)에 대해 간략히 서술하시오.

답 : 모두 반영되거나 모두 반영되지 않아야한다.

 

트랜잭션의 특성


트랜잭션(Transaction)의 특성은 데이터베이스에서 여러 작업을 하나의 논리적 작업 단위로 묶어 관리하기 위한 중요한 개념입니다. 트랜잭션의 특성은 ACID라고 불리며, 이는 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 영속성(Durability)을 의미합니다.

 

 

1. 원자성(Atomicity)

모두 반영되거나 모두 반영되지 않아야한다. (Commit / rollback)

예시: 은행 계좌 이체에서, A 계좌에서 돈이 출금되고 B 계좌에 입금되는 두 작업이 모두 성공하거나, 두 작업 모두 실패해야 합니다.

 

2. 일관성(Consistency)

트랜잭션이 일어났을때 데이터베이스 상태가 일관적으로 유지되어야한다.

예시: 특정 계좌의 잔고가 음수로 변하지 않도록 제약 조건을 설정한 경우, 트랜잭션이 완료된 후에도 이 제약 조건이 유지되어야 합니다.

 

3. 독립성(Isolation)

트랜잭션 실행 도중 다른 트랜잭션에 영향을 주면 안된다.

예시: 두 사용자가 동시에 같은 데이터를 수정하는 경우, 한 사용자가 작업을 완료하기 전까지 다른 사용자는 그 중간 상태를 볼 수 없어야 합니다.

 

4. 영속성(Durability)

트랜잭션 완료시 해당 데이터 영구보존.

예시: 은행 시스템에서 입금 트랜잭션이 완료된 후, 서버가 다운되더라도 입금된 금액은 계좌에 반영되어 있어야 합니다.

 

 

 

[문제]

데이터베이스에 대한 다음 설명에서 들어갈 알맞은 답을 쓰시오.

테이블을 만들 때는 이상(Anomal)을 방지하기 위해 데이터들의 중복성 및 종속성을 배제하는 정규화를 수행한다.
부분 함수적 종속성을 제거하여, 완전 함수적 종속을 만족하는 정규형은?

 

답 : 제 3 정규형

 

데이터베이스 설계


데이터베이스 설계는 데이터베이스 시스템의 구조를 정의하고 구축하는 과정으로, 주로 개념적, 논리적, 물리적 설계 단계로 나눌 수 있습니다.

 

1. 개념적 설계

시스템이 지원해야 할 모든 데이터와 관계를 정의하는것

설명: 엔티티-관계 다이어그램(ERD)을 사용하여 엔티티, 속성, 관계를 시각적으로 표현합니다.

 

2. 논리적 설계

개념적 모델을 특정 데이터베이스 관리 시스템(DBMS)으로 구현하기 위한 논리적 구조로 변환하는 것.

설명: 이상현상 발생 방지를 위해서 정규화한다.

 

3. 물리적 설계

논리적 설계를 실제 데이터베이스 시스템에 구현하는 것.

설명: 물리적 설계는 논리적 구조를 실제 저장 매체에 효율적으로 저장하고 접근하기 위한 구체적인 방법을 정의합니다.

Index, Partition, View, Cluster, Hint 를 통해 효율적으로 저장

반정규화: (데이터베이스의 성능이 떨어져서 위배되는 행위를 하는 것)

 

 

 

데이터 베이스 정규화


[출처] https://velog.io/@unow30

 

 

 

[문제]

보안 및 암호화와 관련된 다음 설명에 해당하는 용어를 쓰시오.

1. 2001년 미국 표준 기술 연구소(NIST)에서 발표한 대치킹 암호화 알고리즘이다.
2. DES의 한계를 느낀 NIST에서 공모한 후 발표하였다.
3. 블록 크기는 128비트이며, 키 길이에 따라 128,192,256으로 분류된다.

답 : AES

 

암호화 방법 2가지


대칭키와 비대칭키는 정보 보안에서 사용되는 두 가지 주요 암호화 방법입니다. 이 두 가지 방법은 데이터 암호화 및 복호화에 사용되는 키의 수와 특성에 따라 다릅니다.

 

대칭키 암호화 (Symmetric Key Encryption)

 

  1. 정의:
    • 대칭키 암호화는 동일한 키를 사용하여 데이터를 암호화하고 복호화하는 방법입니다.
  2. 특징:
    • 속도: 대칭키 암호화는 비대칭키 암호화보다 빠릅니다. 따라서 대량의 데이터를 암호화하는 데 적합합니다.
    • 키 관리: 동일한 키를 사용하므로 키의 보안 관리가 중요합니다. 키가 노출되면 데이터가 쉽게 복호화될 수 있습니다.
    • 예시 알고리즘: AES (Advanced Encryption Standard), DES (Data Encryption Standard), 3DES (Triple DES).
  3. 사용 사례:
    • 데이터 전송: 데이터 전송 시 속도가 중요할 때 주로 사용됩니다.
    • 저장 데이터 암호화: 데이터베이스나 파일 시스템에서 데이터를 암호화하는 데 사용됩니다.
  4. 장점:
    • 암호화와 복호화 속도가 빠릅니다.
    • 구현이 상대적으로 간단합니다.
  5. 단점:
    • 키 분배와 관리가 어렵습니다. 안전하게 키를 공유하는 방법이 필요합니다.

 

비대칭키 암호화 (Asymmetric Key Encryption)

 

  1. 정의:
    • 비대칭키 암호화는 공개 키와 개인 키 두 개의 키를 사용하여 데이터를 암호화하고 복호화하는 방법입니다.
  2. 특징:
    • 공개 키: 누구나 사용할 수 있는 키로 데이터를 암호화합니다.
    • 개인 키: 비밀로 유지되는 키로 데이터를 복호화합니다.
    • 보안성: 키 관리가 용이합니다. 개인 키는 노출되지 않고, 공개 키는 자유롭게 배포할 수 있습니다.
    • 예시 알고리즘: RSA (Rivest-Shamir-Adleman), DSA (Digital Signature Algorithm), ECC (Elliptic Curve Cryptography).
  3. 사용 사례:
    • 디지털 서명: 데이터 무결성 및 인증을 보장하기 위해 사용됩니다.
    • 키 교환: 대칭키 암호화의 키 분배 문제를 해결하기 위해 사용됩니다.
    • SSL/TLS: 웹사이트와 브라우저 간의 안전한 통신을 보장합니다.
  4. 장점:
    • 키 분배가 용이합니다. 공개 키는 안전하게 배포할 수 있습니다.
    • 높은 보안성을 제공합니다.
  5. 단점:
    • 대칭키 암호화에 비해 암호화와 복호화 속도가 느립니다.
    • 구현이 복잡합니다.

 

비교 요약

  • 대칭키 암호화: 동일한 키를 사용, 빠른 속도, 키 관리가 어려움.
  • 비대칭키 암호화: 공개 키와 개인 키 사용, 보안성 높음, 속도 느림.

 

 

 

[문제]

모듈에 대한 다음 설명에서 각 지문에 해당하는 응집도(Cohesion)를 쓰시오.

1. 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도
2. 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도
3. 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도

답: 1. 절차적 응집도 2. 통신적(교환적) 응집도 3. 기능적 응집도

 

응집도


응집도(Cohesion)는 소프트웨어 공학에서 모듈이나 클래스 내부의 구성 요소들이 얼마나 밀접하게 관련되어 있는지를 나타내는 개념입니다. 응집도가 높을수록 모듈의 구성 요소들이 서로 밀접하게 관련되어 있어, 모듈이 하나의 일관된 기능을 수행하게 됩니다. 높은 응집도를 가진 모듈은 유지보수성과 재사용성이 높아지며, 시스템의 복잡도를 줄이는 데 도움이 됩니다.

응집도의 유형

 

  1. 기능적 응집도 (Functional Cohesion)
    • 하나의 기능을 수행하기 위해 뭉친 상태
    • 정의: 모듈의 모든 요소가 단일 기능을 수행하는 경우.
    • 특징: 가장 높은 수준의 응집도입니다. 모듈 내의 모든 기능이 하나의 작업을 수행하는 데 집중되어 있습니다.
  2. 순차적 응집도 (Sequential Cohesion)
    • 하나의 출력값이 다음 출력값이 되는 것
    • 정의: 모듈 내의 요소들이 순차적으로 실행될 때 서로 입력과 출력을 주고받는 경우.
    • 특징: 하나의 작업 결과가 다음 작업의 입력으로 사용됩니다.
  3. 교환적(통신적) 응집도 (Communicational Cohesion)
    • 동일한 입출력을 사용하는 것
    • 정의: 모듈 내의 요소들이 동일한 데이터를 사용하거나 동일한 데이터에 접근하는 경우.
    • 특징: 데이터 중심으로 기능이 조직되어 있습니다.
  4. 절차적 응집도 (Procedural Cohesion)
    • 순차적으로 사용하는 응집도
    • 정의: 모듈 내의 요소들이 특정 순서대로 실행되도록 조직된 경우.
    • 특징: 요소들이 논리적으로 관련되어 있지만, 순서에 따라 조직된 것입니다.
  5. 시간적 응집도 (Temporal Cohesion)
    • 같은 시간에 수행되는 것들을 모아놓은 것
    • 정의: 모듈 내의 요소들이 특정 시간에 함께 실행되는 경우.
    • 특징: 특정 시점에 실행되어야 하는 작업들을 포함합니다.
  6. 논리적 응집도 (Logical Cohesion)
    • 논리적으로 비슷한 것들을 모아놓은 것
    • 정의: 유사한 성격의 기능들을 한 모듈에 모아 놓은 경우.
    • 특징: 기능들이 논리적으로 관련되어 있지만, 실행 순서와는 무관합니다.
  7. 우연적 응집도 (Coincidental Cohesion)
    • 아무상관없는 것들을 모아놓은 것
    • 정의: 모듈 내의 요소들이 아무 관련 없이 모여 있는 경우.
    • 특징: 가장 낮은 수준의 응집도입니다. 모듈의 요소들이 아무런 관련이 없고, 단순히 한 모듈에 묶여 있습니다.

 

 

[문제]

통합 테스트에 관련된 다음 설명에서 괄호에 들어갈 알맞은 답을 쓰시오.

통합 테스트는 단위 테스트가 끝난 모듈을 통합하는 과정에서 발생하는 오류 및 결함을 찾는
테스트 기법으로, 하위 모듈에서 상위 모듈 방향으로 통합하는 상향식 통합 테스트와 상위 모듈에서 
하위 모듈 방향으로 통합하는 하향식 통합 테스트가 있다. 상향식 통합 테스트는 미완성이나 
문제가 있는 상위 모듈을 대체할 수 있는 테스트 드라이버가, 하향식 통합 테스트는 미완성이나 
문제가 있는 하위 모듈을 대체할 수 있는 테스트 (   )(이)가 있어야 원활한 테스트가 가능하다.

답 : 스텁(Stub)

 

소프트웨어 생명주기 v모델


소프트웨어 생명 주기 V-모델은 소프트웨어 개발 프로세스를 체계적으로 표현한 모델로, 각 개발 단계와 그에 대응하는 테스트 단계를 V자 형태로 배치하여 설명합니다.

 

 

[출처] https://blog.naver.com/PostView.naver?blogId=squ4re&logNo=220497574630

 

단위테스트

  • 정적 테스트 : 소스코드 내부보기
  • 동적 테스트 : 함수를 실행하여 출력확인

통합테스트

  • 상향식 테스트 : 드라이버
  • 하향식 테스트 : 스텁

시스템 테스트

  • 기능 테스트 : 사용자의 요구사항이 충족되는지 테스트
  • 비기능 테스트 : 성능, 보안을 확인하는 테스트

인수 테스트

  • 알파 테스트 : 개발자 + 사용자가 진행하는 테스트
  • 베타 테스트 : 사용자만 진행하는 테스트

 


반응형

'정보처리기사' 카테고리의 다른 글

[정보처리기사] 2022년 3회 실기 기출  (1) 2024.07.04