Category컴퓨터공학 (17)

독서/기술

검색 엔진이 순서를 정하는 방식(2022, 9월모평)*

인터넷 검색 엔진은 검색어를 포함하는 웹 페이지를 찾아 화면에 보여 준다. 웹 페이지가 화면에 나타나는 순서를 정하기 위해 검색 엔진은 수백 개가 ⓐ 넘는 항목을 고려한 다양한 방식을 사용한다. 대표적인 항목으로 중요도와 적합도가 있다. 검색 엔진은 빠른 시간 내에 검색 결과를 보여 주기 위해 웹 페이지들의 데이터를 수집하여 인덱스를 미리 작성해 놓는다. 인덱스란 단어를 알파벳순으로 정리한 목록으로, 여기에는 각 단어가 등장하는 웹 페이지와 단어의 빈도수 등이 저장된다. 이때 각 웹 페이지의 중요도가 함께 기록된다. ㉠ 중요도는 웹 페이지의 중요성을 값으로 나타낸 것으로 링크 분석 기법으로 측정할 수 있다. 기본적인 링크 분석 기법에서 웹 페이지 A의 값은 A를 링크한 각 웹 페이지들로부터 받는 값의 합..

독서/기술

딥러닝 기반의 객체 탐지 모델 YOLO(2022, 고3, 7월)

객체 탐지(Object Detection)란 사람, 동물, 사물 등 이미지에 있는 여러 대상의 위치를 찾아 각 대상의 크기에 맞는 경계 상자를 표시하고, 미리 학습된 객체 데이터를 바탕으로 그 경계 상자 안의 대상이 어떤 객체인지 판별하는 작업이다. 딥러닝 기반의 객체 탐지 모델은 ‘2단계 방식’과 ‘단일 단계 방식’으로 나눌 수 있다. 2단계 방식은 먼저 이미지에서 탐지할 객체가 있을 확률이 높은 곳을 추정한 후, 그 영역의 대상을 집중적으로 탐지하여 어떤 객체인지 판별하는 방식이다. 각 과정이 별도의 인공신경망을 통해 순차적으로 이루어지기 때문에 객체를 판별해 내는 정확도는 높지만, 처리하는 데이터가 많고 구조가 복잡하여 탐지 속도가 느리기 때문에 실시간으로 객체를 탐지하는 데는 어려움이 있다. 단일..

독서/기술

검색 알고리즘과 해시 함수(2022, 고3, 3월)

문자 입력 창에 한 글자만을 입력했는데 완성된 문구가 ⓐ 제시되는 자동 완성을 경험해 보았을 것이다. ‘코’라는 문자를 입력했다면 ‘코피’, ‘코로나’ 등이 후보로 제시되어 휴대 전화와 같이 문자 입력이 불편한 경우 문자 입력을 편리하게 할 수 있다. 이는 사용했던 단어들 중에서 입력되는 문자와 첫 글자부터 일치하는 것을 찾고 그중 사용 빈도가 높은 단어들을 후보로 제시하는 것이라고 할 수 있다. 한편 워드 프로세서에서 단어 찾기와 같은 검색은 저장되어 있는 문자열을 대상으로 검색어가 ⓑ 포함된 문자열을 찾는 것이다. 검색은 자동 완성과 달리 대상 문자열의 어느 위치에서도 검색어를 찾을 수 있어야 하며 사용 빈도를 고려하지 않아도 된다. 검색이 가능하기 위해서는 검색어를 저장되어 있는 문자열의 부분 문자..

독서/기술

메타버스 속 감각 전달 장치(2021, 9월모평)

‘메타버스(metaverse)’는 ‘초월’이라는 의미의 ‘메타(meta)’와 ‘세계’를 뜻하는 ‘유니버스(universe)’의 합성어로, 현실 세계와 가상 공간이 적극적으로 상호 작용하는 공간을 의미한다. 감각 전달 장치는 메타버스 속에서 사용자를 대신하는 아바타가 보고 만지는 것으로 설정된 감각을 사용자에게 전달하는 장치이다. 사용자는 이를 통하여 가상 공간을 현실감 있게 체험하면서 메타버스에 몰입하게 된다. 시각을 전달하는 장치인 HMD*는 사용자의 양쪽 눈에 가상 공간을 표현하는, 시차*가 있는 영상을 전달한다. 전달된 영상을 뇌에서 조합하는 과정에서 사용자는 공간과 물체의 입체감을 느낄 수 있다. 가상 공간에서 물체를 접촉하는 것처럼 사용자의 손에 감각 반응을 직접 전달하는 장치로는 가상 현실 장..

