기본 콘텐츠로 건너뛰기

지난 시간의 회고와 현재에 대한 소고

현재는 과거를 반영한다.
현재는 미래의 거울이다.
삶은 동쪽에서 해가 뜨고 서쪽으로 해가 지는 한 앞으로도 계속되고, 반복된다.
변화와 개혁.
반복되는 일상과 평이함.
10년전과 지금, 앞으로의 10년.

시간의 흐름에 인간은 나아가거나 도태되기를 반복한다.
발전과 도태는 선택이다.
현재의 흐름을 탈피하고 다른 것을 선택하는 것은 순전히 자신의 몫이다.

10여년전의 고민과 현재를 비교하여 현재의 나 자신은 어느 위치에 와 있는가 생각해보았다.
나는 아직도 고민을 하고 있다.
A사의 퇴직 상태인 2016년과 현재 2019년 8월은 지금, 3년이란 긴 시간동안 무엇을 배웠고 무엇을 결정했는지, 어떤 선택으로 앞으로의 인생을 살아갈 것인지 계속해서 고민을 하고 있다. 고민을 끝내고 나아가기만 하는 삶이 있을 거란 추측이 있었다.
삶이 계속되는 한 고민은 끝나지 않는다는 걸 깨닫기 시작했고, 고민과 행동이 동시에 이뤄질 수 있지만 선택을 했다면 돌아보지 말고 일단 나아가려고 한다.
지금은 앞으로 어떤 목표와 어느 방향으로 움직이려고 하는지 돌아봐야 할 시점이다.

A사에서의 기간, 나의 30대는 많은 고민과 선택과 행동이 있었다.
나는 그 많은 선택들이 그 당시에는 최선이었다고 생각한다. 아마 그때로 돌아가도 같은 것을 선택할 가능성이 높다.

내가 A사를 퇴사하게 된 이유는 다음과 같다.
1. 장비 소프트웨어 개발에 있어 체력적인 한계( 건강 악화 )가 왔고,
2. 소프트웨어 자체의 기술 개발 및 알고리즘에 대한 연구들을 중점적으로 하는 업을 찾고 싶었고,
3. 장비 소프트웨어 개발을 하면서 그 동안 쌓아온 노하우와 기술적인 지식을 체계화하고 싶었다.

그래서 첫번째로 선택한 회사는 비전을 이용한 PCB 검사 장비개발 업체였다. B사는 그 분야에서는 유망한 회사였고, CEO의 직접 컨택으로 나를 절실히 필요로 한다는 판단하에 선택하게 되었다. 검사 알고리즘에 머신러닝을 도입한 기술이 있었고 지속적으로 업데이트 중이었으며 내가 원하면 그 기회도 잡을 수 있을 것 같았다. 실은 입사 시점에 내가 할일에 대해서는 명확하게 이해되지 않았지만 머신러닝을 해볼수 있을 것 같은 막연한 생각으로 입사하게 되었다.
실제 업무는 유지보수였다. 장비의 유지보수는 기존 기능에서 버그로 추정되는 현상을 파악하고 버그라면 문제를 해결하는 것이 가장 큰 업무이다. 이러한 업무는 이미 A사에서 충분히 해보았기 때문에 시간이 갈 수도록 흥미를 잃어갔다. 물론 시간적 여유는 충분했지만, 출퇴근 시간 왕복 3시간은 체력적인 무리가 있었다.

이러한 시점에 나의 두번째 선택이 있었다.
현재 몸 담고 있는 C사이다. 이 회사는 메모리 계측장비를 주로 개발하고 있었다. K사와 경쟁업체라고도 볼 수 있다. 물론 K사처럼 모든 기능을 다 갖추지는 못했지만 특화된 기능 고속 및 대용량의 데이터 취득 기술 등 고객사에서 가장 필요로 하는 요구 사항이 충분히 반영된 국내 유일의 계측 회사이다.
이러한 기술력을 갖고 있는 단단해 보이는 회사였고, 이 회사 또한 나를 필요로 했다. 계측 장비가 아닌 신규 장비에 대한 투자 계획이 있었고 신규 장비는 내게 있어 낫설지 않은 것이었다. 나는 회사 위치 및 자율 출퇴근, 그리고 기술력 좋은 직원들과 함께 일할 수 있다는 생각에 선택하게 되었다. 무엇보다 새로운 언어로 개발한다는 사실과 새로운 장비 개발에 도전한다는 것에 설레었다.

