cflags와 libs의 정보를 보는 방법 - pkg-config

공대생의 팁 2018. 12. 11. 00:14


 종종 gcc 혹은 g++를 사용하여 빌드를 할 때, 이러한 옵션을 사용하는 경우가 있습니다.


$ g++ -o result example.cc -Llibs


 위와 같이 자신의 환경에서 사용된 라이브러리를 사용하기 위해서는 위의 -Llibs를 알아야 할 필요가 있습니다. 이를 알아낼 수 있는 방법으로 pkg-config를 사용하는 방법이 있습니다.

 pkg-config를 사용하여 자신의 컴퓨터에 설치된 라이브러리들을 확인할 수 있습니다. 다음과 같은 명령어를 입력해주시면 되겠습니다.


$ pkg-config  --list-all


 다음으로 자신이 확인해보고자 하는 cflag와 lib를 확인해보도록 하겠습니다. Vision 라이브러리로 가장 많이 사용되는 OpenCV를 기준으로 설명해보도록 하겠습니다.


$ pkg-config opencv --cflags


>> -I/usr/include/opencv


$ pkg-config opencv --libs



위에서 나오는 출력결과를 이용하여 gcc 혹은 g++의 컴파일 옵션으로 위의 libs를 추가해주신다면 컴파일이 정상적으로 동작하는 것을 확인하실 수 있습니다.

300x250

경의선 남북철도 시험운행-10년만에 다시 철마가 달리다(2) [2018.11.30]


 지난 포스팅에 이어 서울역을 출발한 남북철도 시험운행 열차가 임진강역에 도착한 후 다시 도라산역으로 향하기까지의 사진들을 모아보았습니다.



 앞으로 시험운행 열차가 운행될 경로의 모습입니다. 이번에는 동해선도 확인하는 일정도 있어 북한의 최서단과 최동단을 주행하는 역대급의 조사가 될 것으로 예상됩니다. 이 일정의 첫 걸음이라 할 수 있는 도라산역까지의 이동기는 여러 면에서 상당히 의미있는 장면이라 하겠습니다.





11월 30일 오전 7시 40분경 열차가 들어오기 약 10분전의 모습입니다.



방북인원을 확인하기 위해 헌병들이 임진강역 앞에서 대기중인 모습도 보입니다.



열차가 들어오는 모습을 잡기 위하여 임진강역 인근의 건널목으로 자리를 옮깁니다.



건널목에서 바라본 임진강역의 모습입니다.

다리 위에는 취재진들의 차들이 눈에 들어옵니다.



차를 가져온다면 다리 위에서 기차가 들어오는 모습을 담는 것도 꽤 괜찮은 장면이 나올 것 같군요.



이 곳 건널목 주변의 분위기는 새벽녘의 시골 모습입니다.



서울역 방향을 바라본 모습입니다.



임진각 주변이 관광지라고는 하지만 확실히 주변에 인적은 드문 편입니다.



12월을 앞둔 농촌의 모습은 이제 한겨울을 보낼 준비를 합니다.



그러고보니 요즘은 건널목을 보기 많이 어려워졌군요.

철도의 고속화에 있어서는 건널목은 위험요소 중 하나이기 때문이지요.



어느덧 해가 떠오르기 시작합니다.



자세히 보니 건너편 다리 위에도 기차를 기다리는 사람이 얼핏 보입니다.



어느덧 건널목 차단기가 내려옵니다. 곧 열차가 들어온다는 의미이지요.



저 멀리 서울에서 출발한 시험운행 열차가 나타나기 시작합니다.



최근까지 경의선에서는 디젤동차만 운행되어 기관차가 들어오는건 정말 흔치 않은 장면이지요.



어느덧 기차는 작은 다리를 건너기 시작합니다.



저 멀리 다리 인근에서 사진을 담으신 분은 좋은 사진을 담으셨으려나요




















그렇게 열차는 임진강역에 도착합니다.



객차 내부는 신분 확인 절차가 진행중입니다.



승객들의 신분 확인을 위해 역 내 진입은 임시로 폐쇄되어 있습니다.



헌병들이 신분조사를 위해 대기를 하고 있습니다.



임진강역의 승강장 길이는 꽤 길군요. 통일 이후에도 요긴하게 사용할 수 있을 듯 보입니다.



역무원 또한 업무를 위해 바빠보입니다.



이 추운 날씨에 헌병분들이 고생이 많으십니다.



평양행 열차가 개통된다면 이 곳 임진강역에도 무궁화호가 운행될 날이 오겠지요?



도라산역으로 가기 위해 대기중인 기관차









평소같으면 DMZ Train이 위치할 자리에 디젤기관차가 있으니 정말 흔치 않은 모습입니다.



어느덧 열차는 임진각을 떠납니다.



그렇게 열차는 임진강철교를 건넙니다.

이제 열차는 도라산역에 도착하겠지요



이제 열차는 눈에 보이지 않을 정도로 멀리 떠나갑니다.



경의선에 통근열차가 사라진 이후로 이 곳은 DMZ Train만 운행되고 있습니다.



열차가 떠난 임진강역은 다시 평소대로 고요한 모습입니다.

그렇게 임진강역은 통일시대를 대비하기 위해 하염없이 기다립니다.




