본문 바로가기
카테고리 없음

한국은행 컴퓨터공학 2023 기출문제 풀이 (공부 중)

by daisy26 2023. 8. 28.

구글링과 학부 전공 기억을 토대로 풀이한 내용이기 때문에 틀릴 수도 있습니다..!

소프트웨어공학 - 가

임계경로(Critical Path) : 프로젝트를 완료하기까지 걸리는 여러 가지 경로 중에서 가장 긴 시간이 걸리는 경로

가장 긴 시간이 걸리는 경로 S - A - M1 - D - M5 - I - M7 - K - Z [8+15+15+7 = 45일]

 

소프트웨어공학 - 나

작업이 가장 빨리 끝날 수 있는 시간(earliest start time) = B가 끝나는 15일

작업이 가장 늦게 시작할 수 있는 시간(latest finish time) = 45 - (5+15+7) = 18일

(두 값에 차이가 나는 것을 통해 B는 임계경로에 위치하지 않는 다는 것을 유추가능)

[REF]

https://m.blog.naver.com/k97b1114/140165850486

 

CPM (Critical Path Method) 네트워크

CPM 네트워크는 노드와 간선으로 구성된 네트워크이다.   CPM 네트워크는 여러 가지 변형이 있...

blog.naver.com

소프트웨어공학 - 다

기능점수 방식으로 소프트웨어의 개발규모 산정 - 평균 복잡도를 이용한 간이법

최종 기능점수 = 7.5 * (1+2+1) + 5.4 * (1) + 4.0 * ((1+2+1+2)+(1+1+1+1)+(1+1+1)) + 5.2 * (1+1) + 3.9 * (1+2+2+2) = 117.1

[REF]

https://blog.naver.com/santalsm/220584982840

 