이렇게 C사에 입사한지 1년 4개월정도 지났고 장비는 납품한지 1년이 지났으며 서서히 안정권에 접어 들고 있다.
나는 현재 A사에서와 동일하게 장비 개발 및 유지보수 작업을 하고 있다. 그러나, A사에서 고민했던 프로젝트 개발론이나 소프트웨어 공학적인 접근을 위한 노력 등은 생각하지 않고 있다.
이유는 필요성을 느끼지 못하기 때문이며 실제 이유는 다음과 같다.
1. 관리가 고민이 될만큼 팀원이 많지 않다.
2. 개발 장비는 한대이며( 물론 동일 장비가 몇 대가 납품되었으며 모두 관리대상이기는 하다.) 고객사는 하나의 업체 뿐이라 관리의 필요성이 대두되지 않는다. 나 혼자 유지보수 작업을 하고 있다. 교육시킬 AS인력이나 Application Engineer인력이 존재하지 않는다.
3. A사에서는 모든 S/W 영역의 책임이 나에게 있었지만, C사에서는 실질적인 S/W 결정권자는 따로 있다. 그래서 나의 책임은 소소하다. 대체적으로 책임과 권한은 비례한다.

이러한 이유로 인해 나는 A사보다는 훨씬 수월하게 회사 생활을 하고 있다.
기술 개발이나 내 스스로의 발전에 대해서는 보장할 수 없는 조직이라는 판단이 들기 시작했다. 업으로 기술 개발이나 발전을 만들어가기 보다는 스스로 만드는 토이 프로젝트를 시작해야 할 것인가, 아니면 금전적인 도움을 위해 유사업에 대한 알바라도 해야할 것인가에 대한 고민이 시작되었다.
알맹이를 다져야 하는데 그 동안 등안시했던 시간이 아깝기도 하고, 그러기 위해서는 무엇을 어떻게 해야 할 것인가에 대한 액션 아이템을 세워야 할 시점이기도 하다.

사실 이 블로그를 다시 시작하려는 이유도 그것에 있다.
내일부터 또 나는 일상으로 돌아간다. 새롭게 맞이할 주중의 일상을 어떤 자세와 어떤 선택들로 이뤄질지 지금의 소고가 많은 영향을 주기를 바랄 뿐이다.

이 업계에 발을 디딘지 올해로 20년이 된다.
20년동안 나의 노하우와 기술, 경험은 내가 부정하려고 해도 부정할 수 없는 현실이다. 이것을 헛되이 생각하지 말고 아끼고 아껴 앞으로의 나의 자산으로 만들어야 과거의 나에게 떳떳한 모습이 될 것으로 생각된다. 과거와 현재를 부정하는 순간 미래의 나는 보이지 않으므로.

댓글

이 블로그의 인기 게시물

[QT] 5.15.2 버전 다운로드와 설치하기

