Home
Hyeonsu Lim
Cancel

8장 프로그래밍 언어 처리

어셈블리 언어 초기에는 컴퓨터 프로그래머들이 프로그램의 각 명령에 대한 비트 조합을 하나하나 알아내야 했다. 그래서 프로그램을 작성하는 더 나은 방법을 고안해내기 위해 나타난 것이 어셈블리 언어이다. 어셈블리 언어를 사용하면 프로그래머가 모든 비트 조합을 외우지 않고 이해하기 쉬운 mnemonics을 통해 명령어를 쓸 수 있다. 그리고 주소에 이름(...

7장 데이터 구조와 처리

기본 데이터 타입 프로그래밍 언어에는 다양한 기본 데이터 타입을 제공한다. 이런 타입에는 크기(size)와 해석이라는 두 가지 측면이 존재한다. 1964년 포인터를 발명했다. 포인터는 단지 컴퓨터 아키텍처에 따라 결정되는 크기의 부호가 없는 정수에 불과하며 정숫값이 아니라 메모리 주소로 해석된다. 포인터를 통하여 원하는 값이 있는 위치를 알 수 있다...

6장 입출력과 네트워킹

저수준 I/O 가장 단순한 I/O는 CPU가 읽거나 쓸 수 있는 비트에 물건을 연결한 형태의 I/O이다. 1) I/O 포트 2) 버튼을 눌러라 3) 빛이 있으라 어떤 종류든 디스플레이가 포함된 장치가 많이 있다. (알람 시계나 식기 세척기의 디스플레이 같은) 이런 디스플레이를 제어하기 위한 소프트웨어는 아주 간단하다. 필요한 것은 숫자와 그에 따...

5장 컴퓨터 아키텍처와 운영체제

기본적인 구조 요소들 가장 흔한 컴퓨터 구조는 폰 노이만 구조와 하버드 구조이다. 두 구조의 유일한 차이는 메모리 배열이다. 메모리에서 동시에 명령어와 데이터를 가져올 수 없기 때문에 폰 노이만 구조가 약간 더 느리다. 하버드 구조는 동시에 명령어와 데이터를 가져올 수 있어 좀 더 빠르지만 두 번째 메모리를 처리하기 위한 버스가 더 필요하다. ...

4장 컴퓨터 내부 구조

전자부품을 다양하게 조합해 비트를 조작하는 회로를 만들 수 있는데 이런 회로를 ‘컴퓨터’리고 한다. 현대 컴퓨터는 크게 메모리, 입력과 출력, CPU 라는 세 가지 부분으로 나눌 수 있다. 메모리 컴퓨터에서는 조작할 비트들을 저장할 장소가 필요하다. 이런 장소를 메모리라고 부른다. 메모리는 집이 빈틈없이 늘어선 거리와 같다. 모든 집은 크기가 똑같고...

3장 메모리와 디스크의 핵심- 순차 논리

조합 논리는 입력에 의해서만 출력이 결정된다. 조합 논리만으로는 흐름의 일부분을 떼어내서 기억해둘 수 없기 때문에 현재 처리중인 수가 어떤 수인지 기억할 수 없다. 그래서 조합 논리의 단점을 개선한 순차 논리가 있다. 순차 논리는 입력의 현재 상태와 과거 상태를 함께 고려한다. 시간 표현과 상태 기억 우리는 주기 함수를 사용해 시간을 측정할 수 있다...

2장 전자회로의 조합 논리

디지털 컴퓨터의 사례 근대의 톱니바퀴를 사용하는 기계적인 계산 장치를 살펴보면 두 톱니바퀴가 돌아가면 각 톱니바퀴의 톱니 비욜이 두 바퀴의 상대적인 회적 속도를 결정하기 때문에 곱셈, 나눗셈 기타 계산에 유용하다. 톱니바퀴를 기반으로 만들어진 계산기로는 그리스 제도에서 발견된 안티키테라, 2차 세계대전 즈음 화기 제어 컴퓨터, 톱니바퀴를 사용하지 않는...

1장 컴퓨터 내부의 언어체계

언어란 무엇인가 언어는 편의를 제공하기 위한 지름길이다. 모든 언어의 뜻은 기호의 집합으로 인코딩 된다. 하지만 의미를 기호로 인코딩하는 것으로 충분하지 않다. 언어가 제대로 작동하려면 의사소통하는 당사자들이 모두 같은 문맥을 공유해서 같은 기호에 같은 뜻을 부여할 수 있어야 한다. 문자 언어 문자 언어는 기호를 나열한 것이다. 기호를 정해진 순서대...

9장 자주 접하게 되는 질문들, FQA

이미 충분히 많은 기능 테스트를 하고 있는데 따로 단위 테스트 케이스를 만들 필요가 있을까? 기능 테스트와는 별개로 단위 테스트 케이스는 만들어야 한다. 기능 테스트는 사용자 쪽에 더 가깝고, 단위 테스트는 애플리케이션이 동작하는 플랫폼에 더 가깝게 위치한다. 기능 테스트는 내부 클래스 동작 자체에는 크게 관여하지 않는다. 기능 테스트는 현상적으로 애...

8장 TDD에 대한 다양한 시각

8.1 TDD와 소프트웨어 디자인 TDD가 주는 설계상 이점 TDD로 개발하면 TDD 자체가 단위 단위의 작은 설계를 만들어낸다. 입력과 출력, 해당 모듈이 동작하기 위해 필요한 요소 파악 등이 사전에 확실하게 고려되고 테스트된다. 이러한 모습을 ‘강형 마이크로 디자인’이라고 한다. 이는 모듈에 대한 의존성이 상대적으로 적고, 각 모듈에 대한 테스트를...