리눅스 환경에서의 프로그래밍 과정에서 편리한 통합 개발 환경의 존재는 프로그래머에게 날개를 달아주는 것이다. 맥 환경의 XCode나 윈도우 환경의 비주얼스튜디오가 바로 그런 존재이다. 물론 리눅스 환경에서도 NetBeans, CodeBlocks 등을 사용할 수 있지만 비주얼스튜디오 코드의 등장은 여러모로 반갑다. 필자의 경우 C/C++ 개발 과정에서 gdb와 연동하여 디버깅하는 과정은 나름 만족스러운 수준이다. 그런데 복병이 등장했다. 프로그램이 네트워크 인터페이스나 통신 포트와 같은 시스템 자원을 직접 접근하는 경우에는 sudo 권한이 필요한데 일반적인 상황으로는 sudo 권한을 받는 과정에서 실패하여 디버깅을 할 수 없었다. 여러 가지 해결책이 있으나 시스템 보안을 유지하며 자연스럽게 이러한 필요를 ..
컴퓨팅 용어의 많은 부분은 일반 생활에 평상적으로 쓰이는 것과 그 의미에 큰 차이가 없는 편입니다. 그런데 몇몇 용어는 컴퓨팅 관련한 곳에서만 쓰이는 것이 있는데 그 중에 하나가 바로 디버그(Debug) 입니다. 프로그램을 작성하다보면 언어에서 정한 문법대로 쓰지 않아서 생기는 문법 오류(Syntax error)와 같은 것은 컴파일러가 메시지와 함께 친절하게 알려주므로 어렵지 않게 고칠 수 있습니다. 그렇지만, 프로그래밍 언어에서 정한 문법대로 작성해서 프로그램도 잘 만들어 졌으나 정작 실행 과정에서 프로그래머가 의도한 대로 프로그램이 동작하지 않는 경우가 있습니다. 예를 들어 10회 루프를 돌고 프로그램이 끝나야 하는데, 프로그램이 끝나지 않고 무한 루프를 돈다던가, 컨베이어 라인을 특정 센서 신호에 ..