독서/기술

데이크스트라의 '철학자의 만찬 문제'(2021, 고3, 7월)

컴퓨터 과학자 데이크스트라가 고안한 ‘철학자의 만찬 문제’는 컴퓨터 내에서 여러 프로세스*가 서로 점유하고 있는 자원을 얻기 위해 상대방의 작업이 끝나기만을 기다리며 대기하는 ‘교착 상태’와 특정 프로세스가 원하는 자원을 계속 할당받지 못하는 ‘기아 상태’에 대한 대표적인 예시로 활용된다. 처럼 다섯 명의 철학자(P₁~P₅)가 앉아 있는 자리 왼쪽에 포크(f₁~f₅)가 각각 하나씩 놓여 있다고 하자. 가운데 놓인 스파게티를 덜어 오기 위해서 철학자는 양옆의 포크를 동시에 이용해야 하며, 다른 철학자가 사용 중인 포크는 사용할 수 없다. 또 모든 철학자 Pₙ이 왼쪽의 포크 fₙ을 먼저 든 다음 오른쪽 포크 fₙ₊₁을 들어서 스파게티를 가져오기로 약속했을 때, 스파게티를 가져오기 위해 모든 철학자가 동시에 ..

독서/기술

3D 합성 영상을 위한 모델링과 렌더링(2020, 수능)

최근의 3D 애니메이션은 섬세한 입체 영상을 구현하여 실물을 촬영한 것 같은 느낌을 준다. 실물을 촬영하여 얻은 자연 영상을 그대로 화면에 표시할 때와 달리 3D 합성 영상을 생성, 출력하기 위해서는 모델링과 렌더링을 거쳐야 한다. 모델링은 3차원 가상 공간에서 물체의 모양과 크기, 공간적인 위치, 표면 특성 등과 관련된 고유의 값을 설정하거나 수정하는 단계이다. 모양과 크기를 설정할 때 주로 3개의 정점으로 형성되는 삼각형을 활용한다. 작은 삼각형의 조합으로 이루어진 그물과 같은 형태로 물체 표면을 표현하는 방식이다. 이 방법으로 복잡한 굴곡이 있는 표면도 정밀하게 표현할 수 있다. 이때 삼각형의 꼭짓점들은 물체의 모양과 크기를 결정하는 정점이 되는데, 이 정점들의 개수는 물체가 변형되어도 변하지 않으..

독서/기술

정렬 알고리즘(2020, 고3, 10월)

