정처기 실기 : 2022년 2회차 기출, 6️⃣~🔟

m_ngyeong·2024년 4월 23일
0
post-thumbnail

정보처리기사 실기


📝 2022년 2회차 기출, 6️⃣~🔟

6. 객체지향의 설계 원칙(SOLID 원칙)

  • 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 객체지향 설계 원칭 중의 하나이다.
  • 큰 덩어리의 인터페이스을 구체적이고 작은 단위들로 분리시킴으로써 클라이언트들이 꼭 필요한 메서드들만 이용할 수 있게 한다.
  • 예를 들어 프린터, 팩스, 복사 기능을 가진 복합기의 경우 3가지 기능을 모두 가진 범용 인터페이스보다는 프린터 인터페이스, 팩스 인터페이스, 복사 인터페이스로 분리함으로써 하나의 기능 변경으로 인해 다른 기능이 영향을 받지 않도록 해야 한다.

🖍 ISP

SOLID 원칙 : https://www.nextree.co.kr/p6960/

  • SRP(Single Responsibility Principle) : 단일 책임의 원칙으로, 객체는 단 하나의 책임만 가져야 한다는 원칙
  • OCP(Opne Close Principle) : 개방-폐쇄 원칙으로, 기존의 코드를 변경하지 않고 기능을 추가할 수 있도록 설계해야 한다는 원칙
  • LSP(The Liskov Substitution Principle) : 리스코드 치환 원칙으로, 자식 클래스는 최소한 부모 클래스의 기능은 수행할 수 있어야 한다는 원칙
  • ISP(Interface Segregation Principle) : 인터페이스 분리 원칙으로, 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향을 받지 않아야 한다는 원칙
  • DIP(Dependency Inversion Principle) : 의존 역전 원칙으로, 의존 관계 성립 시 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 원칙

  • OTP : 일회용 암호로 단일 로그인 세션 또는 트랜잭션에 유효한 임시 암호
  • PNP : Legacy Plug and Play 또는 줄여서 PnP는 꽂으면 실행된다는 뜻으로, 컴퓨터 실행 중에 주변 장치를 부착해도 별다른 설정 없이 작동함을 뜻함(마이크로소프트 윈도우는 윈도우 95 버전부터 지원하기 시작함)

7. Java Lang. - switch문

public class HelloWorld {
    public static void main(String[] args) {
        int i = 3, k = 1; 
        switch(i) { 
            case 1: k++;
            case 2: k -= 3;
            case 3: k = 0; 
            case 4: k += 3; 
            case 5: k -= 10; 
            default: k--; 
        }
        System.out.print(k); 
    }
}

🖍 -8
1️⃣ i의 값 3에 해당하는 숫자를 찾아 감.(case3 구문으로 이동.)
2️⃣ k=0(k에 0을 저장한다.)
*switch 문을 종료하는 break가 없으므로 아래의 구문 모두 수행.
3️⃣k += 3 : 0+3=3 → k -= 10 : 3-10=-7 → k-- : -7-1=-8
4️⃣ ∴ -8

8. C Lang. - struct(구조체)

#include <stdio.h>
struct A { // 구조체 정의
    int n; // A의 멤버로 정수형 변수 n을 선언
    int g; // A의 멤버로 정수형 변수 g을 선언
} 

void main() {
    struct A st[2]; 
    for(int i=0; i<2; i++) {
        st[i].n = i;
        st[i].g = i+1;
    }
    printf("%d", st[0].n + st[1].g);
}

🖍 2
1️⃣ i=0일 때, st[0].n = 0, st[0].g =0+1
2️⃣ i=1일 때, st[1].n = 1, st[1].g =1+1
3️⃣ st[0].n + st[1].g = 0 + 2
4️⃣ ∴ 2

9. 서브네팅(Subnetting)

현재 IP 주소가 139.127.19.132이고, 서브넷마스크가 255.255.255.192이다.

  • 네트워크 주소 : 139.127.19.( ① )
  • 해당 네트워크 주소와 브로드캐스트 주소를 제외한 사용 가능한 호스트의 수 : ( ② )

🖍 ① 139.127.19.128, ② 62

1️⃣ 네트워크 주소 구하기

  • IP주소 : 139.127.19.13210001011.01111111.00010011.100000100
  • 서브넷마스크 : 255.255.255.19211111111.11111111.11111111.11000000
  • 네트워크 주소 = IP주소 &(AND연산자) 서브넷마스크
    ∴ 10001011.01111111.00010011.100000000 이므로 139.127.19.128

