본문 바로가기
Certificate/정보처리기사

[정보처리기사] 2020년 3회차 실기

by HJ0216 2023. 9. 4.

정보처리기사 실기

1. 형상 통제

소프트웨어의 형상 변경 요청을 검토하고 승인하여 현재의 baseline에 반영할 수 있도록 통제하는 것

형상 관리 절차

식별 → 통제(BaseLine 설정) → 감사 → 기록(형상 관리 위원회: Configuration Control Board)

2. EAI 유형

: 기업에서 운영하는 서로 다른 플래폼, App간의 정보 전달, 연계, 통합을 위한 솔루션

  • Point To Point
    • 중간에 미들웨어를 두지 않고, 각 애플리케이션 간 연결
    • 상대적으로 저렴하게 통합 가능
    • 변경, 재사용이 어려움
  • Hub & Spoke
    • 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
    • 확장, 유지보수 용이
    • 허브 장애 시, 전체에 영향
  • Message Bus(ESB)
    • 애플리케이션 사이 미들웨어(버스)를 두어 처리
    • 시스템과 버스를 두어 연결하여 확장성이 뛰어나고, 대용량 처리가 가능
  • Hybrid
    • 그룹 내: Hub & Spoke, 그룹 외: Message Bus
    • 데이터 병목 최소화

3. UI 설계 원칙 4가지

  • 직관성: 사용자가 기능을 쉽게 파악할 수 있도록 해야 함
  • 유효성: 사용자의 목적을 정확하게 달성해야 함
  • 학습성: 누구나 쉽게 배울 수 있어야 함
  • 유연성: 사용자의 요구를 최대한 수용하고, 오류를 최소화 해야 함

4. Code Coverage

애플리케이션에서 테스트를 수행한 정도

  • 구문 Coverage: 코드 구조 내의 모든 구문에 대해 한 번 이상 수행하는 테스트 커버리지
  • 조건 Coverage: 결정 포인트 내의 모든 개별 조건식(if 조건문 내 and와 or로 연결된 개별 조건문)에 대해 수행하는 테스트 커버리지
  • 결정 Coverage: 결정 포인트(if 조건문 전체) 내의 모든 분기문에 대해 수행하는 테스트 커버리지
  • 조건/결정 Coverage: 결정 포인트와 개별 조건식이 모두 T/F를 가져야 함
  • 변경/조건 Coverage: 모든 결정 포인트 내의 개별 조건식은 적어도 한 번의 T/F를 가져야 함
  • 다중 조건 Coverage: 결정 포인트 내의 모든 개별 조건식의 가능한 조합을 100% 보장

5. 화이트/블랙박스 테스트

  • 화이트 박스 테스트: 모듈 내부 소스 코드를 보면서 수행하는 테스트
    • 종류
      • 기본 경로 커버리지(Base Path Coverage): 수행 가능한 모든 경로 테스트
      • 데이터 흐름 테스트(Data Flow Testing): 프로그램에서 변수의 정의와 변수 사용의 위치에 초점을 맞추어 검사
      • 조건 커버리지(Condition Coverage): 각 개별 조건식이 적어도 한 번은 참과 거짓의 결과가 되도록 수행
      • 루프 테스트
  • 블랙 박스 테스트: 외부 사용자의 요구사항 명세를 보면서 수행하는 테스트
    • 동등(동치, 균등) 분할 테스트(Equivalence Partitioning Testing): 입력값의 범위를 유사한 특징을 갖는 동등그룹으로 나누고 각 그룹마다 대표값을 선정하는 테스트 기법
    • 경곗값 분석 테스트(Boundary Value Analysis Testing): 경계값을 테스트 케이스로 선정하여 검사
    • 원인-결과 그래프 테스트(Cause-Effect Graphing Testing): 입력 데이터간의 관계와 출력에 영향을 미치는 상황을 체계적으로 분석하여 효용이 높은 테스트 케이스를 선정하여 검사
    • 오류 예측 테스트(Fault Based Testing)
    • 의사 결정 테이블 테스트(Decision Table Testing)
    • 상태 전이 테스트(State Transition Testing)

6. SQL - ALTER

속성 추가
ALTER TABLE 테이블_이름 ADD 속성_이름 데이터_타입;
속성 변경
ALTER TABLE 테이블_이름 MODIFY 속성_이름 데이터_타입;
속성 추가
ALTER TABLE 테이블_이름 DROP 속성_이름;

7. SQL - GROUP BY & HAVING

  SELECT 과목이름, 
         MIN(점수) AS 최소점수, 
         MAX(점수) AS 최대점수
    FROM 성적