갑작스레 새로운 국면을 맞이하게 된 남북관계가 좀 더 진전되어 서로의 지역을 기차여행할 수 있는 그날을 간절히 기원해봅니다!


300x250

경의선 남북철도 시험운행-10년만에 다시 철마가 달리다(1) [2018.11.30]


 지난 2008년 12월 1일 이후로 남북관계 경색으로 인해 열차의 왕래는 사실상 끊기고 말았습니다. 그 사이 천안함이 침몰하고 연평도가 포격을 맞는 등 남과 북의 거리는 점점 더 멀어져가는 것만 같아 보였습니다.


 불과 작년까지 미사일을 쏘며 전 세계에 도발을 일삼았던 북한이 지난 2018년 평창 동계올림픽을 계기로 급속도로 남북관계에 훈풍이 불어오게 되면서 근 10년만에 다시 남북철도 시험운행을 하게 됨으로서 한반도의 전쟁 분위기는 확실히 작년에 비해 많이 누그러들었습니다.


 마침내 대북 제재가 진행되는 와중에 남북철도 시험운행에 대해 제재 면제를 받게 되었습니다. 2018년 11월 30일 부터 18일간 서울역을 출발한 열차는 평양을 거쳐 신의주에 도착한 후 다시 평양으로 돌아온 다음 동해선 구간인 두만강 구간을 시험운행 한 후 돌아오는 임무를 맡게 되었습니다.


 이번 포스팅에서는 남북철도 시험운행을 나서는 열차의 서울을 출발하여 임진강역에 도착하기 까지의 모습을 사진으로 담아보았습니다.





새벽 4시 10분 즈음 동대구발 서울행 열차를 타고 서울역에 도착하였습니다.

보아하니 계단을 다시 건설하려는 모양입니다.



항상 사람들로 붐빈 서울역을 보아왔던 저에게

인기척이 드문드문 있는 한가한 서울역의 모습은 황량하기만 합니다.



매표소 바로 옆에 있던 우리은행 환전사무소.

항상 여행 직전 이 곳에서 환전을 하였던 기억이 어렴풋이 납니다.



다음주 12월 6일부터 서울역 환전센터가 문을 닫는다는 안타까운 소식을 접하게 되었습니다.

이제 남은 곳은 공항철도 급행 매표소 층에 위치한 국민은행밖에 안남았군요.



새벽 5시 즈음 승강장에서 디젤기관차의 우렁찬 소리를 듣고 승강장으로 나가보았더니

남북철도 시험운행 열차를 끌고온 기관차를 다시 앞으로 돌려놓는 과정이 진행되던 중이었습니다.



시험운행 열차는 마침 기관차 교체가 진행되던 중이었습니다.

바로 옆에 주박중인 KTX산천의 모습도 눈에 띕니다.

언젠간 평양행 KTX도 등장할 날이 오겠지요?



열차의 맨 앞부분은 유조차가 연결되어 있습니다.

이 연료를 반입하는 점이 대북재제에 걸리던 점이었는데 이 것이 면제됨으로서 이번 시험운행이 가능해진 것입니다.



유조차 뒤에는 발전차가 연결되어 있었습니다.

기관차 바로 뒤에 연결되어야 사용이 가능한 줄 알았더니 연료만 연결될 수 있다면 위치는 큰 문제가 없는 듯 보입니다.



발전차 뒤에는 무궁화호 객차가 연결되어 있습니다.



'남북철도 현지공동조사 착수'

북녘땅에서 이 문구를 붙여놓고 달릴 예정인 듯 보입니다.



열차 내부는 그냥 평범한 무궁화호의 모습이었습니다.



열차가 들어오자 기자들이 분주히 열차를 촬영하고 있습니다.



객차의 행선판에는 '서울 ↔ 신의주'로 표기되어 있습니다.

압록강행도 마련되어 있으려나요 ㅎㅎ



'철마가 달린다! 평와번영의 미래로!"

아마도 이 차는 침식차일까요?



침식차 바로 뒤에는 물을 싣고 이동하기 위한 유개화차가 연결되어 있습니다.



침식차 안에는 라면박스가 가득 쌓여있습니다.

설마 18일동안 라면만 먹는건 아니겠지요? ㄷㄷ



열차의 가장 뒷부분의 모습입니다.



다시 가장 앞부분에 있던 유조차에 접근합니다.



발전차 안에도 무언가가 가득 실려있습니다.

아마도 침구류인 것으로 추정됩니다.



무궁화호 객차 뒤에는 침대차가 연결되어 있습니다.



사실 존재만으로만 알고 있었던 침대차였는데 실물로 보는건 이번이 처음입니다.

아마 창이 뚫린 부분이 두 개로 나누어진 것으로 보아 2층 침대로 구성되어 있는 것으로 예샹해 봅니다.



방금전 지나갔던 기관차가 연결을 위해 천천히 뒤로 접근하고 있습니다.



북녘땅을 달릴 열차의 기관차를 연결하는 업무를 맡인 자부심은 과연 어떤 기분일까요?



어느덧 기관차가 접근합니다.



기관차가 가까워지자 담당자 분도 거리를 유지하며 기관차를 유도합니다.



