나만의 오픈소스 프로젝트를 시작해보려고 그동안 여러 시도를 해왔지만, 생각 만큼 진척이 없었습니다. 무엇보다도 부끄럽지 않은 결과를 만들어보고 공개하자는 맘이 앞서다 보니, 뭘 만들어도 막상 공개하려면 부끄러움이 앞서더군요. 하지만 어떤 피드백 없이 혼자 꾸역 꾸역 뭔가 만들어 나가는 것도 보통 의지가 없으면 안됩니다. 리누스 토발즈가 말했는이, 제대로된 구조 보다 일단 동작 가능하게 만들어야 한다. 그리고 자주 업데이트하고 릴리스 하면 된다는 말을 떠올리면 일단 최소한 동작 가능한 수준에서 공개를 했습니다.
처음 Rust와 OpenGL 배우는 분께는 더할 나위없이 좋은 프로젝트입니다. 왜냐하면 코드 아주 간단하거든요. 별로 기능이 없습니다. 저도 역시 배우는 입장이라.. :-) 단, 릴리스 할 때마다 API가 무지 바뀔 수 있습니다.
반가산기(Half Adder)를 만들것이다. 반만 동작하는 가산기라는 뜻이다. 왜 반만 동작하는 것일까? 기능이 반만 있기 때문이다. 나머지 없는 기능 반은 무엇일까? 바로 올림수를 받는 기능이다. 반가산기는 올림수를 출력하긴 하지만 올림수를 받지 않기 때문에 반가산기라고 하는 것이다. 반가산기를 모델링한다.
앞 장까지 모델을 하나 만들고 테스트할 때 화면에 결과를 출력하여 값을 확인하는 방식을 사용했다. 단순하고 간단하여 가장 빠르게 테스트 할 수 있는 방식이다. 그러나 모델이 계속 늘어서 몇 십개, 몇 백개가 된다고 가정했을 때도 유용한 테스트 방법은 분명히 아니다. 나중에 모델링 코드가 계속 커지는 것을 대비해서 지금쯤에 자동화 유닛 테스트를 만드는 것이 좋다.
XOR 연산을 하는 게이트다. XOR 게이트는 트랜지스터 조합으로 만들지 않고 게이트 조합으로 만든다. NAND나 NOR 게이트를 조합해서 XOR 게이트를 만들 수 있다. XOR 게이트를 만드는 여러 조합 중에 이 책에서는 NAND 게이트 4개로 만드는 조합으로 XOR 게이트를 모델링한다.
KLDP 블로그는 그다지 화려하지도, 많은 기능을 제공하지도 않지만 F/OSS, IT에 관련된 충실한 내용을 담고자 노력하는 분들이 함께 만들어 나가고 있습니다. 혹시라도 이곳에서 블로그를 운영하시고자 하는 분은 이곳으로 어떤 내용으로 운영하실지를 알려 주십시오. 확인 후 개설 여부를 결정하여 알려 드리도록 하겠습니다.