GROUP BY 과목번호
  HAVING AVG(점수)>=90;

8. SQL - DML

DELETE FROM 학생 WHERE 이름='민수'

INSERT INTO TABLE_NAME(COLUMN1, COLUMN2, ...) VALUES(VAL1, VAL2, ...);
SELECT * FROM TABLE_NAME;
UPDATE TABLE_NAME SET COL1=VAL1, COL2=VAL2 WHERE ...;
DELETE FROM TABLE_NAME WHERE ...;

9. (개념) Schema

데이터베이스의 전체적인 구조와 제약조건을 정의한 것

Schema

  1. 외부 스키마
    : 사용자의 입장에서 필요로 하는 DB의 논리적 구조
  2. 개념 스키마
    : DB의 전체를 정의, 조직 전체의 DB로 하나만 존재
  3. 내부 스키마
    : 물리적인 저장장치의 입장에서 본 DB의 논리적 구조
  • 독립성
    • 논리적 독립성: 개념 스키마의 변경은 외부 스키마에 영향을 미치지 않음
    • 물리적 독립성: 내부 스키마의 변경은 개념, 외부 스키마에 영향을 미치지 않음
      (varchar2(10) ▶ varchar2(30)으로 변경한다고 해서 외부스키마와 개념스키마에 영향 X)

10. 관계 대수(Relation Algebra) & 관계 해석 (Relation Calculus)

관계 대수(Relation Algebra)

  • 주어진 릴레이션 조작을 위한 연산 집합
    • 일반 집합 연산: 합집합(∪), 교집합(∩), 차집합(-), 카티션 프로덕트(X)
    • 순수 관계 연산: SELECT(σ), PROJECT(∏), DIVISION(÷), JOIN(▷◁)
      • SELECT(σ)
        • σ조건(테이블): 테이블에서 조건을 만족하는 튜플을 구하기 위한 연산
      • PROJECT(∏)
        • ∏속성리스트(테이블): 테이블에서 주어진 속성들의 값으로만 구성된 튜플 반환
      • JOIN(▷◁)
        • R▷◁S: 테이블 R과 테이블 S에서 공통으로 가지고 있는 속성을 이용해서 하나의 새로운 테이블을 만드는 연산자
      • DIVISION(÷)
        • R ÷ S: 테이블 R의 튜플 중 테이블 S에 속한 컬럼과 튜플을 제외하는 연산자
        • 
          R1          S1      S2
          A B C       A       B C
          1 2 3       1       5 6
          4 5 6       4       8 9
          7 8 9
          5 2 3
          3 5 6
          
          R1 ÷ S1     R1 ÷ S2
          B C         A
          8 9         1
          2 3         5
          5 6
          
  • 절차적 언어
  • 원하는 정보를 얻기 위해 어떻게 (how) 질의를 해석하는지를 기술
  • 관계 해석 (Relation Calculus)
  • 비절차적 언어
  • 원하는 정보가 무엇 (what) 인지만 명시

11. Routing Protocol

routing_protocol

  • 정적: 관리자가 직접 라우터에 경로 설정
  • 동적: 라우터가 직접 경로 설정
  1. EGP: 외부 게이트웨이 프로토콜
    • BGP: Board Gateway Protocol
  2. IGP: 내부 게이트웨이 프로토콜
    • Distance Vector
      • RIP: Routing Information Protocol
        • 인접한 라우터간 일정 시간마다 상태 공유
        • 최대 홉수 15로 제한
    • Link State
      • OSPF: Open Shortest Path First (Protocol)
        • 변경된 데이터가 있을 때마다 상태 공유
        • 가장 많이 사용되는 내부 라우팅 프로토콜
        • 홉 수 제한 X

12. ICMP

  • IP의 비신뢰성을 보완하기 위한 Protocol
  • IP 패킷 전송 중 발생하는 에러의 원인을 알려주거나 네트워크 상태를 진단해주는 기능을 제공