기관차는 조금씩 유조차에 가까워집니다.



드디어 기관차와 유조차가 연결되었습니다.



이제 기관차는 연결 후 달릴 준비만 남았습니다.



시험운행 열차의 전체적인 모습입니다. 유조차와 객차의 조합이 조금은 낮설기만 합니다.



발전차를 자세히 보니 정말 다양한 물건들을 실어둔 것으로 보입니다.



줄발 시간이 다가올수록 직원들의 발길은 점점 바빠지기 시작합니다.



현재 DMZ열차와 서울역발 문산행 열차를 제외한 모든 열차는 남녘을 향해 달려가고 있습니다.

멀지 않은 미래에 북녘을 달리는 열차를 타고 평양에 갈 날은 과연 올까요?



앞으로 행선지에 평양행이 새겨질 날이 오기를 간절히 기다려봅니다.



침대차의 문이 열려있어 안을 살짝 보았는데 확실히 무궁화호 객차와는 다릅니다.



잠시후 탑승이 시작될 예정인지 기자들이 하나둘 승강장으로 모여듭니다.



지금은 이렇게 신의주행 임시 행선판이 걸려있지만

평양행 열차가 정식 행선판을 달고 달릴 그 날을 기대해봅니다.



이제 기관사님도 열차운행을 위해 기관차에 오릅니다.



과연 전광판에는 이 열차를 어떻게 표현했을가요?



중요한 행사기 진행되려는지 기자들이 한 곳에 모여있습니다.



타는곳 11번의 행선지는 부산,목포,강릉 등을 가르키고 있습니다.

도라산행, 아니 신의주나 단둥행 행선지도 볼 날이 올 것이라 언젠가는 기대해봅니다.


 다음 포스팅에서 남북철도 시험운행 열차의 임진강역 경유기를 다루도록 하겠습니다.

300x250

[SLAM] Odometry의 정의

공대생의 팁 2018. 11. 23. 15:58


 Odometry란 단어 그대로 주행기록계라는 의미로서 엔코더를 통한 회전수와 IMU(관성 측정 장비)로 기울기 등을 측정함으로서 움직이고 있는 사물의 위치를 측정하는 방법을 의미합니다.


 Odometry는 ROS에서 odom frame으로 구현되며 위에서 설명한 엔코더 혹은 IMU를 사용하여 위치를 추정할 수 있습니다. 부득이하게 Visual SLAM을 사용하여 위의 센서를 사용하지 못할 경우 카메라를 통해 관측한 값을 토대로 Odom을 추정하는 방법을 사용할 수도 있습니다.




 Odom frame을 설계함에 있에 일반적으로 위와 같은 구조로 Frame을 설계합니다. map 은 여러 개의 odom을 가질 수 있으나 odom은 단 하나의 map을 가질 수 있습니다. 즉 1 개의 map 위에 다수의 로봇이 존재할 경우 odom은 로봇의 개수 만큼 존재한다고 할 수 있겠습니다.


earth

 earth frame은 여러 대의 로봇들이 서로 다른 map 위에서 존재할 수 있도록 해줍니다. 로봇들이 한 빌딩의 각 층에 위치하여 서로 다른 map을 가지고 있을 경우 earth frame은 모든 map frame을 통해 각 층의 정보를 가질 수 있게 해줍니다.


map

 map frame은 world fixed frame으로서 earth frame에 고정된 프레임이라 할 수 있습니다.  odom frame이 움직일 때 drift가 발생하여 로봇의 위치가 미세하게 바뀌는 경우가 발생합니다. map frame은 연속적이지 않기 때문에 시뮬레이션을 돌릴 때 마치 로봇이 갑자기 순간이동 한 듯 움직이는 경우를 볼 수 있습니다. 이러한 단점이 있지만 map frame은 장기간 global reference에는 매우 유용한 frame입니다.


odom

 odom frame은 world fixed frame으로서 또한 earth frame에 고정된 프레임이라 할 수 있습니다. 로봇의 위치가 drift로 인해 odom frame이 장기간 global reference에서는 사용에 있어 의미가 없을 수 있으나 odom frame은 로봇의 위치를 연속적으로 나타낼 수 있어 로봇이 갑자기 순간이동을 하는 듯한 모습을 보이지 않고 부드럽게 움직일 수 있도록 해줍니다.

 즉 odom frame은 단기간 local reference에서 로봇의 위치를 정확하게 파악하는데는 매우 유용한 frame이라 할 수 있겠습니다.


base_link

 base_link frame은 로봇 자체의 위치를 나타내는 frame이라 할 수 있습니다. base_link frame의 위치를 odom 혹은 map frame을 사용하여 위치를 추정하는 방법으로 로봇의 위치를 파악할 수 있습니다.

300x250

Stability-Plasticity dilemma(안정성-가소성 딜레마)

공대생의 팁 2018. 11. 22. 01:46


 인공지능의 방식 중 하나인 Neural Network에 대해 공부하다 보니 종종 자세히 알아보고자 하는 용어들이 나와 나올 때 마다 조금씩 정리를 해두고자 합니다.

 Neural Network에서 흔히 쓰는 용어들 중 하나인 Stability-Plasticity dilemma(안정성-가소성 딜레마)란 인공신경망이 기존에 학습된 내용을 유지하면서도 새로운 내용을 학습해야할 때 발생하는 딜레마라 할 수 있겠습니다. 먼저 아래의 그림을 통해 간단히 설명해 보도록 하겠습니다.



