Computer Science Illuminated

Computer Science Illuminated

2010년 10월 31일 일요일

숫자 3개를 입력 받아 높은 순서대로 출력하기

이번 과제에서는 세가지 숫자를 입력하여 가장 큰 숫자부터 순서대로 입력하는 과제였다.  처음에는 막막하고 도대체 BRLT가 뭐고 BREQ, BR, LDA, STA이런 것들 것 도대체 뭔지 이해가 안되었지만 흥분한 나의 마음을 진정시키고 하나씩 공부를 하면서 보니 이해가 되고 사용을 할 수 있게 되었다.  하지만, 처음에는 진짜로 머리만 아프고 뭐 되는 거는 없고 하였지만 하면 할수록 술술 풀리고 재미있어지기 시작하였다.
 위에 있는 것은 전체 실행을 했을때의 화면입니다.

 
위에 있는 것은 내가 짠 코드이다.
위에서 물음표로 되어 있는 이유는 나도 모른다.  설명하기 쉽고 이해하기 쉽게 한국 말로 주석을 달았을 뿐인데 나도 모르게 물음표로 나오고 그런다.  이때 순간 욱했다는
위에 있는 코드에 내가 어떻게 사용을 하게 되었는지 간단하게 설명을 해주겠다.  일단 나는 한가지 경우를 생각했다.  A, B, C 이 세가지 숫자를 가지고 어떻게 비교해야 되는 문제를 가지고 그냥 가장 먼저 생각 난 것이 바로 BRLT 였다.  BRLT는 두 숫자를 빼서 0보다 작은가를 확인하는 것이다.  이때, 나는 숫자의 크기를 비교하려면 두 숫자를 빼는 원리를 이용해야 된다는 것을 알아냈다.  그래서 A-B<0을 확인하여서 A<B, 그리고 B-C<0을 확인하여 A<B<C라는 경우를 가장 먼저 생각하였다.  그리고 그 경우에서 뻗어 나가 A를 기준으로 하여 이것저것 비교를 하였다.  , A-B<0이라는 개념에서 B-C<0, B-C=0, B-C>0 이 세가지를 생각해 낸 것이다.  이렇게 계산을 하고 나니 A-B<0 이외의 경우들이 나의 머리를 괴롭히기 시작했고 나는 30분 동안 끙끙대면서 머리를 쓰던 중 옛날에 C 수업 시간에 했던 변수를 바꾸는 것이 생각 났고 그것을 응용하기로 생각했습니다.  다시 말하자면, A, B, C라고 계산을 한 뒤, B, C, A를 계산하고 C, A, B를 계산해서 모든 경우를 계산하는 것입니다.  하지만, 이렇게 하면 A, B, C로 계산을 해도 해결이 될 경우도 있습니다.  이런 경우에는 제가 만든 여러 가지 print 함수 모두다 print가 되자 마나 종류를 시키게 하였습니다.  이럴 경우 그냥 순서대로 값을 출력한 다음 종류를 시키기 때문에 아무 문제가 없기 때문입니다.  이렇게 제 나름대로 코드를 짜봤지만, 역시 처음 써보는 언어라서 그런지 참 어려웠습니다.  그래도 Low-level programming도 어느 정도 써보니깐 은근히 재미있긴 재밌내요!^^

2010년 10월 25일 월요일

과제 05. 컴퓨터 조립하기

         이번에 과제로 컴퓨터를 직접 조립해보라는 소리를 듣고 솔직히 매우 흥미롭고 기대가 되었습니다.  항상 조립식 컴퓨터가 대기업에서 나오는 컴퓨터 보다 훨씬 싸다고 들었지만 그런 조립형 컴퓨터를 제가 직접 만들어 보는 것을 상상하니 컴퓨터를 제 꿈의 컴퓨터로 만들고 싶어졌습니다.  제 꿈의 컴퓨터는 다름이 아닌 요즘 나오는 게임을 버벅거림 없이 실행을 가능하게 하고 인터넷 페이지를 몇 개씩 열어놓고 게임을 하여도 아무 지장이 없게하는 흔히 말하는 멀티테스킹 컴퓨터를 만들어 봤습니다. 
처음에는 제 나름대로 요즘 새로 나온 CPU i7을 넣었습니다.  또한, i7에서도 이번에 새로 나온 기술로 쿼드 코어로 실행을 4개의 프로세서에 나누어서 실행하는 기술로 소음도 효율성도 좋은걸로 알려져있습니다.  이러한 기술을 갑자기 많은 프로그램을 실행할 때 버벅거림을 없애기 위해서 터보 부스트와 같은 기술들이 많이 집약 되어있습니다.  또한, 메모리도 이번에 삼성전자에서 만든 DDR3.  DDR3 DDR2보다 속도가 비약적으로 빨라졌다고 알려져 있습니다.  위에 있는 그래픽 카드 또한 앞으로 유행이 될 3D 게임을 돌리는데 더더욱 실감 나게 해주기에 적합한 그래픽 카드를 사용했습니다.  이 그래픽 카드는 제가 게임 도중 바탕화면에 나와서 다른 작업을 할수도 있게 해줄수 있습니다.  이뿐만이 아니라 마음에 드는 가장 큰 점은 바로 삼성전자의 1TB Spinpoint F3 HD103SJ 하드 드라이브 입니다.  이 하드 드라이브는 간단히 말해서 삼성전자의 모든 기술의 집약채라고 말할 수가 있습니다.  삼성전자에서 컴퓨터 사용시 하드 드라이브에서 나오는 소음을 최소화하고 충격에도 큰 지장이 없도록 하드 드라이브 내에 충격 방지 시스템을 설치하였으면 SATA II의 기술을 이용하여 초당 3Gps 까지 가능한 초고속 하드드라이브 라고 할 수 있습니다.  또한, 이 하드 드라이브는 흔히 수명이 50만 시간으로 하루 평균 9시간 사용한다고 할 때 수명이 약 152년 동안 되는 장점이 있습니다. 
하지만! 이렇게 견적을 내고 딴지 걸기에 올려서 저렇게 조립이 가능한지를 찾아보니 충격적인 결과가 나왔습니다.

