
Korean: 
안녕하세요 여러분! 저는 Carrie Anne 이고 
컴퓨터 과학 특강에 오신 것을 환영합니다.
지난 몇 강의에서
어떻게 컴퓨터 안의 기계들이 작동하는지 
많은 이야기를 했었어요.
그들이 복잡한 회로를 사용해서  
어떻게 메모리에 값을 저장하고 검색하는지,
두개의 숫자를 더하는 것과 같이,
해당 값에 대한 연산을 수행하는지요.
두개의 숫자를 더하는 것과 같이,
해당 값에 대한 연산을 수행하는지요.
컴퓨터 프로그램인 작업 순서에 대해서도 
간략하게 이야기 했었는데요,
컴퓨터 프로그램인 작업 순서에 대해서도 
간략하게 이야기 했었는데요,
어떻게 컴퓨터 안으로 들어가는 지에 대해서는 
언급하지 않았습니다.
어떻게 컴퓨터 안으로 들어가는 지에 대해서는 
언급하지 않았습니다.
7강와 8강을 잠시 기억해보시면
우리가 만든 CPU를 위한 
간단한 예시 프로그램을 살펴봤습니다.
단순하게 하기 위해 손을 흔들고 말만 하면
프로그램은 마법과 같이 메모리 안에 있었습니다.
그렇지만 실제로 프로그램은 
컴퓨터의 메모리에 로드되어야 합니다.
이건 마술이 아니고 컴퓨터 과학이에요.
 
프로그램된 기계에 대한 필요성은 컴퓨터를 개발하기 
전에도 존재 해 왔습니다.
가장 유명한 예는 섬유 제조에 있었습니다.
만약 여러분이 크고 붉은 식탁보를 짜고 싶다면,

English: 
Hi, I'm Carrie Anne and welcome to Crash Course Computer Science.
Over the last few episodes,
We've talked a lot about the mechanics of how computers work.
How they use complex circuits to save and retrieve values from memory,
and perform operations on those values,
like adding two numbers together.
We've even briefly talked about sequences of operations,
which is a computer program.
What we haven't talked about
is how a program gets into a computer.
You might remember in episode 7 and 8 ,
when we stepped through some simple example programs for the CPU that we had created.
For simplicity, we just waved our hands
and said that the program was already magically in memory.
But in reality, programs have to be loaded into a computer's memory.
It's not magic. It's computer science.
[Theme Music]
The need to programme machines existed way before the development of computers.
The most famous example of this was in textile manufacturing.
if you just wanted to weave a big red tablecloth,

English: 
you could simply feed red thread into a loom and let it run.
But what about if you wanted the cloth to have a pattern like stripes or plaid?
Workers would have to periodically reconfigure the loom as dictated by the pattern,
but this was labor intensive which made patterned fabrics expensive.
In response, Joseph Marie Jacquard developed a programmable textile loom,
which he first demonstrated in 1801.
The pattern for each row of the cloth was defined by a punched card.
The presence or absence of a hole in the card determined
if a specific threat was held high or low in the loom.
Such that the cross thread called the weft passed above or below the thread.
To vary the pattern across rows these punch cards were arranged in long chains,
forming a sequence of commands for the loom.
Sound familiar?
Many consider Jacquard's loom to be one of the earliest forms of programming.
Punched cards, turned out to be a cheap , reliable,
fairly human readable way to store data.
Nearly a century later,
punch cards were use to help tabulate the 1890 newest census
which we talked about in episode 1.
Each card held an individual person's data.
Things like race,
marital status,
number of children,
country of birth, and so on.
For each demographic question,

