안녕하세요. 오늘은 회고록으로 인사를 드리게 되었습니다.
저는 작년 10월 12일부터 근무를 시작해 어느덧 만 3개월이 넘게 되었습니다.
수습기간이 종료된 것이죠.
이 기간에 느꼈던 생각들 그리고 앞으로의 방향에 대해서 이야기해보도록 하겠습니다.
1. 스타트업은 처음이라
스타트업으로 새로운 도전
길지 않은 커리어지만, 두 회사를 다니면서 규모에 따른 장단점을 파악 했었습니다. 여기서 느낀 것이 있다면 '기업의 규모가 크고 작거나에 상관없이 결국 업무는 혼자 해나가는 것이며 쉽게 얻어지는 것은 없다는 것'입니다. 물론 제가 아직 전형적인 대기업의 프로세스를 경험해보지는 못 해서 확신할 수는 없습니다. 그럼에도 위 문장은 어디서나 비슷한 기조일 것이라 생각합니다.
그래서 스타트업에서 개발자 커리어를 다시 시작함으로서 초기 구축부터 많은 것을 해보고 경험해보자는 마음이 있었습니다. 개발팀을 제대로 꾸리는 것이 처음인 회사에서 시작을 하게 되었습니다. 심지어 기술 스택도 제가 익숙했던 Python 기반이 아닌 NodeJS에 GraphQL이었습니다.
사실 막막함 보다는 도전이 즐겁고 열의가 충분히 높은 상태였기 때문에 개의치 않았습니다.
3개월간 무엇을 했나
그렇게 첫 프로젝트로 관리자 페이지(Admin Page)를 만들게 되었습니다. 사실상 웜업(Warm UP) 프로젝트로 앞으로 사용할 기술의 일부만을 활용한 프로젝트입니다. 기술 스택은 GraphQL Yoga, NodeJS, EC2, RDS MySQL을 활용했습니다.
관리자 페이지의 주요 기능은
- User 로그인/회원가입/권한 작업
- 크롤링 한 아이템에 대한 CRUD
였습니다.
또한 동시에 위 프로젝트의 진행을 위해
- 데이터 크롤링(쇼핑몰 3개, SNS 2개)
- 이미지 recognition(AWS Managed Service) 개발
- 데이터 모델링
등을 진행했습니다.
디테일에 어려움을 느꼈었고 만들어가는 과정에 재미를 느꼈는데, 자세히는 아래에 기술하도록 하겠습니다.
아쉬웠던 점
1) javascript에 대한 기초가 약하다는 것을 여실히 느꼈다.
python에 많이 친숙해진 상태에서 javascript를 구축과 동시에 학습을 하면서 보게 되니 다소 어려움을 느꼈습니다. 그리고 저에게는 확실히 python 보다 어렵다고 여겨졌습니다.
물론 기초부터 탄탄히 쌓는다면 이 갭은 해소될 수 있을 것이라고 생각합니다.
2) Clean Code & Clean Architecture의 필요성
코드를 어떻게 구성하며 어떤 형태로 만들어가야 하는지에 대한 지식이 부족한 상황입니다. 더군다나 nodeJS를 처음 만들어가는 상황에서 아키텍처에 대한 고민은 후순위로 밀려났습니다.
그러다 보니 기능을 구현하는데만 초점이 맞춰져 가독성이 떨어지는 코드를 양산하게 됐습니다. MVC 패턴과 같이 자주 사용되는 패턴을 정형화해서 학습하는 것이 필요하다고 느꼈습니다.
3) Computer Science 관련 탄탄한 지식의 필요성
전에 Technical Archtect로도 근무하였지만, 주로 기본적인 리눅스 배경지식과 Application의 작동에 대해서만 알고 있었기 때문에 서버에서의 작동이나 안정적 Serving에 대해서는 잘 모르는 부분이 있었습니다. 이번 프로젝트에서도 많은 대상을 향한 서비스는 아니었지만, 향후 확장성에 대해서는 지속적으로 학습이 필요하다는 것을 확인했습니다.
좋았던 점
1) 웹개발에 있어 현업에 대한 관점을 이해
아무래도 처음 배울 때는 확장성이나 높은 수준의 기술보다는 구현하는 것과 기초를 쌓는 데에 집중을 했었습니다. 이번에 작은 프로젝트이지만, 팀장님의 조언으로 시야를 더 넓힐 수 있었습니다. 예를 들면 RDB에서 테이블을 만들 때, 미묘한 차이에 따라 용량이 굉장히 차이 나는 것처럼요. 특히 기존에 NoSQL 영역에서 있다가(사실상 데이터를 개발하는 업무도 아니었습니다.) RDB를 배우면서 본격적으로 비교가 되고 각각을 왜 사용하는지 조금 더 구체적으로 이해됐습니다.
그리고 어떤 기술이던 이게 더 안 좋은 기술이다와 같은 이분법적인 태도는 학습에 좋지 못하다는 것을 알게 됐습니다. 말 그대로 오답은 있지만 정답은 있다는 것을 조금 더 체감했습니다.
2) 구조적인 프로그래밍에 대해
직접적인 개발 이전에도 MSA와 같은 분화하고 코드를 구조적으로 나누는 클린 아키텍처에 대해 들어보았습니다. 특히 이번에 개발을 하면서 큰 맥락에서 클린 아키텍처를 경험해볼 수 있었습니다. 전과 같으면 수직적 구조로 크롤링 프로그램을 만들었을 텐데, 이번에 로그도 기록하고 조금 더 모듈화 하면서 개발을 할 수 있었습니다.
2. 앞으로는
이전 경력에 대한 활용 고민
이전에 데이터 엔지니어 경력에 있어서 부족함이 많았습니다. 정보통신 공학 전공으로 유관 전공자라고 할 수 있지만, 실제로 개발 프로젝트를 해본 것은 아니었기 때문에 개발 프로세스에 대한 이해가 많이 부족했습니다. 단순히 유틸성의 쉘 스크립트나 python으로 개발하는 수준이었습니다. 이 부족함은 운영 외의 업무로 뻗어나가기에는 부족함이 있었습니다.
그렇지만 동시에 이 전의 경험이 많은 사람들이 쉽게 접하기는 어렵고 저만의 강점이 될 수 있다는 생각은 여전히 있었습니다. 그리고 무엇보다 데이터와 관련된 업무는 계속하고 싶은 마음이 있었습니다. 이 부족한 부분을 채우기 위해 이직과 교육을 수료한 것이기도 하고요. 개발을 우선 배우겠다는 마음은 확고했기에 백엔드 개발자로 다시 시작한 것이죠. 그리고 이러한 역량을 기를 수 있어 만족한 상황이었습니다.
다시 생각해보기
위와 같은 고민은 있었지만 급하게 해결할 것은 아니었기 때문에 정상적으로 근무를 하고 있었습니다. 그러던 가운데 갑작스럽게 연락을 받게 됐습니다. 다시 데이터 엔지니어로서 이어갈 수 있는 좋은 기회였고, 고객 데이터도 상당한 곳에서의 제안이 오게 됐습니다.
그러면서 조금 더 진지하게 생각해 보았고, 기회가 빨리 왔다는 판단을 하여 해당 채용에 응시하게 됐습니다. 조금 더 자세하게 정리하면 현재 있는 곳에서도 근무 기간이 너무 짧고 개발을 제가 생각하는 것보다는 더 탄탄하게 다지지는 못 한 부분이 있습니다. 그럼에도 불구하고 데이터 엔지니어로서 다시 시작하게 될 때, 이 전의 단점들에 대한 많은 보완을 했고 더 성장할 수 있을 것이라 생각해 그렇게 결정했습니다.
감사하게도 이 채용 건에 최종 합격을 하게 되어 이 글을 작성하는 시점에는 데이터 엔지니어로 가게 되는 회사에 근무를 기다리는 시간을 보내고 있습니다.
이 전에도 계속 느꼈지만, 이직과 직무 전환 그리고 탄탄한 근무환경이 모든 것을 해결해주지는 않습니다. 앞으로도 가야 할 길이 너무 많이 남았습니다. 쉽지 않겠지만, 다시 데이터 엔지니어로 도전하는 마음에 설렘이 있습니다.
'Carrers > 회고록' 카테고리의 다른 글
| 2021 회고 & 2022 목표 (0) | 2022.01.11 |
|---|---|
| 6개월 만의 회고 (0) | 2021.11.07 |
| 수습기간 종료와 자격증 취득 목표에 대해 (0) | 2021.05.02 |