강천보를 지난 길은 단현동 마을길을 따라 남쪽으로 내려간다. 화창하던 하늘에 구름들이 몰려오니 길이 쌓인 눈과 함께 분위기가 왠지 을씨년스럽다. 단현동 마을길을 거쳐온 길은 여강길 표식을 따라서 여강길 1코스의 이름인 "옛 나루터길"의 유래인 옛 나루터들을 찾아 강변으로 나간다. 강변 산책로를 따라 찾아가는 첫 나루터는 "부라우 나루터"이다. 콘크리트 둔덕이 아닌 자연스러운 강변도 좋고 남한강을 옆에 두며 걷는 강변 숲길도 마음에 든다. 부라우 나루터는 강가 바위가 붉어서 붙은 이름이고 예전에는 중요한 나루터 중의 하나였다고 하는데 지금은 팻말만 남아있고 강물은 유유히 흐른다. 고려 때부터 일제 강점기 이전까지만 해도 남한강은 수운의 핵심 물길로 세곡을 안전하게 나르고 목재와 도자기 등을 실은 배들이 저..
2025년을 보내면서 여주 여행을 다녀왔다. 여주를 가로질러 흐르는 남한강을 여강이라 불렀는데 여강 주위를 도는 길이다. 11코스까지 있고 300리, 140Km에 이른다고 한다. 필자는 여강 주위의 코스 위주로만 조금씩 걸을 예정이다. 시작은 1코스 옛나루터길로 여주역에서 경강선 전철을 내려서 여정을 시작할 수 있으니 좋았다. 시내에서 강변으로 나가서 강변을 걸으며 여주대교, 이호대교, 남한강교를 지나고 소금산을 거쳐 도리마을에 이르는 여정이다. 여주역 앞에 자리한 "사랑으로 가는길, 행복으로 가는 길" 조형물. 팔을 벌려 환영하는 모습, 손을 들어 인사하는 모습 가운데 선글라스를 쓴 견공이 여행가방을 끌고 가는 모습이 익살스럽다. 만남의 반가움이 가득한 인물들의 표정에서 사랑, 행복을 엿볼 수 있었다..
겨울비가 내리는 2025년 막바지 서울 추억 여행을 다녀왔다. 필자의 청춘의 추억이 떠다니는 장소들을 옆지기와 조용히 다녀왔다. 이전에는 삶의 한 복판에 있던 공간인데 이제는 추억 여행지가 되었다는 점이 감회가 새롭다. 대중교통을 타고 이곳저곳을 돌아다니지만 추억 여행이라는 의도 때문인지, 지리를 대충 알고 있는 까닭인지, 빡빡하지 않은 시간 계획 때문인지 마음은 충분히 가볍다. 추억 여행의 시작은 4호선 충무로역이다. 복도에서 우리나라의 영화계를 주름잡았던 배우들의 모습을 만나니 그때 그 시절의 추억이 새록새록 돋아난다. 복도를 지나 지상으로 올라가면 대한극장이 있었지만 66년 역사의 대한극장은 2024년에 문을 닫았다. 대한극장, 스카라 극장, 피카디리 극장, 단성사, 서울극장, 명보극장 등 극장 거..
2025년 끝자락, 겨울비가 그친 주말에 아산 나들이에 나섰다. 아산에 여러 가지 볼거리가 있지만 가볍게 걸을 수 있는 신정호 둘레길과 온양온천 전통시장을 다녀오기로 했다. 신정호는 1호선 전철 온양온천역에서 600번이나 610번을 타면 대중교통으로 어렵지 않게 닿을 수 있다. 호수 주변으로 무료 주차장이 여러 곳에 조성되어 있어서 자동차로 가기에도 부담이 없는 곳이다. 신정호는 남북으로 길게 뻗어 있는데 신정호 관광단지가 있는 북동쪽 주차장이 있는 곳에서 신정호 호수 둘레길 걷기를 시작한다. 한쪽으로는 메타세쿼이아가 쭉쭉 뻗어서 호수에 그림자를 드리우고 있고 날씨가 맑지 않아도 그 나름의 평화로운 분위기를 자아낸다. 깔끔하게 조성되어 있는 호수 둘레길은 약 4.8Km 정도이므로 가볍게 걸을 수 있는 ..
설봉산 걷기를 끝내고 카페에서 넉넉한 휴식 시간을 가지며 오후 시간을 구상해 보았는데 걸어서 갈 수 있는 이천시립박물관과 관고 전통 시장이 시야에 들어왔다. 많은 정보가 없는 상태에서 선택한 곳이었는데 두 군데 모두 상상 이상으로 좋았다. 설봉 공원 길을 따라 내려가면서 상단이 한옥 형식으로 지어진 이천 시립 박물관을 찾았다. 커피를 마시던 카페가 위치한 경기 도자 미술관의 전시를 둘러볼까 하는 생각도 있었다. "호모 세라미쿠스"라는 기획전도 열리고 있었는데 옆지기는 그리 마음에 닿지 않았던 모양이다. 그런데, 이천 시립 박물관은 이천의 역사뿐만 아니라 상설 전시 공간에서는 역사를 따라 다양한 도자기 전시를 만날 수 있었다. 상상 이상의 만족도 최상의 박물관이었다. 친절한 안내는 덤이었다. 입구에 "유네..
2025년의 가을 세찬 바람과 함께 흘러 떠나고 있다. 그 끝자락에서 경기도 이천으로 걷기 여행을 떠났다. 경강선 전철을 타면 닿을 수 있는 곳이다. 설봉산을 중심으로 걷는, 많이 힘들지도 너무 가볍지도 않은 여행이었다. 이천역에서 설봉산까지는 3Km 내외의 거리로 걸어갈 수도 있지만, 버스를 타기로 했다. 이천역에서 내리면 버스들이 기다리고 있는데 대부분의 버스가 설봉산 인근으로 간다고 해도 과언이 아니다. "설봉산 입구" 정류장에서 하차하면 된다. 10분 정도 걸린다. 관고 1교를 넘어서서 설봉호에서 내려오는 물길을 따라 올라가는 것으로 설봉산 걷기를 시작한다. 관고동이라는 이름이 특이한데 원래는 관아 뒤에 있는 마을이라고 해서 관후동이라 했고, 이후에 관아의 창고가 있는 마을이라고 관후동이라고 불..
■ 목차├ 1. SimpleToDoList 들어가기├ 2. 프로그램 동작 및 구조├ 3. 어노테이션과 코드 생성기├ 4. 프로그램 시작 및 종료와 JSON 파일 읽고 쓰기└ 5. 뷰와 아발로니아 요소들 1. SimpleToDoList 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 좋은 방법이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia...
■ 목차├ 1. DialogManagerSample 들어가기├ 2. 프로그램 동작 및 구조├ 3. 대화창 서비스 구현 방법└ 4. 뷰와 아발로니아 요소들 1. DialogManagerSample 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 좋은 방법이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia.Samples 에서 받을 수 있다. 커뮤..
■ 목차├ 1. MvvmDialogSample 들어가기├ 2. 프로그램 동작 및 구조├ 3. 두 가지 Interaction 구현 방법└ 4. 뷰와 아발로니아 요소들 1. MvvmDialogSample 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 좋은 방법이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia.Samples 에서 받을 수 있다...
■ 목차├ 1. ValueConversionSample 들어가기├ 2. 프로그램 동작 및 구조├ 3. 세 가지 변환기 구현 방법└ 4. 뷰와 아발로니아 요소들 1. ValueConversionSample 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 좋은 방법이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia.Samples 에서 받을 수 있..
■ 목차├ 1. ValidationSample 들어가기├ 2. 프로그램 동작 및 구조├ 3. UI 항목 검증 세 가지 방법└ 4. 뷰와 아발로니아 요소들 1. ValidationSample 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia.Samples 에서 받을 수 있다. 커뮤니티에서 발굴해 놓..
■ 목차├ 1. CommandSample 들어가기├ 2. 프로그램 동작 및 구조├ 3. 서브 뷰 내포시키기├ 4. 뷰와 아발로니아 요소들└ 5. ReactiveUI와 CommunityToolkit.Mvvm 1. CommandSample 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia.Sample..
■ 목차├ 1. BasicMvvmSample 들어가기├ 2. 프로그램 동작 및 구조├ 3. 뷰와 아발로니아 요소들└ 4. ReactiveUI와 MVVM 패턴 1. BasicMvvmSample 들어가기크로스플랫폼 닷넷 UI 프레임워크인 아바로니아 맛보기를 넘어서서 본격적인 활용에 들어가기 위한 학습 방법으로 필자는 예제 프로그램 리뷰를 하나씩 수행하기로 했다. 기술 자료가 넉넉하고, 비주얼스튜디오의 WPF 디자이너와 같은 도구가 있다면 넘어갈 수도 있는 문제겠지만 지금까지 접하지 않았던 새로운 도구와 친숙해지는 방법은 역시 예제를 통하는 것이 아닌가 싶다. 공식 예제 코드는 깃허브 https://github.com/AvaloniaUI/Avalonia.Samples 에서 받을 수 있다. 커뮤니티에서 발굴해 ..
닷넷 기반의 크로스 플랫폼 UI인 아발로니아를 VS2022에서 맛보기로 했다. 아발로니아 UI 사이트에서는 윈도우 플랫폼에서는 VS2022를 추천하고 있고 맥이나 리눅스에서는 젯브레인 라이더를 추천하고 있으니, 일단 윈도우에서 추천하는 VS2022로 아발로니아 UI 개발을 맛보기로 했다. VS2022 커뮤니티 버전을 설치하고 위의 그림과 같이 "Avalonia for Visual Studio"를 설치한다. 아발로니아 확장을 정상적으로 설치하면 새 프로젝트 만들기 화면에서 "avalonia"를 검색하면 위의 그림처럼 여러 연관 템플릿을 확인할 수 있다. "Avalonia .NET MVVM App"을 선택한다. 프로젝트 폴더를 선택하고 [다음]을 누른다. 닷넷 코어 버전을 프레임워크에서 선택하고 나머지는 ..
VS Code에서 아발로니아 UI(AvaloniaUI, "아발로니아 UI에 대한 고찰" 참조)를 응용을 빌드하고 실행하는 과정을 수행하려면 일단 닷넷 SDK와 아발로니아 프로젝트 템플릿을 준비해야 한다. 닷넷 SDK는 위의 그림처럼 명령창을 열어서 "dotnet --list-sdks"로 간단히 확인할 수 있으며("설치된 닷넷 SDK와 닷넷 런타임을 확인하기" 참조), 아발로니아 프로젝트 템플릿도 "dotnet new install Avalonia.Templates" 명령으로 간편하게 설치할 수 있다. 설치 결과를 보면 많이 사용하는 "Avalonia .NET App", "Avalonia .NET MVVM App" 템플릿 이외에도 여러 템플릿이 있음을 확인할 수 있다. 닷넷 SDK 버전은 "Avalonia..
프로그램 개발 후 필요가 있을 때 일시적으로 사용하는 프로그램이 아니라면 시간이 흐름에 따라 문제가 발생하는지 꼭 확인할 필요가 있다. Long Run Test, Aging Test와 연관된다고 할 수 있다. 코어 덤프로 프로그램이 죽는다면 어디가 문제인지 명확하지만 메모리 누출, 핸들 누출등이 있다면 조금은 난감한 상황이 될 수 있다. 재현이 빠르게 될 수 있다면 어떻게든 문제를 찾을 수 있겠지만 장시간 수행 시켜야 알 수 있다면 정말 난감할 수 있다. 그럼에도 메모리 누출, 핸들 누출, CPU 과점 등은 얼마간의 모니터링으로 그 추세를 판단할 수 있다. 본 포스팅은 윈도우의 성능 모니터를 통해서 간편하게 프로그램과 연관된 시스템 자원 정보를 로그로 남기는 과정을 다루고자 한다. 윈도우+R 단축키로 p..
닷넷 기반의 크로스플랫폼 프로그램을 개발하려다 보니 자연스레 닷넷 SDK와 닷넷 코어 또는 닷넷 런타임이라는 용어를 자주 접하게 된다. 윈도우 전용이라 할 수 있는 닷넷 프레임워크는 "설치된 닷넷 프레임워크 버전 확인하기"에서와 같이 조금 복잡하게 확인하지만 닷넷 SDK와 닷넷 런타임은 조금 더 간단하게 확인할 수 있다. 그리고 명령어도 크로스플랫폼이다. 윈도우+r 단축키로 실행창에서 cmd를 구동시켜서 "dotnet --info" 명령을 수행하면 위의 그림처럼 설치된 SDK와 런타임을 한 번에 확인할 수 있다. 리눅스에서는 콘솔창에서 해당 명령을 수행하면 된다. 위의 그림은 우분투에서 "dotnet --info" 명령을 수행한 결과이다. SDK나 런타임 설치 내역만 조회하려면 다음의 명령을 사용한다..
프로그램 개발 및 유지 보수의 생산성을 높이고, 협업으로 시너지를 높일 수 있는 아키텍처는 지속적으로 개발되어 왔는데 대표적인 예들은 아래와 같다.MVC (Model, View, Controller)MVP (Model, View, Presenter)MVI (Model, View, Intent)MVVM (Model, View, View Model)이번에 다룰 MVVM은 MVC에서 파생된 것으로 차이점이라면 MVC 모델에서는 Controller가 입력을 받는다면 MVVM에서는 View에서 입력을 받는다. 무엇보다 WPF 응용에서 가장 널리 사용하는 프로그래밍 패턴이다. 물론 크로스플랫폼 UI인 아발론 UI에서도 MVVM을 채용하고 있다. MVVM은 각 요소를 독립적으로 개발 및 테스트를 진행할 수 있도록 만..
VSCode의 인기는 나날로 늘어가고 있는 모양새다. 이런저런 용도로 개발자에게 큰 도움을 주는 도구가 되어 가고 있다. 통합 개발 환경에서도 텍스트 편집기에서도 소스코드를 열면 언어별 문법 요소에 따라 색상을 구분해서 출력해 주는데 이런 기능을 Syntax Highlighting이라 부른다. 그런데, 개인적인 취향 또는 특정한 필요에 따라서 이 색상을 변경할 경우가 있다, 이번 포스팅은 문법 구분 색상을 바꾸는 방법을 간단히 메모한다. 파일> 기본 설정> 설정 메뉴 또는 Ctrl+, 단축키로 설정창을 연다. 설정 창에서 확장> CSS 언어 기능> JSON을 선택하고 우측에서 [settings.json에서 편집]을 클릭한다. 편집창이 열리면 위의 그림처럼 "editor.tokenColorCustomiza..
필자가 아날로니아 UI를 사용하는 크로스플랫폼 앱을 개발하기 위한 사전 단계로 WPF 프로그램을 만드는 과정을 밟아 보고자 한다. 비주얼스튜디오 2019를 사용하고 있는 관계로 비주얼스튜디오를 기반으로 프로그램을 만들어 본다. Window+R 단축키로 "devenv"를 입력하여 비주얼스튜디오 2019를 실행시킨다. [새 프로젝트 만들기]를 선택하고 위의 그림처럼 템플릿 검색창에 wpf를 입력하면 연관된 다양한 템플릿을 만날 수 있는데 C# 기반의 닷넷 코어를 사용하는 템플릿을 선택하고 [다음]을 누른다. 프로젝트 구성은 원하는 폴더와 이름으로 적절히 입력한 다음에 [다음]으로 진행한다. 끝으로 적용할 닷넷 버전을 선택하고 [만들기]를 클릭하면 지정한 템플릿으로 프로그램을 생성한다. 프로젝트가 생성되면 위..
C# 닷넷 환경에서 개발한 프로그램을 윈도우나 리눅스, 맥에 그대로 실행하는 데 있어 가장 큰 장애가 되는 것은 UI 프레임워크이다. WinForms 기반으로 뚝딱뚝딱 프로그램을 만들었던 경험이 있던 개발자가 닷넷 환경을 생각하며 리눅스에서 프로그램을 실행하면 아주 간단한 프로그램이야 별 차이 없이 동작하는 것처럼 보이기도 하지만 UI가 조금이라고 복잡해지고 깊이가 있으면 화면이 깨지거나 아예 실행이 실패하기도 한다. 그래서, 크로스플랫폼을 지원하는 UI 프레임워크를 찾아보다가 아발로니아 UI를 만나게 되었다. 크로스플랫폼을 바이너리 레벨, 즉, 런타임 레벨로 지원하는 것은 아니다. 하나의 소스 코드로 여러 가지 플랫폼에서 구동하는 프로그램을 작성하고자 하는 개발자에게 적절한 솔루션이다. 소스 코드는..
CD-ROM이 있다면 간단히 해결될 일이지만 USB 스틱에 쓰기 금지를 설정하는 작업이 그리 녹록지 않았다. 일부 제품에는 SD 카드처럼 쓰기 방지 스위치가 있어서 Lock 위치로 스위치를 옮겨 놓으면 쓰기 방지를 간단히 수행할 수 있다. 이러한 Lock 스위치가 없는 경우에는 소프트웨어적인 방법을 적용해야 하는데 첫 번째 방법은 위의 그림처럼 윈도우에 내장된 diskpart 프로그램으로 드라이브에 읽기 전용 속성을 설정하는 것이다. 이 방법을 사용하면 내 컴퓨터에서는 USB 메모리에 대한 읽기 전용 속성이 잘 동작하지만 다른 컴퓨터에서는 동작하지 않는 문제점이 있다. 다른 컴퓨터에서도 읽기 전용 속성이 적용되도록 하려면 다른 방법을 적용해야 한다. 일단 위의 그림처럼 USB 메모리를 FAT가 아니라 ..
프로그램으로 문자를 보내는 방법은 어떤 서비스 업체를 선택하는가로 시작한다. 네이버와 같은 대형 포털 업체를 사용할 수도 있고 중소 전문 업체를 이용할 수도 있다. 필자의 경우에는 깃허브에 C# 예제 코드와 라이브러리를 공개하고 있는 CoolSMS를 이용하기로 했다. 회원 가입 시점에서 개인 아이디로 가입할지 사업자 계정을 만들지를 묻는다. 당연히 사업자 계정인 경우에는 대량 발송이나 멤버 관리가 필요할 것으로 보인다. 회원 가입이 끝나면 자동으로 위의 그림처럼 300원을 충전해 주므로 건당 20원씩 생각하면 개발 중 15건의 테스트가 가능하다. 개발을 위해서 꼭 필요한 것은 API Key로 [새로운 API KEY] 버튼을 눌러서 키를 발급받는다. 발급 과정에서 IP 대역을 지정하여 특정한 IP대역에..
C#. Net 코드를 작성하며 이메일을 전송하는 코드를 메모한다. WinForm 형식의 프로그램을 작성하는 사례로 위의 그림처럼 발신자의 이메일과 비밀번호, 그리고 발신자의 이메일이 등록되어 있는 SMTP 서버의 정보를 입력받아 지정한 수신자 이메일로 테스트 메일을 전송한다. 간편하게 메일을 전송하려면 코드에 "using System.Net.Mail;"를 포함한다. var mailMessage = new MailMessage{ From = new MailAddress(email_send.Text), Subject = "테스트 메일", Body = "테스트 메일입니다확인했습니다", IsBodyHtml = true};mailMessage.To.Add(email_recv.Text);bool send_ok ..
string conditions = "ThisisaTestData";string[] condary = conditions.Split(new string[] { "" }, StringSplitOptions.RemoveEmptyEntries);foreach (var itm in condary){ tbl_condition.Rows.Add(itm);} C#에서 배열은 리스트나 사전 타입과 달리 항목의 개수가 고정된 데이터 형식이다. 위의 예제 코드에서는 conditions라는 문자열을 Split 함수를 사용하여 문자열 구분자인 ""로 잘라서 condary라는 문자열 배열에 저장하는 작업을 수행했는데 그 결과 배열은 5개의 항목 개수를 가지게 되었다. 이 상태에서 항목을 추가하려면 리스트의 경우에는 add 함수..
2023년 겨울, 남파랑길 걷기를 끝내고 바로 이어서 시작했던 서해랑길 걷기가 드디어 2025년 여름에 끝났다. 때로는 매주 집을 떠나기도 하고, 때로는 하루만 다녀오기도 했다. 거의 폐허같은 모텔에서 하룻밤을 보내야 했던 기억도 있고, 저렴한 가격에도 불구하고 감탄이 나오던 숙소도 있었다. 폭설에 시내버스 운행이 전면 중단된 상황에서 택시로 시작점까지 이동해야 했던 경험과 기차표를 구하지 못해서 발을 동동 구르던 때도 있었다. 걷기 여행은 역시 많은 추억을 남긴다는 고백을 자연스레 하게 된다. 서해랑길 걷기 기록을 간단히 정리해 본다. ■ 전라남도 구간서해랑길 1코스 - 땅끝탑에서 송호리 해수욕장서해랑길 1코스 - 송호리 해수욕장에서 송지저수지서해랑길 1코스 - 송지저수지에서 송지면사무소서해랑길 2코스..
강화군 하점면의 간척지 둑방길을 따라서 북쪽으로 올라온 서해랑길은 창후항을 출발하여 서해랑길 걷기의 마지막 코스를 시작한다. 창후로 도로 인근을 따라서 북쪽으로 이동하는 길은 강화군의 북쪽 끝자락인 양사면으로 진입한다. 교동대교 직전에서 우회전하여 수로를 따라서 동쪽으로 이동하는 길은 송산삼거리에서 마을길로 진입하여 서사로 도로를 따라 교산리를 지난다. 강화교산교회를 지나서 작은 고개를 하나 넘으면 양사면 읍내이고 이곳에서 성덕산 오르기를 시작한다. 215미터의 정상부를 지나면 이후로는 강화평화전망대까지 완만한 내리막 길이 이어진다. 이른 새벽부터 서둘러 102코스를 걸은 덕택에 창후항에 오전 9시에 도착하여 여유 있게 백반으로 아침 식사도 할 수 있었다. 이슬이 마르지 않은 풀밭을 걸어서 신발은 물에 ..
드디어 서해랑길 걷기의 마지막날이다. 2023년 겨울에 걷기 시작했던 서해랑길의 긴 여정을 2025년 여름에 끝낸다. 오늘은 102코스와 마지막 103코스를 이어서 걸을 예정이다. 어제 여행의 고비를 넘어선 옆지기를 위함도 있지만 103코스까지 무리 없이 걷기 위해서 102코스 초반의 산행은 생략하고 해안길을 돌아서 가기로 했다. 해안서로 해안도로를 따라가는 길은 석모대교 앞을 지나서 황청리까지 이어진다. 이후로는 황청포구로 도로를 따라서 북쪽으로 이동하다가 중촌마을에서 원래의 서해랑길과 합류하여 해안으로 나간다. 창후항까지 간척지의 둑방길을 걷는 여정으로 중간에 계룡돈대, 망월돈대를 차례로 지난다. 102코스는 외포리 강화파출소 앞에서 시작한다. 해안서로 도로를 따라서 서쪽으로 이동한다. 외포항 젓갈 ..
곤릉에서 출발하는 101코스는 원래는 진강산 아랫자락을 걸으며 곤릉, 석릉, 가릉을 차례로 지나고 능내리에서 마을 뒷산으로 양도면 사무소 인근을 우회하여 하우고개를 넘는다. 그런데, 100코스를 끝낸 시점이 폭염이 절정인 정오 시간대이고 옆지기의 몸 상태가 너무 좋지 않아서 우리는 능내리 인근까지는 버스로 이동하고 이후로는 강화남로 도로를 따라서 하우고개를 넘기로 했다. 하우고개를 넘으면 건평리 마을길로 들어가서 해안으로 나가고 건평리 양지삼거리 이후로는 해안도로를 따라 걸으며 외포항에 닿는다. 서해랑길 101코스는 곤릉 버스 정류장에서 시작하여 마을 안으로 들어가 진강산 자락으로 들어가는 것으로 시작한다. 그런데, 100코스를 끝낸 옆지기의 몸상태가 상당히 좋지 않다. 집을 떠나와서 폭염 속 걷기가 5..