Korean: 
단순히 베틀에 붉은 실을 넣고 작동시키면 되었죠.
하지만 만약 여러분이 줄무늬나 격자무늬와 같은 패턴을 옷에 넣고 싶다면 어떨까요?
근로자들은 주기적으로 방직기를 
패턴의 모양에 따라 변경을 해야 했고
상당히 노동집약적이어서
패턴이 들어간 섬유를 비싸게 만들었죠.
이에 대응하여 Joseph Marie Jacquard는 
프로그래밍이 가능한 방직기를 개발하였으며,
1801년에 처음 시연되었습니다.
펀치카드에 의해 옷감에 패턴이 
들어가야 할 열이 지정되었습니다.
구멍의 유무에 따라 특정한 실이 높게 또는 낮게 
직조기에 유지되도록 결정되어요.
구멍의 유무에 따라 특정한 실이 높게 또는 낮게 
직조기에 유지되도록 결정되어요.
이렇게 교차된 실은 씨실이라 불리며 
실의 위나 아래를 지나갔습니다.
줄을 가로질러 패턴을 변화시키기 위해 펀치카드들은 
길다란 사슬로 배열되었고
방직기에 대한 일련의 명령을 형성했습니다.
친숙하게 들리나요?
많은 사람들은 Jacquard의 방직기를 
최초의 프로그래밍 방식 중 하나로 여기고 있습니다.
구멍뜷린 카드는 싸고 믿을만 하며
사람들은 명료하게 데이터를 저장하는 방법을 
읽을 수도 있죠.
1세기쯤 지난 후에,
펀치 카드는 1890년 최신 인구조사를 
표로 만드는 데 쓰입니다.
이건 1강에서 이야기 했었더에요.
각각의 카드는 개인의 데이터를 나타냈습니다.
인종, 혼인 여부, 자녀 수, 태어난 도시 등의 것들이요.
인종, 혼인 여부, 자녀 수, 태어난 도시 등의 것들이요.
각각 인구 통계학적인 질문에는

English: 
a census worker would punch out a hole of the appropriate position.
When a card was fed into the tabulating machine,
a hole would cause the running total for that specific answer to be increased by one.
In this way you could feed the
entire county's worth of people
and at the end you'd have running totals for all of the questions that you asked.
It is important to note here that early tabulating machines
were not truly computers as they can only do one thing-tabulate.
Their operation was fixed and not programmable.
Punished cards stored data, but not a program.
Over the next 60 years, these business machines grew in capability,
adding features to subtract, multiply, divide,
and even make simple decisions about when to perform certain operations.
To trigger these functions appropriately,
so that different calculations could be performed,
a programmer accessed a control panel.
This panel was full of little sockets, into which a programmer would plug cables
to pass values and signals between different parts of the machine.
For this reason they were also called plug boards.
Unfortunately, this meant having to rewire the machine each time a different program needed to be run.

Korean: 
인구 조사원이 적절한 위치에
 구멍을 뚫을 수 있었습니다.
카드가 집계 기계로 들어가게 되면,
구멍이 있으면 특정 답변의 누적 합계가 
1만큼 증가했습니다.
이런 방법으로 전체 자치주의 사람 수를 셀 수 있었고,
이런 방법으로 전체 자치주의 사람 수를 셀 수 있었고,
결과적으로 인구통계학에 관해 물어봤던 
질문들에 대한 합계 또한 계산할 수 있습니다.
주목해야할 것은 초기의 집계 기계가
그들은 단지 도표화 하나만 할 수 있다는 점에서 
진정한 컴퓨터가 아니었다는 것입니다.
그들의 작업은 고정되었고 
프로그래밍이 가능하지 않았습니다.
펀치카드는 데이터를 저장했지만 
프로그램은 저장하지 않았습니다.
60년이 지나도록 이 비즈니스 기계는 
기능이 향상되었으며,
빼고, 곱하고, 나누는 기능이 추가되었습니다.
심지어 언제 특정한 작업을 수행할지에 대한 
 간단한 결정이 가능해졌습니다.
이러한 기능들을 대략적으로 작동시키기 위해
다른 계산을 수행할 수 있도록 프로그래머가 
제어 판넬에 접근했습니다.
다른 계산을 수행할 수 있도록 프로그래머가 
제어 판넬에 접근했습니다.
이 판넬은 작은 소켓들로 채워져 있었고, 
프로그래머가 케이블을 연결하여
값이나 신호를 기계의 다른 부분으로 
보낼 수 있었습니다.
이러한 이유로 그들은 플러그보드라고 불리기도 했어요.
불행히도, 이것은 다른 프로그램이 실행되어야 할 때마다 이 기계의 선을 조정해야 한다는 것을 의미했습니다.

