2020년 정리

1~4월

 군대에 박혀 있었다. 원래 전역일자는 5월 중순이었다. 그러나 코로나 때문에 4월 말 즈음에 현지전역 제도로 집에 갔다. 코로나로 인한 출타제한 때문에 거의 20일? 정도 일찍 나오게 되었다. 대대급 내에서는 인사를 다 드리고 나왔으나, 불교 군종장교님께는 인사를 못드린게 못내 아쉽다. 나름 불교 군종병으로 활동 했었는데 아쉽게 되었다.

 19년 말 부터 리눅스용 사지방 접속기를 만들고 배포하였다. 병영내 사지방 개선 사업이 진행되면서 하모니카 OS가 설치된 PC들이 보급되기 시작했었다. 사업 초기에 여러 문제가 쌓여 있었다. 그중 병사로서 가장 크게 다가온 것은 구글 및 유튜브 접속장애 문제였다. 구글·유튜브 접속에 2~3분 걸리다가 끝내 타임아웃까지 발생하는 문제였다. 이로인해 사지방의 목적인 “인터넷 검색”을 할 수 없는 환경이 된 것이다.

 네트워크 장비상의 문제를 우회하지 않고서는 해결할 방법이 없었다. 윈도우 상에서는 익히 알려진 우회방법이 있었으나, 하모니카에서는 불가능한 방법이었다. (루트 권한이 없는게 가장 크다) 그래서 유저 레벨에서 사용 가능한 우회 접속기를 만들어서 사용했었다. 그 과정속에서 사지방 운영 업체측에서 파이어폭스를 전체 차단하는 병맛 가득한 수를 두어서 충격 먹기도 하였다.

 네트워크 장비에서 특정 IP대역을 필터링 하는 문제가 원인이었기에, 이 대역만 피해서 접속을 하면 해결되는 문제였다. 처음에는 파이어폭스의 Dns Over Https 설정을 이용하여 직접 만든 사설 DNS서버를 이용하도록 했었는데, 파이어폭스 자체를 막아버려서 ㅡㅡ. 이에 대응하기 위해 간단한 socks5 프록시 프로그램을 만들어서 다시 배포하였다. 구글이나 유튜브등으로 접속을 시도하면 프록시 프로그램이 멀쩡한 IP로 직접 연결하도록 한 것이다. 

 뭐… 어쨋던 PC보급 사업을 준비도 되지 않은 상태로 밀어붙인 느낌이 너무 크다. 단순한 검색은 일과후 휴대폰으로 모두 가능해지면서, 사지방에는 PC가 정말 필요한 사람만 (인강이나 코딩, 공부등) 오게 바뀌었다. 이런 사람들에게 있어서는 윈도우 환경이 필요하였다. (하모니카에 Wine도 설치되지 않았고, 루트 권한이 없어서 설치 작업도 사실상 불가하였다) 리눅스를 보급한 이유는 알겠으나, 윈도우쪽은 하나도 준비하지 않고 일단 PC를 뿌린것. 그리고 리눅스를 기존 윈도우 환경보다 더욱 제한적인 환경에서만 사용하게 한 것은 리눅스에 대한 인식만 나쁘게한 악수라고 보여졌다.


 부대내에서는 Vue.js와 Rust를 건드려보았다. Rust는 입대전 부터 조금씩 건드려보다가 생각이 나서 좀 더 해보게 되었고, Vue는 그 때 React와 Vue가 한창 유행할 때여서 건들여보게 되었다. 각각 건드려보다가 Rust의 Rocket.rs와 Vue를 결합하여 간단한거 만들어보는 수준까지 해 보았다.

4~7월

Rust를 이용해서 동시 접속 처리가(10k) 가능한 서버 프로그램을 만들어보았다. Tokio 기반 위에서 만든거여서 어렵고 귀찮은 영역은 안했다. 사실상 Tokio의 처리 능력으로 이룬거여서 막 내가 한 것은 없었다. 대신에 코딩하면서 네트워크 설정(setsockopt)이나 내부 로직에 있어서 한번 생각을 하게 해주었다. 중요한건 대용량 처리에 있어서는 조그마해 보이는 최적화가 상당한 차이를 만들어 준다는거? 그리고 조그마한 것의 최적화에 집착할 것이 아니고, 작동 시간의 대부분에 해당되는 부분에 더 관심을 가져야 한다는거? 당연한 말이다. 그런데 코딩 하다보면 이상한데 꽂혀서 시간을 쏟아붇고 있는 모습을 볼 수 있었다. 

7~8월

입출금 확인 시스템의 바닥을 만들었다. 은행사나 PG사에 API 신청하고 연동하고 한 게 아니라, 입금시 앱으로 푸시 들어오는것을 파싱해서 처리하는 간단한 프로그램의 밑바닥을 만들었다. Python + Pushbullet으로 엮고 서버에서 실시간 체크하면서 지정된 입금자명으로 금액이 들어오면 자동으로 처리하게 만든 것이다. 8월달 까지 기본 바닥만 만들고, 프로젝트가 잠시 스톱 되면서 마무리는 내가 안하긴 했다. 

 이 방법은 기존의 [완전 수동]에 비해서 우리 측의 인력도 절감되고, 입금하는 사람도 결과를 즉시즉시 알 수 있다는 점에서 긍정적인 효과를 얻었던것 같다. 대신 은행사의 API등을 직접 받아쓰는게 아니기도 하고, Pushbullet과의 통신이 잠시 끊길수도 있다는 점에서 완벅한 대안은 아니다. 그 점에 유의해서 필요시 수동으로 처리 할 수도 있게 안내하고, 로직도 추가하는게 필요했다. 

9~12월

대학교 생활을 했다. 군 복학으로 인해 2학년 1학기를 안하고 바로 2학기 부터 들어가서 문제가 아주 없지는 않았으나 어떻게 어떻게 잘 해냈다. 문제는 3학년때도 1학기+2학기가 꼬인다는건데 2학년에 비해 3학년은 더 힘들지 않을까 싶다. 2학년 1학기 과목을 건너뛰고 3학년 1학기 과목을 들어야 할 것 같은데… 수강 신청때 학년 우선과목이 있어서 어떻게 될 지 모르겠다.


코로나 때문에 한 것 없이 끝난 한 해 였던것 같다. 사실 전역할 때가 되면 “이거도 해봐야지” “저거도 해봐야지” 나름 계획을 새우고 나가는데, 올해는 거의 다 못한것 같다. 군대에서 나와서 복학하기까지의 시간이 정말 해보고 싶은 무언가를 할 수 있는 소중한 시간이다. 이것을 활용하지 못한게 가장 아쉽다. 새로 온 올해는 부디 코로나가 일찍 끝났으면 좋겠다. 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

댓글을 작성하기 위해 아래의 숫자를 입력해 주세요. *Captcha loading…