feat. Hot한 직군 - 시니어 '개발자' 스토리
What's 業(와츠업)은 자신만의 직업의식으로
일에 대한 철학과 태도를 갖고
퍼스널 브랜드를 만든 직업인들의
일과 삶을 담은 인터뷰입니다.
이 직업/일에 관심은 있는 분들께
직업인과 나눈 생생한 이야기를 담은
‘와츠업 인터뷰’
지금 시작합니다.
띵동, 와츠업님이 김지안 님을 초대했습니다.
안녕하세요? 김지안(가명)님, 반갑습니다. 자기소개 부탁드려요.
저는 11년 차 클라우드 아키텍트예요. 쉽게 설명드리면, 광의의 개념으로 보면 개발자로 볼 수 있고 구체적으로 얘기하자면 기업에서 필요한 인프라를 클라우드 환경에 설계하고 구축하는 일을 하고 있어요.
클라우드 아키텍트, '클라우드'라는 것 많이 들어봤어요.
조금 구체적으로 하시는 일을 얘기 주시겠어요?
저는 클라우드를 도입하고자 하는 고객에게 업무 요건에 맞는 환경을 분석해서 클라우드 서비스를 제공하고 있어요. 서버/데이터베이스/웹 까지 모두 구축해서 제공하고 있어요. 구축뿐 아니라 일부 기능은 클라우드 기반에서 개발하고 있답니다.
최근 진행한 프로젝트로 얘기를 드리자면, 신규 사업을 클라우드상에서 진행했었고, 이 사업을 하고자 하는 고객사들이 갖고 있는 데이터 형태가 제각각 달라, 신규 사업을 위해 플랫폼을 제공했고 이를 위한 규격을 만들어 주었어요. 이 프로젝트를 클라우드 상에서 진행하면서 이를 위한 클라우드 아키텍처를 구축하고 운영한 것이죠.
문과를 졸업하셨던데, 개발자란 커리어를 어떻게 시작하셨는지 궁금해요.
네, 저는 문과 출신에 경영학을 이중 전공했어요. 학교에서 MIS(경영정보시스템) 수업을 듣고, IT벤처회사에서 서비스 기획 업무로 인턴을 1년을 지냈어요. 학교에서는 기본적인 이론을 습득하고 인턴을 하면서 기획, 퍼블리셔, 개발 등의 프로세스를 경험할 수 하면서 서비스가 생성되는 Value Chain에 있을 수 있었어요. 그 과정과 경험이 재밌어서 'IT시스템 기획자'란 직무로 취업을 준비했어요. 1순위로 가고 싶었던 기업은 포탈 기업(네이버와 다음 등)이었고, 2순위는 SI 기업이었어요. 결과적으로 SI업체에 합격하여 커리어를 시작하게 됐어요.
그 회사는 해당 시기에 신입 채용을 개발자 중심으로 했고, 개발을 모르는 문과생도 역량이 있으면 교육을 통해 육성했어요. 'IT기획자'라는 직무를 희망했지만 이를 위해 개발 역량을 갖추는 것도 좋은 방향 같아 ‘개발자 포지션’에 지원해 합격했고 회사 입사 후 2달 정도 SW교육을 강렬하게 받으면서 개발자로 커리어를 시작해요. 개발을 처음 접한 터라 소위 '멘붕'이라 할 정도로 너무나 힘든 시간이었지만 SW에 대한 기본지식과 코딩의 기본을 배우고, 현업에 배치 후 실무를 통해 많이 배우게 됐어요.
첫 배치후 어떤 일들을 하시고, 적응하셨는지 궁금해요.
처음은 정말 멘붕의 시간들이 많았죠. SI 기업에서 플랫폼 운영 업무를 4년 정도 진행했어요. 운이 좋게 회사 내부에서도 규모가 큰 프로젝트였어요. 글로벌 서비스 (미주, 아프리카 등 포함)로 24시간 운영되는 서비스였으니까요. 그러다 보니 체계적으로 관리된 서비스였고 IT 아키텍처의 Best Practice 라 할 만큼 잘 구축된 시스템이었어요. 첫 서비스를 맡은 게 모범사례다 보니 아키텍처의 정석을 실무를 통해 배우고 이를 통해 백엔드 서버 (WEB/WAS/DB/NW), 메타 데이터, SW콘텐츠 레벨, 추천까지 4년이란 기간 동안 전반을 다 경험했어요. 일을 하는 것 자체가 공부가 되었고 많은 유관부서와 커뮤니케이션을 위해 정형화된 템플릿에 문서를 작성하며 문서 작성 능력도 많이 향상되었어요. 그리고 개발 시 트러블슈팅*도 많이 해보면서 서비스 운영을 단단하게 단련했어요.
(*트러블슈팅 : 문제를 보며 해당 문제의 원인 지점을 찾아내는 과정. 전체 프로세스를 알고 시스템을 알아야 원인을 찾고 해결방안을 모색해 나갈 수 있음.)
첫 프로젝트에서 정말 많은 것을 배우셨네요. 부럽습니다. (웃음)
그 이후 커리어도 궁금하네요
4년 정도 같은 서비스를 맡다 보니 다른 서비스를 경험해 보고 싶더라고요. 그 시기가 Hadoop, Machine Learning이 뜨던 시기였거든요. 제가 맡던 서비스는 전통적인 아키텍처 기반(Apache/Tomcat/DB구조)이었는데, 변화하는 아키텍처가 반영된 신사업을 맡아보고 싶었고, 유지보수(SM)를 하면서 남의 코드를 보고 수정만 하고 있으니, 내가 직접 개발하고 싶은 욕심도 생겼어요.
그 당시 회사에서 MSA(Micro Service Architecture)*를 도입하는 프로젝트가 타 기업보다 빠르게 시작되고 있었어서, 해당 프로젝트를 지원하여 조인하게 돼요. 인증모듈을 담당하면서 세션/토큰/권한 관리 등 새로운 분야를 공부하며 재밌게 개발을 했어요. 새로운 분야다 보니 공부와 일로 야근이 이어져서 신혼 1년 차 때 남편에게 미안하고 힘들었던 기억들이 생각나네요.
(*MSA : MIcro Service Architecture의 약자로 단일 프로그램을 각 컴포넌트 별로 나누어 작은 서비스의 조합으로 구축하는 방법. 컴포넌트가 독립되어 있어 유연성이 있고 장애를 줄일 수 있음.)
MSA프로젝트를 진행하셨군요.
큼직하고 중요한 프로젝트를 맡으셨네요. 능력자이신데요? (웃음)
정말이지 프로젝트 운이 좋았던 것 같아요.
이후에는 빅데이터 분석 플랫폼을 만들었어요. 이때 AWS를 공부하고 실무에 적용해보면서 클라우드를 많이 이해하며 한층 성장할 수 있었어요. 클라우드에서 어려운 게 DB인데, 이 프로젝트를 통해 DB를 이해할 수 있었어요.
이후에 이직을 하셨는데, 어떤 계기로 옮기게 되었나요?
SI기업의 한계를 느꼈던 시기였어요.
자체 서비스가 없이 고객사의 프로젝트를 진행하다 보니 요구사항에 휘둘리는 경우가 많고,
고객사를 옮겨가며 프로젝트를 맡다 보니 도메인(업종)이 정해져 있지 않아 전문성에 대해 갈증이 있었어요. 그래서 이직의 목표를 도메인 명확하고 자체 솔루션이 있는 회사로 잡았고 이직에 성공했어요.
개발자로서의 커리어를 쭉 들어보면서 그간 힘들었던 일들이 궁금해져요.
지금 많이 상황이 나아졌으나, IT 업계가 업무 요건이 좋지는 않아요. 쉽게 얘기하자면 개발할 수 있는 시간이 짧아서 야근 많은 편이고, 개발을 완료해야 하는 일정이 다가오면 마음이 많이 조급해져요.
개발이라는 게 업무 특성상 잘 구현되는 게 기본이고, 문제나 이슈가 생기면 안 되거든요. 그러니 개발이 진척되지 않을 때나 버그가 개선되지 않으면 스트레스를 많이 받게 되죠. 그리고 상황에 따라 개발환경에서는 정상적으로 동작 하나, 서비스를 제공하는 운영 환경에서 잘 동작하지 않는 경우도 있어 마음을 졸이는 경우들도 있어요.
한 번은 콘텐츠 제공 업체에서 데이터 포맷을 바꾸었으나, 그 사실이 제대로 공유가 되지 않아 제가 담당하고 있는 부분을 수정하지 못했고, 그 콘텐츠를 조회하지 못하는 상황이 발생했어요. 그 결과 하루 동안 해당 콘텐츠가 노출되지 못하는 상황이 되어서... 마음고생을 많이 했어요. 그때 처음으로 장애 보고서도 작성해보았고요. 아찔한 순간이었죠.
일을 하면서 만족스러웠던 점은요?
개발을 하다 보면 막히는 순간이 많이 발생해요. 이 방법 저 방법을 해봐도 안되고, 이렇게 하면 버그가 발생하고, 될 것 같은데 안되고 하는 순간들이요. 여러 가지를 시도하다가 가까스로 그 문제를 해결했을 때 쾌감은 정말 잊을 수가 없어요. 딱 기능이 돌아갈 때 그 짜릿함! 혼자서 속으로 '대단한데?! 아 나 좀 멋져'라고 외친답니다.
인증 시스템을 개발할 때 막히는 부분이 있었는데 해결한 다음에는 성취감과 뿌듯함에 들떠서 혼자서 휴식을 취하며 마음을 진정시켰답니다. (웃음)
취업하기 전에 알고 있던 개발자와, 일하면서 경험한 개발자를 봤을 때
예상과 다른 점이 있을까요?
뭔가 개발자라고 하면 '멋있고 창조하는 사람의 느낌'이 들잖아요. 그런데 실제로 일을 하다 보면 제 두뇌를 풀가동하며 집중하고, 때에 따라 야근도 하다 보면 신체적으로 정신적으로 체력 소모가 크답니다. 일정이 임박해 올 때면 '나를 갈아 넣는다'라는 느낌이 들 정도로 몰입하고 열심히 일을 해야 해요.
우리 눈에는 백조가 물 위에 떠있는 예쁜 모습만 보지만, 실상은 아름답게 보이기 위해 물아래로는 엄청나게 헤엄을 치고 있어 바쁜 상황인 거죠. 그래서 세미나나 세션에서 개발자분들이 프레젠테이션 하는 것을 보면 그 수고로움이 몸소 느껴져요. 저 결과를 내기 위해 얼마나 많은 도전과 실패를 했는지 느껴지니까요.
개발자로서 아쉬운 점이 있다면 어떤 점인가요?
기술이 너무나 빨리 바뀌어요. 이를 현업에 적용해야 하니, 끊임없이 계속 공부하고 적용해봐야 해요. 정말 끝이 없죠 (웃음). 현실적인 상황들도 있는데, 기술의 속도가 너무 빠르다 보니 따라가기가 버거울 때들이 있어요. 한 번은 회사 내에서 API 규격을 성능을 향상하기 위해 버전업을 해야 한다며 개발되어 있는 규격을 모두 바꿔야 하는 상황이 왔어요. 현재 어느 정도 잘 돌아가는데, 이 모든 것을 바꿔야 한다고?라는 생각이 들면서 머리가 아프더라고요.
이러한 일들이 다른 업종에 비해 비일비재하게 발생한답니다. 계속 배우고 공부하고 적용해야 해요.
개발자로 커리어를 준비하는 친구들을 위해 꿀팁 전달 부탁드려요.
교과서 같은 얘기일 수 있으나 정말이지 기초가 제일 중요해요. 워낙 기술이 빨리 바뀌어서 컴퓨터 언어(파이썬, Java, Javascript 등)는 계속 바뀌나 자료구조, 알고리즘, OS와 같은 메커니즘은 바뀌지 않거든요.
요즘 신입 친구들을 보면 소위 있어 보이는 것(예를 들어 머신러닝)만 중시하는 경향이 있어요. 그리고 코딩 부트캠프를 통해 단기간에 학습하고 현업에 오니 Language 중심으로 겉핥기식으로 아는 경우도 있고요.
결국 좋은 서비스를 만들려면 성능을 향상해야 하는데, 이를 위해서는 자료구조, 리스트, 배열, 알고리즘, OS, NW 등 SW의 기본에 대해 잘 알아야 해요. 이런 기본 위에 머신러닝이든 다른 화려한 기술들이 쌓일 수 있는 것이고요. 기본을 충실하게 하는 것을 잊지 말았으면 해요. 기본이 있으면 새로운 Language도 금방 배운답니다.
Google은 개발자 채용 시 알고리즘 중심으로 면접을 본다고 해요. 결국 이 기본을 잘 알면 바뀌는 기술을 잘 습득하고 적용할 수 있기에 그런 것이라 생각해요.
문과생에서 개발자가 된 입장에서 봤을 때, 어떤 성향이 개발자에게 맞는 것 같나요?
주변을 보면 '왜 이렇게 해야만 할까?'라고 생각하는 사람이 개발을 잘하더라고요. 불편한 걸 견딜 수 없고, 반복 작업이 너무 귀찮은 성향의 사람들이요. 반복 작업을 계속하기 싫어서 이를 자동화하고 효율적으로 일하기 위해 어떤 알고리즘으로 짜야할까 고민하게 되는 거죠. 저 역시 회사 포탈을 운영하면서 포탈로 들어오는 문의를 일일이 확인하는 게 귀찮아 슬랙의 오픈 api를 활용해서 개발한 적이 있어요. 문의가 들어오면 슬랙을 통해 일괄로 문의를 받을 수 있도록 개발해서 귀찮음을 해결한 것이죠. 일반적으로 얘기하는 논리적인 사고방식, 문제 해결 능력도 물론 중요하지만 귀찮은 반복 업무를 개선하고자 하는 성향이 더 중요하다고 생각해요.
나에게 일이란 어떤 건가요?
현재 육아 휴직 중이라 일의 의미를 더 체감하는 것 같아요.
있을 땐 잘 모르다, 없으니 더 느껴진다고나 할까요? 일은 내가 열심히 살아가려는 원동력이었구나... 계획한 일을 실행하고 성취함에 있어 만족감이 커서 그런 것 같아요.
복직 후에 새로운 기술, 서비스들을 잘 적응해나갈 것을 생각하면 고되고 힘들지만 전체적으로 봤을 때 일은 저를 즐겁게 해 주기에 삶의 원동력이 돼요.
마지막으로 한 마디 해주세요.
요즘 크리에이티브 한 역량이 중요한 시대가 되면서 서울대 의대보다 서울대 컴퓨터공학과가 입학점수가 높아졌다고 해요. 학벌보다 자신의 능력이 얼마나 있느냐가 중요한 시대죠.
그런 면에서 개발자란 직업이 매력적이고 인기가 많은 것 같아요. 저도 제 아이에게 개발자라는 직업을 추천해주고 싶고요. 개발자가 되기 위한 시작은 쉽지 않고 끊임없이 배우고 학습해야 하나, 크리에이티브가 된다는 마음으로 즐겁게 준비했으면 해요. 포기하려던 그 순간이 어쩌면 성공의 한 발자국 전 단계일 수 있으니 '고진감래'라는 말을 가슴에 품고 파이팅하세요~!
<다른 커리어에 대한 스토리가 궁금하다면>