Korean: 
그리하여 1920년대에 이러한 플러그보드는 
교체가 가능하도록 만들어졌습니다.
이것은 프로그래밍을 훨씬 편하게 만들 뿐만 아니라,
다른 프로그램을 기계에 연결할 수 있게 해 줍니다.
예를 들어, 하나의 보드에 판매 세금 계산선을 연결하고, 다른 선이 급여 지불에 돕도록 연결할 수 있습니다.
이 플러그보드는 프로그래밍하기 극도로 복잡했습니다.
이 꼬인 선들은 손익을 계산하기 위한 
프로그램입니다.
이 프로그램은 IBM 402 회계 기계를 사용했고,
1940년대에 인기가 많았습니다.
그리고 이런 스타일의 플러그보드 프로그래밍은
전자컴퓨터에만 국한되지 않았습니다.
1946년에 완성된 세계 최초의 범용 목적의 
전자 컴퓨터인 애니악은, 1톤을 사용했죠.
1946년에 완성된 세계 최초의 범용 목적의 
전자 컴퓨터인 애니악은, 1톤을 사용했죠.
프로그램이 종이에 완전히 완성된 이후에도,
물리적으로 애니악을 연결하고 프로그램을 실행시키는 데에는 3주 이상 걸렸습니다.
초기의 컴퓨터에서 거대한 비용을 감안하면, 단순히 프로그램을 전환하는 데 몇 주의 고장은 허용될 수 없었으며,
새롭고, 더 빠르고, 더 유연한 방법의 
기계 프로그래밍 방법이 절실히 필요했습니다.
다행히도 1940년대 후반부터 50년대에 이르자 
전자 메모리가 실현 가능했습니다.
비용이 감소함에 따라 메모리 크기는 커졌습니다.

English: 
And so by the 1920s, these plug boards were made swappable.
This not only made programming a lot more comfortable,
but also allowed for different programs to be plugged into a machine.
For example, one board might be wired to calculate sales tax, while another helps with payroll.
But plug boards were fiendishly complicated to program.
This tangle of wires is a program for calculating a profit loss summary,
using an IBM 402 accounting machine, which were popular in the 1940s.
And this style of plug board programming wasn't unique to electromechanical computers.
The world's first General-Purpose electronic computer,
the Eniac, completed in 1946, used a ton of them.
Even after a program had been completely figured out on paper,
physically wiring up the Eniac and getting the program to run could take upwards of three weeks.
Given the enormous cost of these early computers, weeks of downtime simply to switch programs
was unacceptable and the new, faster, more flexible way to programme machines was badly needed.
Fortunately by the late 1940s and into the 50s, electronic memory was becoming feasible.
As costs fell, memory size grew.

English: 
Instead of storing a program as a physical plug board of wires, it became possible to store a program entirely in a computer's memory.
Where it could be easily changed by programmers and quickly accessed by the CPU.
These computers were called stored-program computers.
With enough computer memory, you could store not only the program you wanted to run,
but also any data your program would need.
Including new values it created along the way,
Unifying the progrmming data into a single shared memory is called the von Neumann architecture.
Named after John von Neumann, a prominent mathematician and physicist,
who worked on the Manhattan project and several early electronic computers.
And once said, "I'm thinking about something much more important than bombs, I'm thinking about computers".
The hallmarks of a von Neumann computer are a processing unit containing an arithmetic logic unit,
data registers, an instruction register, and an instruction address register.
And finally, a memory to store both data and instructions.
Hopefully, this sounds familiar, because we actually built a von Neumann computer in episode 7.
The very first von Neumann architecture stored program computer