바로 메인보드가 품절이라는 소리와 CPU가 너무 고사양이라는 소리입니다.  생각을 해보니 아무리 CPU가 좋아도 다른 사양들이 떨어지면 CPU한테 미안해 진다는 생각이 들어서 바꾸기로 하였습니다. 



이것이 고치고 난 뒤의 컴퓨터 사양입니다!
하지만! 놀란것은 이렇게 충고를 듣고 고치고 나니 가격이 내려갔다는 것입니다!


이와 같이 10만원이 넘는 가격이 내려갔습니다! 
이번 과제를 통해서 많은 것을 배우고 참 흥미롭게 과제를 한거 같아서 매우 기쁩니다!




2010년 10월 3일 일요일

과제 03. CODEC

CODEC

             제가 이번에 수업을 들으면서 유의 깊게 부분은 바로 우리가 평상시에 항상 보는 비디오였다.  저는 평상시에 항상 궁금해 부분은 다름이 아닌 바로 CODEC였다.  항상 보면 인터넷에서 주말에 바빠서 예능 프로그램 같은 것들을 다운받으면 항상 Windows Media Player에서는 실행이 안되거나

글과 같이 코덱을 지원하지 않는다는 소리가 나온다.  하지만, 이러한 문제들은 곰플레이어와 같은 프로그램을 사용하면 문제가 없었다.  이때부터 CODEC 조금씩 관심을 가지고 있다가 이번 기회에 CODEC 관해서 집중적으로 조사를 보았다. 
             일단 CODEC 이란 코더(Coder) 디코더(Decoder) 합성어이다.  음성이나 비디오 자료를 컴퓨터가 처리할 있게 디지털로 바꿔주고, 데이터를 사용자가 모니터에서 있게 해주는 소프트웨어이다.  코덱에 대해서 깊게 파고 들기 전에 애니메이션을 생각해보자.  애니메이션의 경우에는 엄청난 양의 사진들이 이어져서 보여지는 것으로 엄청난 양의 사진을 필요로 한다.  평균 애니메이션의 경우에는 초당 20장의 사진이 필요하다고 말한다.  하지만, 이러한 양의 사진들을 전부 저장을 한다고 하면 실로 엄청난 양의 저장 공간을 필요로 것이다.  실로 지금 현재 우리가 쓰고 있는 저장공간도 영화 한편을 저장하면 차있을 수도 있다.  조금 구체적인 예를 들자면, 우리가 현재 쓰는 핸드폰 화면 액정에 동영상을 넣는다고 하면 초당 5MB 소요한다.  이는 실로 엄청난 용량이 아닐 없다.  따라서, CODEC 이러한 사진들을 압축을 해서 저장을 한다 (Compression).  Compression으로 디지털 데이터로 저장을 하면 이제 우리가 모니터에서 있게 하는 것이 바로 Decompression이라고 한다.  따라서, 코덱은 시간이 지나고 기술이 점점 발전 할수록 낮은 손실률과 높은 압축률을 가진다. 
             요즘에 가장 유행하는 코덱중 하나가 바로 MPEG(Moving Picture Experts Group)이다.  이들은 그대로 멀티미디어의 표준의 개발을 담당하는 그룹이다.  이들을 언급한 이유 중에 하나는 바로 이들이 만든 MPEG4 전에 있던 MPEG1이나 MPEG2보다 훨씬 높은 압축률을 가졌기 때문이다.  이유는 바로 입력되는 소스(source) 다르기 때문입니다.  다시 말하면, 오디오와 비주얼 데이터가 화면 있는 특정한 부분의 오브젝트(object) 집합으로 구성이 가능하다는 것입니다. 
             마지막으로 언급할 점은 바로 요즘 영화 같은 것을 다운 받을 가장 많이 나오는 DivX코덱이다.  코덱은, 한마디로 말하자면 DVD 화질을 underground에서 있다는 것이다.  Underground이란 공식적이지 못한 암시장과 비슷한 개념입니다.  불법인 이유에 대해서 설명을 하자면, DivX 설명을 먼먼 해야 같다.  DIVX(Digital Video eXpress) 약자로 원래는 DVD 대여 전용인 용어였다.  하지만, 당시 개발 업체였던 “DIVX”사가 2년만에 쫄딱 망하고 해커 그룹이 DVD 암호를 풀면서 DVD 압축하는 코덱이 이름을 ‘Divx’ 지으면서 사용이 되기 시작했다.  Divx 좀더 우리 귀에 쏙쏙 들어오게 설명을 하자면, 매트릭스와 같은 고화질 영화를 600MB정도에서도 있다는 것이다.  이는 실로 대단하지 않을 수가 없다. 
             이와 같이 간단한 코덱에 대해서 설명을 하면서 자신도 아하 이러면서 지금 통합 코덱이라는 것을 다운받았다.  이렇게 과제를 하면서 실로 내가 평상시에 사용하는 것들과 관련이 있다는 사실에 놀랍고도 매우 흥미롭게 과제를 같다.  이로, 코덱에 대한 이해와 평상시에 내가 사용하는 코덱과 연관을 살짝 지어 보았다.