그림1. Strong version of the synaptic stability hypothesis

그림2. Weaker version of the synaptic stability hypothesis


 그림1과 그림2는 모두 Neural Network의 Stability(안정성)에 중점을 둔 것을 나타낸 것입니다. 그 중 첫 번째의 경우 왼쪽에서 오른쪽으로 시간이 지남에도 각 Node 사이의 Weight(가중치)가 변하지 않고 유지됨을 알 수 있습니다.

 반면 두 번째의 경우 몇몇 Node와 Weight가 약해졌다가 이후 다시 원상태로 돌아오는 모습을 보이고 있습니다. 이러한 Neural Network의 경향이 Stability라 할 수 있겠습니다.


그림3. Synaptic plasticity hypothesis


반면, Neural Network의 Plasticity(가소성)에 중점을 둔 경우 핵심 노드는 그대로 유지되고 있으나 학습이 진행되면서 기존의 Weight가 변하면서 각 Node와의 연결 weight가 변화하는 것을 볼 수 있습니다. 이 때 각 Node에 저장된 메모리는 유지되고 있으나 weight가 변화하면서 저장된 값에 변화가 생겨 기존의 값이 손상된 것을 볼 수 있습니다. 이러한 Neural Network의 경향이 Plasticity라 할 수 있겠습니다.


 이러한 Neural Network의 특징인 기억의 유지(stability)와 새로운 기억의 생성(Plasticity)은 Stability-Plasticity dilemma로 표현할 수 있겠습니다. 학습된 기억을 지속적으로 유지하는 것도 중요하지만 새로운 내용을 학습함에 있어서는 weight를 조정함으로서 약간의 변형이 불가피합니다. 즉, Stability와 Plasticity 어느 한 쪽으로만 비중이 크게 된다면 이는 좋은 인공신경망이 아니라는 의미가 되겠지요. 그렇기에 Stability-Plasticity dilemma는 인공신경망이 학습하는 대상이 무엇인가에 따라 비중을 조절하면서도 어느 한 쪽이 우월해서는 안된다는 것입니다.

300x250

ubuntu apt update 실행시 404 Not Found 에레 발생시 해결방법

공대생의 팁 2018. 11. 17. 00:27


 Ubuntu를 잘 사용하던 도중 업데이트를 하기 위해 "$sudo apt update" 명령어를 실행하였을 때 아래와 같은 에러가 발생하는 경우를 보았습니다.



 이와 같은 에러가 발생하는 이유는 크게 2가지로 생각하실 수 있습니다.


1. Ubuntu 운영체제의 지원기간이 종료되었을 때, LTS버전의 경우 5년간 지원되나 그 이외의 버전의 경우 지원기간이 짫기 때문에 지원이 종료되어 위와 같은 상황이 발생하는 경우가 있습니다.

2. ppa launchpad 사이트에 연결되었던 패키지가 지원이 종료되었을 경우


 이 경우 다음과 같은 방법으로 해결하실 수 있습니다.

1. Ubuntu 운영체제를 최신 버전으로 업그레이드하여 지속적인 업데이트를 지원받습니다.

2. ppa launchpad 사이트에서 더이상 패키지의 지원이 되지 않거나 접속 이상으로 업데이트가 되지 않는 경우 Setting을 통해 수정해줍니다.


시스템설정(Setting)→소프트웨어&업데이트(Software&Update) 메뉴에 들어가신 후 '기타 소프트웨어'탭을 선택하신 후 Terminal창의 결과에서 실행이 되지 않았던 부분에 Check를 해제한 후 다시 한 번 업데이트를 시도하면 정상적으로 소프트웨어를 업데이트 하실 수 있습니다.





300x250

우분투 16.04에서 한영키,한자키가 Alt,Ctrl로 동작할 때 해결법

공대생의 팁 2018. 11. 12. 16:43


 노트북에 우분투를 설치한 후 한글 입력을 위해 한/영키를 눌렀을 때 몇몇 노트북의 경우  Alt키를 누른 것과 같이 동작하는 경우가 있습니다. 이는 우분투가 영문판을 기준으로 해당 위치의  키가 한/영키와 한자키가 각각 Alt, Ctrl키로 인식하고 있기 때문입니다. 이를 해결하기 위해 다음과 같은 과정으로 해결하실 수 있습니다.


1. 키보드 입력기를 fcitx로 변경


 시스템 설정 →언어지원에서 키보드 입력기로 fcitx와 ibus등이 있습니다. 이 중 fcitx로 설정합니다. ibus 또한 추가 설정을 통해 사용이 가능합니다.



 2. gnome-tweak-tool 설치


apt 명령어를 사용하여 gnome-tweak-tool을 설치합니다.


$sudo apt install gnome-tweak-tool


 3. gnome-tweak-tool을 실행하여 입력 방식 변경


 다음과 같이 Terminal에 명령어를 입력합니다.


