박우디의 개발여행/SW 이야기 5

06. Knowledge Based AI #1

KBAI (지식기반 AI)는 인간이 지식을 어떻게 표현하고 사용하는지를 Modeling 하는 시도에서부터 시작된다.KBAI가 강조하는 3가지 요소 1. Learning(학습) 2. Memory(기억) 3. Reasoning(추론)는엄밀히 따져보면 Cognition System의 주요 구성요소 이기도 하다.이는 KBAI가 결국 Cognition System의 한 형태가 된다는 관점으로도 해석될 수 있다. 참고로, Cognition System은 인간의 인지 과정을 모방하는 AI 시스템을 뜻한다.즉 KBAI는 훌륭한 Cognition System을 구현하기 위한 하나의 방법론이라 볼 수도 있겠다. 훌륭한 KBAI 구현을 위해서는 아래 8가지의 주제에 대해 염두해 두는 것이 좋다. 1. Fundamentals..

04. 컴파일 언어 vs 인터프리터 언어

우리가 다루는 모든 Programming Language는 사람이 이해할 수 있도록 표현된 고급언어이다. 이를 실행하기 위해서는 최종적으로 기계가 이해할 수 있는 저급언어로 변환하는 과정이 필요하다. 01. 컴파일 언어는, Compiler컴파일러를 이용하여 개발자의 소스코드 전체를 한번에 저급언어로 변환한다. 이 과정에서 소스코드내에 오류가 있다면 컴파일에 실패하여 결과를 아예 볼 수가 없다. 변환이후 실행을 위해서는 또한 추가적인 과정(Linking)이 필요하다. 02. 인터프리터 언어는, Interpreter인터프리터를 이용하여 소스코드를 한줄 씩 차례대로 저급언어로 변환한다. 따라서 소스코드내에 오류가 있다고 해도, 오류가 있는 코드라인 바로 직전까지는 정상적으로 변환한다. 특히, 추가적인 과정없이..

03. Build batch files

Batch File배치파일 이란, 명령 프롬포트 혹은 Shell에서 실행되는 명령어들을 하나로 묶어놓은 스크립트 파일이다. 배치파일을 실행하면, 명령 프롬프트는 파일 내 각 Line들을 차례대로 실행한다. 따라서 커맨드창에 반복적으로 수행해야 하는 명령들이 있다면, 배치파일을 이용하여 자동화 한다던지 복잡한 여러 명령들을 손쉽게 처리하여 시간을 절약할 수 있다. 컴파일 언어 빌드시에도 유용하게 사용되며, 이 경우 보통 3개의 배치파일을 이용한다. (Window기반 플랫폼) 1. make.bat - 소스파일들을 컴파일 + 링크하여 실행파일이나 라이브러리 생성 - 주로 Makefile과 함께 사용됨 2. build.bat - 기본적으로 make.bat과 유사 - 컴파일 + 링크 뿐만 아니라 프로젝트의 Ful..

02. TCP/IP Server & Client 관계

TCP/IP의 Server & Client는 떨어져 존재하는 서로다른 컴퓨터이다. Client는 기본적으로 서비스를 요청하는 주체이며, Server는 Client에 서비스를 제공하는 역할을 한다. 소개팅을 앞 둔 남녀로 보이기도 한다. ( ? ) 이 둘의 약속장소는 Network address로 결정이 되며, 여기에는 hostname, port number, ip, protocol 등등이 적힌다. Network address는 즉 이 둘의 만남의 장소가 되는 것이다. socket( ) 함수는 각자가 서로를 만나기 위해 문을 박차고 나가는 상황이 된다. 아직 약속장소에 대한 정보가 없으므로, 밖으로 나서긴 했지만 어디로 가야할지는 모르겠다. 이 때 이 둘에게 약속장소, 즉 Specific한 Network ..

01. 컴파일 에러와 실행중 에러

컴파일 에러가 나오면 컴파일이 안되고, 컴파일이 안되면 실행파일(.exe) 파일이 나오지 않는다. 즉 프로그램을 실행조차 못하기에 '버그'를 논의할 수도 없다. 그 덕에 프로그래머는 문제가 있다는 걸 바로 인지하여 알아서 고치게 될 것이다. (안 고치면 실행파일이 안나오니 반드시 고쳐야 함) 실행중 에러는 컴파일은 되었으나 실행 중 코드 상의 문제로 프로그램이 오작동 하거나 크래쉬가 나는 경우를 뜻한다. 단, 그 오작동이 나는 상황을 프로그래머가 충분히 테스트 하지 않는 경우엔 문제가 있다는 사실도 모르고 넘어가기 쉽고, 수정도 빨리 하지 않는 경우가 허다하다.