1. 버전 5.15.2를 설치하기 위해 QT 다운로드 사이트 에 접속하였으나 실행파일이 존재하지 않는다. 가장 최신의 실행파일은 ver5.14.2 이므로 일단 이것을 다운받아서 설치한다. ( 참고 사이트 - https://sloth-code.tistory.com/6#comment16833678 ) 다운 사이트  - https://bio.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.14/5.14.2/  ------------- 버전이 맞지 않으니 재 설치한다. 2.  5.15.2 버전에는 실행파일 exe가 없고 zip과 tar.gz 파일만 존재한다. ( https://bio.nic.funet.fi/pub/mirrors/download.qt-project.org/archive/qt/5.15/5.15.2/ ) OFFLINE_README.txt를 읽어보면 5.15 버전부터는 오픈 소스 오프라인 설치를 이용할 수 없다고 한다. 오프라인 설치를 원할 경우 다음 사이트 참조하라고 한다.  ( 원본:  The Qt Company offering changes, open source offline installers are not available any more since Qt 5.15. Read more about offering changes in the https://www.qt.io/blog/qt-offering-changes-2020 blog. If you need offline installers, please consider our new Qt for Small Business offering: https://www.qt.io/blog/available-now-qt-for-small-businesses ) - https://www.qt.io/blog/available-now-qt-for-small-businesses ...

Windows에서 MongoDB 사용하기 요약

NoSQL에 대한 이해 MongoDB에 대한 이해 MongoDB 메뉴얼 MongoDB 다운받기 - Community GUI를 설치하는 대신에 zip 파일선택하여 Shell Window에서 운영. ( mongdb.com ) MongoDB 서버 사용하기 - Command Interpreter Demon으로 실행하기 : 이 방법( --fork 옵션 )은 윈도우에서 실행되지 않고, 대신에 --install 옵션을 사용하여 윈도우 서비스에 등록하여 백그라운드로 사용한다. 관리자 모드 로 명령 프롬프트를 실행한다. demon을 실행시킨다. ( --install 옵션 추가 )   mongod --dbpath D:\Working\MongoDB\Server_JServer\mongodb_ver4.2.1\data --port 13100 --bind_ip_all --auth --logpath   D:\Working\MongoDB\Server_JServer\mongodb_ver4.2.1\log\mongod.log --install 명령 라인에 다음 명령을 입력한다. net start MongoDB 윈도우 서비스 창을 열어서 아래 내용을 확인한다. 배치 파일로 자동 실행하기 Demon으로 실행하는 방법의 2번과 3번을 한번에 처리하기 위해 생성한 mdbexe.bat 을 사용한다.  방법 mongodb demon을 실행하기 위한 mongod.cfg configuration 파일을 만든다. 배치 파일에 mongod 커멘드와 옵션을 다음과 같이 기술한다. mongod --config filename --install 배치 파일에 MongDB 서비스를 윈도우 서비스에 등록한다. net start MongoDB 만들어진 배치 파일을 관리자모드 로 실행시킨다. C#에서 구현할 때 관리자 모드로 실행하는 방법 조사할 것. ( TODO ) 종...

[ ChatGPT ] 임의의 프로세스에 접근하여 임의의 변수값을 바꾸기 위한 방법

 질문 사항 1번 프로세스와 2번 프로세스가 있어. 1번이 운영중인데, 2번 프로세스에서 1번 프로세스의 임의의 메모리에 접근하여 그 메모리의 값을 바꾸고 싶어. 어떤 절차를 이용해야 하지? 답변 내용 1번 프로세스의 메모리에 2번 프로세스에서 접근하여 값을 변경하는 것은 매우 민감한 작업이며, 운영 체제에서는 일반적으로 이러한 작업을 보안과 안정성 때문에 제한합니다. 그러나 특수한 경우, 특히 시스템 프로그래밍이나 디버깅 목적으로는 특정 API를 사용하여 이러한 작업을 수행할 수 있습니다. 아래는 이러한 작업을 수행하기 위한 일반적인 절차를 설명합니다. 1. 프로세스 권한 확인 및 확보 2번 프로세스가 1번 프로세스의 메모리에 접근하려면 충분한 권한이 있어야 합니다. 일반적으로 이는 관리자 권한이나 루트 권한이 필요합니다. Windows에서는 SeDebugPrivilege 를 활성화해야 할 수 있으며, Linux에서는 루트 권한이 필요할 수 있습니다. 2. 1번 프로세스의 핸들 획득 2번 프로세스가 1번 프로세스의 메모리에 접근하려면 먼저 1번 프로세스의 핸들을 얻어야 합니다. Windows : OpenProcess 함수를 사용하여 1번 프로세스의 핸들을 얻습니다. 이 함수는 1번 프로세스의 프로세스 ID를 기반으로 접근합니다.