Korean: 
프로그램을 물리적인 플러그보드의 
선으로 저장하는 대신에,
전체 프로그램을 컴퓨터의 메모리 안에 
저장하는게 가능해졌습니다.
메모리는 프로그래머에 의해 쉽게 변경될 수 있고
 CPU에 의해 빠르게 접근이 가능해졌습니다.
이러한 컴퓨터들은 "프로그램 내장식 컴퓨터"
라고 불렸습니다.
충분한 컴퓨터 메모리가 있으면
 실행하고 싶은 프로그램 뿐만 아니라
프로그램이 필요한 어떤 데이터든지 
저장할 수 있습니다.
도중에 생성된 새로 만든 값들도 포함해서요.
프로그래밍 데이터를 단일 공유 메모리로 통합하는 것을 "폰 노이만 구조"라고 합니다.
저명한 수학자이자 물리학자인 
John von Neumann의 이름을 따왔는데요.
맨해튼 프로젝트와 몇몇 초기 전자식 컴퓨터에 관한 일을 했었던 사람입니다.
한번은 이렇게 말한 적이 있어요.
"나는 폭탄보다 훨씬 중요한 것에 대해 생각중인데, 
바로 컴퓨터에 관한 생각중이다."
폰노이만 컴퓨터의 특징은 
산술 논리 장치와 데이터 레지스터,
명령 레지스터 및 명령 주소 레지스터를 포함하는 처리 장치라는 것 입니다.
마지막으로, 데이터와 지침 모두를 저장하는
메모리라는 것도요.
이게 좀 익숙하게 들리길 바라요. 왜냐하면 이미 7강에서  폰노이만 컴퓨터를 만들었기 때문이죠.
폰노이만 구조의 맨 처음의 
프로그램 내장식 컴퓨터는

English: 
was constructed in 1948 by the University of Manchester, nicknamed "Baby".
And even the computer you are watching this video right now uses the same architecture.
Now electronic computer memory is great and all,
but you still have to load the programming data in to the computer before it can run.
And for this reason, punch cards were used.
Let's get to the Thought Bubble.
Well into the 1980s, almost all computers had a punch card reader.
Which could suck in a single punch card at a time and write the contents of the card into the computer's memory.
If you loaded in a stack of punch cards, the reader would load them all into memory sequentially, as a big block.
Once the programming data were in memory, the computer would be told to execute it.
Of course, even simple computer programs might have hundreds of
instructions, which meant that programs were stored as stacks of punch cards.
So if you ever have the misfortune of accidentally dropping your program on the floor,
it could take you hours, days, or even weeks to put the code back in the right order.
A common trick was to draw a diagonal line on the side of the card stack called striping,
so you'd have at least some clue how to get it back into the right order.

Korean: 
1948년에 맨체스터 대학에서 만들어졌고 
별명은 "베이비"였습니다.
그리고 심지어 현재 여러분이 비디오를 보고 있는 
이 컴퓨터도 같은 구조를 사용합니다.
이제 전자식 컴퓨터 메모리는 훌륭하지만 모두가
실행하기 전에 프로그래밍 데이터를 
컴퓨터에 로드해야 합니다.
그리고 이러한 이유로 펀치 카드가 사용되었습니다.
생각 풍선으로 들어가 봅시다~
1980년대에는, 거의 모든 컴퓨터에 
펀치 카드 판독기가 있었습니다.
하나의 펀치 카드를 빨아 들여 카드의 내용을
컴퓨터 메모리에 기록할 수 있었죠.
펀치카드의 무더기들을 로드해오면 판독기는 그 모두를 
큰 블럭으로 순서대로 메모리에 로드합니다.
프로그래밍 데이터가 메모리로 저장되면 
컴퓨터는 그것을 실행하라는 메시지를 받게 됩니다.
물론, 아주 간단한 컴퓨터 프로그램조차도 
수백가지의 지침을 가지고 있고
이것은 프로그램들이 펀치 카드 덩어리와 같이 
저장된 것을 의미합니다.
만약 여러분이 프로그램을 바닥에 
실수로 떯어뜨리는 불운을 겪었다면,
코드들을 바르게 순서를 되돌리는 데에
몇 시간, 며칠 혹은 몇 주가 걸릴 수 있습니다.
일반적인 트릭은 스트라이핑이라 불리는 카드 덩어리의 측면에 대각선을 그리는 것이었는데요,
그것들을 올바른 순서대로 놓을 수 있는 
작은 단서인 셈이죠.

