응용 프로그램을 개발하다 보면 직렬 포트(Serial Port)를 사용하는 경우 다양한 어려움을 겪게 되는 경우가 많다. 장애도 많고, 테스트하기도 쉽지 않다. 스펙에 맞게 작성해 놓았더라도 상대편 장비에서 약속한 대로 반응하지 않으면, 양쪽에서 서로의 잘못이라고 문제를 떠넘기기가 쉽다. 이러한 경우를 대비해서 내가 보내는 전문은 스펙대로 작성하고 있는지 확인하고 상대편의 다양한 전문에 대한 대응은 적절한지를 확인할 필요가 있다. 그런데 상대 장비에 대한 접근이나 테스트가 어려운 경우는 가상 포트를 통해서 상대 장비를 에뮬레이트 하는 방법을 통해서 테스트를 진행할 수 있다. 오픈소스 프로젝트인 "Null-modem emulator"를 사용하고 싶었지만 윈도우 10에서는 한계가 있었다. 시간도 없는 관계로..
QT 응용 프로그램을 우분투 리눅스에서 개발하다가 중간중간에 이상한 경고 메시지를 만나게 되었다. "Gtk-Message: 14:16:49.392: GtkDialog mapped without a transient parent. This is discouraged." 메시지 내용을 보면 내가 프로그램을 작성을 하면서 뭔가를 잘못한 것 같은데....... 하는 추측을 하게 한다. 문제를 해결하려면 일단 현상을 재현하는 것이 중요하므로 언제 이 경고 메시지가 나오는지 여러 번 테스트를 진행했다. 드디어 현상이 재현 되었는데, 알고 보니 위의 그림과 같은 색상 선택창을 띄울 때마다 발생하고 있었다. 폰트 선택이나 색상 선택처럼 QT 대화창을 통해서 값을 선택받고자 하는 경우에 이런 현상이 발생하는데, QCol..
응용 프로그램을 동작하는 시스템의 언어 설정에 따라 사용자 인터페이스의 언어가 자동으로 바뀌게 하면 그만큼 프로그램의 활용도와 유용성은 높아진다. 상당히 많은 오픈소스 프로젝트들이 이런 체계를 적용하고 있고, 국내의 많은 개발자들은 나름의 번역 실력으로 해당 프로젝트에 참여하기도 한다. 코드 커미터로 참여하면 더 좋겠지만 개인적으로 보기에는 대부분은 한국어 번역 추가에 그치고 있다. 아무튼 이러한 다국어 기반 또는 국제화(i18n)가 적용된 프로젝트들은 많은 경우 gettext를 도구로 활용한다. 통상 영어를 기본 언어로 하여 소스 코드 등에서 gettext를 사용하도록 개발한다. 개발이 어느 정도 진행되면 도구를 통해서 사전 파일인 *.po를 만들어 내고, 번역자들은 소스 코드를 손대지 않고 단순 텍스..
스쿱을 접하기 시작한 사용자라면("스쿱으로 크로스 플랫폼 도구들을 간단하게 설치하기" 참조) 조금 복잡한 테스트나 서버 환경이 필요한 경우에 "이번에도 스쿱을 한번 활용해 볼까?" 하는 호기심을 가지게 될 것이다. 필자의 경우도 웹서버가 필요한 상황이 생겼는데 서버를 구동 시키거나 패키지를 복잡하게 설치하기는 귀찮고 간편한 방법을 생각해 보다가 시도한 방법이다. 위의 그림처럼 일단 파워쉘을 구동시킨다. 위의 그림처럼 "scoop install apache"라고 입력하면 아파치 웹서버를 간편하게 설치할 수 있다. 이 상태에서 바로 웹서버를 가동해 볼 수도 있겠지만 웹문서들을 어디에 복사할지는 알아야 하므로 웹문서 폴더와 웹서버 환경 파일의 폴더 위치는 확인해 두고 진행한다. 웹서버는 스쿱 설치 폴더 아래 ..
농사일의 끝을 잊을 정도로 일이 몰린다는 망종과 감자와 마늘을 캐는 하지도 지난 2020년 6월 말은 따가운 뙤약볕이 내리쬐면서 혹독한 여름 더위를 예고하고 있다. 최악의 여름 더위가 될 것이라는 예고들이 조금씩 현실화하는 것 같아서 더위 걱정이 스멀스멀 올라온다. 에어컨 없는 농가 주택에서의 10년 세월은 그동안 잘 넘겨 왔는데 과연 올해는 어떻게 될는지...... 한낮의 땡볕은 따갑지만, 이른 아침과 저녁으로는 짧지만, 텃밭일을 하기에 무리가 없는 시원한 기온이다. 작년 겨울 서울 처갓집에 갔을 때, 장모님께서 엄중하게 부여한 임무가 하나 있었다. 신문지에 싸인 자색 당근을 내오시더니 씨앗을 받아 오라는 명령이었다. 밭을 떠난 지 오래인 자색 당근을 겨울을 나고, 봄을 지나 꽃을 피워 씨앗까지 받아야..
코로나 19 때문에 계절의 여왕 5월이 어떻게 지나갔는지 모르게 어느새 6월을 바라보고 있다. 예산과 당진, 아산, 서산에 걸쳐 있는 이곳 예당평야는 모내기도 막바지에 이르러, 너른 논에는 물이 차고 드문드문 노구를 끌고 뜬모 작업을 하는 어르신이 푸른 모 속에 잠겨 있는 듯하다. 뜬모는 이앙기가 모를 심었지만 모가 땅속에 잘 박히지 않고 물에 뜬 모를 다시 심거나 이앙기가 심기 어려운 장소를 손으로 모내기하는 것이다. 사실 드넓은 논에 모가 몇 개 심기지 않았다고 굳이 힘들게 뜬모를 하실까? 하는 생각도 들지만 저분들에게는 저렇게 한 바퀴 돌아야 일을 끝낸 마음을 들것이다. 아무튼 주변의 논들은 이제 모내기가 끝나서 뿌리를 잡고 있지만, 한 마지기 우리 논은 위의 그림처럼 보리와 밀이 이제 영글고 있다..
아파치 웹서버나 PHP, 7-Zip과 같은 대표적인 크로스 플랫폼 도구들은 많은 경우 리눅스/유닉스 시스템에서 개발이 시작되어 이후 윈도우나 맥 OS 등으로 확산되는 경우가 많다. 통상 포팅이라는 과정을 거쳐서 윈도우 운영체제에서도 수행할 수 있게 되지만 각 프로그램마다 별도로 배포하는 패키지들은 라이브러리 중복의 문제, 설치/제거 과정의 복잡함 등의 문제를 여전히 가지고 있다. 윈도우에서 리눅스/유닉스의 응용 프로그램을 사용하려는 시도는 Cygwin과 MSYS로 거슬러 올라가는데 스쿱(Scoop)도 그 연장선에 있다고 하겠다. 파이썬의 경우 파이썬으로 만들어진 패키지들은 나름의 리포지토리에서 편리하게 설치할 수 있고, 우분투와 레드헷 계열의 리눅스에서는 apt-get이나 yum 도구로 필요한 도구를 간..
닷넷(.NET) 프레임워크가 윈도우즈를 넘어서 리눅스 진영까지 영향력을 확대하는 상황임에도 불구하고 어떤 닷넷 프로그램들은 내 컴퓨터에서 실행할 수 없는 상황이 발생하고는 합니다. 바로 닷넷 프레임워크의 버전 때문입니다. 닷넷 응용 프로그램의 개발 시점에서도 어떤 닷넷 프레임워크의 버전을 기준으로 할지를 지정하기 때문에 당연히 닷넷의 버전은 매우 중요한 요소입니다. 그래서 요즘에는 프로그램을 설치하기 전에 "시스템 요구 사항"에 있는 닷넷 프레임워크의 버전을 반드시 확인해야만 합니다. 현재 내 시스템에 설치된 닷넷 프레임워크를 확인하는 방법으로 닷넷 디텍터(.NET Detector)를 실행시키는 방법, 레지스트리를 확인하는 방법, 프로그램 추가/삭제에서 설치된 목록을 확인하는 방법, 닷넷 디렉토리의 목록..
전화, 문자, 일정 관리, 인터넷 검색, 동영상 감상, 게임까지 스마트폰은 이미 우리의 삶 깊숙이 들어와 우리의 삶을 지배하고 있는지도 모르겠다. 이런 상황에서 갑자기 터치가 되지 않으면 정말 난감한 상황이 벌어진다. 상당히 많은 정보가 스마트폰에 있는데 액정 수리까지 소요되는 시간과 비용을 생각하면, 스마트폰의 그 어떤 정보도 활용할 수 없으니 정말 난감해 할 수밖에 없다. 이런 경우 좋은 해결책이 바로 OTG(On The Go)케이블과 마우스이다. OTG 케이블은 시중에서 2천 원도 되지 않는 저렴한 도구로 USB 메모리나 키보드, 마우스를 스마트폰에 연결하여 사용할 수 있게 해 준다. 위의 그림처럼 한쪽은 마이크로 5핀으로 스마트폰에 연결하고 다른 한쪽은 USB를 꽂을 수 있도록 되어 있어서 USB..
C언어를 배우고 실무에 적용하던 무렵 대기업 전자 회사에서 운영체제를 담당하는 한 개발자를 만난 적 있었다. 기반 기술이 있고 경험도 많다고 자신 만만해하던 때였다. 어깨너머로 그의 작업 광경을 구경하는데 내 눈앞에 신기한 모습이 펼쳐졌다. 어찌 보면 가장 원시적이라 할 수 있는 vi 에디터로 프로그램에서 발생한 문제를 찾아 가는데, 이리저리 코드의 호출 그래프를 따라 움직이는 것이 환상적이었다. 뭔가 단축키를 누르는 것 같은데 그 원리는 도통 알 수 없었다. 그 사람을 붙들고 물어보니 CTags란 도구를 활용해서 프로그램을 분석하여 태그 정보를 만들어 놓으면 vi(엄밀히 말하면 vim) 에디터에서 해당 정보를 기반으로 함수나 변수가 정의된 곳으로 이동시켜주는 원리였다. 물론 비주얼 스튜디오나 이클립스를..
다양한 CPU, 다양한 운영체제의 홍수 속에서 자바와 .Net과 같은 플랫폼 독립성을 가진 체계가 점점 더 힘을 얻어가고 있는 형국이다. 운영체제나 CPU의 종류에 제한받지 않는 응용 프로그램의 개발 및 배포는 생산성뿐만 아니라 여러 가지 장점을 제공한다. 더구나 끊임없는 하드웨어 성능의 발전은 플랫폼 독립성 때문에 희생해야 하는 성능적인 단점조차도 문제가 되지 않게 해주고 있다. C언어로 작성한 프로그램을 C/C++ 컴파일러로 빌드하게 되면 윈도나 리눅스와 같은 특정 운영체제에서만 수행할 수 있는 기계어 코드가 만들어 진다. 이 기계어 코드는 특정 운영체제에서만 사용할 수 있을 뿐만 아니라 CPU의 제약도 받을 수밖에 없다. 그만큼 개발자의 입장에서는 다양한 플랫폼 환경을 감안해야만 한다. 그렇지만 자..
특정 폴더나 해당 폴더를 포함한 하위 폴더 전체를 검색해서 특정 문자열을 가진 파일과 그 위치를 찾아내는 것은 개발자뿐만 아니라 일반 사용자들에게 종종 발생하는 필요이다. 예를 들어 인기 있는 APM(Apache, PHP, MySQL) 패키지인 XAMPP에서 특정한 값을 조회하거나 설정하는 모든 파일을 찾고 싶은 경우이다. 소스 코드가 될 수도 있고 설정 파일일 수도 있지만 전체 파일을 뒤져서 해당 값을 가지고 있는 파일을 모두 찾고 각 파일 내 라인 위치를 알려준다면 너무도 작업이 쉬워질 것이다. 물론 검색 결과를 선택하면 바로 해당 파일을 조회나 편집할 수 있으면 금상첨화일 것이다. 바로 이런 기능을 수행할 수 있는 것이 노트패드++의 "파일에서 찾기" 기능이다. 물론 이런 기능을 전문적으로 수행하는..
대부분의 일반적인 응용 프로그램에서는 사용할 가능성이 거의 없지만, 약간 도구성의 프로그램을 개발하거나 직접 _paint 메시지를 받아서 이미지나 텍스트를 드로잉 하는 프로그램의 경우에 화면 크기를 벗어나는 영역에 대한 처리를 위해서는 스트롤 바 컨트롤을 적용하는 것이 사용자 편의성을 높여 주는 방법이라 할 수 있다. 비주얼 스튜디오 도구 상자에서는 수직 방향의 컨트롤을 위한 VScrollBar와 수평 방향의 컨트롤을 위한 HScrollBar 컨트롤을 제공하고 있으므로 해당 컨트롤을 폼에 삽입하여 처리한다. 폼에 스크롤바 컨트롤을 추가한 다음에 속성 창에서 Dock를 VScrollBar는 우측(Right)으로 붙도록, HScrollBar는 아래쪽(Bottom)으로 붙도록 설정해 준다. Dock 값을 Ri..
프로그램을 개발하다 보면 압축 상태의 자료를 읽거나, 아니면 자료를 압축 상태로 저장해야 하는 경우가 있다. 장기간 보관이나, 통신량 최소화, 보안 등의 필요와 연관되는 경우가 대부분이다. 이런 경우 외부 프로그램을 통해서 압축 및 압축 해제를 수행시키고 그 결과를 사용하는 방법도 있지만 프로그램의 융통성도 떨어지고 좀 더 효율성이 높은 프로그램을 제작하기에는 무리가 있다. 이런 경우 압축 라이브러리를 사용하면 프로그램의 융통성도 높이고 다양한 아이디어를 프로그램에 적용할 수 있다. 또한 .Net 전용 라이브러리를 사용하면 별도의 C/C++ 라이브러리를 사용하지 않아도 되므로 개발 및 배포 과정이 더 간편해진다. 비주얼 스튜디오에서 NuGet 도구를 활용하여 라이브러리를 설치할 수도 있겠으나 많은 경우 ..
다중 사용자 환경이 아닌 응용 프로그램의 데이터베이스로는 SQLite 만한 것이 없다. 윈도, 리눅스, 맥과 같은 범용 운영체제뿐만 아니라 안드로이드 등 수많은 환경에서 SQL 기반으로 프로그래밍을 할 수 있기 때문이다. 파일 시스템을 사용하는 소위 삽질을 하지 않더라도 SQL을 사용해서 가독성도 높이고 생산성과 유지보수 등에 있어 수많은 장점을 가진 프로그램을 개발할 수 있다. SQLite를 사용하는 프로그램은 프로그램 배포 과정에서 문제가 발생할 수 있다. 개발 환경에서는 문제없이 잘 동작했는데 막상 실제 수행 환경으로 가면 종종 문제가 발생하는 것이다. 대부분의 문제를 살펴보면 그 원인은 라이브러리에 있는데 수행 환경의 32비트/64비트 환경과 일치하는 라이브러리가 배포되지 않았기 때문이다. 32비..
C# 프로그래밍을 하다 보면 글자색이나 배경색을 선택할 때 위의 그림처럼 사용자 지정, 웹, 시스템으로 크게 나누어 미리 정의된 색상을 선택할 수 있다. 물론 각 색상에는 영문으로 색상 이름이 부여되어 있기도 하다. 통상 색상을 선택하거나 바꾸는 작업에는 별 문제가 없다. 그런데, 사용자로 하여금 특정 요소의 색상을 바꿀 수 있도록 기능을 제공하는 경우는 이야기가 조금 달라진다. 이런 기능을 제공할 때는 색상 선택, 선택한 색상 정보 저장, 저장한 색상 정보를 컨트롤에 적용하는 단계들이 개입하는데 각 단계별로 색상 정보를 어떻게 다룰지가 전체적인 기능 구현에 영향을 미친다. 색상을 선택하는 단계는 ColorDialog 컨트롤을 가져다 사용하면 간단히 해결된다고 생각할 수 있다. 물론 대화창 인스턴스의 C..
쿠알라룸푸르 공항(KLIA2)에서 환승하는 항공편을 고를 때 가장 고민되는 것은 역시 환승 대기 시간이다. 환승 시간을 짧게 하면 최대한 빠르게 목적지 갈 수 있다는 장점이 있지만 환승 전 항공기가 지연 출발하거나 연착이라도 하게 되면 100미터 달리기를 해야 하거나 비행기를 타지 못하는 상황을 대처해야 할 수도 있다. 반대로 환승 시간을 길게 잡으면 말레이시아가 무비자 입국을 할 수 있는 나라이므로 시내 여행을 다녀올 수 있는 장점이 있지만 시내 여행을 이미 다녀와서 별 흥미가 없거나 몸이 힘들거나 입국 심사 후 재출국 과정이 귀찮은 경우에는 공항 출국장에서 시간을 힘들게 보내야 할 수밖에 없다. 식당과 카페도 있고 패스트푸드점도 있어 수다 떠는 것으로 시간을 때울 수도 있고, 의자에서 그 흔한 노숙자..
토요일 오후 마하발리푸람까지 다녀온 우리는 일요일 일정을 정리하고 늦지 않게 잠자리에 들었다. 한참 단잠에 빠져 있는데 옆지기가 급하게 몸을 흔들며 잠을 깨우는 것이었다. 이상한 메일이 왔는데 이거 꼭 확인해야 될 것 같다고 하는 것이었다. 상황이 심각한 모양이었지만 비몽 사몽이라 정신을 차릴 수 없었다. 아뿔싸, 메일 내용은 한국으로 돌아가는 항공편이 결항되었다는 것이었다. 출발 하루 전에 취소라니...... 다른 항공편으로 예약할 수 있다거나 하는 내용은 없고 간단한 환불 방법만이 나열되어 있었다. 잠도 완전히 깨지 않았는데 황망한 사건이 벌어지고 만 것이었다. 밤 12시를 향해서 가는 시각에 어디다 물어볼 방법도 없었다. 한국에 돌아와서 찾아보니 결항으로 인한 환불은 처리 과정에서 다른 항공편으로 ..
마하발리푸람에서의 인상적인 관람을 끝낸 우리는 49번 고속도로를 타고 올라가다 보면 만나는 아이디얼 비치 리조트(Ideal Beach Resort)에서 저녁 식사를 하기로 했다. 주재원으로 근무하는 동생 말에 따르면 KFC와 같은 패스트푸드 점이 아닌 곳에서 마음 놓고 현지식을 먹을만한 곳이라고 했다. 사실 네팔 히말라야 트레킹 때는 자연스럽게 현지식을 어느 정도 먹었지만 인도에 와서는 숙소에서 동생이 구해 놓은 식재료로 음식을 해먹은 터라 거의 한국 음식만 먹은 상태였는데 인도 현지 음식을 경험할 수 있는 좋은 기회였다. 한국의 인도 전문 음식점에서 난을 비롯해서 탄두리 치킨, 카레 등을 먹은 경험은 있지만 아직 인도 현지 음식은 맛 본적이 없으니 기대 반 걱정 반이었다. 1인당 세금을 제외하고 550..
미완성 고푸람인 로야 고푸람(Roya gopuram, Rayar gopuram)을 지나 산등성이 따라 여정을 이어간다. 바라하 동굴 사원(Varaha Cave Temple)에 도착했다. 여기도 바위를 깎아 만든 사원으로 마하발리푸람에서 유일하게 아침, 저녁으로 의식이 열리는 장소라고 한다. 발랄한 인도 학생들이 사원을 가득 채웠다. 어릴 적 소풍이라고는 서울 주변의 왕릉을 가는 것이 전부였는데 이곳 아이들도 비슷한가 보다. 7세기 발라바 왕조에 의해 세워졌다. 바라하(Varaha)는 비슈누(Vishnu)의 10가지 화신(아바타) 중의 하나로 부조와 같이 멧돼지 머리를 하고 있는 신이다. 뱀의 모양을 하고 있는 악신 나가(Naga)에게서 아내를 구하는 장면이다. 여신 두르가(Durga)와 비슈누의 아내 락..
마하발리푸람(Mahabalipuram)은 첸나이에서 남쪽으로 60km 정도 떨어진 도시로 해안 사원을 비롯해서 바위를 깎아 만든 사원 등 여러 유적들이 유네스코 세계 유산으로 지정되어 있다. 우리는 해안 사원은 입장료도 비싸고 그리 볼만하지 않다는 의견에 따라 바위 산을 따라 남겨진 유적들을 보기로 했다. 7~8세기 팔라바(Pallava) 왕조 만들어진 힌두교 사원들이다. 위의 지도에서 처럼 가장 남쪽에서 시작하여 높지 않은 산 능선을 따라 북쪽으로 이동하는 방식이다. 우측은 벵골만의 바다가 위치하고 있고 좌측은 내륙이지만 버킹엄 운하(Buckingham Canal)가 첸나이 북쪽까지 총 796Km가 이어져 있는 독특한 지형을 가지고 있는 곳이다. 운하와 함께 커다란 호수가 있어서 마치 기다란 섬 같은 ..
사원의 도시 칸치푸람의 주요 힌두 사원을 돌아보는 여정은 칸치푸람역 인근에 있는 에캄바레스와라르 사원(Ekambareswarar Temple)으로 이어진다. 이 사원 앞쪽에도 실크 가게들이 줄지어 있었는데 인기있는 관광지이니 만큼 주차장도 마련되어 있었다. 물론 주차비를 내야 했다. 주차장에 도착한 우리는 차 안에서 미리 준비한 도시락으로 점심 식사를 했는데 젊은 기사 친구를 위해서도 정성스럽게 샌드위치를 준비해서 주었지만 한입 베어 물더니 더 이상 손을 대지 않았다. 구운 빵에 잼을 바른 평범한 것이긴 했지만 입맛에 맞지 않았는지 조금은 서운한 마음이 들었다. 나중에 이 이야기를 주재원 동생에게 했더니 괜한 짓을 했다고 한다. 주어도 고마워하지도 않는 것이 이곳 문화인 모양이었다. 먹든지 먹지 않든지 ..
사원의 도시 칸치푸람에서의 두 번째 방문 사원은 바라다라자 페루말(Varadharaja Perumal Temple) 이었다. 칸치푸람은 오랜 역사를 배경으로 사원의 도시로도 유명하지만 또 한 가지 유명한 것은 바로 실크인데 이 사원 입구로 가는 길 양쪽으로는 실크 판매점들이 줄지어 있었다. 지름신이 작동했다면 엄청났을 공간이다. 입구는 서쪽 고푸람(Gopuram) 이다. 바라다라자 페루말 사원의 입구인 서쪽 고푸람(Gopuram)의 모습이다. 양쪽으로 실크 가게들이 줄지어 있었다. 3세기에 처음 세워진 사원은 수많은 왕조를 거치면서 각 시대의 다양한 흔적들을 남겨 놓았다고 한다. 악을 제거하고 정의를 유지하는 평화의 신인 비슈누(Vishnu)를 기리는 사원이다. 이 거리로는 차량 진입이 되지 않기 때문에..
인도 첸나이 여행 중에서 앞선 이틀은 첸나이 시내를 중심으로 박물관이나 유적지, 해변을 다녔다면 오늘은 숙소가 위치해 있는 칸치푸람 시의 힌두 사원들을 방문하기로 했다. 그 첫 번째로 카막쉬 암만 사원(Kamakshi Amman Temple)으로 향한다. 카막쉬 암만 사원으로 가는 길에 만난 칸치푸람 기차역의 모습이다. 여기서 기차를 타면 동부 칸치푸람 역을 거쳐서 첸나이로 올라가는데 중간에 성 도마산 역과 우리가 잠시 다녀왔던 첸나이 에그모어 역을 거쳐서 종착지인 첸나이 비치 역까지 2시간 40분이나 걸린다고 한다. 칸치푸람은 칸치(Kanchi)라고도 하는데 사원의 도시라고 불릴 정도로 오래된 많은 사원을 가지고 있으며 위치는 첸나이에서 남쪽으로 72Km정도 떨어져 있다. 역사는 3세기 팔라바 왕조(P..
첸나이 시내를 둘러보는 마지막 여정은 성 도마 산(St. Thomas Mount National Shrine, http://www.stthomasmount.org/) 이었다. 도마 사도가 순교했다고 전해지는 곳으로 앞서 방문했던 리틀 마운트 교회에서 도마 사도가 기거하며 복음을 전했고, 그러다가 빅 마운트라 불리기도 하는 이곳으로 끌려와서 순교를 당했다고 한다. 성 도마 산 꼭대기에 위치한 성당으로 가는 길은 산 아래에서 걸어 올라가는 방법도 있지만 성당까지 길이 뚫려 있으므로 차량으로 이동하는 것도 문제가 없었다. 자동차로 언덕을 한참 오르다 보면 성당 조금 아래쪽에 주차장 근처에서 차량 진입을 막기도 하는 데 우리를 데려갔던 젊은 기사는 그 사람을 무시하고 그냥 차량을 위로 몰았다. 결국 성당 입구까..
조지타운을 떠난 우리는 도마 사도가 첸나이 있을 때 머물렀다는 리틀 마운트 교회로 향한다. 위의 지도에서 보듯이 북쪽으로 애드야(Adyar) 강이 흐르고 있고 교회는 작은 언덕에 자리하고 있었다. 교회 앞으로 자동차를 주차를 할 수 있는 작은 공간이 있고 계단을 올라가면 교회를 만날 수 있다. 많지 않은 계단을 올라 처음 만나는 풍경이다. 좌측으로는 성모 마리아 상이 있는 작은 폭포가 있고 교회 마당에는 모자간으로 보이는 멍멍이 두 마리가 그늘에 누워 오후의 평화로운 시간을 누리고 있다. 리틀 마운트 교회(Little Mount Church, SHRINE Apostle St. Thomas & Our Lady of Health, https://www.littlemountshrine.org, No. 66, ..
조지타운(George Town) 걷기의 마지막 여정은 마드라스 대법원 길 건너에 있는 아르메니아 교회(Armenian Church)였다. 수많은 사람들이 오가는 시장통 속에서 허름한 외관은 교회의 존재를 알아채기 어려울 정도다. 지금은 예배는 드려지지 않고 문화유산으로만 관리하고 있다고 한다. 1712년에 세워진 교회로 300년이 넘는 역사를 지닌 인도에서 가장 오래된 교회 중의 하나이다. 우측 끝에 1772년은 다시 지어진 연도를 의미한다. 09:00~14:30에 무료 개방한다. 아르메니아 교회 앞에서 바라본 거리 풍경. 길 이름도 아르메니아로(Armenian Street)다. 대법원을 오가는 사람들, 시장을 오가는 사람들로 분주하고 바로 우측에는 인도 음식점인 산기타(Sangeetha Fast Foo..
조지타운(George Town)은 17세기부터 조성되기 시작한 동네로 남쪽으로는 앞서 다녀온 성 조지 요새와 마드라스 대법원이 위치해 있고 북쪽으로는 상업 지역으로 여러 은행과 시장들이 위치하고 있다. 조지 타운을 블랙 타운(Black Town)으로도 불렀는데 이곳이 처음에는 염색 공과 방직공이 정착했었기 때문이라 한다. 20세기 초에 세워진 랜드마크 빌딩인 패리 빌딩이 있는 곳이라 하여 패리스 코너(Parry's Corner)라고 불리기도 한다. 패리 빌딩(Dare House)은 첸나이를 근거지로 한인도의 대표적인 대기업 중의 하나인 무루가파(Murugappa) 그룹의 본사 건물이다. 마드라스 대법원 길 건너에서 우측으로 길을 시작하여 시장 골목을 한 바퀴 돌기로 했다. 조지 타운 걷기에서 처음 만난 ..
성 조지 요새를 둘러본 다음에는 마드라스 대법원을 거쳐서 조지 타운을 걸을 예정이었다. 한국에서 여행 계획을 세울 당시만 해도 멀지 않은 거리니 만큼 걸어서 마드라스 대법원까지 가보자 하는 생각이었지만 사람이 다닐 수 있는 인도가 제대로 갖추어지지 않은 대로변을 따라 길을 찾아가는 게 만만치 않은 현실을 깨닫게 되었다. 요새를 나오면서 다른 방안을 찾아볼까 하는 생각이 있었는데 마침 성 조지 요새 앞쪽에는 여러 대의 오토 릭샤가 줄을 지어 손님을 기다리고 있었다. 자전거를 개조한 릭샤는 교통수단으로는 이미 퇴출된 모습이고, 일부 관광객에게만 독특한 경험을 제공할 뿐이다. 첸나이 시내를 돌아다니는 오토릭샤는 이미 단순히 모터사이클을 개조한 형태를 벗어나 전용 공장에서 생산되고 있는 모양이었다. 우버와 유사..
첸나이 마리나 비치 다음으로는 마리나 비치에서 조금만 올라가면 있는 성 조지 요새(Fort St. George)로 향했다. 성 조지 요새 앞에 있는 비치 로드는 상당히 큰 도로이고 자동차들이 쌩쌩 달리는 곳이라 자동차를 대충 세워 놓거나 정차하기에도 무리가 있는 곳이다. 위의 지도에 표시해 놓은 것처럼 성 조지 요새 길 건너편에는 널찍한 무료 주차장이 있으므로 이곳에 차를 세워두고, 주차장 바로 옆 공원도 둘러보고 주차장 앞에 있는 횡단보도를 통해 길을 건너서 성 조지 요새로 들어가면 된다. 이름은 요새라고 하지만 복잡한 입장 절차에 비해 볼 수 있거나 볼만한 것은 그리 많지 않다. 현재 이곳은 타밀나두 주의 국회를 비롯한 여러 공공 기관들이 입주해 있기 때문에 그만큼 경비가 삼엄하고 입장 절차도 복잡하..