컴퓨터 입문 당시에 배우면 좋은 지식과 노하우 전수 책 한 권과, 공학 전공자가 보면 좋은 책 다섯권 소개합니다.
(1) PC 조립 무작정 따라하기 (이순원 지음, 길벗)
이책은 정말로 초심자들에게 적합한 책입니다. 하드웨어에 대한 활용적인 지식과 조립에 필요한 기본 지식들, 간단한 문제 해결에 대해서 알려주는 구성입니다. 다른 초심자를 위한 책보다 주제 선정이 탁월하네요. 난이도는 높지 않은데 배워야 할게 많습니다. 컴퓨터 활용능력 시험이나 북미 자격증인 A+ 자격증 정도의 난이도 입니다. 하드디스크 소개의 예를 들면 타문헌은 IDE냐 SATA냐 정도만 알려주고 요즘은 테라바이트 시대다라고만 하지 않고, 공정상에서 있는 일들 즉 고용량으로 만들때 이해하면 좋은 기술도 소개해줍니다. 소양이 됩니다. (플래터 수를 증가시킴, 트랙당 섹터 수를 증가시킴, 인치당 트랙수를 증가시킴, 섹터당 비트 밀도 증가시킴과 같은 언급은 다른 초심자 서적에서 안가르쳐주는 내용입니다)
아주 쉬운 내용도 해설해서 좋구요. 이후에 테크니컬하게 배우기를 희망하는 분들께 개념 확장에 필요한 해설이라 좋은 것 같습니다. 본래 아버지가 컴퓨터 배우실때 필요하실듯해서 구해드렸는데 저도 보니 28년 경력이지만 아주 좋은 책이라고 느꼈습니다. 제목은 무작정 따라하기인데 이보다 더 높은 실력을 길러주네요. 물론 학위가 있으면 더 좋지만 이책에서 나온 것만 잘 알아둬도 용산 등지에서 PC 수리할 정도는 되는 것 같습니다.
(2) 컴퓨터 구조 3판 (김창환 외 지음, 복두출판사)
우리가 흔히 쓰는 폰 노이만 구조의 컴퓨터에 대해 해설하는 책입니다. 하드웨어에 대한 해설 외에도 자료 표현처럼 전산 원리와 운영체제 파일 시스템과 같은 연관 개념도 알려줘서 좋습니다. 자료에 대해 다른 책도 다루고 넘어가지만 이책은 보다 더 세부적으로 알아야 할 지식도 전달해주는데요. 파일에 대해 전원이 끊겨도 보존되어야 할 자료를 보조기억장치에 저장해둔 것이다라고만 하지 않고 레코드, 물리적 레코드, 논리적 레코드와 같이 파일 처리 구조를 만들때 배우는 정보도 알려줍니다. 이후에 소개할 책에서는 안나온 내용이네요. 이후에 소개할 책들은 주로 하드웨어에만 집중하니까요. 전공자들이지만 컴퓨터 구조론 첫학습하는 분들이 보시면 좋을 것 같습니다. (1)과 같은 지식이 있으면 이해가 될 것입니다.
(3) 컴퓨터 아키텍처 (우종정 지음, 한빛아카데미)
이역시도 폰 노이만 구조에서 파생된 컴퓨터 구조를 해설하는 책입니다. 컴퓨터 구성 요소를 우선 보여주고 각각의 요소들이 작동하는 원리를 해설하는 구성입니다. 타책에서도 나오는 암달의 법칙이나 성능측정과 같은 공식들도 해설해주는데 순차적인 이해가 잘 되게 해주시네요. 다루는 주제는 크게 컴퓨터 개요, 성능, 명령어 집합 구조, 프로세서 설계, 메모리 계층 구조, 주변장치 버스 구조, 병렬처리 입니다. 프로세서 설계는 프로세서를 직접 만든다기보다 연산장치나 제어 유니트와 같은 프로세서 내부 구조와 동작을 해설하네요. 타문헌에서도 같은 방식으로 레지스터에서 주소를 읽어와서 자료를 저장하고 병렬 실행하고… 이런 것을 해설하지만 이책은 조금 더 세부로 들어가서 해설합니다. 조금 복잡한 것도 해설하는데요. 회로 작동이나 어느 핀에 어느 선이 연결되고… 이런 것보다는 실행 알고리즘 위주로 보여주네요. 혼자서 이해하기에는 경험이 더 필요한 부분도 많은데 이런 부분은 교차참조도 필요하긴 합니다. 그런데 이런 내용은 타문헌에서도 겹친 것을 보면서 재인하면 좋네요.
(4) 컴퓨터 시스템 구조론 10판 (William Stallings 지음, 성진미디어)
이책은 제가 제일 애정하는 책입니다. 공학도시라면 수업 교재로도 접해보셨을 것 같은데요. 설명이 이해하기 쉬운 번역으로 되어 있고 매우 테크니컬하게 과정 설명을 하더라도 이해의 심도가 끊기는 서술이 아니라서 좋습니다. 특히 특정 하드웨어가 첫출현하던 당시에 대표적인 논문이나 서적을 인용해주는데 (2)나 (3)과 같은 책에서 책 내부의 해설에만 집중하는 구성보다 특정 하드웨어 구조를 직접 제시한 선구자들의 논문도 구할 수 있게 도와줘서 좋습니다. (이책의 한국어판은 책분량을 줄이려고 출판사 블로그에 가서 참고문헌 목록파트의 PDF를 따로 구해야 합니다) 구한지 이주일 정도라 아직도 읽고 있는데 매우 마음에 듭니다. 이책도 심화되어가는 장을 보면 혼자서만 볼 수 없는 내용도 나오는데, 컴퓨터 구조는 근본학이라 구심점 적응을 해주는 웹문서나 학위논문도 많으니 병렬해서 보면 이해가 될 것 같습니다. (https://www.riss.kr 추천) ARM 프로세서도 앞부분에 나오네요.
(5) Computer Organization and Architecture Themes and Variations (Alan Clements 지움, CENGAGE Learning)
이책도 좋은 책입니다. 위 두책과 교차참조하면 되는 개념들도 나오고 벤치마크 표준과 같이 (4)에서도 다룬 내용이 나와서 재인도 되네요. 데이터 저장을 해설하는 경우에 누구나 알 수 있는 자성을 띤 원판을 회전시켜 데이터에 접근한다 이런 지식을 넘어서서 자기력을 띤 대상들이 어떤 배열로 원판 표면에서 작용하는지와 같은 인접공학 정보도 알려줍니다. 충분히 자세하고 충분히 기술적이라, 해당 주제에 대한 필요가 전제되어 있다면 테크니컬한 내용이 나와서 열심히 배울 수 있게 해주네요. 방대한 지식의 보고가 이루어지는 요즘 시대에 심화시켜 공부할 수 있게 해줄뿐아니라, 해설의 흐름상으로 미리 알아야 할 것을 잘 짚어놔줘서 좋습니다.
(6) GREAT CODE 제1권 (랜달 하이드 지음, 에이콘)
프로그래머의 관점에서 프로그램 작성시에 알아야 하는 하드웨어 측면을 해설합니다. 자료구조 책에 흔히 나오듯이 C언어에서 포인터가 작동할때 메모리 상태를 보여주는 것과 같은 해설 방식인데요. 하드웨어 구조가 생략되어 다들 의구심을 가지고 찜찜하게 프로그램 코드를 그저 따라하면서 익히는 것과 다른 차원의 경험을 선사합니다. 포인터와 배열이 선언되어 활용될때 메모리상에서 어떤 모습으로 저장되고 참조되는지와 같은 해설이 이 책의 특징입니다. 단순히 코딩만을 배우기보다 하드웨어 수준에서 이해가 연관되면 심도 있는 구상이 가능하게 되리라는게 저자의 의도 같습니다. 물론 단도직입적으로 프로그래밍과 연관시켜 설명하지 않고 장마다 예비된 부분들이 직접 서술로 연관되지 않은 부분은 종종 있어서 독자가 알아서 기지로 연관시켜야 할 부분도 있는데요. 이경우에도 전산 경력이 있다면 도전적입니다. 해설도 복잡하지 않고 가독성이 좋은 서술과 조판이네요.
수박 겉핥기식 책 소개라 후달리는 소개지만 이해는 되실 것입니다. 저도 배우는 중이고 시간이 걸릴 것 같은데 그래도 아주 좋은 책들인만큼 시간들여 읽어볼만 합니다.