컴퓨터공학

    자, 다시 처음으로 돌아와 우리가 다룰 내용을 조금 더 자세히 들여다 봅시다. 써놓고 보니 글 사이의 순서가 살짝 꼬인 것 같지만, 우선 컴퓨터구조에 대해 논하려면 '기계어 프로그램의 동작'에 대해 먼저 살펴볼 필요가 있습니다. 컴퓨터가 하는 일은 주어진 데이터를 주어진 프로그램에 맞게 처리하는 것이니까요. 그리고 이를 윗 단계의 추상화인, 사람이 이해할 수 있는 '코드'와 연관지어보기 위해서는 데이터의 표현 방식과 각 명령어의 동작에 대해 이해해야 합니다. 이렇게 컴퓨터의 동작 및 이를 정의하는 '아키텍처'에 대해 이해하고 나면 이제 주어진 동작을 어떻게 더 빠르게 할 수 있을지에 대해 생각해 볼 수 있습니다. 여러 가지 방법이 있겠지요. '컴퓨터 구조 및 설계' 책의 저자인 David Patterso..

    A 1.05: 둘러보기 & 위대한 발상들By 재두루미

    자, 다시 처음으로 돌아와 우리가 다룰 내용을 조금 더 자세히 들여다 봅시다. 써놓고 보니 글 사이의 순서가 살짝 꼬인 것 같지만, 우선 컴퓨터구조에 대해 논하려면 '기계어 프로그램의 동작'에 대해 먼저 살펴볼 필요가 있습니다. 컴퓨터가 하는 일은 주어진 데이터를 주어진 프로그램에 맞게 처리하는 것이니까요. 그리고 이를 윗 단계의 추상화인, 사람이 이해할 수 있는 '코드'와 연관지어보기 위해서는 데이터의 표현 방식과 각 명령어의 동작에 대해 이해해야 합니다. 이렇게 컴퓨터의 동작 및 이를 정의하는 '아키텍처'에 대해 이해하고 나면 이제 주어진 동작을 어떻게 더 빠르게 할 수 있을지에 대해 생각해 볼 수 있습니다. 여러 가지 방법이 있겠지요. '컴퓨터 구조 및 설계' 책의 저자인 David Patterso..

    1945년 폰 노이만이 작성한 EDVAC에 대한 보고서에 영감을 받아 stored-program 구조(프로그램을 데이터와 같은 메모리에 저장하는 구조)를 채택한 여러 컴퓨터가 등장하게 됩니다. EDSAC (1949) 폰 노이만의 보고서에 영감을 받은 모리스 윌크스는 1946년 영국으로 돌아와 그 해 말 EDSAC 컴퓨터의 개발을 시작해 1949년 EDSAC을 완성하게 됩니다. EDSAC 컴퓨터는 진공관과 수은 지연선(delay line) 메모리를 사용하였으며 11kW의 전력을 소모하였습니다. 17-bit 또는 35-bit* (2's complement) 데이터를 처리할 수 있었으며 18-bit 데이터 512개를 저장할 수 있는 메모리가 장착되었고 (이후 1024개 크기로 확장되었습니다.) 입력으로 5줄짜..

    A 1.02: 컴퓨터의 역사 [2]By 재두루미

    1945년 폰 노이만이 작성한 EDVAC에 대한 보고서에 영감을 받아 stored-program 구조(프로그램을 데이터와 같은 메모리에 저장하는 구조)를 채택한 여러 컴퓨터가 등장하게 됩니다. EDSAC (1949) 폰 노이만의 보고서에 영감을 받은 모리스 윌크스는 1946년 영국으로 돌아와 그 해 말 EDSAC 컴퓨터의 개발을 시작해 1949년 EDSAC을 완성하게 됩니다. EDSAC 컴퓨터는 진공관과 수은 지연선(delay line) 메모리를 사용하였으며 11kW의 전력을 소모하였습니다. 17-bit 또는 35-bit* (2's complement) 데이터를 처리할 수 있었으며 18-bit 데이터 512개를 저장할 수 있는 메모리가 장착되었고 (이후 1024개 크기로 확장되었습니다.) 입력으로 5줄짜..

    컴퓨터구조에 대해 본격적으로 설명하기에 앞서 현대 컴퓨터의 구조에 대해 간단히 표현하자면 다음 그림과 비슷할 것입니다: (실제로는 더 복잡하지만, 대체로 프로그래머 입장에서는 위 그림처럼 생각해도 됩니다.) 처음 보는 입장에서는 뭔가 복잡해 보이고, 별로 와닿지도 않는 것 같습니다. 그런데, 컴퓨터를 사용하는 입장에서는 해당 컴퓨터에서 원하는 프로그램이 잘 돌아가기만 한다면 컴퓨터가 어떻게 구성되어 있는지는 사실 별로 중요하지 않습니다. 그렇다면 컴퓨터를 만드는 사람의 입장에서 나름의 이유가 있었겠지요. 그럼에도 여전히 컴퓨터의 구조는 그다지 직관적이지는 않은 것 같습니다. 도대체 어떻게 저런 구조가 나오게 된 것일까요? 컴퓨터의 역사를 살펴보며 그 실마리를 한 번 찾아보도록 합시다. (바쁘신 분들은 1..

    A 1.01: 컴퓨터의 역사 [1]By 재두루미

    컴퓨터구조에 대해 본격적으로 설명하기에 앞서 현대 컴퓨터의 구조에 대해 간단히 표현하자면 다음 그림과 비슷할 것입니다: (실제로는 더 복잡하지만, 대체로 프로그래머 입장에서는 위 그림처럼 생각해도 됩니다.) 처음 보는 입장에서는 뭔가 복잡해 보이고, 별로 와닿지도 않는 것 같습니다. 그런데, 컴퓨터를 사용하는 입장에서는 해당 컴퓨터에서 원하는 프로그램이 잘 돌아가기만 한다면 컴퓨터가 어떻게 구성되어 있는지는 사실 별로 중요하지 않습니다. 그렇다면 컴퓨터를 만드는 사람의 입장에서 나름의 이유가 있었겠지요. 그럼에도 여전히 컴퓨터의 구조는 그다지 직관적이지는 않은 것 같습니다. 도대체 어떻게 저런 구조가 나오게 된 것일까요? 컴퓨터의 역사를 살펴보며 그 실마리를 한 번 찾아보도록 합시다. (바쁘신 분들은 1..

    이제 본론으로 들어가 첫번째로 컴퓨터 시스템의 추상화에 대해 다뤄 보겠습니다. 독자분들 중 몇몇은 ‘추상화’라는 주제로 설명을 시작하는 것이 다소 생소하게 느껴질 수도 있겠지만, 오늘날의 컴퓨터 시스템은 매우 복잡하기 때문에 앞으로의 글을 이해하는 데 있어서, 그리고 컴퓨터구조라는 과목이 무엇에 대해 다루는지 알기 위해서는 어느 정도의 추상화가 필요할 것입니다. 왜 추상화가 필요한가? 다음과 같이 같은 대상을 지칭하는 두 개의 표현을 예로 들어 보겠습니다: ‘전압이 220V인 교류를 두 개의 볼록한 단자로 입력받아 8.4 mm x 2.6 mm 크기의 끝이 둥근 단자로 전압이 5V인 직류를 최대 3A 출력할 수 있는 장치’ ‘15W Type-C 충전기’ 여기서 많은 경우 2.에서 필요한 정보를 충분히 얻을..

    A 1.00: 컴퓨터 시스템의 추상화By 재두루미

    이제 본론으로 들어가 첫번째로 컴퓨터 시스템의 추상화에 대해 다뤄 보겠습니다. 독자분들 중 몇몇은 ‘추상화’라는 주제로 설명을 시작하는 것이 다소 생소하게 느껴질 수도 있겠지만, 오늘날의 컴퓨터 시스템은 매우 복잡하기 때문에 앞으로의 글을 이해하는 데 있어서, 그리고 컴퓨터구조라는 과목이 무엇에 대해 다루는지 알기 위해서는 어느 정도의 추상화가 필요할 것입니다. 왜 추상화가 필요한가? 다음과 같이 같은 대상을 지칭하는 두 개의 표현을 예로 들어 보겠습니다: ‘전압이 220V인 교류를 두 개의 볼록한 단자로 입력받아 8.4 mm x 2.6 mm 크기의 끝이 둥근 단자로 전압이 5V인 직류를 최대 3A 출력할 수 있는 장치’ ‘15W Type-C 충전기’ 여기서 많은 경우 2.에서 필요한 정보를 충분히 얻을..

    A 0.00: 들어가며By 재두루미

    안녕하세요, 컴퓨터구조 연재를 시작하게 된 재두루미입니다. 이 글에서는 앞으로의 연재에 관한 대략적인 사항에 대해 다뤄 보고자 합니다. 무엇에 대해 다루는가? 이 연재는 컴퓨터구조 시리즈의 첫 번째(Alpha) 연재로서 학부 컴퓨터구조 커리큘럼 상의 내용 및 관련 지식들에 대해 다룰 예정입니다. 각 글의 번호는 X.xx와 같이 소수 형태로 표현되는데, 1.xx에서는 컴퓨터란 무엇이고 어떻게 구성되어 있는지를, 2.xx에서는 컴퓨터가 어떻게 동작하는지에 대해 다룹니다. 여기까지의 내용을 통해 컴퓨터의 기본적인 동작과 간단한 어셈블리 코드에 대해 이해할 수 있습니다. 3.xx에서는 컴퓨터를 어떻게 만드는지와 이때 어떤 점을 고려하여야 하는지에 대해 다루고, 성능에 관한 몇 가지 식을 소개합니다. 4.xx에서..

    고등학교 때 만들어둔 자료이긴 하지만, 컴퓨터공학과 4학년 전선 과목인 "양자컴퓨팅 및 정보의 기초"라는 과목에 도움이 되는 내용일 것 같아 소개해봅니다. 모든 내용이 영어로 되어 있으나, 부족한 영어 실력으로 인해 완벽하지 않을 것으로 예상합니다. (가끔은 줄바꿈을 막기 위해 어쩔 수 없이 생략하기도 했어요.) pdf를 보다 보면 위와 같은 버튼이 나타날 것입니다. 이는 현재 내용에 해당하는 부록으로 넘어가는 것으로, 해당 부록으로 넘어간다면 그 부록에 해당하는 첫 번째 슬라이드의 버튼을 누르면 다시 원래 위치로 이동할 수 있습니다. 그러면, 시작하겠습니다. Lecture 0. Introduction은 현재 내용이 누구를 위한 것인지, 어떤 내용을 설명할 것인지와 함께 참고 문헌을 소개해놓았습니다. L..

    양자컴퓨팅 개론By DEL1GHT

    고등학교 때 만들어둔 자료이긴 하지만, 컴퓨터공학과 4학년 전선 과목인 "양자컴퓨팅 및 정보의 기초"라는 과목에 도움이 되는 내용일 것 같아 소개해봅니다. 모든 내용이 영어로 되어 있으나, 부족한 영어 실력으로 인해 완벽하지 않을 것으로 예상합니다. (가끔은 줄바꿈을 막기 위해 어쩔 수 없이 생략하기도 했어요.) pdf를 보다 보면 위와 같은 버튼이 나타날 것입니다. 이는 현재 내용에 해당하는 부록으로 넘어가는 것으로, 해당 부록으로 넘어간다면 그 부록에 해당하는 첫 번째 슬라이드의 버튼을 누르면 다시 원래 위치로 이동할 수 있습니다. 그러면, 시작하겠습니다. Lecture 0. Introduction은 현재 내용이 누구를 위한 것인지, 어떤 내용을 설명할 것인지와 함께 참고 문헌을 소개해놓았습니다. L..

    0. Basic Concepts - LanguageBy 성적표보여줘

    Introduction '학문'이란 어떤 '문제'를 푸는 과정으로 일축할 수 있다. 예를 들어, 건축공학은 집을 잘 짓는데 필요한 '문제'를 해결해 나가는 학문이고, 물리학이란 여러 가지 자연 현상들을 설명하고 예측하는 '문제'를 해결해 나가는 학문이다. 그렇다면 컴퓨터 과학(Computer Science)는 어떤 학문일까? 여러가지 정의가 있겠지만, 필자는 '문제를 푸는 방법', 그 자체에 대한 학문이라고 생각한다. 그 문제를 풀기 위해 우리는 컴퓨터라는 계산 기계를 이용하기 때문에 우리는 이 학문을 컴퓨터 과학이라고 부른다. 앞으로 연재해 나갈 포스트들은 컴퓨터로 어떠한 문제를 풀 수 있는지(Computability), 그러한 문제들이 얼마나 풀기 어려운지(Intractability)에 대해 다룰 것..

    안녕하세요. 이번 논문 리뷰 시리즈에서는 Discovering Physical Concepts with Neural Networks라는 논문의 내용을 살펴보고자 합니다. 이 논문을 간단하게 정리하자면, "인공지능으로 물리법칙을 찾아보자!"입니다. 다만 인공지능이 법칙을 찾기 위해선 먼저 인간이 어떻게 법칙을 찾는지부터 알아봐야 하겠죠. 따라서 이번 글에서는 인공신경망 구현을 살펴보기에 앞서, 먼저 경험론에 기반한 자연과학 법칙 생성 과정부터 살펴보도록 하겠습니다. 최근 들어 인공신경망은 획기적인 발전을 거듭했습니다. Deepmind의 AlphaGo 외에도 GPT-3나 DALLE2와 같은 모델들은 이제 인간 이상의 성능을 자랑합니다. 인공신경망 연구는 대부분 상업적 이용이나 창의적 산출물 구현을 지향합니..

    물리법칙을 만드는 인공지능 (1)By junukwon7

    안녕하세요. 이번 논문 리뷰 시리즈에서는 Discovering Physical Concepts with Neural Networks라는 논문의 내용을 살펴보고자 합니다. 이 논문을 간단하게 정리하자면, "인공지능으로 물리법칙을 찾아보자!"입니다. 다만 인공지능이 법칙을 찾기 위해선 먼저 인간이 어떻게 법칙을 찾는지부터 알아봐야 하겠죠. 따라서 이번 글에서는 인공신경망 구현을 살펴보기에 앞서, 먼저 경험론에 기반한 자연과학 법칙 생성 과정부터 살펴보도록 하겠습니다. 최근 들어 인공신경망은 획기적인 발전을 거듭했습니다. Deepmind의 AlphaGo 외에도 GPT-3나 DALLE2와 같은 모델들은 이제 인간 이상의 성능을 자랑합니다. 인공신경망 연구는 대부분 상업적 이용이나 창의적 산출물 구현을 지향합니..

    여러분은 컴퓨터를 어떻게 사용하시나요? 아마 화면을 보며 키보드와 마우스를 사용해 작업을 수행할 것입니다. 이때 바탕화면과 시작버튼 등 모든 요소가 우리가 볼 수 있도록 화면에 표시됩니다. 이것을 GUI(Graphical User Interface)라고 부릅니다. 이와 반대되는 개념으로 CLI(Command-Line Interface)가 있습니다. 여러분이 CodeBlocks 또는 DevC에서 프로그램을 실행했을 때 뜨는 명령 프롬프트 창이 이것입니다. 마우스가 없다? 이 창에서 여러분은 마우스를 사용할 수 없습니다. 모든 작업은 명령줄에서 이루어집니다. 예를 들어 파일을 복사해서 다른 폴더에 붙여넣는다고 합시다. GUI에서는 우클릭 → 복사 → 다른 폴더로 이동 → 우클릭 → 붙여넣기의 과정을 거칩니다..

    서버는 어떻게 운영하나요?By junukwon7

    여러분은 컴퓨터를 어떻게 사용하시나요? 아마 화면을 보며 키보드와 마우스를 사용해 작업을 수행할 것입니다. 이때 바탕화면과 시작버튼 등 모든 요소가 우리가 볼 수 있도록 화면에 표시됩니다. 이것을 GUI(Graphical User Interface)라고 부릅니다. 이와 반대되는 개념으로 CLI(Command-Line Interface)가 있습니다. 여러분이 CodeBlocks 또는 DevC에서 프로그램을 실행했을 때 뜨는 명령 프롬프트 창이 이것입니다. 마우스가 없다? 이 창에서 여러분은 마우스를 사용할 수 없습니다. 모든 작업은 명령줄에서 이루어집니다. 예를 들어 파일을 복사해서 다른 폴더에 붙여넣는다고 합시다. GUI에서는 우클릭 → 복사 → 다른 폴더로 이동 → 우클릭 → 붙여넣기의 과정을 거칩니다..