필요한 일이 있어서 은행에서 쓰는 키보드 보안에 대해 잠시 물어 보고, 찾아 보는 중이다. 은행 인터넷 뱅킹에 들어가게 되면, 키보드 보안 프로그램이 항상 설치되어 실행되는 것을 볼 수 있다. (그림은 외환은행에 들어 갔을 때 나오는 트레이를 캡쳐해본것이다.) 이것이 하는 일은 키보드입력을 다른 녀석이 가로채지 못하게 한다는 것인데, 원리는 간단하다. 1. 암호를 입력해야하는 순간에 2. 키보드의 입력을 가장 먼저 받아서 어딘가에 저장해두고 3. 입력받은 내용을 '*' 로 바꾼다. 4. 웹페이지에서 "실행" 버튼 (조회 혹은 이체!)을 누르는 순간 5. 저장해둔 키보드 입력을 은행이 원하는 암호화방식대로 암호화해서 전달해주는 기능이다. 즉, 은행사이트는 자신의 사이트에 맞는 키보드 보안 프로그램과 대화를..
설계 및 구현을 하다보면, 모든 예외처리가 되어야하지만, 논리적으로 안전한 것에 대해서는 처리하지 않는 상황을 만나게 된다. 즉, 방문은 잠그지 않고 자도 현관문이 열리지만 않는다는 가정만 확실하면 방문을 잠그지 않아서 발생하게 되는 도난사고 같은 예외상황은 고려대상이 아니라것이다. 프로그램도 외부에서 흘러오는 데이터가 어떤 확인 절차를 거치고, 어떤 가공이 일어나는지를 모두 알 수 있다면(또, 그래야하고) 예외를 확인하고 처리해야할 곳이 어디인지 확실하게 된다. 현관문에서 확인한 사람을 방문에서도 한 번 더 확인하는 것이 잘 되어 있는지, 잘못되어 있는지는 생각하기 나름이다. 오히려 현관문에서는 금속탐지만 하고, 방문에서는 거짓말 탐지를 한다는 식으로 나뉘어 있다면 그것은 잘되어 있는 것일지도 모른다...
요즘 며칠간, 순수하게(?) 인쇄된 활자를 인식하는 것에 관심이 가고 있다. 뭐 아주 품질좋은 요구사항을 생각하는 것이 아니고, 이 정도다. 흑백으로된 이미지 스캔한 이미지가 아닌 컴퓨터 프로그램에 의해 파일로 인쇄된 정도 숫자들로만 구성됨 이탤릭 없음 10글자 이내 한 줄 폰트는 서너 가지 이보다 더 쉬울 수가 있을까마는, 아주 간단한 검색으로 다음과 같은 것들을 얻었다. http://www.google.com/search?q=typewritten+recognition 처음발견되는 위키피디어 문서에서 다음과 같은 말이 있다. The accurate recognition of Latin-script, typewritten text is now considered largely a solved proble..
Subversion으로 개발하는 개발팀이 늘어나고 있습니다. 기존의 CVS를 쓰던 사람들에게는 같은 명령어로 이관하고 있고, 상용제품만큼 쓸만한 기능들은 모두 제공되기 때문입니다. 특히 MS Windows를 사용하는 사람들은 그 클라이언트 프로그램으로 TortoiseSVN을 사용합니다. TortoiseSVN은 subversion의 client 라이브러리를 응용하여 Shell extension으로 만들어지는 것이며, 큰 버전과 중간 버전을 subversion과 일치시켜가며 릴리즈를 하고 있습니다. 그리고 매일 밤 빌드를 통하여 현재 들어 있는 소스 트리의 스냅샷을 만들어 내기 때문에 버그가 수집되어 고쳐지는 대로 중간 릴리즈를 매일 받아 볼 수 있습니다. http://nightlybuilds.tortois..
알고 있던 하드웨어 혹은 간단했던 소프트웨어의 구조를 알고 있다가, 세월이 지나 다시 보기가 두려워질 때가 있다. 두렵다는 표현이 적절하지는 못하나 뭔가 이해하지 못하는 개념에 부딪힐 것 같은 느낌이 있다는 정도면 적당할것 같다. 과거, MSX나 MS-DOS 기반에서 키보드를 다루는 것은 단지 하드웨어 인터럽이 발생하고 해당 I/O port로부터 scan code를 읽어 키보드 버퍼에 넣는다는 개념만 알면 되었던 것이 OS가 CPU 특권에 따라 움직이는 상황이 발생하고, USB Keyboard가 추가되고, 추상화되는 Driver의 계층이 생기고, Driver의 추상층에 대한 개념이 달라지고, 키 스캔코드의 매핑이라는 고급스러운 변환이 일어나고, 무슨 문서화되지 않은 필터링 기능, 켁, 여기까지는 문서를 ..
다국어 관리팀이 분리되어 있는 조직에서 개발 방법은 다음과 같은 두 가지일 것입니다.다국어 처리를 위해 개발자는 pot를 만들고, poEdit 를 이용하여 작업하는 그룹은 그들이 가지고 있는 po file에 pot를 merge하여 작업을한다. - 즉, 다국어 처리 그룹은 merge의 개념을 알고 있다. 다국어 처리를 위해 개발자는 pot를 만들고, 이를 po file에 merge하여 나온 po file을 poEdit 를 이용하여 작업하는 그룹에게 전달한다. - 즉, 다국어 처리 그룹은 번역만 주로한다. po file의 포맷은 단순히 msgid "I am Hojin"msgstr "나는 호진 입니다."와 같은 번역 텍스트의 나열일 뿐입니다.여기에 참조된 위치에 대한 정보가 주석으로 들어 있거나 여러 행으로 ..
팀 업무중에 네트웍장비에 들어가는 시스템 디스크의 이미지를 만들어 내는 것이 있다. 쉬운 말로 하면, 마치 지금 당신이 사용하고 있는 컴퓨터 시스템과 똑같은 것을 만들어 낸다면, 똑같은 장비에 똑같은 하드디스크 내용만 있으면 가능하므로 그 하드디스크 내용을 어딘가에 복사해두어 다음 컴퓨터에 복사하기 위한 일을 말하는 것이다. 장비야 공장에서 찍어 내는 것이고, 거기에도 하드디스크 비슷하게 디지털 카메라에 들어가는 CF card 같은 것이 하드디스크처럼 돌아가는 것이다. 내가 이 업무를 파악했을 때, 약간 불합리(?)한 요소가 있는 것을 보았다. 일단 만드는 순서를 보자면(매번 일어나는 일이다.), 1. 제품을 빌드한다. 2. CF disk 의 파티션을 두개로 나눈다. (sfdisk) 3. 파티션을 포맷하..
개인적으로 Open Source 프로그램을 번역하는 일은 그 프로그램에 애정이 있어서 하는 일이므로, 즐겁고 나로 인해 영어로된 프로그램을 한글화 한다는 자긍심도 생기기 마련이다. 그러나 밥먹기 위해서 하는 일로 국제화된 프로그램을 만드는 일은 이것과는 약간 슬픈(?) 현실이 있다. 지역화와 관련해서 지역 표시는 다음과 같은 표시방법을 따른다. 예를 들어 몇년전까지만해도 우리나라의 웹사이트는 다음과 같은 지역표시를 가지고 있었다. ko_KR.euckr 이것은 한국어(ko)로 되어 있고, 지역(territory)이 한국(KR)이며, 문자 집합은 euckr(한글을 위한 확장 유닉스코드)이라는 뜻으로 언어_지역.문자집합 으로 표시한다. 그리고 뭔가 수정이 일어나면 뒤에 "@수정명칭" 형식으로 회사, 개인, 기..
callback 이란 나중에 다시 불린다는 의미인데, 이것은 뭔가를 처리해달라고 요청한 다음 무작정 기다리는 것이 아니라 다 되면 불러달라는 고객 중심적인 처리 방식이다. callback이 아름다운 것은 callback을 등록한 뒤, 괜한 일로 시간을 낭비하지 않겠다는 것이며, 그것은 이 사회를 말하자면 아쉬운 놈이 계속 칭얼대야 돌아가는 것 보다 한 번 얘기 했을 때, 다음에 확인해오는 끝까지 믿음직한 서비스가 만연해 있는 것을 말한다. 프로그램을 설계할 때도, 적절한 callback을 구사하면 확장성이 고려되었다는 인상을 짙게(!) 풍길 수 있다. 자칫 쓰지도 않을 확장을 고려하느라 시간을 낭비하기도 하지만, 미학에는 시간을 다투어 개발하는 것보다는 만들어진 결과로 판단하는 경우가 많으므로 논외로 하..
- Total
- Today
- Yesterday
- perl
- Tattertools plugin
- 퀴즈
- OpenID
- 구근
- 클레로덴드럼
- 수선화
- 벤자민
- macosx
- ssh
- nodejs
- SSO
- JavaScript
- SVN
- MySQL
- 킹벤자민
- 오픈소스
- 덴드롱
- tattertools
- VIM
- 커피
- TCP/IP
- 식물
- BlogAPI
- 디버깅
- Subversion
- Linux
- 대화
- writely
- url
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |