* 이 글의 작성시기가 2012년 4월, 국회의원 선거가 끝난 시점 이후이며, KLDP에 블로그 글이 전면에 드러나지 않는 시기라는 것을 먼저 인식해주셨으면 좋겠습니다. 이 글을 올린다면, 바로 드러나지는 않을 것이란 사실을 알고 쓰는 글입니다. 즉, 지금 많은 사람들이 읽기보다는, 언젠가 이 글을 검색하는 사람들이 읽는다면 좋을 내용들을 써두고자 합니다.
* 이 글이 정치적인 내용을 가지고 있다지만, 특정 정당을 지지하거나, 폄하하려 하기 보다는, 자유의 가치가 얼마나 중요하며, IT를 이용하는 사람들은 사회의 구성원으로서 어떤 역할이 가능한지, 극적인 상황에서 어떻게 행동하는 것이 좋은지에 대한 기준을 제시하고자 함이라는 것을 명심해주셨으면 좋겠습니다.
/proc, /sys 파일 시스템과 같은 특수한 형태의 파일들도 그런 맥락에서 만들지 않았나 싶습니다. 일반 파일과는 다른 점이 분명 있기는 하겠습니다. 하지만 '파일'이라는 가장 보편적인 형태로 제공되기 때문에 이미 모든 것이 파일 기반으로 작동하고 있는 시스템 환경에 잘 조화되는 것이 장점인 것 같습니다.
-분할 정복-
디바이드 앤 컨쿼를 번역해서 분할 정복이라고 책에 많이 써 있다. 디바이드앤 컨쿼라는 영어 단어를 그대로 직역한 것이다. 어떤 커다란 계산이 필요한 문제가 있을 때, 이 문제를 잘게 쪼개서 개별적으로 계산한 다음 그 계산 결과를 합쳐서 최종 결과를 만들어내는 접근 방법의 통칭이다. 쉽게 말해 각개격파하는 것이다. 한 덩어리로 계산하면 땀나고 빡센 문제를 작게 쪼개서 빨리 빨리 계산함으로써 전체적인 효율을 높인다는 전략이다. 아주 좋은 전략이고 실제로 효과도 있다. 하지만 컴퓨터 프로그램을 만들면서 마주하는 많은 문제들을 모두 디바이드앤 컨쿼 전략으로 해결할 수 없다. 디바이드앤 컨쿼가 되는 문제가 있고 안되는 문제가 있다. 다행이도 지금 계속하고 있는 팩토리얼 문제는 디바이드앤 컨쿼 전략에 아주 잘 어울린다. 사실 디바이드앤 컨쿼 하려고 일부러 팩토리얼을 골랐다. :-)
지난 글을 쓰고 댓글에 python도 gmp를 쓰면 빠르다라는 댓글이 있었다. 뭐 그런 댓글이야 당연히 달릴 수 있다고 생각한다. 난 파이썬은 빅넘버를 지원하니까, gmp가 라이브러리로 따로 있으리라고 생각 자체를 안했으니까.
그런데 그 댓글의 말투(어투? 글투?)가 아주 기분 나빴다. 아니 기분 나쁜 정도를 떠나서 예의가 없었다. 아무리 우리가 전산쟁이고, 실력이 중요한 사람들이라지만 실력에 앞서 예의가 가장 중요하다. 욕을 한바가지 하고 싶었으나 참았다. 나도 같은 수준이 되기 싫어서.
그래서 아예 그냥 이 글을 때려 치우고 말아버릴까 싶었지만, 이왕 시작한 글이고, 또 재미있게 봐 주시는 분들도 있으니 느리긴 하지만 끝까지 써보려 한다.
제가 쓰는 글이 완전할 수는 당연히 없습니다. 전 아는 것도 없고 실력도 없는 하수니까요. 댓글에 본문의 부족한 부분을 지적하고 채워 주시는 것은 아주 좋습니다. 그렇게 하여 글이 더 풍부하고 완전해 지니까요. 하지만 글을 쓸 때 최소한의 예의는 지켜주시길 부탁드립니다.
#1. 시퀀셜
난 사실 리컬시브니 디바이드앤 퀀커니 하는 이런저런 기법과 알고리즘을 잘 못한다. 머리가 나빠서인게 가장 큰 이유이고 오류가 없는 코드는 가장 단순한 코드라는 확실한 믿음 때문이다. 코드의 특정 부분에서 성능 최적화를 '반드시'할 필요가 있을 때에나 이런 저런 시도를 하면서 코드에 여러 기법들을 적용해 보지만 어지간해서는 기본적인 문법과 기본적이고 직관적인 코드 이상은 잘 작성하지 않는다.
프로그래밍 언어론에서 프로그래밍 언어의 요소를 구분할 때 일반적으로 반복문, 제어문, 산술문 정도로 구분한다. 그중 반복문은 전체 프로그램의 성능에 가장 큰 영향을 미치는 부분이다. C언어라면 대표적으로 for문과 while문이 있다.
문법에서 제공하는 반복문을 사용하는 방법 말고 반복(루프, loop)을 구현하는 다른 방법으로는 리컬시브가 있다. 이 글을 읽는 사람들 중 리컬시브가 뭔지 모르시는 분들은 얼른 공부하고 오시길 바란다. 리컬시브로 구현한 50000!은 다음 시간에~^^
-프롤로그-
나는 1996년부터 C언어를 사용했고, 2001년부터 파이썬을 사용했다. 그리고 2011년 12월 17일부터 얼랭(Erlang) 책을 읽기 시작했고, 2011년 12월 20일에 얼랭으로 처음 코딩을 해 봤다.(얼랭이라는 언어를 안건 2009년 즈음이다.) 이 글을 쓰고 있는 현재 나는 얼랭이란 언어를 본격적으로 공부해야겠다라고 다짐한지 3일이 지났다.
안녕하세요?
오늘은 인공지능(AI)에 대한 전체적인 학습 목차를 나열합니다.
아래 목차를 보시면 느끼시겠지만 분량이 상당히 많습니다.
저도 아래 내용들을 다 볼 수 있을지.. 걱정이 됩니다만 꾸준히 성실하게 해보겠습니다.
앞으로 펼쳐지는 내용들은 기술적인 것들이라
도형, 그림, 그래프, 알고리즘 의사코드, 저의 실습 C언어코드 등으로 내용이 구성될듯 합니다.
그래서, 워드로 문서 편집하는 작업이 많아서 KLDP에는 더이상 올리지 못하고,
저의 커널연구회 웹페이지에 올려놓을 예정입니다.
앞으로 아래의 링크에서 문서를 보시면 되겠습니다.
안녕하세요?
오늘은 AI 기본개념에 대해서 언어학(Linguistics) 적으로 요약합니다.
언어학(Linguistics)
* 언어는 어떻게 생각과 연관되어 있는가?
1957년에 B. F. Skinner는 언어 행동(Verbal Behavior)을 출간했다.
이것은 이분야의 전문가가 언어 학습에 접근하는 행동을 상세하고도 포괄적으로 기술한 것이었다.
그러나, 신기하게도 이책을 논평한 Noam Chomsky라는 언어학자의 책도 이 책만큼이나 잘 알려져 있다.
Noam Chomsky는 구문론적인 구조라는 그만의 이론으로 이 책을 출간했다.
KLDP 블로그는 그다지 화려하지도, 많은 기능을 제공하지도 않지만 F/OSS, IT에 관련된 충실한 내용을 담고자 노력하는 분들이 함께 만들어 나가고 있습니다. 혹시라도 이곳에서 블로그를 운영하시고자 하는 분은 이곳으로 어떤 내용으로 운영하실지를 알려 주십시오. 확인 후 개설 여부를 결정하여 알려 드리도록 하겠습니다.