$gnome-tweak-tool


 이후 아래 화면과 같은 화면이 나오면 '입력' 메뉴를 선택하신 후 '한국어 한/영, 한자 키' 메뉴를 클릭한 다음 자신의 컴퓨터의 환경에 원하는 구성을 선택해줍니다.



 위와 같은 설정을 하셨다면 이제 자신의 노트북에서도 한글 입력 및 한자 변환이 가능해졌음을 확인하실 수 있습니다.




300x250

한가을 붉은 단풍으로 물든 호암미술관 전통정원 희원[2018.11.03]


 어느덧 2018년의 가을이 다가오면서 아침 온도도 확 떨어지고 기온차도 상당한 날씨가 되었습니다. 벌써 겨울이 성큼 다가왔다는 것이 믿겨지지 않는 날씨입니다.
 오랜만에 용인 에버랜드 인근에 위치한 호암미술관 근처를 산책하며 한가을을 만끽해 보았습니다.





호암미술관 인근에는 피크닉을 온 사람들의 차들로 거리에 차있습니다.

단순한 오솔길도 단풍이 떨어지니 평소보다 멋져 보입니다.

주차장 인근에서 정원 희원 입구쪽 모습입니다.

빨갛게 물든 단풍이 상당히 눈에 띄는군요.

호암미술관과 바로 앞 정원을 나타낸 지도의 모습.


호암미술관 바로 앞에는 호수도 펼쳐져 있군요.

녹조만 없었다면 좀 더 멋진 풍경이 펼쳐졌을 듯 합니다.

조금은 쌀쌀했지만 산책하기에는 정말 좋은 날씨였습니다.

공원 주변을 둘러보니 석상들이 짝을 지어 함께 있는 모습들을 많이 볼 수 있었습니다.

이 두 석상은 사이좋게 기도하는 모습을 보이고 있군요.

가을날의 호수 풍경은 정말 경치가 끝내줍니다.

저멀리 에버랜드에서 롤러코스터를 타고 비명을 지르는 사람들의 목소리가 들려옵니다.

호암미술관 바로 앞에 있는 정원 희연 입구입니다.

입구 현판에는 보화문(葆華門)이라 써있군요.

정원 안에도 석상 커플들이 함께 짝지어 손님을 맞이합니다.

석상 크기도 아기자기 하고 다양한 종류들이 서있습니다.

공원 중간 즈음에 위치한 관음정(觀音亭)의 모습입니다.


호수의 물이 상당히 깨끗합니다.


워낙 물이 맑아 바닥에 있는 동전들이 훤히 보일 정도입니다.


빨갛게 물든 단풍잎이 상당히 매력적입니다.

저멀리 호암미술관이 나무들 사이로 얼핏 모습을 드러내고 있습니다.

이름 그대로 호암정이군요.

호암정에서 바라본 정원의 모습입니다.

빨간 단풍이 바로 뒤에 있는 소나무의 녹색과 상당히 대비되는 모습을 보입니다.

호암미술관 근처까지 걸어가 보았습니다.

미술관 출구 인근까지 공원은 연결되어있습니다.
날씨가 좀 더 좋아진다면 피크닉하기 상당히 좋은 곳이 될 것이라 믿습니다.

300x250

환골탈태(換骨奪胎)를 위해여 - 제천임시역(2)[2018.10.28]


 지난 겨울 정동진에서 무궁화호를 타고 제천에 도착하였을 때는 기존에 있었던 제천역이 철거되었을 때였습니다. 그 후 반년이 지난 제천역의 풍경은 어떻게 달라져 있을까요?


 지난 2월 제천역의 상황을 보고싶으신 분들께서는 아래 링크를 봐주시길 바랍니다.


환골탈태(換骨奪胎)를 위해여 - 제천임시역[2018.02.04]

https://elecs.tistory.com/248




역에 내리자마자 공사가 한창인 제천역의 모습이 눈에 들어옵니다.



역 건너편은 무궁화호 객차들이 주박해 있었습니다.



그 중 하나는 문이 열려있군요.



얼핏 봐서는 몰랐는데 역 바로 옆에 누리로가 있었습니다.



무슨일로 누리로가 저 곳에 위치해있는걸까요?

눈앞에 있는 고상플랫폼도 조금 눈에 거슬립니다.



앞으로 지어질 제천역은 선상역사가 될 것으로 보입니다.

광역전철 전동차가 다니는 곳에 있을 법한 고상홈은 차후 도입될 열차가 사용할 것이라고 하네요.



보아하니 지하통로가 봉쇄되어 있습니다. 역이 완공된 후에도 이 통로는 사용되려나요?

광운대역처럼 일부만 사용될 수도 있을 듯 보입니다.



타는곳 행선지를 가려놓았습니다. 한동안은 모든 열차들이 이 곳을 지나게 되어 가린듯 보입니다.



불과 올해초만 해도 지나다녔던 통로는 이렇게 굳게 차단되어 있습니다.



앞으로도 이 곳을 통과할 날은 올까요?



제천임시역 대기실을 나갔더니 왠 통로가 하나 새로 생겨있습니다?



보아하니 대전방면 열차는 따로 통로를 만들어둔 듯 보입니다.



통로를 따라 걸어들어가봅니다.



행선지가 대전과 서울이 적혀있는것으로 보아 충북선을 통과하는 열차들을 탈 수 있는 곳인 듯 보입니다.



