일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- cos pro 1급
- 동적계획법과최단거리역추적
- 안드로이드스튜디오
- 개발
- Python
- DART
- 코테
- cos pro
- django
- 코드품앗이
- 안드로이드
- vuejs
- AndroidStudio
- BAEKJOON
- cos
- DFS와BFS
- C++
- issue
- 동적계획법
- 코딩테스트
- codingtest
- Vue
- Algorithm
- 분할정복
- android
- DFS
- 백준
- 파이썬
- Flutter
- 알고리즘
- Today
- Total
Development Artist
20대 끝, IT 업종에서 개발자와 엔지니어 진로에 대한 고찰, 나의 이야기 본문
들어가며
나는 IT 업계에서 실무자로 일한 지 2년이 되어가는 개발자이자 엔지니어다.
지금 이 글에서 하고 싶은 얘기는 IT 업계에서 2년 동안 개발자와 엔지니어로서 일하면서 앞으로의 진로에 대한 고민이 깊어져 글을 쓰며 정리하고 싶은 생각이 들었고, 개발자 또는 엔지니어로서 일하고 싶은 취준생들 또는 꿈꾸고 있는 학생들에게 이러한 경험과 생각도 있음을 알리고자 함이다.
나보다 선배인 분들이 이 글을 읽는다면, 피식하면서 볼 수 있는 또는 귀여운 글이 될 것이기 때문에 사실 조금은 민망할 것 같은 기분도 든다. 미리 너그러운 양해를 부탁드립니다.
어릴적 회상
어렸을 적에 우리 집엔 컴퓨터가 5대나 있었다. 아버지 친구분이 컴퓨터를 판매하시는 분이었는데, 남는 컴퓨터를 늘 우리 집에 주시곤 하셨다. (사실 어떤 이유에서 우리 집에 컴퓨터들이 왔는지 정확히 기억하지는 못하지만 허름했다) 그래서인지 내가 7살 정도 하는 나이 때부터 컴퓨터에 자연스럽게 관심이 갔다.
어릴 때부터 컴퓨터를 만졌으니, 컴퓨터 하드웨어와 소프트웨어에 능숙했을까? 전혀 아니었다. 어릴 때 나의 모습은 단순히 게임을 광적으로 하던 꼬맹이였다. 스타크래프트, 겟앰프드 등등… 주말만 되면 12시간씩 붙잡고 있었다.
게임을 정말 좋아해서 학교에서도 스케치북 하나 들고 게임 시스템, 게임 아이템 등을 그려서 친구들에게 보여주기도 하였다. ‘포트리스’라는 게임을 혹시 아는가? ‘포트리스’ 게임 화면을 그리고 내가 시스템이 되어 친구들의 캐릭터들을 움직이기도 하였다. (가령 친구 A가 나 쟤 공격할래 하면, 내가 빗맞히고 바람의 영향으로 빗맞았다 아쉽군…뭐 이런 말도 안 되는…)
그렇게 유년기 시절을 보내고 어느 정도 꿈이란 것을 꿈꾸고 기본 지식을 습득하는 나이가 되었을 때(중학생 정도려나), 우연한 기회로 정보 올림피아드를 나가게 되었다. 하지만, 예선전 탈락이었고 당연한 결과였다. 준비된게 전혀 없었기 때문이다. 다만, 그때 당시에 막연한 생각으로 ‘먼 미래에 내가 프로그래밍을 하고 있을까?’ 한번은 생각해 보게 된 계기 정도는 되었다.
중고등학생 시절 내가 가장 좋아하는 과목은 수학이었다. 정답이 명확한 것이 수학을 좋아하는 이유였다. 그래서 성적도 늘 좋게 받은 편인 것 같다. 반면, 국어를 제일 싫어했다. 문해력이 좋지 못해서 옳은 것을 고르는 지문에는 전부 옳게 보이고, 옳지 않은 것은 다 옳지 않게 보였다. 지금, 이 글도 왠지 두서가 없지 않은가?
(???)
정말이다. 내가 게임을 좋아해서 컴퓨터공학과에 가게 된다면, 이런 게임도 만들어 볼 수 있지 않을까? 하는 아주 일차원적인 생각으로부터 비롯된 결정이었다.
성인이 되다
결국 가,나,다 전형 모두 컴퓨터공학과를 지원했고, 그중 한 곳에 합격하여 파란만장한 대학 생활을 하였다. 대학교 와서 설렘 반 기대 반으로 들었던 전공과목에서 느꼈던 점은, 천재가 많다는 것이었다. 처음 C언어를 접하고 문제를 해결하는 과정에서 나보다 몇 배는 나은 코드와 문제 해결 속도를 가진 학우들이 많았다. 좌절감이 컸던 것 같다.
그래도 지금 적어 보면서 느끼는 부분은 문제를 해결하는 것을 좋아한다는 것이다. 다른 학우들보다 코드의 간결성과 빠른 문제 해결력이 떨어지더라도 그 과정을 즐겼었다. 그래서 다른 사람들과 비교할 필요 없이 그리고 잘함에 상관없이 오롯이 나에게 이런 질문을 해도 좋을 것 같다. ‘내가 지금 이것을 즐기고 있는가?’
다른 꿈
지금은 내가 개발자 그리고 엔지니어로서 일하고 있지만, 진로를 정하기 전 다른 하나를 크게 마음 두고 있었다.
바로 경찰이었다.
고등학교 때 한창 진로에 대한 고민이 있을 때, 경찰대 입시를 준비했었고 낙방한 후 군대를 갔다 와서도 경찰에 대한 미련을 버리지 못하고 있었다. 그래서 경찰 간부 시험을 보기로 마음을 먹고 오롯이 내가 모은 돈으로 1년 동안 준비했다. 미련 없이 하기 위해 정말 악착같이 했다. 고3 수능 준비 때 한 공부량이 인생 역대급 공부량이었는데 이때 새로 갱신했다. 결과는 낙방이었고 경찰에 대한 꿈은 접고 다시 복학했었다.
경찰의 꿈을 꾸면서 내가 경찰이 되고 싶었던 가장 큰 이유는 다른 사람을 도우면서 내 가치를 확인하는 것이 좋았다. 초등학교, 중학교 전교 회장을 한 이유와도 일맥상통할 것이다. 다른 이들에 내 존재를 인식시키는 것, 도움을 주거나 즐겁게 하거나 하는 그런 선한 방법으로 그들에게 나를 인식시키는 것이 나에게 큰 만족감이었다.
그런 이유의 가치라면 개발자가 되어서도 실현할 수 있지 않을까?
사회에 발을 딛다
돌아와서 학업을 마무리하고 마지막 학기에 후배의 제안으로 인턴을 했었다. 이때부터 실무에 대한 지식을 쌓을 수 있었는데, 가장 먼저 한 것이 AWS의 Managed Service와 그와 관련된 서비스를 다루는 것이었다. EC2, S3, Cloudfront, Route53, EKS, Gitlab runner(CI/CD) 등 다양한 서비스들을 익혔고 우연한 기회로 MSA에 따른 Cloud Infra Migration을 해보았다. 그리고 SI 형태로 Python언어 프레임워크인 Django로 RESTful API를 개발했었다.
자의적으로 계획에 따라 만들어 간 커리어는 전혀 아니었다. B2C 서비스를 하는 자체 플랫폼을 가진 스타트업에서 학점을 위해 인턴을 시작했고 리눅스를 조금 할 줄 안다고 면접 때 답해서인지 CloudSystem부서로 배치되어 Cloud 서비스를 익혔고, 인원이 부족하여 Backend 개발도 진행하게 된 케이스였다. 하지만, 이 커리어를 만들어 나가는 과정이 정말 재밌었다. 특히 인프라로 시작한 게 정말 컸던 것 같다. 업무 중 9할이 트러블슈팅이였다. 매일 새로운 문제들을 맞닥뜨리면서 서비스 시스템의 전반적인 것을 습득하게 되었고, Backend API 개발할 때에도 큰 도움이 되었다.
인턴 6개월이 끝나고 Cloud Infra에 대한 흥미가 깊어져 관련 회사들을 찾아보았고, MSP에 대해 알게 되었다. 지금 회사에 지원을 하게 되었고 합격하여 Cloud Engineer로 일을 시작하였다. MSP의 경우 고객에 따라 다양한 CSP를 운영할 줄 알아야 한다. AWS, MS의 Azure, Google의 GCP, Oracle의 OCI 등등… 또, 온프레미스 환경에서 Cloud를 사용하는 고객도 있어 Hybrid Cloud 환경의 아키텍처를 보고 운영하기도 했다.
매주 CSP별 Billing을 했었는데, 생각보다 공수가 많이 들었었다. 친한 동료가 보고만 있을 수는 없었는지 Python으로 Billing을 하는 알고리즘을 짜서 조금은 시간을 단축했다. 옆에서 이 과정을 보다가 팀원들의 업무 능률을 향상 시킬 수 있는 사내 플랫폼을 한번 구축해 보면 어떨까 하는 생각이 들었고, 인턴 경험 때 배웠던 기술을 활용하여 플랫폼을 제작했다. 사내 개별 구축 서버에 esxi 베어메탈 하이퍼바이저로 VM을 하나 올리고, 해당 VM에 Vuejs build 결과물인 /dist를 두고 Nginx를 설치하여 바라보게 끔 하였다. 그리고 새로운 VM에 PostgreSQL을 설치하고 Django 서버를 Docker 이미지화하여 컨테이너로 동작하게끔 하였다. 그리고 Github actions를 활용하여 master 브랜치에 merge시 자동으로 build와 deployment가 되게끔 구성하였다. 사내망에 Github actions 에이전트가 들어올 수 있어야 하기 때문에 방화벽 특정 포트, 특정 Hostname을 통해 들어올 수 있게 끔 구성하였다. 하지만, merge가 일어나는 시점에 파이프라인이 도는 동안 서버에 접속할 수 없는 점이 한계점이었다. 새로 VM을 올려서 Kubernetes를 도입해서 순단을 없애려고 했지만, 다른 업무에 치여서 일단락하였다.
20일 만에 모든 것을 구축하였는데, 빠르게 할 수 있었던 것은 구현하는 볼륨이 작았던 점, 사내망을 사용하기도 했고 복잡한 기능이 없어서 인증이 빠진 점, 이전 인턴 경험에서 사용했던 코드를 재사용한 점이라고 할 수 있다.
내가 되고 싶은 사람 중 하나가 ‘생각을 실현하는 사람’이다. 예전만큼은 아니어도 순간순간 아이디어가 떠오를 때가 있다. 그럴 때 그것을 구현할 수 있다면 정말 멋있을 것 같다고 생각한다.
처음에는 Cloud Infra를 통해 숲을 볼 수 있던 것이 큰 매력으로 다가왔었다. 하지만, 이번 사내 플랫폼을 개발해 보니 뭔가 생각한 것을 직접 만져볼 수 있게 구현하는 것도 큰 매력이라는 것을 다시 한번 느꼈다.
그래서 지금
그래서 지금 고민이 매우 깊다. 현재 회사에서 사업 확장의 일환으로 개발도 같이하고 있는데, 엔지니어와 개발자 업무 모두 재밋기 때문이다.
20대엔 Generalist, 30대엔 Specialist, 40대엔 성공을 이루라는 말을 들은 적이 있다. 지금 20대의 끝자락에서 다양하게 해보고 있지만, 곧 올 30대에 전문성을 갖추기 위해 깊게 파고 들어가기엔 모두를 챙길 수 없을 것 같다. 하나를 깊게 파고 들기 위해 정하고 싶은데 그게 쉽지 않은 상황이다.
불과 몇 달 전만 하더라도 풀 스택+엔지니어까지 다 하려고 했지만, 점점 공부를 하면 할 수록 절대 쉽지 않을 것이라고 느끼고 있다.
여태까지 언급은 없었지만, 졸업 작품은 Java로 Android용 애플리케이션을 만들었고, 개발자 친구와 함께 Flutter 앱을 만들어 보기도 했고, 하고 있는 게임 길드원들에게 도움이 되는 사이트를 만들고자 Nextjs로 웹사이트 제작도 해보고, 아는 분 요청으로 App 업그레이드 위해 php 서버도 다뤄보는 등 다양한 스택들을 경험해 보았다. 이 모든 것들에 대한 흥미는 있지만, 모든 분야에 전문성을 가지기는 힘들 것 같다. (가령, 어디 가서 “저 Flutter 개발자입니다.”라고 말을 못할 것 같다. 아주 오만한 생각임이 자명하다.)
쓰다 보니 글이 참 길어졌는데, 어쨌든 계속해서 문제를 찾고 해결하며 생각한 것을 구현하고 하는 부분은 변함이 없을 것 같다. 이런 생각들은 최근들어 더 깊어지고 있는데, 정답은 없는 것 같다. 결국 결론을 짓지는 못했지만, 5년 뒤, 10년 뒤 나의 모습은 분명 지금보다 나을 것이다.
그리고 일단 해보자. 고민만 하면서 흘려보내기엔 너무 아까운 시간이다.
ps. 최근 토비의 스프링 책을 사서 공부하고 있는데, 참 재밌다. 시간 되면 사내 플랫폼 Django 서버 Java Spring Boot로 Migration 해봐야겠다.
'Daily' 카테고리의 다른 글
[다우기술] 2022 상반기 개발직군 인턴면접(1차) 후기 (0) | 2022.03.08 |
---|---|
[다우기술] 2022 상반기 개발직군 코딩테스트 후기 (0) | 2022.02.28 |
[다우기술] 2022 상반기 개발직군 인적성 후기 (0) | 2022.02.28 |