본문 바로가기
지나온 나날들의 향기

2021년 이전의 회고록 - 2019년 하반기

by anothel 2021. 7. 1.

2017년 4월부터 지금까지 쭈-욱 이어온 개발자로서의 삶을 반추하고, 무려 4년씩이나 방치되어있던 기억들을 이제야 정리하려고 한다.

 

2021년에 반추하는 2019년 하반기


개발자 (開發者): [명사] 1. 강이나 산 따위의 천연자원을 유용하게 만드는 사람. 2. 새로운 물건을 만들거나 새로운 생각을 내놓는 사람. 3. 이상한 사람.

 

1. 백수탈출 대성공(feat. 우연한 기회로 취업을 하다)


하늘이 무너져도 솟아날 구멍은 있다고 했던가? 매일 탈락과 거절의 반복 속에서 합격 전화가 왔다. 나는 지원하지 않았지만 모 구직사이트에 오픈된 나의 이력서를 보시고 연락 주셨다 했다. 면접 제의를 받고 면접 날짜를 조율하는데, 당시 나는 화요일에 (선약한) 면접이 있어서 월요일 아니면 수요일이 좋겠다고 말씀드렸다. 나중에 안 사실이었지만 해당 TO를 채우기 위해서, 1년을 넘게 구인했다고 한다. 그래서 하루라도 더 빨리 면접을 봐야겠다고 생각하셨는지 월요일로 약속을 잡았다. 결국, 그 주에 월화수 내리 3일을 면접을 봤다. 하도 면접을 보다 보니 내가 무슨 말을 해야 하는지 너무나도 술술 꿰고 있었더랬다.

월요일 면접에서는 대답을 시원시원하게 했다. 코딩 테스트도 3문제를 풀었는데, 모두 맞췄다.(나중에 안 사실이지만, 한 문제 틀렸었다.) 코딩 테스트 중 문제 하나가 비트 연산을 통해 #과! 를 번갈아 가며 출력하는 문제였는데, 나는 플래그를 줘서 출력을 했다. 

안타깝게도 화요일, 수요일은 탈락을 했고, 월요일 면접에 성공했다. 연봉이 그렇게 나쁘진 않았고, 회사도 그렇게 멀다고 생각하진 않았다. 지하철 타고 20분만 가면 되니까.(지하철 역까지 걸어서 15분인 건 함정)

정말 우연한 기회였다. 나는 지원하지도 않았었고 먼저 연락을 주셨고, 면접 분위기도, 멀리서 보이는 회사 분위기도 좋았다.

 

2-1. 멀리서 보면 희극, 가까이서 보면 비극(feat. 사람이 왜 이렇게 많은가요)


그는 말했지 멀리서보면 희극이라고

 

지방에서 회사를 다녔을 때는 문득 그런 생각을 했다. 영화나 드라마에 보면 지하철에 사람이 아주 그득한 장면이 가끔 나오는데, 저렇게 바쁘게 사는 사람들 한가득 속에 내가 속했으면 좋겠다고.(멍청한 생각이었다.) 막상 실제로 겪어보니 할만하다고 느꼈던 것 같다. 처음엔 할만했다. 마치 영화나 드라마의 한 장면에 있는 것처럼 느껴졌었다.

 

2-2. 비극(feat. 누구나 다 거쳐가는 아홉수의 과정: 급여 미지급, 실직 그리고 A형 간염)


시작은 낯설고 어색했지만, 그래도 개발자라는 직업을 다시 갖게 된 것은 참 좋았다. 좋았었다. 너무 좋았나 보다. 여름이었는데도 감기에 걸린 것처럼 추울 만큼.

 

아니 아직, 할 말이 너무나도 많아서 아직 다 못했어

 

출근 첫날은 분명 여름이었음에도 불구하고 이상하게, 너무 추웠다. 다음날도, 그다음 날도. 도저히 안 되겠어서 병원을 다녀왔는데, 의사 선생님께서 A형 간염이 의심된다고 피검사를 해보자고 하셨다. 나중이 되면 나에게 너무나도 감사해할 거라고 하시던 그 의사 선생님의 인자한 미소가 떠오른다. 피검사를 하고 다음 날, 간수치가 4000배 정도 높게 나왔다고 얘기를 해주셨다. 즉, 간덩이가 부었다는 뜻이었다. 얼른 응급실에 가서 입원하라고 하시더라.(예? 저 이번 주에 첫 출근 했는데요?)

그렇게 큰 병원 응급실에 뚜벅뚜벅 걸어 들어갔다. 응급실인데 전혀 응급하지 않게 입장해버렸다. 엠뷸런스를 타고 누워서 가는 곳인 줄 알았는데, 뚜벅뚜벅 당당하게 들어갔다. 이때까지도 크게 다가오진 않았다. 그 고통이.

 

2-3. 다 죽어가는 영혼(feat. 숨만 쉬어도 힘든 세상)


그랬다. 정말 숨만 쉬어도 힘들었다. 왜냐하면 외부에서 나에게 침입하는 나쁜 것들과 싸워줄 간이 지금 부어있기 때문이다. 아무것도 할 수가 없었고, 지하에 주차된 내 차를 빼낼 수가 없어서 고모까지 병문안을 요청드렸다.(정말 감사합니다 고모 고모부!) 고모는 내가 입원실에 생활하며 필요한 것들을 가져다주셨다. 아버지께서도 병문안을 오셨는데 아들이 아프다고 하니, 각종 몸에 좋은 것들과 엄청난 양의 과일들을 사다 주셨다.(아마도 내가 과일이 먹고 싶다고 말씀드렸던 거 같다.) 아버지 정말 감사합니다. 아버지 덕분에 그 당시의 제가 잘 견뎌내고, 지금까지 살아있는 것 같습니다.

 

