첫째를 임신한 아내를 데리고(모시고) 지리산 노고단을 다녀온지도 가물 가물해질 만큼 시간이 흘렀네요. 산티아고 순례길에서 영감을 받은 한 언론인의 열정과 노력 덕분에 제주 올레길이 열리고 걷기 열풍이 한창일 무렵 "지리산 둘레길"이란 이름으로 새롭게 재 탄생한 걷는 길을 한번은 가야지 가야지 했는데 드디어 그날이 오는가 봅니다. 사실 힘들게 뭐하러 그런 길을 걷는가? 하는 분들도 있겠지만 지리산 곳곳에 발자국을 남기며 젊은 시절을 지낸 필자에게는 "지리산 둘레길"이 경건하게 느껴질 정도입니다. 그래서 더욱 기대가 큰가 봅니다. 아름다운 풍경, 황홀한 단풍에 대한 기대보다 지리산의 품에 안기어 걷는 시간에 대한 기대입니다. 걷기 여행에 자동차를 끌고 가는 것이 영 마음에 들지는 않지만 기차표 매진, 애매한..
필자가 토터스깃을 사용하는 가장 큰 이유는 아마도 서브버전 사용 과정에서 익숙해진 아이콘 오버레이 기능 때문이 아닌가 싶습니다. 토터스깃에서 제공하는 아이콘 오버레이 기능은 각 파일 및 디렉토리의 상태를 아이콘으로 보여줌으로서 개발자로 하여금 어떤 부분에 수정을 가했는지, 어떤 파일이 형상 관리 대상인지 아닌지를 아이콘을 통해 한눈에 파악할 수 있도록 도와 줍니다. 외부 저장소를 복제(Clone)해서 작업 사본(Working Copy)을 확보하면 초기 상태는 초록색 바탕의 체크 표시 아이콘인 "Normal" 상태가 됩니다. 위의 그림은 ".git" 명칭을 가진 기본(Bare) 저장소와 작업 사본(Woking Copy)이 함께있는 일반적인 저장소 복제(Clone) 방법으로 프로젝트를 시작한 예제로 폴더와 ..
최근 웹호스팅을 사용하는 한 사이트에서 똑같은 프로그램임에도 불구하고 기능이 잘 동작하지 않는 다는 이야기를 듣고 간단하게 몇가지 조사해 보니 file_get_contents() 함수가 정상적인 동작을 하지 않더군요. file_get_contents() 함수는 파라미터로 외부 사이트의 URL을 입력하면 해당 페이지의 내용을 가져와서 문자열로 리턴해 주는 개발자 입장에서는 매우 유용한 함수인데 해커들이 이런 함수를 통해서 인젝션(Injection) 공격을 수행하기 때문에 PHP 설정중에 allow_url_fopen를 0으로 설정해서 fopen(), file(), file_get_contents() 등의 함수에서 외부 URL을 사용할 수 없도록 한다는 이야기 였습니다. 해당 함수 사용 과정에 위험성이 있는지..
저자는 독일의 루츠 폰 베르너(Lutz von Werder)와 바바라 슐테-슈타이니케(Barbara Schulte-Steinicke)입니다. 괴테와 헤르만헤세의 작품에서 익숙해져 있는 탓인지 독일인의 문체가 그리 낫설지 않게 느껴져서 책 읽기의 부담이 덜했습니다. 문화적 배경은 다를 수 있지만 "글쓰기"에 몰입한 책이니 만큼 블로그 글쓰기로 스스로의 역량을 높이고 마음의 평안과 가술적 나눔등 여러가지 유익을 누리고 있는 가운데 좀더 쉽게 읽히고 도움을 줄 수 있는 글을 어떻게 하면 잘 써볼까? 하는 마음이 있는 사람이라면 누구나 공감과 동의속에 책을 읽을 수 있을 것입니다. 아마존에서 판매하고 있는 원서의 제목은 "Schreiben von Tag zu Tag"로 직역하면 "매일 매일 글쓰기"입니다. 부제..
윈도우 폼(Windows Forms) 응용을 MDI(Multiple Document Interface) 형태로 만들면 하나의 윈도우 폼이 부모폼(Parent Form)이 되고 여러개의 자식폼을 내장하는 방식으로 편리한 창 관리, 예를 들어 타일 방식으로 창을 자동 배열하거나 연속 형태(Cascade)로 창을 간단하게 배열할 수 있습니다. 그런데 이런 형태의 창 배열을 사용하지 않고 부모폼의 작업 영역에 한번에 하나의 폼만을 표시하려고 하면 몇가지 설정이 필요합니다. 분명 자식폼으로 사용할 폼의 ControlBox 속성을 False로 설정했지만 위의 그림과 같이 자식폼이 부모 폼의 작업 영역에 꽉차도록 WindowState 속성을 Maximized로 설정하면 컨트롤 박스가 보이고 맙니다. 폼 클래스에 Do..
텍스트 편집기에서 다중창을 사용할 수 있는지 없는지는 생산성에 상당한 영향을 비칩니다. 오랜 기간 발전을 거듭해온 노트패드++(이하 NPP)도 다중창 또는 창 분할 기능이 있습니다. 창분할 관련 기능은 상단 탭을 우측 마우스 버튼을 클릭하여 컨텍스트 메뉴를 사용합니다. 같은 파일을 양쪽 창에 동시에 보면서 작업하고 싶을 경우에는 "분할 창으로 복사"를 선택하고 좌우 분할 창간의 이동은 "분할 창으로 이동"을 선택하면 좌에서 우로 또는 우에서 좌로 분할 창을 이동할 수 있습니다. 분할 창이 생기면 위의 그림과 같이 점선으로 표시된 "분할 크기 조정바"를 통해서 좌우 분할창의 크기를 끌어다놓기(Drag and Drop) 방식으로 조정할 수 있습니다. 또한 "분할 크기 조정바" 상하단에 있는 작은 좌우 화살표..
위의 첨부파일 링크는 아래에서 언급하는 내용들을 반영한 배포 패키지 입니다. 한국어만을 남겨두고 다른 언어들과 테마 파일을 삭제하고 아래에서 언급할 번역 적용과 폰트 설정등을 감안한 파일입니다. 다운로드 받으셔서 압축 해제하면 바로 한글 환경에서 작업할 수 있습니다. 노트패드++(이하 NPP)를 설치하고 설정>환경설정을 통해서 "한국어"를 사용자 인터페이스의 언어로 선택할 수 있는 것은 NPP 설치 폴더의 localization 폴더에 있는 korean.xml 파일이 있기 때문입니다. 위의 그림은 localization/korean.xml 파일을 NPP로 열어본 예제로 "Native-langue" 태그의 name 속성에 "한국어"로 정의되어 있는데 이 이름이 환경설정>속성창에 표시됩니다. 번역 내용을 수..
분산 버전 관리 시스템(DVCS, distributed version control system)으로서의 깃(Git)을 사용한다는 의미는 현재 자신이 사용하는 컴퓨터 시스템에 로컬 저장소(Repository)를 확보하는 것으로 시작합니다.(깃(Git) 시스템 구조 이해 참조) 아무 것도 존재하지 않는 빈 저장소로 시작할 수도 있고 이미 어느 정도 진행한 기존의 다른 저장소(로컬 또는 원격)로 부터 시작할 수도 있습니다. 윈도우 탐색기에서 빈 디렉토리를 만들고 컨텍스트 메뉴>"Git 저장소 여기에 만들기"(git init)를 선택하면 아무 것도 존재하지 않는 빈 저장소로 형상 관리를 시작할 수 있습니다. "Git 저장소 여기에 만들기"를 수행하면 위의 화면과 같이 일반적인 깃 저장소로 만들지 기본 저장소(..
예전에는 별로라고 생각했었는데 시간이 지나고 기술이 발전함에 따라 새로운 시각으로 바라보게 되는 것이 있습니다. NPP, Notepad ++를 언제 처음 만났었는지는 가물가물하지만 첫 텍스트편집기였던 울트라에디터를 벗어나 다른 편집기에 익숙해 있던 터라 다른 텍스트 편집기는 돌아볼 마음이 없었는데 우연히 다시 만나게된 Notepad++(이하 NPP)와도 친해질 필요가 있겠구나 싶습니다. 윈도우에서만 동작하는 것이 단점으로 보이기는 하지만 가벼운(다운로드 파일 2MB 내외) 텍스트 편집기로 소스도 공개되어 있고 개발자에게 유용한 다양한 기능과 함께 용도에 따라 간편한 설치가 가능한 점은 매력적으로 보입니다. 버전 1.0이 2003년에 공개되었으니 12년이 넘게 이어져온 프로젝트의 역사는 나름의 안정성도 보..
자주 사용하지는 않지만 가끔 파일의 내용을 전용 뷰어나 에디터가 아닌 파일이 저장된 상태 그대로 확인하고 싶을 때가 있습니다. 특히 텍스트 파일이 아닌 바이너리 파일을 다루는 프로그램을 작성하는 경우 프로그래밍 과정에서 파일의 내용이 의도대로 작성되었는지 확인하는 것은 매우 중요합니다. 그렇지만 바이너리 파일의 경우 해당하는 전용 뷰어나 에디터로 내용 확인이 가능하기는 하지만 원천적인 정보를 볼 수 있는 것이 아니므로 저장된 형태 그대로 볼 수 있는 도구가 필요합니다. 이런 필요를 채워주는 것을 헥사(Hex) 뷰어 또는 헥사 에디터등으로 부르는데 이런 도구들은 파일의 내용을 16진수 형태로 덤프(Dump)해서 사람이 직접 확인할 수 있는 문자 코드에 제한 없이 내용을 확인할 수 있도록 해줍니다. 위의 그..
글을 쓰려다 달력을 보니 다음주면 한글날이네요. 1991년부터는 휴일이 아니었다가 여러 부침끝에 올해는 공휴일인 한글날을 맞이하게 됩니다. 한글만큼 과학적이고 우수한 문자가 없지만 컴퓨터 입장에서 보면 영어중심의 환경이다보니 한글 표현에 여러 혼란과 어려움이 있었습니다. 예전의 조합형, 완성형 한글 논란부터 현재의 EUC-KR, UTF-8 인코딩 까지 다양한 한글 표현만큼 개발자의 부담은 늘어날 수 밖에 없습니다. 현재는 EUC-KR과 UTF-8로 한글 인코딩의 사용 범위가 수렴되었다고 볼 수 있습니다. 결과적으로 조합형 한글 표현 방식은 사라지고 완성형 한글이 대세가 되었습니다. EUC-KR은 완성형 한글을 의미합니다. KSX1001, KSC5601도 EUC-KR을 의미합니다. EUC-KR과 유사한 용..
토터스깃의 한국어 적용과(한글 환경으로 토터스깃 사용하기 참조) 함께 사용중에 아직 번역이 진행되지 않은 부분을 만나면(2015년 10월 1일 현재 1.8.15.0 버전의 한국어 번역 진행률은 94%) 웹상에서(https://www.transifex.com/projects/p/tortoisegit/ 참조) 번역팀의 팀원으로 참여해서 작업을 진행할 수도 있지만 사전에 자신의 개발 환경에서 번역을 진행해서 테스트할 수 있는 방법도 있습니다. 위의 그림과 같이 번역이 미비된 부분에 대해서 직접 수정해서 일단 사용해 보고 싶다면 우선 두가지가 준비되어야 합니다. 첫번째는 번역을 위한 번역 파일 원본(*.po)이고 다른 하나는 번역을 적용하기 위한 언어 DLL파일입니다. 우선 번역 파일 원본은 위에서 언급한 tr..
PresentationFontCache.exe는 윈도우의 시스템 프로그램으로 WPF(Windows Presentation Foundation) 응용을 위한 시스템 서비스라고 합니다. 필자의 경우 오랜 기간 이것을 어떻게 처리해야 하나? 하며 고민 했지만 윈도우의 시스템 프로그램이니 어떻게 조치할 방법이 없다고 여겼는데 의외로 간단하게 처리할 방법이 있었네요. 알고보니 해결 방법이 너무나 단순해서 그저 헛 웃음이 나올 뿐입니다. PresentationFontCache.exe이 CPU를 꾸준하게 잡아먹으면서 CPU로 인한 시스템 온도가 상승하고 가끔 "삑"하고 시스템이 중단되는 사태가 종종 발생하고는 했던 것입니다. 적용 결과 적용 이전 보다 CPU 온도가 20~30도 가량 내려가네요. 쩝........작업..
"표절"과 관련한 뉴스가 심심치 않게 들려오고, 구인구직 현장에서도 입시 현장에서도 "표절"은 주요 이슈 중의 하나입니다. 내 생각, 내 창작물이 아닌 다른이의 것을 베끼는 "표절"은 범죄 행위임에 틀림없습니다. 특히 다른이의 글을 통으로 복사해 놓고 앞뒤 문단을 이어주는 글만 살짝 바꾸어 사용하는 짜깁기 표절은 악성 표절임에 틀림없습니다. 정식으로 인용 또는 참조 표시를 하기만 해도 될텐데, 다른이의 글을 가져다 쓰면서 자신의 글인양 포장하는 행위는 그 어떤 변명으로도 정당화되지 못할 것입니다. 정보 기술의 발전과 함께 표절을 찾아내는 방법도 지속적으로 발전해 와서 표절 검사로 비즈니스를 하는 회사도 한둘이 아닙니다. 표절을 찾아내는 방법은 검사 주체에 따라 크게 두가지로 나눌 수 있습니다. 한가지는 ..
2015년 가을 TV를 도배하고 있는 두가지 광고가 있습니다. 하나는 네이버(NHN)의 PAYCO이고 다른 하나는 이번 글의 소재인 삼성페이입니다. 자주 대하는 광고이지만 나와 깊은 연관이 없다면 별 관심 없이 "뭔가를 새로 시작하는가 보다" 정도로 지나치게 마련이죠. 그런데, 알고보니 삼성페이는 뭔가 "다름"이 있더군요. 바로 MST(Magnetic Secure Transmission) 라는 특이한 기술이었습니다. 우리말로는 "마그네틱보안전송" 이라 하는데 기술을 간단히 설명하면 매장에서 신용카드로 결제할 때 통상 단말기에 신용카드를 긁어서 결제하는 방식은 신용카드 뒷면에 있는 자성체(magnetic stripe) 때문인데 이 자성체를 읽는 헤더에 신용카드 실물 없이도 카드를 긁는 것처럼 자기장을 일으..