안녕하세요. 인포그랩에서 프론트엔드 엔지니어로 일하고 있는 Fabbro입니다. 저는 컴퓨터공학을 전공하지 않은 비전공자 출신 엔지니어인데요. 인포그랩에 입사한 지 1년 6개월이 조금 넘었습니다.
이 글은 DevOps 전문 기업인 인포그랩에서 비전공자 출신인 엔지니어가 회사 입사 후 경험한 일과 엔지니어의 삶에 적응하는 과정을 사계절 테마로 나눠 다뤘습니다. 문과 감성을 담은 엔지니어의 글임을 고려하며 읽어주시면 좋겠습니다.
1장 봄
개발자가 되기로 결심한 사연
제가 개발자가 되기로 마음먹은 데에는 전 직장의 업무가 큰 영향을 줬습니다. 제 업무는 상담사의 실적 데이터를 엑셀로 관리하면서 그 데이터를 시각화하고 이를 토대로 상담사에게 실적을 압박하는 관리 업무였습니다. 문제는 전 직장이 굉장히 오래된 회사로 전형적인 수직 구조를 띄고 있었다는 건데요. 술 강요, 수직적 업무 체계는 탈출 욕구를 키우는 데 큰 역할을 했죠.
전 술을 강요하지 않는 직업을 찾다가 개발자를 발견했습니다. 엑셀을 다루는 업무가 재미있었지만 제 업무는 ‘잘해야 본전’이었는데요. 이와 달리 개발자는 무언가를 만들어 내는 일을 하면서 동료에게서 인정받는 건 물론, 스스로 자신의 성과를 대외적으로 자랑까지 할 수 있더라고요. 제게는 이런 점이 너무 충격적이고 매력적으로 다가왔습니다. 이에 당장 개발 공부를 시작했습니다.
겨울인 줄 알았는데 봄이었다

개발 공부를 시작하고 얼마 되지 않아 ‘엑셀 함수를 다루는 일이 개발자와 비슷하다’고 생각했던 저 자신이 미워졌습니다. 엑셀 함수를 실행하는 환경(개발 환경)을 만드는 것부터 어렵더군요. 그렇지만 끊임없이 문제가 발생하더라도 그걸 해결했을 때 오는 강력한 희열에 중독되어 개발에 재미가 붙기 시작했습니다. 그렇게 1년이 흐르고 저는 국비학원도 수료하고, 정보처리기사 자격증도 따고, 개인 프로젝트도 수행해 마치 개발자가 된 것 같았습니다.
그러나 머지않아 ‘현실이 겨울처럼 냉혹하다’는 걸 깨달았죠. 개발자로 취업하는 과정은 녹록지 않았습니다. 그러나 포기할 수 없었습니다. 여전히 개발자라는 직업은 제게 마법사처럼 환상적이고 멋있는 직업이었거든요. 그래서 저는 “나 를 알아봐 주는 기업은 정말 좋은 기업일 거야! 그래서 좋은 기업을 만날 때까지 시간이 조금 더 걸리는 거야!”라고 자기최면을 걸었죠. 그러던 어느 날 드디어 제게도 ‘인포그랩’이라는 봄이 찾아왔습니다.
나, 마법사가 아니라 트롤이었네?

인포그랩에 입성한 날, 맥북과 32인치 델 모니터가 세팅된 제자리를 보고 저는 “와 진짜 마법사(개발자)가 된 것인가?”라고 생각했습니다. 처음 사용해 봐서 불편하지만 ‘감성 충만’한 맥북과 화면을 반반씩 나눠도 여유가 넘치는 축구장 크기의 모니터 덕분에 너무 행복하였습니다. 맥북 사용 꿀팁 전수, 회사 규칙 교육, 실무에서 사용하는 프레임워크를 활용한 사이드 프로젝트 수행 등 약 3주간의 온보딩 교육이 끝나고 저는 드디어 실무에 투입되었습니다.
처음 2주 동안은 별 사고 없이 작은 단위의 업무를 조금씩 해결해 나갔습니다. 그러던 어느 날 결국 사고가 터지고 말았죠. 해당 프로젝트는 ssh 원격으로 같은 워크플레이스에서 작업을 수행했습니다. 그러던 중 제가 작업한 코드가 마음에 들지 않아 작업한 코드를 discard 했는데요. 그런데 제 코드가 아니었습니다.(제정신이 아니었습니다!😵💫) 동료분이 작성한 코드를 날려버린 게 아니겠습니까? (지금 생각해도 손이 떨리네요.👋)
너무 놀라서 당황하다가 일이 더 커지기 전에 동료분에게 알렸습니다. 다행히 그분은 “중요한 부분은 아니었어요. 그래도 다음부터는 주의해 주세요”라고 따뜻하게 말씀해 주셨습니다.(정말 안 중요했던 건지는 지금도 몰라요.🥹) 그래도 이 경험으로 코드의 소중함과 형상 관리의 중요성을 뼈저리게 느꼈습니다.
2장 여름
남모를 문화 지체 현상