코너에는 의자 하나가 놓여있고 제 예상대로 충북선 타는곳을 안내하고 있는 것으로 보입니다.



확실히 공사중인 곳이다보니 주변이 어수선합니다.

보아하니 공사 차량이 지나가는 통로로 쓰이는 곳이기도 한 것 같습니다.



그 덕에 굳이 역을 통과하지 않고도 이 곳 승강장에 접근할 수 있는 구조로 되어 있습니다.



아까 멀리서 보았던 누리로는 이 곳에서 승객들을 태우고 있었습니다.



임시승강장이긴 합니다만 왠만한 시설은 모두 갖추고 있었습니다.

조그마한 건널목엔 차단기 대신 관리인이 승객을 유도하고 있습니다.



임시승강장에서 바라본 역내의 모습입니다.

앞으로 이 누리로도 고상홈에서 손님을 태울 듯 보입니다.



자세히 보니 누리로의 와이퍼 한 쪽이 사라져있습니다.

이제 10년 가까이 되가는 차량인데 관리 상태가 좋지가 않아보입니다.



비록 임시승강장이지만 역이 온전히 건설될 때 까지는 꽤 오랫동안 이 곳에서 손님들을 맞이할 것으로 보입니다.



임시승강장에서 제천 시내를 바라본 모습입니다.



고상홈 개조가 한창인 승강장은 아직 어수선하기만 합니다.



승강장 끝부분에 경사를 내어 저상홈과 연결시킨 것을 보아하니 당분간 저상홈도 사용되는 것 같아 보입니다.



오랜만에 보게 된 누리로의 모습입니다. 행선지는 대전 -> 제천을 표시하고 있습니다.

한동안 중련으로 운행되는 동안 사용되던 행선판이 비어있는게 조금은 어색해보입니다.


혹시 이 누리로가 LED행선판이 있음에도 무궁화호처럼 차 옆면에 행선판 꽃이가 설치된 사연이 궁금하신 분들은

제가 이전에 포스팅하였던 글들을 보신다면 될 듯 합니다.


사라질 줄 알았던 행선판이 부활? 익산역 누리로 중련연결기[2017.04.16]

https://elecs.tistory.com/213


사라질 줄 알았던 행선판이 부활? 서대전역에서 만난 누리로[2017.10.28]

https://elecs.tistory.com/220




바닥에는 호차 표시를 해두었는데 일치하지가 않고 있더군요

아무래도 무궁화호 객차 기준으로 표시를 해둔 것으로 보입니다.



그렇게 저는 누리로를 타고 제천역을 떠나게 되었습니다.

과연 다음에 다시 오게 될 제천역의 모습은 어떻게 변해있을까요?





300x250

역 안에서 자동차가 횡단할 수 있는 중앙선 신림역[2018.10.28]


 어느덧 찬바람이 불어오는 2018년 10월의 막바지가 다가왔습니다. 시간은 이토록 빠르게 흘러가는데 혹시 주변에서 다시는 볼 수 없는 광경들이 하나둘 사라져가지는 않을까 하는 생각들이 종종 지나가고는 합니다.


 이번에 다녀오게된 중앙선 신림역은 중앙선의 원주~제천간의 복선화 공사가 끝나면 더이상 이 곳에서 무궁화호가 지나다니는 모습을 볼 수 없게 될 것으로 보입니다. 그렇기에 비가 추적추적 내리는 날씨에 굳이 찾아오게 되었지요.





원주역을 출발한 무궁화호가 신림역에 정차하였습니다.



열차에서 내려 역 방향으로 걸어나갑니다.



신림역의 관리인이 건널목 앞에서 열차가 무사히 통과할 수 있도록 기다리고 있습니다.



신림역에 저를 내려준 열차는 강릉역을 향해 출발합니다.

경강선이 개통한 현재는 KTX를 타고 강릉을 가는게 시간적인 면에서나 비용적인 면에서 훨씬 저렴할겁니다.



놀랍게도 신림역 내부는 자동차들이 지나다닐 수 있는 건널목 역할을 하고 있습니다.



열차가 통과하자 주민 분 께서도 건널목을 통과합니다.



화장실이 역 외부에 위치해 있습니다. 생각보다 아담해 보이네요.



청량리 방면 플랫폼의 모습입니다.



신림역 하면 서울에 사시는 대부분의 분들이라면 지하철 2호선이 먼저 생각날 듯 하겠군요.

그러한 신림역을 아는 저에게 이 아담해보이는 중앙선 신림역의 모습은 참으로 아담해 보입니다.



신림역에서 큰 길을 향해 뻗어있는 길의 모습입니다.



역 외부의 그림이 뒤에 있는 나무와 어울려 보입니다.



가을이 되어 길가에는 낙엽들이 떨어져 있습니다.



가을녘의 신림역 또한 뒷산의 단풍과 조화를 이루는 모습이군요.



이렇게 거리에서 신림역의 위치를 알려주는 표시판을 보고나서야

이 곳에 역이 있음을 알 수 있습니다.



큰 길에서는 지나가다가 잠깐 보일 정도로 걸어들어가야 역을 이용할 수 있는 위치에 있다보니까 말이지요.



