-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This reverts commit 4245bc7.
- Loading branch information
Showing
492 changed files
with
46,003 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,274 @@ | ||
=== Chapter 1 | ||
|
||
The CPU and main memory are only two out of many components in a real computer system | ||
|
||
→ **실제 컴퓨터 시스템에서 CPU와 메인 메모리는 많은 구성 요소들 중 두개에 불과하다** | ||
|
||
comparatively | ||
|
||
→ 비교적 | ||
|
||
permanent | ||
|
||
→ 영구적인 | ||
|
||
somehow | ||
|
||
→ 어떻게든 | ||
|
||
deal with | ||
|
||
→ 처리하다 | ||
|
||
typically | ||
|
||
→ 일반적으로 | ||
|
||
sort | ||
|
||
→ 종류 | ||
|
||
direct | ||
|
||
→ 지시하다 | ||
|
||
fairly | ||
|
||
→ 꽤 | ||
|
||
turn out | ||
|
||
→ 나타나다 | ||
|
||
**polling** | ||
|
||
→ 데이터가 들어왔는지 주기적으로 체크하여 파악함. 들어왔으면 그 데이터를 제공함. | ||
|
||
**interrupt** | ||
|
||
→ polling의 단점을 보완. interrupt handler. | ||
|
||
by putting aside whatever it is doing | ||
|
||
→ 그것이 하던일을 제쳐두고 | ||
|
||
predetermined | ||
|
||
→ 미리 계산된 | ||
|
||
make up | ||
|
||
→ 만들어서 구성하는 느낌 | ||
|
||
necessary | ||
|
||
→ 필요한, 필수적인 | ||
|
||
restore | ||
|
||
→ 복구하다, 복원하다 | ||
|
||
**asynchronous** | ||
|
||
→ 비동기식 | ||
|
||
only if | ||
|
||
→ ~해야만 | ||
|
||
on the scale of speed at which the CPU operates | ||
|
||
→ cpu가 작동하는 속도의 기준에서 | ||
|
||
multi tasking | ||
|
||
time sharing | ||
|
||
synchronous 동기 | ||
|
||
이어지는, 예측되는 | ||
|
||
asynchronous 비동기 | ||
|
||
이어지지 않는, 예측할 수 없는 | ||
|
||
**thread** | ||
|
||
→ Each of the individual tasks that the CPU is working on | ||
|
||
MACHINE LANGUAGE | ||
|
||
→ 기계어 | ||
|
||
**Interpreter** | ||
|
||
→ Intstruction-by-Instruction로 변환함. 통역느낌 | ||
|
||
**Compiler** | ||
|
||
→ 한 번에 다 변경. 번역느낌 | ||
|
||
**data** - variables, types | ||
|
||
**instruction** - control structures, subroutines | ||
|
||
**a variable has a type that indicates what sort of data it can hold** | ||
|
||
make a distinction | ||
|
||
→ 구별을 하다 | ||
|
||
assignment statement | ||
|
||
→ 변수에 값을 저장하는 | ||
|
||
input/output command | ||
|
||
→ input command = 데이터를 가져오거나 받기 위한 명령, output command = 다른 방향으로 데이터를 보내기 위한 명령 | ||
|
||
building block | ||
|
||
→ 기본 구성 요소 | ||
|
||
run out of | ||
|
||
→ 부족, 부족해지다, 떨어지다 | ||
|
||
**control structure** | ||
|
||
→ 제어 구조. flow of control 을 변경할 수 있는 특별한 명령어 | ||
|
||
→ loop 와 branch가 있음 | ||
|
||
→ loop : sequence of instructions를 계속(반복)할 수 있도록 함 | ||
|
||
→ branch : 프로그램이 실행될 때 발생하는 조건에 따라 컴퓨터가 둘 이상의 서로 다른 동작 과정을 결정할 수 있게 함 | ||
|
||
**subroutine** | ||
|
||
→ 함수 느낌 | ||
|
||
→ 동일한, 한 가지 목적을 가지고 수행되는 명령어들의 집합 | ||
|
||
**Variables, types, loops, branches, and subroutines are the basis of what might be called "traditional programming.”** | ||
|
||
methodology | ||
|
||
→방법론 | ||
|
||
**structured programming**(top-down programming) 하향식 설계 | ||
|
||
→ 1970년대, 80년대의 프로그래밍 방법론 | ||
|
||
→ 큰 문제를 여러 작은 문제로 분해하고 작업. 작은 문제들을 또 분해하여 작업. 결국, 더 이상 분해하지 않고 바로 해결할 수 있는 문제들로 되어 해결 가능하게 됨. | ||
|
||
문제점 | ||
|
||
→ 시간이 지남에 따라 data structure 설계도 subroutine, control structure 설계만큼 중요하다는 것을 알게되었는데 이 방법론은 data structure 설계를 적절하게 고려하지 않음 | ||
|
||
→ 또한 이 방법론은 문제마다 고유한 설계를 생성하는 경향이 있어 엄청난 수정 작업을 하지 않고서는 재사용이 불가능 함 | ||
|
||
bottom-up design 상향식 설계 | ||
|
||
information hiding | ||
|
||
polymorphism | ||
|
||
→ different objects can respond to the same message in different ways | ||
|
||
→ 다른 객체들이 같은 메세지에 다른 방법으로 응답할 수 있다. | ||
|
||
=== QUIZ | ||
|
||
**Question 1:** | ||
|
||
One of the components of a computer is its *CPU.* What is a CPU and what role does it play in a computer? | ||
|
||
**Answer 1:** | ||
|
||
CPU란 중앙처리장치로 컴퓨터에서 명령어들을 처리하는 역할을 한다. PC가 가르키는 곳의 명령어를 수행하고 컴퓨터 구성요소들에게 명령을 내려 명령어를 수행하도록 한다. | ||
|
||
**Question 2:** | ||
|
||
Explain what is meant by an "asynchronous event." Give some examples. | ||
|
||
**Answer 2:** | ||
|
||
asynchronous event는 연속적으로 수행되지 않아서 예측할 수 없는 event를 의미한다. 따라서 언제 event들이 발생할지 알 수 없기 때문에 interrupt를 이용해 asynchronous event를 처리한다. | ||
|
||
**Question 3:** | ||
|
||
What is the difference between a "compiler" and an "interpreter"? | ||
|
||
**Answer 3:** | ||
|
||
compiler는 프로그램을 한 번에 기계어로 바꾸는 것을 말하고, interpreter는 한 줄, 한 줄을 native code로 변환한다. | ||
|
||
**Question 4:** | ||
|
||
Explain the difference between *high-level languages* and *machine language.* | ||
|
||
**Answer 4:** | ||
|
||
high-level languages는 인간이 읽고 쓰기 쉬운 언어로 컴퓨터가 실행할 수 없는 언어이다. | ||
|
||
machine language는 컴퓨터가 처리할 수 있는 언어로 2진수로 구성된다. | ||
|
||
**Question 5:** | ||
|
||
If you have the source code for a Java program, and you want to run that program, you will need both a *compiler* and an *interpreter.* What does the Java compiler do, and what does the Java interpreter do? | ||
|
||
**Answer 5:** | ||
|
||
Java compiler는 Java를 바이트 코드로 변환하여 런타임에 JVM이 실행할 수 있는 코드로 변환한다. | ||
|
||
Java interpreter는 변환된 바이트 코드를 런타임에 기계어로 변환한다. | ||
|
||
**Question 6:** | ||
|
||
What is a *subroutine?* | ||
|
||
**Answer 6:** | ||
|
||
한 목적을 가지고 모인 명령어들의 집합. subroutine name을 적어주어 정의 | ||
|
||
함수와 다른점을 모르겠음 | ||
|
||
**Question 7:** | ||
|
||
Java is an object-oriented programming language. What is an *object*? | ||
**Answer 7:** | ||
|
||
object란 data와 subroutines를 포함하는 모듈의 한 종류이다. | ||
|
||
내부의 state를 가지고, message에 반응한다. | ||
|
||
**Question 8:** | ||
|
||
What is a *variable?* (There are four different ideas associated with variables in Java. Try to mention all four aspects in your answer. Hint: One of the aspects is the variable's name.) | ||
|
||
**Answer 8:** | ||
|
||
Variable’s name, type, address(memory), value | ||
|
||
**Question 9:** | ||
|
||
Java is a "platform-independent language." What does this mean? | ||
|
||
**Answer 9:** | ||
|
||
OS에 맞는 JVM만 깔려있다면 어떤 OS에서 작성되어도 바이트 코드로 변환되고 같은 동작을 할 수 있도록 한다. | ||
|
||
**Question 10:** | ||
|
||
What is the "Internet"? Give some examples of how it is used. (What kind of services does it provide?) | ||
|
||
**Answer 10:** 인터넷이란 모든 컴퓨터들이 연결하여 통신할 수 있는 하나의 거대한 통신망이다. | ||
|
||
IP : Internet Protocol. 데이터가 어떻게 물리적으로 한 컴퓨터에서 다른 컴퓨터로 전송되어야 하는지 명시. | ||
|
||
TCP : Transmission Control Protocol. IP를 사용하여 전송된 데이터가 오류 없이 전체적으로 수신되도록 보장. | ||
|
||
HTTP : 월드 와이드 웹의 토대이며 하이퍼텍스트 링크를 사용하여 웹 페이지를 로드하는 데 사용. | ||
|
||
SMTP : 이메일 메세지를 컴퓨터에서 다른 컴퓨터로 보내기 위해 사용. |
Oops, something went wrong.