2022년은 격변의 시기였다. 그만큼 회고할 내용도 많아서 여러편으로 회고록을 작성하고 있다. 드디어 마지막, 기술 편이다.
가장 중요한 기술편을 마지막까지 남겨놓은 이유는 딱히 없다. 그냥 편한 내용대로 쓰다보니 스터디 - 일 - 기술 순서대로 쓰게 되었다. 아무래도 아직까지는 컴퓨터와 한 몸이 되지 못했기 때문인 것 같다. (운영체제 수업 교수님이 말씀하신 '내가 운영체제요, 운영체제가 곧 나다'의 지경까지는 이르지 못했다.😇 언젠가 그런 날이 올지..?)
특정 프레임워크나 툴을 다뤄보았다는 사실이 곧 나의 성장을 의미하지는 않는다. 그 기술이 나온 배경과 역할, 장단점을 잘 이해하고 적재적소에 잘 써먹을 수 있어야 한다. 그런 점에서 아직까지 갈 길이 멀고도 멀다. 하지만 그 첫 발걸음을 내딛었다는 것에 의의를 두고 회고록을 작성해보려한다.
개인 레포지토리에서 실습하며 써본 기술을 소환해보기로 했다. 정말 다행히 깃 잔디가 완전히 말라죽지는 않았지만 작년에 비하면 많이 줄어들었다. 올해에는 좀 더 많이 심어보고 싶다. 😇
Java, Typescript, Dart, Spring, Flutter, Kubernetes, Docker
학부생 때는 Java를 싫어했다. 일단 모든게 클래스라는 사상도 마음에 안 들었고 클래스명이 엄청나게 길어지는 것도 별로였다. 하지만 모던 자바 인 액션 책에서 최신 자바 문법을 알게 되면서 생각을 바꾸게 되었다. OOP 개념은 아직까지 완전히 정복하지 못했지만, 적어도 구닥다리 언어라는 이미지는 벗었다. 아무래도 Typescript를 쓰면서 함수형 프로그래밍에 익숙해지다보니 좀 더 편하게 받아들여진 것 같다.
K8S, Docker쪽은 써보기 전에 겁을 먹었다. 옆에서 DevOps 업무를 혼자 담당하는 팀원이 고통받는걸 지켜봤기 때문이다. 왠지 나와 아주 먼 세상 이야기인줄로만 알았는데 어쩌다보니 도커 스터디도 하고 내 노트북에 도커 데스크탑을 깔아서 실습을 하게 되었다. 이론을 하나씩 배우고 있는데 잘 써먹기만 한다면 굉장히 강력한 툴이라는 생각이 들어서 앞으로도 계속 보기로 했다.
Flutter, Dart는 개발에 입문할 때 친해진 스택이다. Git 컨벤션을 처음 정해보고, 처음으로 역할 분배를 해보고, 처음으로 데드라인을 받아서 개발 이라는 일을 했을 때 플러터 애플리케이션 만드는 일을 하고 있었다. 그 뒤로 React 웹앱도 만들어봤지만 UI 만드는데는 역시 플러터가 가장 직관적이고 편하다. '개발자라면 내가 원하는 앱 하나정도는 혼자 만들 수 있어야지!'라는 기준을 갖고 있는데, 그 도구로 플러터를 쭉 애용할 것 같다.
한번쯤 써봤지만 아직 익숙하진 않은 친구들이다. 하지만 계속 보게 될 것 같다.
ELK Stack, Ruby, Sentry, MongoDB, Redis
그 전까지 눈치채지 못한 사실.
소프트웨어 개발에는 여러 단계가 있다. 기획 - 설계 - 구현 - QA - 운영 - ... 나는 그중 설계 단계를 가장 좋아한다. 이걸 그동안 깨닫지 못하고 있었다. 내가 알고 있는 것 외에 얼마나 다양한 선택지가 있는지 몰랐고, 복잡한 요구사항을 최대한 효율적으로 해결해야하는 경우가 거의 없었기 때문이다.
돌이켜보면 졸업 프로젝트를 진행하면서 한번 제대로 된 설계를 해본 적이 있다. 그 때는 이런 그림을 그렸는데, 주어진 제약사항을 어떻게 해결할지 고민하는게 머리 아프면서도 굉장히 재밌었던 기억이 난다.
설계 작업이 재밌어서 대규모 시스템 설계 기초 스터디도 해보고, 데이터 중심 애플리케이션 설계 책도 읽어보고, 얼마 전에는 테크 스택 그림 그리는 레포지토리 도 만들었다. (레포지토리 Issue, PR은 언제나 환영입니다.🎉)
퇴근 후, 주말에도 심심하면 코딩을 한다고 하면 다른 과 친구들이 이상한 눈빛으로 보는 경험을 다들 했을 것이다.(저만 그런거아니죠?🤗) 그래도 아직까지는 뭔가 만들어내는게 재밌다. 깔끔한 코드를 위해 고민하는 것도 재밌고, 그 코드가 돌아가면서 내가 생각한대로 동작하는걸 보는 것도 재밌다. 물론 나 대신 디버깅하고 삽질해주는 인공지능이 필요하다는 생각은 항상 하고 있지만, 경험이 쌓이면서 디버깅하고 삽질하는 시간도 줄어들지않을까?
OOP 개념, 네트워크, 분산 환경과 같이 눈에 보이지 않는 것들에 대한 이해가 부족하다는 생각이 든다. 2023년도에는 이런 부분을 좀 더 채워나가는 해가 되었으면 좋겠다.