알고리즘은 컴퓨터에서 문제 해결 방법을 논리적인 순서로 설명하거나 표현하는 절차이다. 그런데 문제 해결 방법에는 여러 가지가 있을 수 있어 어떤 방법으로 문제를 해결하느냐에 따라 효율성이 달라진다. 알고리즘의 효율성을 분석할 때 흔히 시간 복잡도를 사용하는데, 시간 복잡도는 반복적으로 수행되는 연산의 횟수를 이용하여 나타낸다. 이때 연산에는 산술 연산뿐만 아니라 원소 간의 비교를 나타내는 비교 연산도 포함된다. 알고리즘 분야 중 정렬은 원소들을 오름차순이나 내림차순과 같이 특정한 순서에 따라 배열하는 것으로, 정렬을 통해 특정 원소를 탐색하는 데 소요되는 시간을 줄일 수 있다. ㉠ 삽입 정렬은 정렬된 부분에 정렬할 원소의 위치를 찾아 삽입하는 방식이다. 집합 {564, 527, 89, 72, 34, 6,..

독서/기술

컴퓨터의 데이터 표현 방식(2020, 고3, 3월)

컴퓨터는 0 또는 1로 표시되는 비트*를 최소 단위로 삼아 내부적으로 데이터를 표시한다. 컴퓨터가 한 번에 처리하는 비트 수는 정해져 있는데, 이를 워드라고 한다. 예를 들어 64비트의 컴퓨터는 64개의 비트를 1워드로 처리한다. 4비트를 1워드로 처리하는 컴퓨터에서 양의 정수를 표현하는 경우, 4비트 중 가장 왼쪽 자리인 최상위 비트는 0으로 표시하여 양수를 나타내고 나머지 3개의 비트로 정수의 절댓값을 나타낸다. 0111의 경우 가장 왼쪽 자리인 ‘0’은 양수를 표시하고 나머지 ‘111’은 정수의 절댓값 7을 이진수*로 나타낸 것으로, +7을 표현하게 된다. 이때 최상위 비트를 제외한 나머지 비트를 데이터 비트라고 한다. 그런데 음의 정수를 표현하는 경우에는 최상위 비트를 1로 표시한다. –3을 표현..

독서/기술

양자암호통신(2019, 고3, 7월)

온라인 전자 상거래나 공인 인증이 일상화되면서 보안을 위해 메시지를 암호화하여 주고받는 암호통신의 중요성이 강조되고 있다. 암호통신에서 가장 핵심적인 문제 중 하나는 메시지를 암호화하거나 이를 다시 원래의 메시지로 복호화하는 데 필요한 키를 암호통신의 대상자인 송·수신자가 어떻게 안전하게 주고받느냐에 대한 것이다. 이러한 암호통신은 암호화나 복호화에 필요한 키를 관리하는 방식에 따라 크게 ㉠대칭키 방식과 ㉡공개키 방식으로 구분된다. 대칭키 방식은 메시지를 암호화하거나 복호화할 때 동일한 키를 사용한다. 이러한 이유로 송신자와 수신자만 아는 비밀키를 미리 분배하고 사용하는 과정에서 키 정보가 유출될 가능성이 높아 암호통신을 시도할 때마다 상대에 따라 새로운 비밀키를 사용해야 한다. 이에 반해 공개키 방식은..

독서/기술

DNS 스푸핑(2017, 6월모평)

DNS(도메인 네임 시스템) 스푸핑은 인터넷 사용자가 어떤 사이트에 접속하려 할 때 사용자를 위조 사이트로 접속시키는 행위를 말한다. 이는 도메인 네임을 IP 주소로 변환해 주는 과정에서 이루어진다. 인터넷에 연결된 컴퓨터들이 서로를 식별하고 통신하기 위해서 각 컴퓨터들은 IP(인터넷 프로토콜)에 따라 ㉠만들어지는 고유 IP 주소를 가져야 한다. 프로토콜은 컴퓨터들이 연결되어 서로 데이터를 주고받기 위해 사용하는 통신 규약으로 소프트웨어나 하드웨어로 구현된다. 현재 주로 사용하는 IP 주소는 ‘***.126.63.1’처럼 점으로 구분된 4개의 필드에 숫자를 사용하여 ㉡나타낸다. 이 주소를 중복 지정하거나 임의로 지정해서는 안 되고 공인 IP 주소를 부여받아야 한다. 공인 IP 주소에는 동일한 번호를 지속..

독서/과학

인공 신경망의 학습과 판정(2016, 6월모평)

인간의 신경 조직을 수학적으로 모델링하여 컴퓨터가 인간처럼 기억․학습․판단할 수 있도록 구현한 것이 인공 신경망 기술이다. 신경 조직의 기본 단위는 뉴런인데, ⓐ 인공 신경망에서는 뉴런의 기능을 수학적으로 모델링한 퍼셉트론을 기본 단위로 사용한다. ⓑ퍼셉트론은 입력값들을 받아들이는 여러 개의 ⓒ입력 단자와 이 값을 처리하는 부분, 처리된 값을 내보내는 한 개의 출력 단자로 구성되어 있다. 퍼셉트론은 각각의 입력 단자에 할당된 ⓓ 가중치를 입력값에 곱한 값들을 모두 합하여 가중합을 구한 후, 고정된 ⓔ 임계치보다 가중합이 작으면 0, 그렇지 않으면 1과 같은 방식으로 ⓕ 출력값을 내보낸다. 이러한 퍼셉트론은 출력값에 따라 두 가지로만 구분하여 입력값들을 판정할 수 있을 뿐이다. 이에 비해 복잡한 판정을 할..

독서/기술

OTP 인증 기술(2019, 고3, 3월)#

인터넷 뱅킹이나 전자 상거래를 할 때 온라인상에서 사용자 인증은 필수적이다. 정당한 사용자인지를 인증받는 흔한 방법은 아이디(ID)와 비밀번호를 입력하는 것으로, 사용자가 특정한 정보를 알고 있는지 확인하는 방식이다. 그러나 이러한 방식은 고정된 정보를 반복적으로 사용하기 때문에 정보가 노출 될 수 있다. 이러한 문제점을 보완하기 위해 개발된 인증 기법이 OTP(One-Time Password, 일회용 비밀번호) 기술이다. OTP 기술은 사용자가 금융 거래 인증을 받고자 할 때마다 해당 기관에서 발급한 OTP발생기를 통해 새로운 비밀번호를 생성하여 인증받는 방식이다. OTP 기술은 크게 비동기화 방식과 동기화 방식으로 나눌 수 있다. 비동기화 방식은 OTP발생기와 인증 서버 사이에 동기화된 값이 없는 방..

독서/기술

해시 함수의 특성과 이용(2015, 9월모평A)

온라인을 통한 통신, 금융, 상거래 등은 우리에게 편리함을 주지만 보안상의 문제도 안고 있는데, 이런 문제를 해결하기 위하여 암호 기술이 동원된다. 예를 들어 전자 화폐의 일종인 비트코인은 해시 함수를 이용하여 화폐 거래의 안전성을 유지한다. 해시 함수란 입력 데이터 x에 대응하는 하나의 결과 값을 일정한 길이의 문자열로 표시하는 수학적 함수이다. 그리고 입력 데이터 x에 대하여 해시 함수 H를 적용한 수식을 H(x)=k라 할 때, k를 해시 값이라 한다. 이때 해시 값은 입력 데이터의 내용에 미세한 변화만 있어도 크게 달라진다. 현재 여러 해시 함수가 이용되고 있는데, 해시 값을 표시하는 문자열의 길이는 각 해시 함수마다 다를 수 있지만 특정 해시 함수에서의 그 길이는 고정되어 있다. 이러한 특성을 갖..

독서/기술

CPU 스케줄링(2014, 9월모평A)

우리는 컴퓨터에서 음악을 들으면서 문서를 작성할 때 두 가지 프로그램이 동시에 실행되고 있다고 생각한다. 그러나 실제로는 아주 짧은 시간 간격으로 그 프로그램들이 번갈아 실행되고 있다. 이는 컴퓨터 운영 체제의 일부인 CPU(중앙 처 리 장치) 스케줄링 때문이다. 어떤 프로그램이 실행될 때 컴퓨터 운영 체제는 실행할 프로그램을 주기억 장치에 저장하고 실행 대기 프로그램의 목록인 ‘작업큐’에 등록한다. 운영 체제는 실행할 하나의 프로그램을 작업큐에서 선택하여 CPU에서 실행하고 실행이 종료되면 작업큐에서 지운다. 한 개의 CPU는 한 번에 하나의 프로그램만을 실행할 수 있다. 그러면 A와 B 두 개의 프로그램이 동시에 실행되는 것처럼 보이게 하려면 어떻게 해야 할까? 프로그램은 실행을 요청한 순서대로 작업..

독서/기술

디지털 회로의 설계(2016, 고2, 3월)*

컴퓨터와 같은 디지털 장치는 1과 0밖에 구분하지 못한다. 더 정확하게 말하면 실제 숫자를 구분하는 것이 아니라 신호가 왔는지(1), 오지 않았는지(0)의 정보를 구분하는 것이다. 신호 여부는 두 개의 전압 레벨, 예를 들어 5V와 0V를 사용하여 구분한다. 즉 전압 레벨이 변화하는 것을 2진수로 처리하여 디지털 회로를 설계하는 것이다. 디지털 회로의 기본 요소는 논리 게이트인데, 논리 게이트는 하나 이상의 입력 값에 대한 논리 연산을 수행하여 출력 값을 얻는다. 디지털 회로는 출력을 결정하는 방법에 따라 조합 논리 회로와 순차 논리 회로로 나눌 수 있다. 조합 논리 회로는 현재의 입력 값들만 이용하여 출력 값을 결정한다. 즉 회로를 구성하는 논리 게이트들이 입력 신호들을 받는 즉시 그것들을 조합하여 출..