인포그랩이 추구하는 업무 스타일은 “Get Shit Done!” 일단 부딪혀서 빠르게 실행하는 것입니다(회사에 출근하면 이 문장이 적힌 액자가 눈에 띕니다). 이에 맞춰 개발도 애자일 방법론에 따라 2~3주 간격으로 스프린트를 두고 진행합니다. 스프린트 회의에서는 그동안의 진행 상황을 공유하고 피드백을 주고받습니다. 또 요구사항을 다시 정리하여 프로덕트가 조금씩 원하는 방향으로 나아가도록 조정합니다. 본격적으로 개발할 때는 어제 수행한 작업과 오늘 할 일을 공유하는 스크럼 회의를 매일 진행합니다. 이 회의에서 스프린트 기간에 발생할 수 있는 문제를 파악하고 해결하며 일정을 조절합니다.
회사에서는 동료와 평소 피드백을 자주 주고받고, 누구든 원하는 업무를 자발적으로 시작할 수 있으며, 동료에게 언제든지 도움을 요청할 수 있었습니다. 정기적으로 업무를 회고하기도 하고요. 저는 인포그랩이 좋은 문화로 가득 차 있다고 생각했어요. 과거 정보처리기사 자격증을 공부할 때도 ‘폭포수(워터폴) 방법론보다 애자일 방법론의 장점이 눈에 더 들어왔는데요. 인포그랩에서는 애자일 방법론에 따라 업무를 진행하기에 제 선호에 부합했습니다.
그러나 머리로는 ‘애자일 방법론이 좋다’고 이해하지만 실제 이를 수행하고, 내면화하는 일은 녹록지 않았습니다. 저는 이전 직장에서 수직적인 위계 구조에 절여져 있었는데요. 그렇다 보니 미리 준비하지 않고 부딪치기, 자발적으로 참여하기, 피드백 주고받기, 회고하기가 너무 낯설고 어렵더군요. 이에 저는 남몰래 문화 지체 현상을 겪기도 했습니다.
비비디 바비디 부(소원아, 이뤄져라)

인포그랩에서는 업무를 추진할 때 생각대로 다 합니다. 생각을 입 밖에 내는 순간 업무가 생성되고 참여자를 포획(모집)하죠. 제가 ‘포획’이라는 단어를 선택한 이유는 요즘 유행하는 밈 중 하나인 “너 내 동료가 돼라"를 넘어 hp(체력)가 100%인 포켓몬에게 몬스터 볼을 던지듯 순식간에 업무가 생성되고 급작스럽게 팀원을 모집하기 때문입니다. 더 놀라운 점은 대부분의 팀원은 기분 좋게 잡힙니다. 다들 일에 열정과 호기심이 많아서 그런 듯합니다.
이런 문화는 제가 소속된 프로덕트 팀에서도 느낄 수 있어요. 엔지니어는 새로운 기술에 관심이 많잖아요? 그래서 새로 배운 기술을 실무에 사용해 보고 싶은 욕구도 풍부합니다. 일반 기업에서는 새로운 기술을 실무에 바로 적용하기가 어려운데요. 제가 속한 프로덕트 팀은 “사용하고 싶은 기술을 실무에 활용해 보라”고 권장합니다. 단, 이 기술을 실무에 적용해야 할 이유를 제시해 팀을 설득한 이후에 말이죠. 이러한 문화 덕분에 저는 다양한 기술 스택을 실무에 활용할 수 있었습니다. 다음은 제가 조사하고 제안하여 실무에 사용한 기술입니다.
- React-Query: 이 기술을 사용할 때 서버 상태 관리가 필요했습니다. React-Query는 npm trends에서 제가 후보에 올린 기술 중 1등이었던 기술이고요. 이는 Jotai와 호환됩니다.
- Jotai: 이 기술을 사용할 때 전역 상태 관리가 필요했습니다. 저는 상태 관리를 많은 곳에서 사용하지 않고, 최대한 간단하게 사용하고 싶어서 이 기술을 선택했습니다. 이 기술은 ‘러닝 커브가 낮다’는 장점도 있었습니다.
- TailwindCSS: 이 기술은 npm trends 1등은 아니었는데요. 저는 TailwindCSS 인기가 수직으로 상승한 그래프를 보고 호기심이 생겼습니다. 사용감이 무척 좋았고요. 저는 daisyUI의 디자인을 여기에 적용했습니다.
굳은살

저는 위와 같은 성장통을 거치며 업무에 적응했습니다. 입사 초반에는 ‘작은 기능 하나를 구현하라’는 지시만 받아도 벌벌 떨었습니다. 그랬던 제가 부딪치고 깨지면서 개발 역량에 굳은살이 붙기 시작했는데요. 이 굳은살은 제 성장의 징표처럼 느껴졌습니다.
제게 굳은살을 만들어준 기억을 하나 뽑으라면 ‘최적화 경험’을 선택하고 싶은데요. 웹 성능 최적화를 위해 코드 스플릿팅, 이미지 최적화(크기, 확장자), 불필요한 CSS와 JS 제거, 압축을 위한 Vite & NGINX 설정 등을 진행했습니다. 그 결과, 렌더링에 사용하는 파일 크기를 1/4로 줄이고, 퍼포먼스 점수도 42점에서 84점까지 올렸죠.