2️⃣ 호스트 개수 구하기

  • 서브넷마스크의 2진법을 보면 1이 총 26개, 0이 6개 이다. 이는 139.127.19.132/26으로 표현할 수 있으며, 1이 26개가 연속됨과 동시에 26bit를 사용한다는 의미이다.
  • 11111111.11111111.11111111.11000000에서 000000000001, 000010, ... 111111까지이며, 총 64개다.
  • 139.127.19.132의 IP범위
    • 139.127.19.0~63
    • 139.127.19.64~127
    • 139.127.19.128~191 ← 해당 P가 속한 범위
    • ...
  • 네트워크 주소는 첫 번째 주소니까 139.127.19.128, 브로드캐스트 주소는 마지막 주소니까 139.127.19.191
    ∴ 호스트 주소 = 64 - 2 = 62

IP주소는 네트워크 부분의 길이에 따라 5단계로 구성

• A Class : 0~127로 시작
• B Class : 128~191로 시작
• C Class : 192~223로 시작
• D Class : 224~239로 시작
• E Class : 공용되지 않음
1️⃣ 192.168.1.132는 C Class에 속한 주소로, C Class의 기본 서브넷마스크는 255.255.255.0이다.
2️⃣ 255.255.255.0를 2진수로 표현하면, 11111111.11111111.11111111.00000000으로, 1의 개수가 24개이다.
3️⃣ 문제에 주어진 서브넷마스크 255.255.255.19211111111.11111111.11111111.11000000으로, C Class의 기본 서브넷마스크보다 1의 개수가 2개, 즉 2비트가 많다.
4️⃣ 네트워크 개수 = 4(2의 2승), 여기서 2승은 추가된 비트의 개수.
5️⃣ 호스트 개수 = 256/네트워크 개수 = 256/4 = 64
6️⃣ 64개의 호스트를 갖는 4개의 네트워크로 나눌 수 있다.

  • 네트워크네트워크 주소브로드캐스트 주소
    1192.168.1.0192.168.1.63
    2192.168.1.64192.168.1.127
    3192.168.1.128192.168.1.191
    4192.168.1.192192.168.1.255
    7️⃣ 192.168.1.132는 세 번째 네트워크에 포함되어 있으며, 세 번째 네트워크 주소는 192.168.1.128이다.
    8️⃣ 호스트의 수는 네트워크 마다 64개의 호스트를 가지므로 64이지만, 문제에서 네트워크 주소와 브로드캐스트 주소를 제외한다고 하였으므로 사용 가능한 호스트의 수는 62개.

10. 애플리케이션 테스트 - 인수 테스트

인스 테스트는 개발한 소프트웨어가 사용자의 요구사항을 충족하지는에 중점을 두고 테스트하는 방법이다.

( ① ) : 선정된 최종 사용자가 여려 명의 사용자 앞에서 행하는 테스트 기법으로, 셀제 업무를 가지고 사용자가 직접 테스트한다. 하드웨어나 소프트웨어의 개발 단계에서 상용화하기 전에 실시하는 제품 검사 작업으로, 제품의 결함 여부, 제품으로서의 가치 등을 평가하기 위해 실시한다. 선발된 잠재 고객으로 하여금 일정 기간 무료로 사용하게 한 후에 나타난 여러 가지 오류를 수정, 보완한다. 공식적인 제품으로 발매하기 이전에 최종적으로 실시하는 검사 작업이다.

( ② ) : 개발자의 장소에서 사용자가 개발자 앞에서 행하는 테스트 기법으로, 테스트는 통제된 환경에서 행해지며, 오류와 사용사의 문제점을 사용자와 개발자가 함께 확인하면서 기록한다. 새로운 제품 개발 과정에서 이루어지는 첫 번째 테스트으로, 시제품이 운영되는 동안의 신제품 연구와 개발 과정 단계에서 초기 작동의 결과를 평가하는 수단이며, 개발 회사 내부에서 이루어지는 테스트로서 단위 테스트, 구성 테스트, 시스템 테스트 등을 포함한다.

🖍 ① 베타 테스트(Beta Test), ② 알파 테스트(Alpha Test)

  • 베타 테스트(Beta Test) : 고객 관점
  • 알파 테스트(Alpha Tes) : 개발자 관점


참고,
길벗알앤디. 『정보처리기사 실기 단기완성』. 길벗. 2023.
https://newbt.kr/시험/정보처리기사%20실기/2022년%202회/흙기사

profile
사용자 경험 향상과 지속적인 성장을 추구하는 프론트엔드 개발자 ʚȉɞ

0개의 댓글