첫 번째
5살 어린이에겐 어려운 문제 나갑니다.
1+1=?
요즘 5살 어린이를 너무 무시한 건가요?
답은 ‘2’ 입니다.
(2014년 개봉했던 영화 루시(LUCY) 에서는 “1+1=2가 아니다. 인간은 인간 스스로 그 한계를 정했다.” 라는 대사가 있었습니다.)
아무튼 현재로서는 1+1=2 입니다.
그럼 이렇게 간단한 산수의 해(解)를 C언어로 작성한다면 어떻게 하면 될까요?
사실 제 나이 몇 살에 산수를 시작했는지 기억하지 못하지만 제 아버지는 이렇게 가르쳐 주셨던 것 같습니다.
자, 여기 사탕 하나가 있어 그리고 바로 옆에 또 사탕 하나가 있네?! 그럼 몇 개 일까? 공간의 미학이라고 할 수 있습니다. 개수의 합이 아니라 공간의 합으로 산수를 배웠다 할 수 있죠.
C언어로 더하기를 코딩 한다면 위와 비슷한 개념입니다.
먼저, 메모리 = 공간이라고 생각합니다.
모든 프로그램은 메모리 위에서 동작하고 메모리를 어떻게 운용하느냐의 문제에 맞닿아 있습니다. C언어로 코딩한다는 것은 결국 메모리 공간에 우리가 관심있는 데이터를 넣고 빼는 문제에 지나지 않습니다. 메모리를 다음과 같이 생겼다 가정하면 1+1은 다음 그림과 같습니다.
각각의 메모리 공간에 합산할 수를 넣고 연산된 총합을 또 다른 공간에 넣습니다. 더하기 연산은 컴퓨터의 연산장치가 알아서 합니다. 메모리 공간은 그 고유의 주소(위 그림 참조)를 갖고 C언어로 코딩 할 때는 내가 원하는 이름을 붙여서 사용 할 수 있습니다. 이를 변수 설정이라고 합니다.
위와 같이 각각의 공간에 a,b,c 라는 이름을 붙였습니다.
그럼 직접 코딩을 하면 어떻게 될까요?
위와 같은 과정이 C언어로 생각하는 방법입니다. 생각이 정리되면 코딩은 그저 쓰는 작업입니다. 다행히 C언어는 듣기, 말하기가 없습니다. 단지 쓰고, 읽고 간단하죠? 아닌가요?^^
다음과 같이 코딩하면 화면에 숫자 2를 출력합니다.
코딩은 컴퓨터가 있어야 할 수 있다고 생각하지 않습니다. 언어니까요.
아무데나 쓸 수 있습니다.
다음 회에는 위 코딩 내용 중 제가 언급하지 않았던 부분을 같이 고민해 볼까요?
*위키백과 참조
메모리(memory)는 종종 '기억 장치'라는 용어와 혼용되기도 하지만, 대체로는 주기억 장치를 말하며 특히 램을 가리키는 경우가 많다.
솔리드 스테이트 드라이브(solid-state drive, SSD) 또는 솔리드 스테이트 디스크(solid state disk[1][2][3])는 반도체를 이용하여 정보를 저장하는 장치이다.
솔리드 스테이트 드라이브는 순수 전자식으로 작동하므로 기계식인 하드 디스크 드라이브(HDD)의 문제인 긴 탐색 시간, 반응 시간, 기계적 지연, 실패율, 소음을 크게 줄여 준다. 반면에 DRAM이 아닌 플래시 메모리가 적용된 SSD의 경우, 데이터 접근 시간이 아닌 연속적인 읽기와 쓰기에 대해 하드 디스크보다 속도가 낮은 경우가 대부분이었다. 하지만 최신 기술이 적용된 SSD의 경우, 대부분 하드 디스크 드라이브 이상의 읽기와 쓰기 속도를 낸다.