p.34
자바 프로그래밍 언어는 제임스 고슬링, 마이크 셰리든, 패트릭 노튼에 의해 1990년대에 썬 마이크로시스템즈에서 만들어졌다. 자바는 부분적으로는 당시 널리 쓰이던 C 프로그래밍 언어를 본떠 만들어졌다. C에는 메모리 자동 관리가 없었고, 메모리 관리 오류는 당시 프로그래머에게 자주 두통을 일으키게 하는 오류였다. 자바는 언어 설계를 통해 이런 종류의 오류(메모리 관리 관련 오류)를 없앴다. 자바는 메모리 관리를 프로그래머가 볼 수 없게 감췄다. 이것이 자바가 초보자에게 좋은 언어가 된 이유 중 하나다. 하지만 좋은 프로그래머와 좋은 프로그램을 탄생시키려면 좋은 프로그래밍 언어 이상의 것이 필요하다. 그리고 자바로 인해, 디버깅하기 더 어려운 새로운 버그 종류가 생겨났음이 드러났다. 이런 버그 중에는 감춰진 메모리 관리 시스템으로 인해 생긴 형편없는 성능이 포함된다.
p.35
수많은 일을 하는 컴퓨터가 수없이 많다는 말은 수많은 컴퓨터 프로그램이 있다는 뜻이다. 컴퓨터가 온갖 곳에 쓰이기 땜누에 컴퓨터 프로그래밍의 영역도 믿을 수 없을 정도로 다양하다. 의학과 비슷하게 대부분의 프로그래머는 전문적인 프로그래머로 일한다. 여러분은 비전, 애니메이션, 웹 페이지, 모바일 폰 앱, 공장 제어, 의료 기기 등의 분야에서 전문가가 될 수 있다.
하지만 컴퓨터 프로그래밍에서 이상한 점은 의학과 달리 프로그래밍에서는 다방면의 지식을 갖추지 않아도 특정 분야의 전문가가 될 수 있다는 점이다. 해부학을 배운 적이 없다면 심장외과 전문의가 될 수는 없을 것이다. 하지만 오늘날 프로그래머 중에는 컴퓨터에 대한 다방면의 지식을 갖추지 못한 전문가가 많다. 이게 정말 문제일까? 사실은 이런 식의 구조가 제대로 작동하지 않는다는 사실에 대한 증거는 날마다 쏟아져 나오는 보안 취약점 보고서나 제품 리콜 등에서 볼 수 있다. 호흡 음주 측정기로 인해 음주운전으로 고발당한 사람이 음주 측정기 코드를 리뷰한 결과 무죄로 판결된 판례가 있다. 음주 측정기 코드가 버그투성이여서 판결이 뒤집혔다. 최근 안티바이러스 소프트웨어 중 일부가 심장 수술을 하는 중에 의료 기기를 중단시킨 사건도 있었다. 보잉 747 맥스 비행기의 설계 문제로 인해 많은 사람이 사망했다. 이와 같은 사고가 많이 일어난다는 사실을 보면 (소프트웨어의 품질에 대해) 자신감을 크게 가질 수가 없다.
p.45
각 계층은 자신의 아래 계층으로부터 만들어진다. 이 말은 아래 계층에서 설계 시 잘못된 선택을 하면 그 위의 모든 계층에 영향을 끼치게 된다는 뜻이다. 예를 들어, 1994년 인텔 펜티엄 프로세서 회로 설계 시 잘못 설계한 내용이 나중에 일부 나눗셈 연산에서 잘못된 결과를 만들어냈다. 이로 인해 이 프로세서와 부동소수점 나눗셈을 사용하는 모든 소프트웨어가 영향을 받았다.
'CS' 카테고리의 다른 글
업무에 바로 쓰는 AWS 입문 (0) | 2023.03.13 |
---|---|
화이트 해커를 위한 웹 해킹의 기술 (0) | 2022.12.29 |
The Ultimate Self-Taught Developer Curriculum (0) | 2022.09.09 |
과연 휴대폰은 안전할까? 반드시 알아야할 개인정보 유출 위험! (0) | 2022.09.06 |
모바일 앱 개발의 현재와 미래 (네이티브, 하이브리드, 크로스 플랫폼 앱 장단점과 전망) (0) | 2022.08.28 |
댓글