인근 버스정류장의 이름도 신림역입니다.



점심을 해결하기 위해 신림역 인근에서 가장 가까운 식당에 도착하였습니다.





이 곳 중국집의 가격은 시중 가격과 비슷한 편입니다.



시골에 있는 가게 치고는 장사는 잘 되는 편인가 봅니다.



이 곳 황금룡이 추천해주는 해물짬뽕에 도전해 보았습니다.



해물양도 많고 국물도 얼큰합니다. 확실히 맛있습니다!



신림역이 영업을 중료할 때 까지는 이 곳에 방문하시는 분이시라면 이 곳에서 식사를 해도 좋으실 둣 합니다!



혹시 다음에 기회가 된다면 항아리 단지 짬뽕도 도전해보고 싶군요!



워낙 조용한 시골동네에서 길에서는 차들이 빠른 속도로 지나갑니다.

언제 어디서나 차조심은 기본이지요!



역으로 돌아가던 도중 저 멀리 무궁화호가 산기슭 사이로 지나갑니다.



다시 신림역 대기실에 들어와 비를 피해봅니다.



요즘 열차시간표는 전광판으로 띄우거나 전철역처럼 프린트 해서 걸어놓는 경우가 많아져

이런 시간표와 운임표를 보기가 사실 많이 힘들어졌지요.



간이역에서 흔히 볼 수 있는 KTX 사진이 보입니다.

올해부터 원주에서도 KTX를 탈 수 있게 되었지요!



신림역 대기실에는 주변 여행 안내판이 설치되어 있습니다.

비만 오지 않았다면 인근에 위치한 용소막성당에 방문했었으면 하네요!



역내에는 무궁화호 열차가 빗줄기를 뚫고 신림역을 통과합니다.



조용한 간이역은 그렇게 열차가 떠나가면 다시 고요해집니다.



화물열차 한 대가 신림역에 들어와 잠시 정차하고 있습니다.

맞은편 열차를 비켜가기 위해서일까요?



잠시후 제 예상대로 열차 한 대가 신림역을 통과합니다.



확실히 중앙선에는 화물열차가 많이 지나가긴 합니다.

경부선보다도 더 중요한 간선망이라는 이야기가 괜히 있는것만은 아니였군요.



그렇게 맞은편 열차를 보내준 후 다시 제 갈길 향해 달려나갑니다.



지난 2009년 증산역에서 이름을 바꾼 민둥산역만 글자크기가 독특함을 확인할 수 있습니다.

뒷부분에 희미하게 증산역이 적혀있는것을 볼 수 있었습니다.



철도청 막바지에 사용되었던 검은색 역명판이 보입니다.

이제 이 것도 얼마후면 사라질까요?



비는 하염없이 내리고 있습니다. 이 비가 내리고 다시 추운 날씨가 이어지려는 걸까요



어느덧 2시 13분 청량리행 열차가 들어올 시간이 되어갔습니다.

이날 청량리행 열차는 10분 지연되오 2시 23분 신림역에 들어옵니다.



주룩주룩 내리는 빗속을 뚫고 열차 한 대가 신림역으로 들어옵니다.



역의 건널목 때문에 청량리행 열차는 건널목 위에서 열차가 정차합니다.

다시 열차를 타고 원주역으로 향합니다.


 이날 신림역 역장님께서 말씀하시기를 2019년 11월 중앙선이 복선으로 이전할 것이라고 말씀하셨습니다. 초기 계획으로는 경강선이 개통되기 전에 복선화기 될 것으로 예상되었으나 평창올림픽이 개최된 현재까지도 신림역은 아직까지 고요한 빗줄기 속에서 고객들을 맞이하였습니다.


 제가 신림역을 오기 전까지는 2019년 2월로 예정되어 있는 것으로 알고 있었는데 다시 연기된 것으로 보아 그래도 다시 신림역을 방문할 수 있는 기회가 찾아올 수 있으리라 기대하고 있습니다. 과연 신림역의 마지막 모습은 저에게 어떤 모습으로 기억될까요?



300x250

C++ 클래스 객체를 stream으로 통신 및 전달방법 - Boost Serialization(1) [직렬화된 클래스 만들기]

공대생의 팁 2018. 10. 20. 17:36


 객체지향의 언어를 사용함에 있어 가장 큰 장점으로 class를 사용하여 Constructor나 Inheritance(상속)등을 사용할 수 있어 프로그래밍을 하는 데 있어 한결 더 편리해진다는 점입니다.


 물론 Object(객체)를 하나의 프로그래밍에서만 사용한다면 큰 어려움이 없으나 Object를 binary 파일로 저장한다던가 통신 등을 통해 다른 프로세스로 전달을 해야할 경우 이를 stream으로 전달하여야 하나 이는 int나 float와 같은 Primitive 변수만 전달될 수 있다는 단점이 있습니다.


 이를 해결한 방법으로서 Object를 Serialization(직렬화)하여 stream으로 Object의 값을 전달하거나 저장할 수 있게 된 것입니다.