3. 다시 첫 출근(feat. 좋은 날, 두려운 날)


이상하다, 이건 영화의 한장면이 아닌데,

 

지금 와서 보니 집 나간 강아지가 주인에게 붙잡혀 목줄이 이끌려 다시 개집으로 향하는 모습이 떠오른 나의 첫 출근이다. 4일 정도 출근 후 한 달 뒤에 다시 출근을 했다. 나의 역병으로 인해 며칠 정도 함께 했던 팀원분들은 모두 A형 간염 예방주사를 맞으셨다고 한다.(심려를 끼쳐드려 죄송합니다,)

개발 경력 2년 2개월 만에 세 번째 회사였다. 이직이 쌓여 가는 상황 속에서 당시의 나는 생각이 많았던 것 같다. 뭐든 열심히 해서 잘해야지. 그래서 한 것이 기존 업무를 잘하는 것은 물론이고, 더 나아가 레거시 코드를 개선하기 위해 노력했다. 백수 당시 놀기만 했던 것 같아도, 여러 책을 읽으면서 내적으로 갈고닦았었던 것 같다.

선배 개발자가 짜 놓은 레거시 코드들을 보며, 너무나도 고치고 싶다는 생각이 들었다. 좋은 소프트웨어라면 다른 어떤 개발자를 앉혀놓아도 쉽게 이해할 수 있는 코드로 이루어져야 한다고 책에서 배웠고, 그렇게 행해왔기 때문이다.

 

4-1. 코드에 대한 신념 그리고 장인으로서의 자부심(feat. 소프트웨어 장인)


golang에 비해서 C/C++는 코드 형식에 대해서 너무나도 자유로웠다. 왜냐하면 기준과 규칙이 없었기 때문이다. 그러던 중 찾은 게 Google C++ Code Style이었다. 내 손이 닿는 모든 코드를 수정했다. VSCode와 cpplint만 있다면 못할 것이 없었다. 왜냐하면 정해진 규칙을 딱딱 지키게 만들어줬기 때문이다. 아울러, 틀린 부분은 고치라고 경고까지 날려줬다.(거의 모든 부분에서 경고를 받았다.) 그중 가장 마음에 들었던  규칙은 넓이 80을 지키는 것이다. C/C++는 오랜 역사를 갖고 있다. C/C++ 선배님들께서는 작은 모니터, 작은 환경, 작은 TextEditor에서 개발을 하셨다. 그 제한이 넓이 80이라고 들었다. 그 전통이 아직도 남아서 80을 지킨다고 한다. 아예 80 자리에 라인을 그어놓고 그 선을 넘지 않게끔 개발했고, 혹여 넘는다면 cpplint가 모든 것을 해결해 줬다. 아주 깔끔하게.

대부분 툴의 힘을 빌렸으며, 알고 쓴 것도 있었고 모르고 쓴 것도 있었다. 그냥 하라니까 했다. 법은 최소한의 도덕이고, 반드시 지켜야만 하는 것처럼. 반면, 툴의 힘을 빌릴 수 없는 것도 있었다. 그중 가장 좋게 생각했던 것은 주석을 없애는 것이다. 최대한 주석이 없이 다음 개발자를 이해시키는 것이 가장 좋은 코드라고 생각한다. 누가 보아도 이견이 없도록 그리고 분석이 쉽도록 해야 한다. 그래서 변수의 사용을 줄이려 노력했고, 정말 어쩔 수 없다면 최대한 상수를 이용했다.

코드에 대해서는 아무리 배우고 또 생각하더라도 부족하다고 생각하여, 프로그램이 빌드되는 시간에는 TDD(Test Driven Development), CleanCode 등의 책을 읽기도 했다.

 

4-2. 자동화 구축에 목숨 걸다.(feat. 젠킨스를 해봤어야 했다.)


말이 좋아 자동화 구축이지, 지금 와서 생각해보니 하다가 말았던 것 같다.

Makefile에 지쳐서 CMake 문법을 공부했고, 설루션에 적용했다. 코드 스타일을 고치고, 맘에 안 드는 구문이나 여러 가지 수정해야 할 부분들에 대한 확신을 갖기 위해 Google Test를 적용했다. 이 두 개를 합쳐서 CMake로 해당 설루션을 빌드하면 자동으로 Google Test가 실행되도록 설정했다. 당시의 나는 이러한 작업이 빌드 및 테스트 자동화라고 생각했었다.

거기에 젠킨스가 들어갔으면 맞다. 자동으로 빌드가 되고, 자동으로 테스트까지 통과하도록 할 수 있을 것이다.(사실 아직 모른다. 그렇게 될 것이라고 예상한다.) 이렇게 예상만 하지 말고 조만간 직접 써봐야겠다.

사실 난 자동화 구축에 목숨을 걸었다 쓰고 실제는 하다 말았다. 딱 젠킨스까지만 넣었어도 했다고 말할 수 있었을 텐데.

 

5. 마무리


근무한 회사는 보안 관련 회사였는데, 2021년에 와서 모 게임 회사의 게임 보안 직무로 서류합격 후 면접을 보니 그게 아니었다고 한다. 나는 보안 개발자가 아니고 그냥 애플리케이션 개발자라고 한다. 지금 와서 보니 면접관분의 그 말씀이 맞다. 나는 보안에 대해서 준비해서 보안 관련 회사에 입사한 것이 아니고 실직 후 어쩌다 보니 보안 관련 회사에 입사했던 것이고, 그중에 데이터베이스 암호화 설루션 유지보수 및 개발을 했던 것이다.

그래서 보안에 대해서 더 준비하려고 한다. 2021년 하반기의 시작인 오늘부터

 

728x90