리눅스나 유닉스 환경에서 개발해본 경험이 있는 개발자라면 grep 툴을 vim, ctags와 같은 도구와 더불어 개발자에게는 없어서는 안될 필수 도구로 뽑는데 대부분 이의가 없을 것입니다. grep은 특정 텍스트 스트링이나 텍스트 조합 형태(정규식 적용 스트링)를 포함하고 있는 파일을 검색하기 위한 도구로 예를들어, 소스 코드에서 #define으로 시작하는 모든 행을 추출 한다거나,function function_name( ) 형태로 기술되어진 모든 함수 정의 문장을 추출한다거나,변수명 aaa를 사용하는 모든 소스 코드명을 추출하는 등의 용도에 grep 도구를 사용할 수 있습니다. 그런데, 윈도우 환경에서 grep을 사용하려면 윈도우 환경에서 리눅스 콘솔 명령을 그대로 사용할 수 있도록 해주는 cygwi..
특정 서버에 자동으로 파일을 업로드하거나 서버에 있는 파일을 자동으로 다운로드하는 하는 일을 해야 하는 경우가 있습니다. 그것도 매일 혹은 주기적으로 반복해서 하는 작업이라면 실행 명령 하나로 접속, 로그인, 파일전송, 연결 해제 과정을 일괄적으로 실행할 수 있다면 업무 효율은 더욱 높아질 수 있을 것입니다. 리눅스나 유닉스 환경은 워낙 스크립트를 활용한 작업이 일반화되어 있어서 간편하지만 윈도우 환경에서는 약간의 준비가 필요합니다. 서버가 단순 FTP 서버인 경우에는 윈도우의 내장 FTP 클라이언트를 사용하고 서버가 SSH를 통한 보안 연결만을 지원하는 경우에는 PSFTP를 사용하여 자동 파일 전송하기를 사용하면 됩니다. ■ 일반 FTP 서버가 일반적인 FTP 서비스를 제공하는 경우에는 윈도우 자체적으..
소스 코드나 일반 텍스트 파일을 편집하는데 있어 주목할 만한 한가지 특성은 라인 단위 또는 줄 단위로 구분 지어 진다는 점 입니다. 그래서, 시프트(Shift)키를 누른상태에서 아래쪽 방향키를 누르면 커서가 있던 위치부터 아래쪽으로 라인 전체가 선택되어 지는 것이 보통입니다. 소스 수정 작업이나, SQL 구문을 수정하거나, 기타 텍스트 파일 수정 작업을 하다보면 일부분을 일괄로 한번에 선택해서 삭제하거나 변경했으면 하는 상황이 있는데, 선택 범위가 해당 라인들의 일부분 일때 수직 선택(Vertical selection)이나 사각형 선택(Rectangular selection)을 사용하면 상당히 쉽게 일괄 편집 필요를 해결할 수 있습니다. 세가지 도구의 수직 선택 방법을 소개 할까 합니다. ■ 비주얼 스튜..
오늘은 앞서 소개 했던 7-zip("기업에서도 사용할 수 있는 압축 프로그램 7-Zip" 참조)을 좀 더 유용하게 사용하는 방법을 다루고자 합니다. 통상 압축 파일을 풀려면 해당 압축 파일을 풀수 있는 프로그램을 설치해야 하는데(WinRAR, 알집, 빵집, 반디집, 7-zip...), 이런 압축 프로그램을 설치하지 않은 사용자를 위해 사용할 수 있는 방법이 SFX(Self-Extracting Archives) 형태로 파일을 만들어 전달하는 것입니다. SFX는 실행 프로그램 형태이기 때문에 별도의 프로그램을 설치하지 않아도 프로그램을 실행만 하면 압축을 스스로 풀어 줍니다. SFX 형태로 파일을 전달하는 것은 압축 파일 수신자의 프로그램 설치 수고를 덜어 주려는 의도도 있지만. *.7z, *.egg 처럼 ..
협업 개발 시스템인 Trac을 분석하기 위해서는 먼저 "협업 개발 시스템 Trac 수정을 위한 개발 환경 준비하기"를 통해 개발 환경을 준비해야 합니다. 프로그램 분석 과정에서 상당히 중요한 부분 중의 하나가 바로 프로그램의 시작점을 찾는 것입니다. Trac 프로젝트의 프로그램의 시작점은 크게 2가지로 나뉘는데 하나는 trac-admin이고 다른 하나는 웹 인터페이스를 관장하는 tracd 입니다. Trac의 핵심 기능은 웹서버나 tracd를 통해서 플러그인 형태로 제공되는데 관련 정보는 설치 코드 위치의 Trac.egg-info\entry_points.txt에 있으며 그 내용은 아래와 같습니다. [console_scripts] trac-admin = trac.admin.console:run tracd =..
젠시(Genshi)는 웹 출력을 위하여 HTML, XML등의 텍스트 기반 자료를 분석, 처리 및 생성 할수 있는 파이썬 라이브러리로 핵심 기능은 태그, 속성, 내용을 분리해서 처리할 수 있는 템플릿 언어 입니다(http://genshi.edgewall.org/). Trac의 사용자 인터페이스를 위하여 개발되었지만 별도의 라이브러리 형태로 배포 되고 있어 필요에 따라 적절하게 사용할 수 있습니다. 홈페이지 로고에서 젠시의 이름을 유추해 보면 젠시는 직물을 만드는 원료가 되는 실을 가리키는 원사(原絲)의 중국어 발음에 따온 모양입니다. 템플릿이 하는 역할에 비추어 보면 의미가 통합니다. 본 포스팅에서는 Trac에서 실제 사용된 젠시의 기능을 중심으로 다루고자 합니다. ■ 마크업 스트림(Markup strea..
"Trac 수정을 위한 개발 환경 준비하기"는 대표적인 협업 개발 도구인 Trac(http://trac.edgewall.org/)을 설치하고 사용하는 것을 넘어서 직접 코드를 수정하고자 하는 사람에게 필요한 과정입니다. 개발 환경이란 실제 사용자들이 사용중인 시스템과는 별개의 시스템으로 개발 과정중에 발생할 수 있는 다양한 오류 가능성과 장애로 부터 자유로울 수 있는 시스템을 의미합니다. Trac은 자체적인 서비스 대몬을(tracd) 소유하고 있으므로 Trac 코드 수정을 위한 시스템을 실제 시스템과 동일하게 구축할 필요는 없습니다. 아래의 개발 환경은 윈도우 시스템을 기준으로 했으며 텍스트 편집기로 소스 코드를 수정한다는 가정하에 진행했습니다. ■ 파이썬 환경 설치 "파이썬(Python) 실행 환경 준..
어느덧 교토 걷기 마지막 날이고 내일이면 구마노 고도 걷기에 나섭니다. 오늘은 후시미 이나리 타이샤를 거쳐 교토 남부의 사케 박물관에 갔다가 교토 북부의 시모가모 진자와 왕궁 주변을 돌아보는 여정입니다. ■ 후시미 이나리 타이샤(伏見稲荷大社) 첫 여정은 후시미 이나리 타이샤 산을 오르는 것입니다. 숙소에서 교토역으로 이동해서 나라선 나라행(奈良線普通 奈良行) 열차를 타고 두 정거장 떨어진 이나리역(稲荷駅)에서 하차합니다. 요금은 140엔. 좀더 빨리 가려면 바로 앞으로 07:32, 07:39 열차도 있습니다. 기차에서 내리면 길을 따라 후시미 이나리 타이샤(FUSHIMI-INARI-TAISHA, 伏見稲荷大社, http://inari.jp)로 향합니다. 무료 입장이지만 사람이 많아 이른 시간에 방문하려고 ..
교토 여행에서 교토 왕궁과 공원(교토고쇼, 京都御所, Kyoto Imperial Palace and park, http://sankan.kunaicho.go.jp/guide/kyoto.html)은 무료로 입장하여 편안하게 산책할 수 있는 좋은 공간입니다. 그런데 그중에서 센토 고쇼(仙洞御所)는 다른 지역에 위치한 다른 몇몇의 왕궁 건물과 함께 사전예약하거나 당일 왕실 건물 관리 사무소(Imperial Household Agency Kyoto Office, http://www.kunaicho.go.jp/)에 가서 일정 인원수 범위 안에서 신청서와 함께 여권을 제시한 제한된 사람들에 대한 가이드 투어를 제공하고 있습니다. 여행 일정과 왕궁 휴관일을 감안하여 미리 센토 고쇼 방문을 예약 했습니다. 몇차례 절차..
교토 걷기 2일차는 숙소 바로 옆에 있는 히가시 혼간지에서 시작합니다. 버스로 긴카쿠지로 이동하여 교토 동쪽에 있는 히가시야마(Higashiyama, 東山区) 지역을 북쪽에서 남쪽으로 걷습니다. 히가시야마 지역은 남북으로는 4Km 내외지만 중간에 거치는 곳이 많으므로 페이스 조절을 잘 해야 합니다. ■ 히가시 혼간지(Higashi Hongan-ji, 東本願寺) 숙소 바로 옆에 있는 히가시 혼간지로 부터 교토 이틀째 걷기를 시작합니다. 히가시 혼간지(Higashi Hongan-ji, 東本願寺, http://www.higashihonganji.or.jp/)는 동절기 06:20~16:30에 개방하며 무료 입장 입니다. 1602년에 토쿠가와 이에야스(Shogun Tokugawa Ieyasu)에 의해 세워진 사찰..
교토 걷기 3일와 구마노 걷기 3일 여정으로 드디어 일본 걷기 여행을 출발합니다. ■ 인천공항 이동과 한국 출국 몇달전 예약해둔 항공편(피치, Peach 항공, https://www.flypeach.com/)이 두명 왕복에 각종 옵션없이 330,000원으로 예약한 까닭에 좌석은 체크인해 봐야 확인할 수 있습니다. 유럽식 저가 항공의 특징이죠. 두명이서 비행기를 같이 타지만 좌석이 찢어 질 수도 있다는...... 아무튼 비행기 출발이 7시 30분이므로(지금까지의 비행기 여행중 가장 빠른 시각에 출발하는 항공편입니다) 공항에서 05:00~6:40 사이에 체크인을 완료해야 합니다. 인천공항 1터미널 장기 주차장에 차를 세우고 부지런히 움직입니다. 새벽 시간이므로 1터미널 장기 주차장도 널널하지 않을까 싶습니다..
구마노 고도 여행을 계획하면서 어려운 점 중에 하나라면 숙소 예약입니다. 도회지라면 숙소도 많고 예약도 평소 해외 여행을 준비할 때 사용하던 사이트를 통해서 손쉽게 예약할 수 있지만 숲길을 걷는 구마노 고도의 숙소들은 개수도 한정되어 있고 일반 예약 사이트에서는 대부분 예약 할 수 없습니다. 대신에 구마노 고도 관련 서비스를 총괄해서 제공하는 https://www.kumano-travel.com/en 사이트를 통해서 숙소 검색 및 예약과 부수 서비스를 신청할 수 있습니다. 예를 들어 이동 구간에 짐을 미리 옮겨 주는 서비스등을 신청해서 가벼운 차림으로 산행을 할 수도 있습니다. 예약은 크게 두 단계로 나뉩니다. 첫 단계는 자신이 선택한 기착지를 중심으로 묵어갈 숙소들을 선택하여 카트에 담고 예약 요청을 ..
6일간의 교토, 구마노 고도 걷기를 끝내고 한국으로 돌아가는 날입니다. 숙소 체크아웃이 오전 11시 이므로 아침에는 타나베 시내 걷기를 하고 기차로 와카야마로 이동한 다음 와카야마 역 근처 백화점과 도시 나들이를 즐기면서 이른 저녁을 해결하고 공항 리무진으로 2터미널로 이동하여 한국으로 돌아가는 여정입니다. ■ 타나베 시내 걷기 숙소에서 키이타나베역(Kii-Tanabe, 紀伊田辺)을 거쳐서 토케이 신사를 비롯한 여러 신사들이 모여 있는 공원으로 향합니다. 타나베 시내 걷기는 이동 및 관람 시간을 포함하여 1시간 30분에서 2시간 정도로 예상합니다. 오전 7시에 출발하면 적절합니다.숙소에서 700미터(10분) 내외의 짧은 거리입니다. 토케이 신사(Tokei Shrine, 闘鶏神社), 타마키 신사(Tamak..
구마노 고도 2일차는 쯔기사쿠라-오지(Tsugizakura-oji, 継桜王子)에서 출발하여 구마노 홍구 타이샤(Kumano Hongū Taisha, 本宮大社)까지 21Km에 이르는 거리를 걷습니다. 타나베로 돌아가는 버스 시간을 감안해서 아침 7시에는 출발해야 할것으로 보입니다. 코비로오지(Kobiro-oji, 小広王子)까지 초반 3Km 정도는 포장도로 이므로 조금 어둡더라도 걷는데는 지장이 없을 것으로 보입니다. 걷다보면 일출을 보지 않을까 싶습니다. ■ 쯔기사쿠라-오지에서 유카와-오지까지 중간에 2011년 태풍 때문에 생긴 우회로를 통해서 걷습니다. 쯔기사쿠라-오지(Tsugizakura-oji, 継桜王子) 출발나카가와오지(Nakagawa-oji, 中川王子) ~ 1Km(15분)코비로오지(Kobiro-o..
일본 여행 4일차입니다. 3일동안 걷기 여행으로 했던 교토를 떠나 2004년 유네스코로부터 세계 유산으로 등록된 구마노 고도(The Kumano Kodo, 熊野古道) 걷기를 시작합니다. 관련 정보는 http://www.tb-kumano.jp/en/ 를 참조할 수 있고 숙소 예약은 https://www.kumano-travel.com/en에서 확인 할 수 있습니다. 교토에서 키반도의 타나베까지 이동했다가 실제 걷기 시작 지점인 타키지리까지 버스로 이동하여 걷기를 시작합니다. 저희가 걸을 경로는 구마노 고도의 여러 경로중 나카헤치(なかへち, http://www.nakahechi.jp/) 메인 경로이고 그중에서 1일차는 총 16.8Km를 걸어 쯔기사쿠라-오지(Tsugizakura-oji, 継桜王子)에서 민박하..