English: 
The largest program ever punched into punch cards was the US Air Force's sage air defense system, completed in
1955. At its peak, the product is said to have employed
20% of the world's programmers. Its main control program was stored on a whopping
62,500 punch cards, which is equivalent to roughly 5 megabytes of data.
Pretty underwhelming by today's standards.
And punch cards weren't only useful for getting data into computers, but also getting data out of them.
At the end of a program, results could be written out of computer memory and onto punch cards by, well, punching cards.
Then this data could be analyzed by humans or loaded into a second program for additional computation.
Thanks, Thought Bubble.
A close cousin to punch cards was punched paper tape,
which is basically the same idea, but continuously instead of being on individual cards.
And of course, we haven't talked about hard drives, CD-Roms, DVDs, USB thumb drives, and other similar goodies.
We'll get to those more advanced types of data storage in a future episode.
Finally, in addition to plug boards and punch paper,

Korean: 
펀치카드로 구멍이 뚫려 만들어진 가장 큰 프로그램 중 하나는 1955년 미국 공군의 세이지 방공 시스템이었어요.
절정에 이르면서, 이 프로그램은 전 세계 프로그래머의 20%를 고용했다고 합니다.
주요 제어 프로그램은 
엄청 큰 62,500개의 펀치카드에 저장되었고,
대략 5메가 바이트의 데이터와 동일한 값입니다.
오늘날의 기준에 의하면, 꽤 압도적인데요.
또한 펀치카드는 컴퓨터에 데이터를 넣는 것 뿐 아니라 
데이터를 꺼내오는 것에도 유용했습니다.
프로그램의 마지막에, 결과는 컴퓨터 메모리와 펀치카드에 기록할 수 있습니다. 네, 구멍 뚫은 카드요.
그리고 이 데이터는 사람에 의해 분석되거나 추가 계산을 위해 두 번째 프로그램에 로드될 수 있었습니다.
고마워요, 생각 풍선!
펀치카드와 가까운 친척은 펀치 종이테이프였습니다.
기본적으로 같은 아이디어지만,
개별 카드를 쓰지 않고 계속 이어서 사용되었습니다.
그리고 물론, 우리는 하드 드라이브나 CD-Rom, DVD, USB와 같은 것들에 대해선 이야기 하지 않았습니다.
이러한 진보된 유형의 저장장치들은
미래의 강의에서 다루도록 하겠습니다.
마지막으로, 플러그보드와 펀치 종이 외에도

Korean: 
1980년 이전에 컴퓨터를 제어하고 프로그래밍할 수 있는 또 다른 일반적인 방법이 있었습니다.
"패널 프로그래밍"이요.
특정 기능을 활성화 하기 위해 케이블의 플러그를 
물리적으로 연결하는 대신,
스위치와 버튼으로 가득 찬 거대한 패널으로도 
작동할 수 있습니다.
메모리 안의 다양한 값과 기능의 상태를 표시하는 
표시등들도 있습니다.
50~60년대 컴퓨터들은 보이는것처럼 
거대한 제어 콘솔이 특징이었습니다.
스위치만 사용해서 전체 프로그램을 
입력하는 경우는 드물긴 했지만 가능했습니다.
애호가 시장에 팔기 위해 만들어진 초기의 가정 컴퓨터는 광범위하게 스위치를 사용했어요.
왜냐하면 대부분의 일반 사용자들은 펀치 카드 판독기와 같은 비싼 주변장치를 살 여유가 없었거든요.
최초의 상업용으로 성공한 가정용 컴퓨터는 Altair 8800 이었는데, 두가지 버젼으로 팔렸습니다.
선조립되었거나 키트로요.
키트는 아마추어 컴퓨터 애호가들에게 인기가 많았고 
전례에 없는 저렴한 가격에 판매가 되었는데
가격은 1975년에는 약 400$, 
2017년에는 약 2000$ 였습니다.
8800을 프로그래밍 하려면 문자그대로
 패널 앞에 있는 스위치들을 켜고 끄면서
명령에 대한 2진 Opcode를 입력합니다.
그리고 deposit 버튼을 눌러 
해당 값을 메모리에 입력합니다.

English: 
there was another common way to program and control computers pre-1980: panel programming.
Rather than having to physically plug in cables to activate certain functions, this could also be done with huge panels full of switches
and buttons. And there were indicator lights to display the status of various functions and values in memory.
Computers of the 50s and 60s often featured huge control consoles that look like this.
Although it was rare to input a whole program using just switches, it was possible.
And early home computers made for the hobbyist market used switches extensively, because most home users couldn't afford expensive
peripherals like punch card readers. The first commercially successful home computer was the Altair 8800, which sold in two versions:
preassembled and as a kit. The kit, which was popular with amateur computing enthusiasts, sold for the then unprecedented low price of around
$400 in 1975 or about $2,000 in 2017.
To program 8800 you'd literally toggle the switches on the front panel to enter the binary Op codes for the instruction you wanted.
Then you press the deposit button to write that value into memory.

Korean: 
그리고 메모리의 다음 위치에서, 스위치를 다시 토글해서 다음 명령으로, deposit 하는 등, 이런 방식입니다.
여러분이 마침내 전체 프로그램을 메모리에 입력했다면, 다시 스위치를 토글해서
메모리 주소 0으로 다시 이동하여 실행 버튼을 누르고 
조그만 신호가 깜빡이는 지 확인합니다.
이것이 1975년의 가정용 컴퓨터였습니다. 와우~
플러그 보드의 스위치든, 펀치된 종이이든
초기 컴퓨터의 프로그래밍은 전문가 영역이었습니다.
생계를 위해서 하거나, 기술에 대한 열정으로 
작업을 하는 전문가들이었죠.
이 일에는 하드웨어의 기본에 대한 자세한 지식이 
필요했습니다.
프로그램을 작성하는 데에 Opcode와 레지스터에 대한 
기지가 필요했습니다.
이건 프로그래밍이 어려웠고 지루했다는 걸 의미합니다.
심지어 전문 기술자들이나 과학자들도 컴퓨팅이 제공할수 있는 것을 최대한 활용하기 위해 애썼습니다.
필요했던 것은 컴퓨터에게 무엇을 해야 할지 간단히 알려주는 방법, 프로그램을 작성하는 더 간단한 방법이었죠.
이것은 우리가 다음 강에서 이야기해 볼 
"프로그래밍 언어"입니다.
다음 주에 봐요~
 
 

English: 
Then in the next location in memory, you toggle the switches again for your next instruction, deposit it and so on.
When you had finally entered your whole program into memory, you would toggle the switches, move back
to memory address zero, press the run button, and watch the little lights blink. That was home computing in 1975, wow.
Whether it was plug board switches or punched paper
Programming these early computers was the realm of experts. Either professionals who did this for a living, or technology enthusiasts.
You needed intimate knowledge of the underlying hardware,
So things like processor Op codes and register wits to write programs.
This meant programming was hard and tedious. And even professional engineers and scientists struggle to take full advantage of what computing could offer.
What was needed was a simpler way to tell computers what to do; a simpler way to write programs.
And that brings us to programming languages which we'll talk about next episode. See you next week.
Crash Course Computer Science is produced in association with PBS Digital Studios.
At their channel you can check out a playlist of shows like Braincraft,

Korean: 
 
 
 

English: 
Coma Niddy and PBS Infinite Series. This episode was filmed at the Chad and Stacey Emigholz studio in Indianapolis, Indiana
And it was made with the help of all these nice people and our wonderful graphics team is Thought Cafe.
Thanks for the Random Access Memories, I''ll see you next time.