★ [2-6] 기능점수(Function Point) 산출방법에 대하여 설명하고, 간이법을 적용하여 아래의 이벤트(Eve

★ [2-6] 기능점수(Function Point) 산출방법에 대하여 설명하고, 간이법을 적용하여 아래의 이벤트(Eve...

blog.naver.com


자료구조 - 가

DFS(깊이 우선 탐색) : 루트 노드(혹은 다른 임의의 노드)에서 시작해서 다음 분기로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식을 말합니다. (Stack, 재귀함수로 구현)

 

BFS(넓이 우선 탐색) : 루트 노드(혹은 다른 임의의 노드)에서 시작해서 인접한 노드를 먼저 탐색하는 방법으로, 시작 정점으로부터 가까운 정점을 먼저 방문하고 멀리 떨어져 있는 정점을 나중에 방문하는 순회 방법입니다. (Queue로 구현)

자료구조 - 나

BFS (동일 조건의 노드는 낮은 숫자 우선) : 0 1 7 2 4 6 8 12 3 5 9 10 13 11

자료구조 - 다

3차 트리는 한 노드에 최대 2개의 데이터를 담을 수 있으므로 리프노드는 부적절한 상태에 있기 때문에 분리를 진행한다.

B Tree : 탐색 성능을 높이기 위해 균형 있게 높이를 유지하는 Balanced Tree의 일종

모든 leaf node가 같은 level로 유지되도록 자동으로 밸런스를 맞춰준다.

자식 node의 개수가 2개 이상이며, node 내의 key가 1개 이상일 수 있다.

 

B-Tree의 조건은 다음과 같다.
1. node의 key의 수가 k개라면, 자식 node의 수는 k+1개이다. 
2. node의 key는 반드시 정렬된 상태여야 한다. 
3. 자식 node들의 key는 현재 node의 key를 기준으로 크기 순으로 나뉘게 된다. 
4. root node는 항상 2개 이상의 자식 node를 갖는다. (root node가 leaf node인 경우 제외) 
5. M차 트리일 때, root node와 leaf node를 제외한 모든 node는 최소 ⌈M/2⌉, 최대 M개의 서브 트리를 갖는다. 
6. 모든 leaf node들은 같은 level에 있어야 한다. 

 

B-Tree 삽입/삭제

B-Tree와 B+Tree 구분

https://ssocoit.tistory.com/217

 

[자료구조] 간단히 알아보는 B-Tree, B+Tree, B*Tree

위 글을 보고 정리를 하지 않을 수 없었습니다. 가슴이 시키네요;; 그렇다면 바로 B-Tree, B*Tree, B+Tree의 특징에 대해서 알아봅시다. 목차 0. 이진트리 B-Tree, B*Tree, B+Tree에 대해서 알아보자면서 갑자

ssocoit.tistory.com


네크워크 - 가

DHCP : 호스트의 IP 주소와 TCP/IP 프로토콜의 기본 설정을 클라이언트에게 자동으로 제공해주는 프로토콜(UDP 기반)

IP를 동적으로 할당(IP와 네트워크 정보를 자동으로 설정)하는 데에 사용되는 프로토콜

 

DHCP Discover

클라이언트는 DHCP 서버를 찾기 위해 DHCP 메시지를 브로드캐스트 전송
이때 브로드캐스트로 전송하는 이유는 클라이언트의 IP가 아직 없기 때문에 브로드캐스트를 사용

 

DHCP Offer

아직 클라이언트에 IP 주소가 할당되지 않았기 때문에 브로드캐스트를 사용

DHCP 클라이언트는 서버들로부터 받은 DHCP OFFER 메시지 중에서 가장 처음으로 도착한 메시지를 선택하게 된다.

 

DHCP Request

DHCP 서버로부터 제안받은 IP 주소와 DHCP 서버 정보를 포함한 DHCP 요청 메시지를 브로드캐스트로 전송
이때 유니캐스트로 가능하지만 DHCP 서버 여러 대가 동작하는 환경을 위해 브로드캐스트 사용

(모든 DHCP 서버에게 알려야, IP가 중복 할당되는 점을 방지)

 

DHCP Ack

DHCP REQUEST 메시지를 받은 DHCP서버는 클라이언트에게 DHCP ACK 메시지 형식으로 긍정 응답을 브로드캐스트로 전송

아직 클라이언트에 IP주소가 할당된 것이 아니기 때문에 브로드캐스트를 사용

 

[REF]

https://rooftoproom-whale.tistory.com/38#:~:text=DHCP%20%EB%8F%99%EC%9E%91%20%EB%B0%A9%EC%8B%9D&text=%EC%9D%B4%EB%95%8C%20%EB%B8%8C%EB%A1%9C%EB%93%9C%EC%BA%90%EC%8A%A4%ED%8A%B8%EB%A1%9C%20%EC%A0%84%EC%86%A1,%EB%B8%8C%EB%A1%9C%EB%93%9C%EC%BA%90%EC%8A%A4%ED%8A%B8%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%9C%EB%8B%A4.

 

DHCP(Dynamic Host Configuration Protocol)

DHCP는 IP를 동적으로 할당하는 데 사용되는 프로토콜이다. 여기서 동적 할당이란 IP와 네트워크 정보를 자동으로 설정하는 것이다. 반대로 수동으로 설정하는 것을 정적 할당이라고 한다. 핸드폰

rooftoproom-whale.tistory.com

https://jvinci.tistory.com/127

 

[펌] DHCP 동작 원리

DHCP 를 확실히 이해하자~ DHCP (Dynamic Host Configuration Protocol) 개요 DHCP Protocol구성요소 - IP주소 및 다른 TCP/IP 매개변수를 할당하기 위한 mechanism - Host전용 정보를 조정하고 송신하기 위한 protocol DHCP

jvinci.tistory.com

네크워크 - 나

서브넷 마스크(Subnetting)

 

네크워크 - 다

네트워크상 지연(delay)의 4가지 형태

지연 : 하나의 데이터 패킷이 한 지점(출발 지점)에서 다른 지점(도착 지점)으로 전송되어 이에 소요되는 시간

  • 전송지연 : 링크에 데이터를 주입할 때 발생하는 지연(대역폭, 데이터 사이즈 관련)
    • queue를 빠져나가 라우터의 output link를 통해 빠져나가기 전까지 발생하는 delay
    • 즉, 전송하려는 패킷을 output link로 밀어내는데 걸리는 시간
  • 전파지연 : 전파가 물리적인 거리를 따라 타고 들어갈 때 발생하는 지연(노드 사이의 거리, 전파 속도 관련)
    • 실제 link를 타고 데이터가 전송될 때, link의 처음부터 라우터까지의 전파에 필요한 시간
    • 요즘같이 광통신을 하는 경우에는 거의 없다고 봐도 될 정도로 짧다
  • 처리지연 : 라우터에 도착해서 몇 번째 포트로 전달될지 판단하는 시간
    • Processing 과정은 라우터 내에서 패킷이 진행되는 과정이다.
    • 이 과정에서 패킷 데이터의 bit error를 검사하고, 그 패킷을 어디로 보낼지를 결정하는데에 발생하는 지연 
  • 큐잉지연 : 나보다 먼저 도착한 큐가 처리되는 것을 기다리는 시간
    • 라우터로 패킷들이 한번에 많이 들어올 경우, 라우터는 패킷들을 queue 형태로 보관하여 차례대로 처리한다. 
    • 이때, 전송을 위해 output link의 queue에서 기다리면서 발생하는 지연

FTP - 가

데이터 탈취를 막기위해 사용하는 SFTP와 FTPS

  • FTP : 파일 전송 프로토콜
  • SFTP : SSH 기반의 파일 전송 프로토콜
    • 하나의 연결만 암호화하여 인증정보와 데이터 모두 암호화
  • FTPS : FTP에 계층을 추가하여 SSL/TLS로 보호하는 것
    • 명령과 데이터 채널 또는 데이터 채널만 암호화
    • SSL : 보안 소켓 계층 / TLS : 전송 계층 보안

FTP - 나

FTP 능동 모드

클라이언트가 데이터 접속 포트를 PASV라는 명령을 통해 서버에게 물어본다.

서버는 임의의 포트를 알려주고, 클라이언트는 해당 포트로 접속한다. 연결이 되면 파일리스트 전송등을 교환하고, 파일 전송이 진행된다.

 

능동 모드의 보안 취약점

[BOUNCE ATTACK] 능동모드에서 데이터 채널을 생성할 때 목적지를 확인하지 않아, 다른 호스트의 포트를 주어도 FTP는 연결하여 데이터를 전송한다.

 

해결 방안

- FTP 가 자료를 전송할 때 1024 번보다 낮은 포트(port)로 접속하지 않도록 설정한다.
- 클라이언트와 다른 호스트로 접속하지 않도록 설정한다.
- FTP 외의 다른 서비스들이 20번 포트로부터는 접속을 받아들이지 않도록 설정한다.
- 최신 버전의 FTP server를 설치한다.

https://blog.naver.com/wnrjsxo/221128913628

 

FTP(File Transfer Protocol) 보안(3) - FTP 공격 유형

1. 익명 FTP 취약점 FTP 를 설치하게 되면 default 로 Anonymous FTP 가 실행된다. 하지만 보안 ...

blog.naver.com


운영체제 - 가

MMU : CPU에 코드 실행 시, 가상 주소 메모리 접근이 필요할 때 해당 주소를 물리 주소값으로 변환해주는 하드웨어 장치

 

가상 메모리의 장점

  • 메모리 확장성 
  • 메모리 할당과 관리에 효과적 : 물리적으로 연속되지 않은 메모리라도 가상으로 연속적인 메모리 공간으로 사용 가능

가상 메모리의 단점

https://velog.io/@gndan4/OS-%EA%B0%80%EC%83%81-%EB%A9%94%EB%AA%A8%EB%A6%AC

 

[OS] 가상 메모리

가상 메모리와 이를 활용하기 위한 페이징 시스템에 대해 알아보자

velog.io

https://brunch.co.kr/@lkj28/132

 

Ch5-5. 가상메모리에 대해

What is Virtual Memory? | 가상 메모리(Virtual Memory)는 소프트웨어에서 바라보는 관점의 메모리로, 동작시 실제 물리적인 메모리의 주소값으로 맵핑(mapping)된다. 프로세서에서 이 역할은 MMU(Memory Manageme

brunch.co.kr

운영체제 - 나

메모리를 자유로운 크기로 할당받는 세그먼트 기법 → 외부 단편화 문제

> 남아있는 총 메모리 공간이 요청한 메모리 공간보다 크지만, 남아있는 공간이 연속적(contiguous)이지 않아 발생하는 현상

 

메모리를 일정한 크기로 할당받는 페이징 기법 → 내부 단편화 문제

> 주기억장치 내 사용자 영역이 실행 프로그램보다 커서 프로그램의 사용 공간을 할당 후 사용되지 않고 남게 되는 현상을 말한다. 

운영체제 - 다

운영체제 - 라

교착상태는 아래의 4가지 조건이 모두 만족되는 경우(필요충분조건)에 발생할 가능성이 있으며,
하나라도 만족하지 않으면 교착상태가 발생하지 않습니다.

1. 상호 배제(Mutual Exclusion)
한 번에 한 개의 프로세스만이 공유자원을 사용할 수 있음
2. 점유 대기(Hold and Wait)
프로세스가 할당된 자원을 가진 상태에서 다른 자원을 기다림
3. 비선점(No Preemption)
프로세스가 작업을 마친 후 자원을 자발적으로 반환할 때까지 기다림
(이미 할당된 자원을 강제적으로 빼앗을 수 없음)
4. 순환 대기(Circular Wait)
프로세스의 자원 점유 및 점유된 자원의 요구 관계가 원형을 이루면서 대기하는 조건.
각 프로세스는 순환적으로 다음 프로세스가 요구하는 자원을 가지고 있음

운영체제 - 마

하이퍼바이저와 컨테이너의 차이점

  • 하이퍼바이저 : 하드웨어 레벨 가상화를 통해 가상 하드웨어 환경 위에 게스트 OS 설치
  • 컨테이너 : 커널를 공유하는 방법으로 호스트 OS 하나에서 여러 OS를 가상화
    • OS 레벨 가상화를 통해 컨테이너 엔진으로 어플리케이션 실행 환경 격리

https://itwiki.kr/w/%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88_%EA%B0%80%EC%83%81%ED%99%94

 

IT위키

IT에 관한 모든 지식. 함께 만들어가는 깨끗한 위키

itwiki.kr


머신러닝 - 가

학습률이 너무 크면, 최솟값을 발견하지 못하고 지나치거나, 그래프 바깥으로 튀는 문제가 발생한다. - overshooting

학습률이 너무 작으면, 학습시간이 매우 오래 걸리거나, 최솟값에 도달하기 전에 학습이 끝나는 문제가 발생한다.

머신러닝 - 나

전역 최솟값 발견 확률을 높일 수 있는 방법

  • 초기값을 그래프의 여러 곳에서 시작할 수 있도록 지정하여 전역 최솟값에 수렴하는 확률을 높인다.
  • 전체 데이터가 아닌 일부 데이터를 이용해 기울기를 계산하는 확률적 경사 하강법을 활용한다.

머신러닝 - 다

과잉 적합

(나의 답) 오버피팅은 머신러닝을 학습시킬 때 사용한 데이터만을 정답으로 인식하여 오히려 새로운 데이터로 검증했을 때 학습된 데이터 외에는 정답이 아니라고 인식하여 정확도가 떨어지는 현상이다.

(구글링) 모델을 지나치게 복잡하게 학습하여(모델이 훈련 데이터셋에 과하게 적합한 상태가 되어) 학습 데이터셋에서는 모델 성능이 높게 나타나지만 정작 새로운 데이터가 주어졌을 때 정확한 예측/분류를 수행하지 못하는 문제.

 

과소 적합

과대적합의 반대 개념으로서 머신러닝 모델이 충분히 복잡하지 않아(최적화가 제대로 수행되지 않아) 학습 데이터의 구조/패턴을 정확히 반영하지 못하는 문제

머신러닝 - 라

뭔가 ReLU를 쓰면 답이 하나 정도는 0이 나올 수도 있겠다고 생각했지만.. 우선 풀었을 때 답은 2, 2


클라우드 서버 

장점 : 서버를 직접 구매할 때 고려해야 할 전력, 위치, 서버 세팅, 확장성을 고민하지 않고 서비스 운영에만 집중할 수 있다.

 

https://library.gabia.com/contents/infrahosting/9114/

 

가비아 라이브러리

IT 콘텐츠 허브

library.gabia.com

https://yozm.wishket.com/magazine/detail/136/

 

클라우드 컴퓨팅이란? 클라우드 컴퓨팅에 관한 모든 것 | 요즘IT

이번 시간, IT아웃소싱 플랫폼 위시켓은 클라우드 서비스와 이를 가능하게 하는 클라우드 컴퓨팅에 대한 자세한 내용들을 다뤄보도록 하겠습니다. 그동안 클라우드 서비스에 관심 있으셨던 분

yozm.wishket.com