정처기 실기 : 2024년 2회차 기출, 1️⃣ ~ 🔟

m_ngyeong·2024년 10월 15일
1
post-thumbnail

정보처리기사 실기


📝 2024년 2회차 기출, 1️⃣ ~ 🔟

1. Java Lang. - 배열 객체 비교

public class Main {
	public static void check(int[] x, int[] y) {
		if(x==y) System.out.print("O");
		else System.out.print("N");
	}
	public static void main(String[] args) {
		int a[] = new int[] {1, 2, 3, 4};
		int b[] = new int[] {1, 2, 3, 4};
		int c[] = new int[] {1, 2, 3};
		check(a, b);
		check(b, c);
		check(a, c);
	}
}

🖍 NNN

코드 분석:

Java에서 배열을 비교할 때 참조(reference)를 비교하기 때문이다. 내용을 비교하는 것이 아니라, 두 배열이 같은 메모리 위치를 가리키는지를 확인한다.
1. check(a, b); :

  • 배열 ab는 모두 같은 내용 {1, 2, 3, 4}을 가지고 있지만, 서로 다른 객체.
  • == 연산자는 배열이 같은 메모리 위치를 가리키는지 확인하는데, ab는 각각 다른 배열로 메모리 위치가 다름.
  • 따라서 if(x==y) 조건은 false가 되고, N이 출력.
  1. check(b, c);, check(a, c):
  • 배열 bc, ac는 각각 {1, 2, 3, 4}{1, 2, 3}으로 내용도 다른, 서로 다른 객체.
  • == 연산자는 참조를 비교하므로, 두 배열은 다른 메로리 위치에 있기에 조건이 false가 되고, N`이 출력.

== 연산자

== 연산자는 객체의 참조를 비교한다.
배열의 내용이 같은지 확인하려면 Arrays.equals() 메서드를 사용해야 한다.

2. DB. - 반정규화

( )는/은 시스템의 성능을 향상시키고 개발 및 운영의 편의성 등을 높이기 위해 정규화된 데이터 모델을 의도적으로 통합, 중복, 분할하여 정규화 원칙을 위배하는 행위를 말한다.

🖍 반졍규화

3. SQL. - DML

[테이블]
사원 [사원번호(PK), 이름, 나이, 부서]
부서 [사원번호(PK), 이름, 주소, 나이]


① 신입사원이 들어와서 부서 테이블에 추가
INSERT INTO 부서 (사원번호, 이름, 주소, 나이) () (240728, 'Kim', '서울', 20);

② 부서에서 신입사원을 검색한 후 사원 테이블에 추가
INSERT INTO 사원 (사원번호, 이름, 나이, 부서)
() 사원번호, 이름, 나이, '개발' FROM 부서 WHERE 이름 = 'Kim';

③ 퇴사한 사원 삭제
DELETE () 부서 where 사원번호 = 240728;
 
④ 사원의 퇴사로 인해 부서에 해당하는 값을 '퇴사'로 변경
UPDATE 사원 () 부서 = '퇴사' WHERE 사원번호 = 240728;

🖍 ①VALUES, ②SELECT, ③FROM , ④SET

Table 생성

CREATE TABLE 사원
(   사원번호  NUMBER        NOT NULL,
    이름     VARCHAR2(10)  NOT NULL,
    나이     NUMBER        NULL,
    부서     VARCHAR2(10)  NULL,
 	PRIMARY KEY (사원번호) 	          );
CREATE TABLE 부서
(   사원번호  NUMBER        NOT NULL,
    이름     VARCHAR2(10)  NOT NULL,
    주소     VARCHAR2(10)  NULL,
    나이     NUMBER        NULL,
 	PRIMARY KEY (사원번호) 	          );

4. DB.

다음 테이블에서 카디널리티(Cardinality)와 디그리(Degree)를 구하시오.

학번이름성적지도교수
1001Kim89P1
1002Lim92P1
3001Park76P2
3002Kang88P3
3005Kim91P2

🖍 카디널리티: 5, 디그리: 4

  • 튜플의 수를 Cardinality(카디널리티)라고 하며, 튜플(Tuple)은 릴레이션을 구성하는 각각의 행을 말함.
  • 속성의 수를 Degree(디그리)라고 하며, 속성(Attribute)은 데이터 항목 또는 데이터 필드를 말함.

5. Protocol

  • Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다.
  • 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다.
  • AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.

🖍 IPsec

6. 응집도(Cohesion)

실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성하며, 한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로써 제공되는 형태이다.

🖍 순차적 응집도(Sequential Cohesion)
기능적 응집도 > 순차적 응집도 > 교환적 응집도 > 절차적 응집도 > 시간적 응집도 > 논리적 응집도 > 우연적 응집도

Tpyes of Cohesion

  • Functional Cohesion(기능적 응집도) : 하나의 기능에 밀접하게 관련되어 있거나 연관되어 있을 때의 응집도
  • Sequential Cohesion(순차적 응집도) : 모듈 내 하나의 할동으로부터 나온 출력 데이터를 그다음 활동의 입력 데이터로 사용할 경우의 응집도
  • Communication Cohesion(교환[통신]적 응집도) : 서로 다른 기능을 수행하지만 동일한 입력과 출력을 사용할 때의 응집도
  • Procedural Cohesion(절차적 응집도) : 내부의 요소들이 기능적으로 연관성은 없으나, 순차적으로 실행될 때의 응집도
  • Temporal Cohesion(시간적 응집도) : 특정 시간에 처리되는 몇 개의 기능을 모아 하나의 모듈로 작성할 경우의 응집도
  • Logical Cohesion(논리적 응집도) : 유사한 성격을 갖거나 특정 형태로 분류되는 처리 요소들로 하나의 모듈이 형성되는 경우의 응집도
  • Coincidental Cohesion(우연적 응집도) : 모듈 내부의 각 구성 요소들이 서로 관련 없는 요소로만 구성된 경우의 응집도
  • 결합도&응집도

7. 디자인 패턴

  • 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다.
  • 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있다.
  • 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않게 한다.
  • Cursor라고도 한다.

🖍 Iterator

8. Python

def cnt(str, p):
    result = 0
    for i in range(len(str)):
        sub = str[i:i+len(p)]
        if sub == p:
            result += 1
    return result

str = "abdcabcabca"
p1 = "ca"
p2 = "ab“

print(f'ab{cnt(str, p2)} ca{cnt(str, p1)}')

🖍 ab3 ca3
p1 = 3
p2 = 3

9. 데이터 교환 방식

( ① ) : 연결형 통신에서 주로 사용되는 방식으로, 출발지와 목적지의 전송 경로를 미리 연결하여 논리적으로 고정한 후 통신하는 방식이다.
( ② ) : 비연결형 통신에서 주로 사용되는 방식으로, 사전에 접속 절차를 수행하지 않고 헤더에 출발지에서 목적지까지의 경로 지정을 위한 충분한 정보를 붙여서 개별적으로 전달하는 방식이다.

🖍 ① 가상회선, ②데이터그램

10. C Lang. - swap()

#include 

void swap() {
	int a = 11;
	int b = 19;
	int t = a;
	a = b;
	b = t;
}

int main() {
	int a = 11;
	int b = 19;
	swap();
	switch(a) {
		case 1:
			b += 1;
		case 11:
			b += 2;
		default:
			b += 3;
			break;
	}
	printf("%d", a-b);
}

🖍 -13
a = 11
b = 19 + 2 + 3 = 24
∴ 11 - 24 = -13



참고,
https://www.gisafirst.com/,
https://newbt.kr/

profile
ʚȉɞ

0개의 댓글