OSI 7 Layer Model

  1. 물리 계층(Physical Layer)
    • 0과 1의 비트 정보를 회선에 보내기 위한 전기적 신호 변환
    • 단위: 비트
    • 주요 장비: 허브, 리피터
  2. 데이터 링크 계층(Data Link Layer)
    • 인접 노드 간 프레임 전송, 신뢰성 있는 정보 전달
    • 단위: 프레임
    • 주요 장비: 스위치, 브릿지
  3. 네트워크 계층(Network Layer)
    • 단말기 간 데이터 전송을 위한 최적화된 경로 제공
    • 단위: 패킷
    • 주요 장비: 라우터
    • 프로토콜
      • IP: 데이터 전달
      • ICMP: IP 패킷을 처리할 때 발생되는 문제를 알려주는 프로토콜
      • ARP: 논리 주소인 IP 주소 ▶ 실제적인 물리 주소인 MAC 주소로 변환
      • RARP: 실제적인 물리 주소인 MAC 주소 ▶ 논리 주소인 IP 주소로 변환
  4. 전송 계층(Transport Layer)
    • 단말기(종단) 간의 연결. 신뢰성 있는 정보 전달
    • 단위: 세그먼트(TCP)/데이터그램(UDP)
    • 프로토콜
      • TCP
        • FTP(20-데이터, 21-제어): 파일 전송
        • telnet(23): 원격지의 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜
        • HTTP(80): 웹 서비스
        • SMTP(25): 메일 송신
        • POP3(110): 메일 수신
      • UDP
        • DHCP: IP 자동 할당
        • SNMP: 네트워크 관리
        • DNS(53): 도메인 ▶ IP 주소로 변환
  5. 세션 계층(Session Layer)
    • 송수신 간의 논리적 연결
    • 단위: 데이터
  6. 표현 계층(Presentation Layer)
    • 데이터 형식 설정, 암/복호화
    • 단위: 데이터
  7. 응용 계층(Application Layer)
    • 일반적인 응용 서비스를 수행
    • 단위: 데이터

13. 헝가리안 표기법

프로그래밍 언어에서 변수 및 함수의 이름 앞에 데이터 타입을 명시하는 코딩 규칙

  • iAge
  • strName

14. Refactoring

성능 향상을 위해서 결과의 변경 없이 코드의 구조를 재조정하는 것

15. 통신 프로토콜의 기본요소 3가지

  • 규약(Protocol): 컴퓨터가 메시지를 전달하고, 메시지가 제대로 도착했는지 확인하며, 미 도착 시 메시지를 재전송하는 일련의 방법
  • 구문(Syntax): 데이터의 구조나 형태를 정의
  • 타이밍(Timing)
  • 의미(Semantic)

16. C언어

void main()
{
    int i=0, c=0;
    while(i<10){
        i++;
        c*=i;
    }
    printf("%d", c); /* 0 */
}

17. C언어

int r1(){
    return 4;
}
int r10(){
    return (30+r1());
}
int r100(){
    return (200+r10());
}
void main(){
    printf("%d", r100()); /* 234 */
}

18. JAVA

경계값 계산 유의

i==9일 때, sum에는 10이 더해짐

public static void main(String[] args){
    int i=0;
    int sum=0;
    while(i<10){
        i++;
        if(i%2 == 1)
            continue;
        sum += i;
    }
    System.out.println(sum); // 30
}

19. JAVA

메서드 호출 시 어떤 메서드가 호출되는지는 참조 변수의 타입에 따라 결정
obj.getName("String") 시, Vehicle Type에는 존재하지 않으므로 오류 발생

public static abstract class Vehicle {
    String name;
    public Vehicle(String val){
        this.name = val;
    }
    public String getName(){
        return "Vehicle name: " + name;
    }
}

public static class Car extends Vehicle{
    private String name;
    public Car(String val){
        super(val);
        name = val;
    }
    public String getName(String val){
        return "Car name: " + val;
    }
    public String getName(byte val[]){
        return "Car name: " + val;
    }
}

public static void main(String[] args) throws IOException {

    Vehicle obj = new Car("Spark");
    System.out.println(obj.getName()); // Vehicle name: Spark

}

20. 생성자

객체 생성 시 자동으로 호출되는 메서드로, 멤버를 초기화하는 목적으로 주로 사용



🔗 마크다운 파일

GitHub

 

📚 참고 자료

 

흥달쌤

흥달쌤과 함께하는 IT 채널입니다. 정보처리기사 자격증 관련된 강의 및 실무 노하우, 프로그래밍 언어(JAVA, C언어, Python) 특강 등이 진행됩니다. 앞으로 진행 예정인 동영상은 IT 관련된 이야기

www.youtube.com

 

6장 관계 데이터 연산

reference: 데이터베이스 개론 2판 01 관계 데이터 연산의 개념 01-1 데이터 모델의 구성 데이터 모델 = 데이터 구조(data structure) + 연산(operation) + 제약조건 (constraint) 01-2 관계 데이터 연산(relational data

hoit1302.tistory.com