https://commons.wikimedia.org/


 Serialization을 하는 이유는 자신이 가지고 있는 Object가 상대에게는 어떤 방식으로 표현되어 있는지 알 수 없기 때문에 이를 전달하기 전에 Object가 가지고 있는 값을 직렬화시켜 Object의 값을 받고자 하는 쪽에서 분별할 수 있게 만들어줍니다. 직렬화 된 값이 상대에게 도착한 후에는 이를 다시 역직렬화(Deserialization)를 거쳐 자신이 갖고 있었던 Object값으로 다시 만들어줍니다. 즉, '4'나 'c'와 같이 간단하게 구성된 값이나 글자를 받을 수 있도록 만드는 것을 직렬화(Serialization)이라 할 수 있습니다.


 C++ 라이브러리 또한 객체를 사용하기 때문에 이를 지원할 수 있는 Boost 라이브러리를 지원합니다. 이를 사용하기 위해 다음과 같이 설치합니다.


$ sudo apt install libboost-all-dev


 다음으로 아래와 같은 간단한 예제를 통해 Boost의 Serialization의 방식에 대해 이해해보도록 합니다.


class_fileio.cc

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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
#include<iostream>
#include<fstream>
#include <boost/archive/text_oarchive.hpp>
#include <boost/archive/text_iarchive.hpp>
 
using namespace std;
 
class tst{
public:
    friend class boost::serialization::access;
 
    tst(string sName, int sage, float spi)
        :Name(sName), age(sage), pi(spi)
    {}
 
    tst(){
    }
 
    string Name;
    int age;
    float pi;
 
    template<class Archive>
    void serialize(Archive& ar, const unsigned int version){
        ar & Name;
        ar & age;
        ar & pi;
    }
 
 
};
 
 
int main(){
 
    tst T("Tab", 31, 3.1415);
    tst* pT = new tst("Bat", 13, 2.5);
 
    ofstream output("output.txt", ios::binary);
 
    boost::archive::text_oarchive oa(output);
    oa << T;
    output.close();
 
    ifstream input("output.txt", ios::binary);
    boost::archive::text_iarchive ia(input);
 
    tst TT;
    ia >> TT;
 
    cout << TT.Name << endl;
    cout << TT.age << endl;
    cout << TT.pi << endl;
 
    ofstream pout("pout.txt", ios::binary);
    boost::archive::text_oarchive poa(pout);
    poa << pT;
    pout.close();
 
    ifstream pin("pout.txt", ios::binary);
    boost::archive::text_iarchive pia(pin);
 
    tst* pTT;
    pia >> pTT;
 
    cout << pTT->Name << endl;
    cout << pTT->age << endl;
    cout << pTT->pi << endl;
 
    return 0;
}
cs


다음으로 위의 작성된 코드를 컴파일합니다.


g++ class_fileio.cc -lboost_serialization


 실행하면 다음과 같은 결과를 확인하실 수 있습니다.



 결과를 보면 알 수 있듯이 Class의 값이 포인터인 경우에도 동작이 잘 수행되고 있음을 직접 확인하실 수 있습니다. 이제 자신이 만든 클래스로도 stream을 통해 전송할 수 있음을 확인할 수 있습니다!



300x250

Ubuntu에서 Chrome 실행할 때 마다 Keyring을 묻는 팝업창이 나타날 때 해결방법

공대생의 팁 2018. 10. 19. 10:34

 

 평소 문제 없이 써오던 중 설정을 다시 하기 위해 우분투를 다시 설치한 후 크롬을 실행하였는데 다음과 같은 팝업창이 크롬을 처음 실행할 때 마다 나타나고 있었다.

 

 

  이 현상은 우분투를 자동로그인으로 설정하였을 때 나타나는 현상으로 우분투를 비밀번호를 입력하는 식으로 설정하면 위의 팝업창이 나타나는 현상을 해결할 수 있다.

 

 만약 우분투의 자동로그인 설정을 유지하고 싶다면 gnome-keyring을 제거해준다.

 

$ sudo apt remove gnome-keyring


  Ubuntu 18.04에서 해당 과정 수행시 심각한 문제가 발생한다는 것을 확인하였습니다. 만약 해당 문제가 발생하시는 분들께서는 아래의 방법대로 수행해주시기를 부탁드립니다. 작성 이후 다른 버전에서 동작 확인되는 것을 확인하지 못해 해당 문제가 발생하는 것을 확인하지 못하였습니다. 해결 과정에서 심각한 피해를 드린점 사과드립니다.


https://greedywyatt.tistory.com/122

[Ubuntu 18.04] 부팅 시 x window로 안들어가질 때 해결 / chrome keyring 제거 방법

처음에는 chrome 실행 시, 계속해서 물어오는 keyring을 제거하기 위하여 아래와 같은 명령어를 사용해주었는데, 이 명령어 수행 이후, 재 부팅을 하니까 x window로 안들어가지고 계속 가상 커널로 접

greedywyatt.tistory.com

https://haaringa.tistory.com/164

우분투에서 크롬 실행시 keyring 묻는 팝업 창 해결?법

우분투에서 크롬 실행 시 keyring 묻는 팝업 창 해결?법 전에 작성했던 글에서 우분투 운영체제 부팅 후 크롬 실행 시 keyring 팝업이 뜨는 것을 해결했다고 글을 올렸으나 나중에 다시 뜨는 현

haaringa.tistory.com

300x250