Memoir: 2021년 회고록(첫 회고록)

    Memoir: 2021년 회고록(첫 회고록)

    2022, Mar 18    

    뜬금없이 무슨 회고록이냐고?

    돌이켜보니 2020, 2021년은 나에게 뜻 깊은 한해였다. 여기어때에서 1년 6개월 동안 업무를 보며 느낀점이 많았고 어쩌면 내 개발인생의 터닝 포인트가 된 것 같다. (한편으로는 ‘코로나’라는 최악의 바이러스가 시작하고 진행중인 해이기도 하고(화남)) Mac으로 개발도 하고 가볍게 사용했지만 여러 언어들로 개발해보고 다양한 경험을 하며 개인적으로 재밌는 시간을 보냈다. 그 이면에는 나의 부족함을 여실히 느꼈던 것들도 많았다. 이런 점을 그냥 지나치면 나는 여전히 부족한 사람으로 남을 것 같았다.

    ‘필요성과 부끄러움을 온전히 마주하고 계기가 되도록 기록하며 부족했던 점을 보완하고 실천하고자’

    이러한 이유로 나는 앞으로 회고록을 작성하기로 결심했다.

    2021년 회고록 작성에 앞서…

    나의 개발경력은 2016년부터 시작됐다. 욕심같아서는 2016년부터의 회고록을 작성하고 싶었지만 마치 지난 일기를 쥐어짜내 억지로 만들어진 기억으로 작성하는 느낌이랄까? 포스팅의 구색만 갖추려는 것 같아서 가장 최근 한 해의 회고록을 먼저 작성하려 한다. 이후 지난 몇 년간의 기억도 회고록까지는 아니겠지만 회상하는 정도로 차분히 정리해서 기록해야겠다.

    MSA(micro service architecture)와 php

    2021년 여기어때를 간단히 소개하면 ‘숙박 어플리케이션’ 관련 서비스를 하는 회사였으며 난 당연히 개발자로 일을 했다. 여러 팀들 중 ‘백 오피스팀’에 속한 ‘웹 개발자’의 역할을 수행했으며 프로젝트는 ‘MSA’의 개발 방식을 채택했고 여러 서비스 모듈 중 관리페이지 도메인을 주로 담당했다.

    해당 도메인은 ‘php(script program language:server side)’를 사용하는 레거시 모듈이었다. 이때 처음 php를 접했는데 업무에 어느정도 퍼포먼스를 나타내기까지 오랜 시간이 걸리진 않았다. 그만큼 접근성이 쉬운 언어였다.

    또한 여러 프레임워크 중 ‘codeigniter’ 와 ‘laravel’를 사용했는데 당시에 두 프레임워크 간 차이를 크게 느끼진 못했고 ‘laravel’의 경우 ‘eloquent ORM’을 쓰고 있다는 점에서 좀 다르다 정도였다.

    지금에 와서 생각해보니 두 프레임워크 간의 차이점을 궁금해하지 않았던 것 같다. 그저 할당된 업무를 진행하기에 급급했다.

    참고로 이후 업무 중에 알게된 것인데 ‘codeigniter’에서도 ‘orm’ 기능은 사용할 수 있었다. ‘codeigniter’와 달리 ‘laravel’의 경우 공식문서에 ‘eloquent’를 다루고 있었기에 나는 단순히 ‘codeigniter’는 제공하지 않는 기술(라이브러리)이라고 생각했다.

    나의 개선할 점은 여기에 있는 것 같다.(한숨)

    ‘codeigniter’프레임워크 기반의 php 프로젝트를 생성하고 타인에게 해당 프로젝트의 구조를 설명하라하면 자연스럽게 설명하기가 어렵다는 생각이 든다. 애초에 구조 설명이라는게 어떻게 설명을 해야하고 어떤 용어를 써야하는지 감이 안오기 때문이다. 지금까지 프로젝트의 구조는 AA(Application Architecture)가 설계했고 개발자로서 할당된 일감에 해당하는 코드를 작성하고 일정을 맞추기만 했을 뿐이었다. 하지만 MSA 기반 프로젝트는 각 팀에서 세분화 된 서비스 모듈을 설계하고 개발까지 업무범위에 넣었기에 현재의 개발자들은 그 범위의 경계선이 모호해졌고 일정 수준은 겸하고 있어야 한다고 느꼈다.

    언어별, 프레임워크별, 해당 서비스가 어떤 구조로 어떻게 서비스하고 있는지 아는 것이 중요하다 느꼈다. 모든 것을 다 잘하고 알 수는 없지만 적어도 상대방과 소통할 수 있는 지식, 정보를 전달할 수 있을만큼은 돼야한다.
    나는 스스로 귀차니즘을 느끼고 공부하는데 회피하고 소홀해 있었던건 아닐까?

    업무를 대하는 태도

    면접을 하던 날이었다. 그동안 여러가지 사이드 프로젝트를 수행했는데 시간이 꽤 지나 진행했던 프로젝트에 관해 묻는 이가 있었다. 대략적으로 기억은 났으나 정확하게 설명을 요구했다. 만족스러운 대답을 할 수 없었고 이후 그 질문을 던진 사람에게로 탓을 돌렸다. 그것은 무리한 요구였을까? 아니면 내 잘못이었을까?
    지금에 와서 모든 것이 내 탓이라고 할만큼 비관론자로서 회고록을 작성하려는게 아니다.

    개발자의 매력은 기억보다 기록!

    개발자는 많은 프로그래밍과 문법을 다루는 직업이다. 모든 문법을 다 기억할 수는 없다. 이와 마찬가지로 진행했던 모든 업무를 기억하지 않아도 괜찮다. 다만, ‘아 이런 일을 한적이 있었지. 아마도 여기에 정리해뒀을거야.’ 라는 기록을 남겨두는 부지런함을 가지고 있으면 된다. 그것이 개발자의 기본 소양이라고 생각한다.
    기록된 데이터는 휴대폰이나 태블릿, 노트북 등 인터넷과 디바이스만 있다면 상대방에게 보여주고 공유할 수 있다. 기억하지 못한다고 해서 부끄러운 것이 아니다. 시간이 지나 기억하지 못할 수 있다. 그래서 기록하는 것은 중요하다. 그리고 기록을 위해 해야 할 일에 대해 파악하는 것은 더 중요하다.
    개발자는 운영팀과 기획팀이 결정한 일을 개발만 하는 사람이 아니다. 과거에는 그랬을지도 모르지만 현재를 살아가는 내가 느끼기에 개발자도 기획과 개발의 영역을 넘나든다. 기획자의 업무 스타일이나 기획업무에 관여하라는 것이 아니다. 개발을 진행함에 있어 조율이 필요하고 조율하기 위해선 업무의 개요부터 의도를 파악해야 한다. 이후 개발자가 해야 할 일을 정확하게 기록할 수 있어야 한다. 그렇다면 시간이 지나도 개발로직에 대한 히스토리를 파악할 수 있고 개발방향에 신뢰도 생길 것 이다.

    면접에서 질문에 관한 업무는 사실 기록했었다. 다만 보여주지 못했을 뿐. 면접이란 틀에 사로잡혔던 것 같다. 개발자는 약간 4차원이 돼도 좋을텐데..

    마무리하며

    어느 순간 나는 되돌아가고 또 되돌아갔다.
    2021년에 나는 여러 언어도 접해봤고 이것, 저것 조금씩 건드려본 것 같다. 그러면서 어느정도 한다고 생각도 했다. 그런데 부족하다고 생각할 때마다 기본적인 문법, 기본적인 정의 등을 찾아봤다. 결국 기본을 제대로 해두지 않으면 앞으로 나아갈 수 없다. 자바를 처음 접하고 배웠고 대한민국에서 자바는 아직까지도 가장 많이 쓰인다. 다른 누군가는 ‘자바말고 리액트가 대세더라’, ‘파이썬이 재밌더라’ 등 얘기한다. 그럴때마다 ‘나만 뒤쳐지는건가? 나도 다른 언어를 해야하나?’ 하고 생각했다. 하나라도 잘 하고 ‘프로그램 언어’에 대해 익숙해지면 그때 해도 된다.

    나는 아직 부족하다.

    위에서 언급했듯 개발자로서 귀찮음을 느끼지말고 부지런하게 작은 궁금함을 피하지말고 파악하자. 그리고 기록하자.
    2022년의 회고록을 작성할 때 지금의 부족함을 채우고 다른 부족함을 작성하길 희망한다.