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

bonnie·2021년 8월 2일
0
post-thumbnail

❗ 아마도 내가 응시했던 그 시험.....떨어졌더랬지?ㅠㅠ
다시 정리해봅시다!
[출처] : https://ss-o.tistory.com/108?category=950890
https://www.youtube.com/watch?v=W2Gy0MtWGRk

1. 리팩토링의 목적

리팩토링(Refactoring)
: 코드의 외부 행위는 바뀌지 않고 내부 구조를 개선 시켜 소프트웨어 시스템을 변경하는 프로세스

  • 이미 존재하는 코드의 설계를 안전하게 향상 시키는 기술.
  • 리팩토링 대상 : 중복된 코드, 거대한 클래스, 긴 메소드
  • 리팩토링 목적
    • 소프트웨어의 디자인 개선
    • 소프트웨어를 이해하기 쉽게 만들기 위해
    • 버그를 빨리 찾을 수 있도록 하기 위해
    • 프로그램을 빨리 작성할 수 있도록 하기 위해

2. C언어 출력 결과

#include <stdio.h>

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

i는 0~9까지 증가하지만 c는 계속 0이므로
0에 계속 곱해도 결과는 0

3. SQL문

학생 테이블에서 이름이 민수인 튜플을 삭제하는 sql

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

4. ICMP

TCP/IP에서 신뢰성 없는 IP를 대신해 송신 측으로 네트워크의 IP 상태 및 에러 메시지를 전달해주는 프로토콜

5. Java 출력 결과

public class Test{
	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.print(sum);
    }
}

i는 0~9까지 증가하고, 홀수인 경우에 continue
sum = 2+4+6+8+10
30

6. 프로토콜(Protocol)

심리학자 톰 마릴은 컴퓨터가 메시지를 전달하고 메시지가 제대로 도착했는지 확인하며, 도착하지 않았을 경우 메시지를 재전송하는 일련의 방법을 '기술적 은어'를 뜻하는 프로토콜이라는 용어로 정의했다.

7. EAI 구축 유형

EAI : 기업에서 운영되는 서로 다른 플랫폼 및 어플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션

  • Message Bus
    • 어플리케이션 사이 미들웨어를 두어 처리함
    • 확장성이 뛰어나고 대용량 처리가 가능
  • Point to Point
    • 중간에 미들웨어 없이 각 어플리케이션 간 point to point 형태로 연결
    • 변경 및 재사용이 어려움
  • Hub & Spoke
    • 단일 접점인 허브 시스템을 통해 데이터를 전송하는 중앙 집중적 방식
    • 확장 및 유지보수가 용이함
    • Hub 장애시 전체가 영향을 받음
    • 모든 데이터 전송을 보장
  • Hybrid
    • Hub&Spoke와 Message Bus의 혼합 방식
    • 데이터 병목 현상 최소화
    • 필요한 경우 한가지 방식으로 EAI 구현이 가능

[출처] : https://simsimfully.tistory.com/595

8. Java 출력 결과

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

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

public class Test{
   public static void main(String[] args){
      Vehicle obj = new Car("Spark");
      System.out.printf(obj.getName());
   }
}
  • abstract : 추상 클래스(미완성 클래스) → 구체적인 구조는 상속 받는 하위 클래스에서 완성
    • Vehicle class의 추상 메소드인 getName(String val)은 하위 클래스인 Car class의 String getName(String val)에서 재정의

① Vehicle obj = new Car("Spark");
: obj는 하위 클래스인 Car 클래스를 생성자로 둔 객체 변수이며 자료형은 상위 클래스인 Vehicle로 지정 : 오버라이딩을 위해
② Car class → public Car(String val)
: new 연산자를 통해 객체 생성시 초기화 작업을 위해 생성자 함수 실행
③ name = super.name = val;
: name = super.name = Spark 대입
④ obj.getName()
: obj 객체의 getName() 함수를 호출 → getName()은 오버로딩
(오버로딩 - 같은 이름의 함수를 여러개 정의하고 매개변수의 유형이나 개수를 다르게 하는 것.)
⑤ 호출한 getName()에는 매개변수가 없기 때문에 Vehicle→public String getName()을 호출
⑥ return "Vehicle name : " + name;
: Vehicle name : Spark

9. C언어 출력 결과

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

r100()을 호출 → 200 + r10()을 호출 → 30 + r1()을 호출 →
200 + 3 + 4
234

10. 블랙박스 테스트

동치 분할 테스트, 경계값 분석 테스트 등 내부 구조를 보지 않고 하는 테스트

11. 형상 통제

산출물의 변경사항을 버전별로 관리해서 목표 시스템의 품질 향상을 지원

  • 형상관리
    : 소프트웨어의 개발 과정에서 발생하는 산출물의 변경사항을 버전관리 하기 위한 일련의 활동
    • 절차 : 형상 식별 → 형상 통제 → 형상 감사 → 형상 기록

12. 분기 커버리지 과정의 순서 배열

상단의 유튜브 출처에서 기출 해설로 확인

13. OSPF

대표적인 내부 라우팅 프로토콜로 대규모 네트워크에 적합하고 링크 상태 라우팅 프로토콜로도 불림

  • 거리벡터 알고리즘 : RIP, IGRP
  • 링크상태 알고리즘 : OSPF, BGP

14. C++에서 생성자의 의미

객체 생성시 초기화 작업을 위한 함수로, 객체를 생성할 때 반드시 호출 되고 제일 먼저 실행됨.
new 연산자를 통해 생성

15. 데이터베이스에서 스키마

데이터베이스 구조와 제약조건에 대한 명세를 기술한 것

16. 헝가리안 표기법

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

  • 카멜 케이싱
    • 소문자로 시작
    • 단어 사이의 단락을 대문자로 표기
      String camelCasing;
      int count;
  • 파스칼 케이싱
    • 대문자로 시작
    • 단어 사이의 단락을 대문자로 표기
      String PascalCashing;
      int Count;
  • 스네이크 케이싱
    • 소문자로 시작
    • 단어 사이의 단락을 _로 표기
      String snake_casing;
      int count;
  • 헝가리안 표기법
    • 이름 앞에 데이터 타입을 명시
    • 데이터 타입은 정해진 약어로 표시
      String strHungarianCasing;
      int nCount;
  • GNU Namimg Conversation
    • 모든 문자를 소문자로 표기
    • 단락 사이를 _로 표기
      String gnu_naming_conversation;
      int count;
  • 상수 표기법(대부분의 명명법에서 상수-final 같은-를 표기하는 방법임)
    • 모든 문자를 대문자로 표기
    • 단락 사이를 _로 표기
      String MARCO_CASING;
      int COUNT;

17. SQL 작성

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

18. UI 설계 원칙 - 직관성

누구나 쉽게 이해하고 사용할 수 있어야함

19. 관계 대수 기호

관계대수 : 관계형 데이터베이스에서 원하는 정보와 그 정보를 어떻게 유도하는가를 기술하는 절차적 언어

[출처] https://velog.io/@ieed0205/%EA%B4%80%EA%B3%84%EB%8C%80%EC%88%98-SQL-LEEToday

20. 속성을 주소로, 크기는 20으로 제한하는 컬럼을 추가하는 SQL

ALTER TABLE 학생 ADD 주소 VARCHAR(20);

profile
괴발🐱개발🐶

0개의 댓글