탄탄한 발판을 딛고 성장하는 프론트엔드 엔지니어
직무관련
안녕하세요. 핀다 안드로이드 개발자 남은우입니다. 우리에게 모바일 디바이스가 필수인 요즘, 서비스 어플리케이션을 만드는 개발자의 역할은 사회적으로 중요한 일이 된 것 같습니다. 저는 그 중에서도 클릭 한 번으로 모든 금융사에서 나에게 꼭 맞는 대출 조건을 받아올 수 있는 핀다 비교대출서비스와 월마다 내야 할 대출금액을 쉽고 편리하게 관리할 수 있는 대출관리 기능을 핵심적으로 개발하고 있습니다.
네, 제가 핀다에 몸 담은지 벌써 3년차네요. 가장 오래된 멤버 중 한 명으로 꼽히는 바람에 화석이라는 별명도 있어요. (웃음) 제 전공은 특이하게도 ‘로봇공학’입니다. 대학생 때 대외활동을 하다보니 프론트엔드 개발에 관심이 생겨 전공을 버리고 다시 개발 공부를 하게 되었습니다. 그 후, 개발 경험을 쌓고 싶어서 지원한 인턴십에 합격해서 정규직 전환을 거쳐 핀다에서 근무하게 되었습니다. 현재는 안드로이드 개발을 담당하고 있지만, 단순히 개발 하는것 이상으로, 기획/디자인 팀과 끊임 없이 소통하며 많은 경험을 쌓고 있어서 하루하루가 즐겁습니다.
"시장을 선도할 비장의 신기능!"을 만들고 있어서 상세한 내용은 대외비지만, 대신 코드 안정성을 위해서 집중 하고 있는 내용을 말씀드릴게요!
우선 유저가 신뢰할수 있는 앱이 될수 있도록 데이터를 처리하는 부분에 테스트 코드를 적용하고 있습니다. 테스트 코드를 적용하면 우리가 생각치 못한 부분에 대한 오류를 미리 잡아낼수 있어요. 두 번째로 코드 분석 툴을 도입했는데요. 말 그대로 코드를 분석하여 버그가 발생할 가능성이 있거나 불필요하게 중복된 코드들을 조기에 수정할 수가 있어요. 또한 이렇게 분석된 수치들은 객관적으로 앱의 퀄리티를 측정할수 있도록 도와주는 역할도 하고 있어요. 마지막으로 이벤트 트래킹 입니다. 핀다는 어플리케이션에서 유저가 클릭하는 모든 액션에 이벤트를 심어서 반응률을 살피고 있어요. 이를 통해 우리가 세운 가설이 잘 검증되는지 확인할수 있죠. 이렇게 유저의 반응을 캐치하여 빠르게 개선된 다음 버전을 배포하는것이 요새 앱 기획/개발의 트랜드랍니다. 개발팀에서는 PO분들이 이벤트를 바탕으로 더 좋은 기획을 할수 있도록 로직을 점점 고도화 하고 있습니다.
#여기저기
저는 회사에 오면, 사무실을 누비고 다닙니다. 사무실용 전투화(슬리퍼)를 신고 PO분들부터 UX 디자이너, 백엔드 엔지니어분들 자리로 찾아가서 적극적으로 소통해요. 저희 프론트엔드 개발자들은 월 단위로 서비스 배포를 진행하기 때문에 일정한 루틴이 있는데요, 새로운 기능과 이슈를 핸들링하기 위해서는 다양한 멤버들과 꾸준히 소통해야 하기 때문이에요.
#포토샵도 해보고
요새는 포토샵을 배우고 있어요. 회사에서 포토샵 관련 업무가 할당된 것은 아니지만, 개발자라고 해서 디자인을 아예 모르는 건 아닌 듯하여 배우고 있습니다. 저희가 가장 많이 접촉하는 UX 디자인을 이해하기 위해서는 한 걸음 한 걸음씩 걸음마를 떼고 있다고 생각해요. 최근에는 멤버들 사진을 살짝씩 리터칭하는 업무를 ‘스스로’ 참여해 도왔어요. 처음에는 까막눈처럼 어려웠던 디자인 툴을 이해하게 됐어요. 앞으로 더욱 노력해서 UX 영역까지 넘보는(?) 개발자가 되고자 합니다. (웃음)
#JIRA와 함께
개발팀의 거의 모든 업무는 JIRA(지라)를 통해 진행됩니다. PO분들이 서비스를 기획할 때, 개발자와의 미팅이 필요하다거나, 기존의 서비스에 문제점이 발견됐을 때 지라에 이슈를 남겨주시는데요. 즉각적으로 이슈를 확인할 수 있고, 빠르게 수정할 수 있어서 좋아요. 아침에 눈 뜨면 먼저 확인하는 저의 업무 리스트랄까요?
역량관련
요즘은 비전공자들도 전공자들 만큼 능력이 뛰어난 경우가 많습니다. 태어날때부터 개발자인 사람은 없듯이, 경험과 노력을 통해 좋은 개발자가 만들어진다고 생각해요. 그럼에도, 업무와 관련된 지식이 있으면 매우 좋겠죠. 비전공자라고 할지라도, 컴퓨터 소프트웨어 학과에서 배우는 알고리즘이나 자료구조 등의 기본 지식을 익히면 큰 도움이 될 거에요.
네, 학부 시절에 했었던 임베디드 프로그래밍(Embedded Programing) 경험이 많은 도움이 되었습니다. 언어는 다르지만 좋은 코드를 짜기위한 본질은 같다고 믿는 편이에요. 좋은 코드를 만들고 문제를 찾아서 해결하는 논리적인 과정이니까요. 처음에는 언어가 다르니 아예 다른 분야라고 생각했는데, 깊이 파고들수록 비슷한 부분이 많더라구요. 그래서 적응이 더 빨랐던것 같아요.
코드를 잘짜는 것도 중요하지만 스스로에게 질문 하는 능력이 중요하다고 생각합니다. 단순히 작업할 내용을 코드로 옮기기 보다, 어떻게 좋은 코드를 짤지 고민, 설계, 문서화 하는게 미래에 더 좋은 퍼포먼스를 내는 경우가 많더라구요. 결국 그것을 잘 해내기 위해서는 스스로에게 끊임없이 질문을 해야하고요. 더 좋은 방법을 만들기 위해서는 지금 하는 일이 맞나, 또는 잘하고 있는건가에 대한 물음이 필요하니까요.
핀다에서 일하는 은우님은?
#재미, #배움, #성장
인턴에 지원하기 전에 내가 회사를 선택하는 3가지 핵심 가치를 꼽아 보았어요. 바로 #재미, #배움, #성장이었는데요. 핀다는 이 3가지의 핵심 가치를 충분히 만족하는 회사라고 생각합니다. 물론 마냥 업무가 재미있을 수는 없지만, 수평적 문화로 타 부서와 소통해 나가면서 금융 시장을 바꿔나가는게 큰 재미인 것 같아요. 특히나, 유저들이 우리의 서비스를 사용하면서 기존의 불편한 점이 개선된다는 점이 가장 보람차고 멋진 일이죠. 물론 여기에서 따라오는 배움과 성장은 덤이고요.
앞서 말했듯이 핀다의 조직문화는 수평적입니다. 흔히 기획서라고 불리는 디자인닥(Design Doc)을 직군에 상관없이 모두 작성하고 발표할 수 있어요. 그리고 타당한 업무인지 검토 후 실제로 앱에 적용하거나 업무 프로세스를 개선할수 있습니다. 이것이 핀다가 가지고 있는 가장 큰 강점이라고 생각해요. 무엇보다도 본인이 주도적으로 업무를 진행한다는게 쉽게 얻을 수 있는 경험은 아니기 때문이죠.
프론트엔드는 사용자와 가장 가깝게 닿아있는 직무중 하나입니다. 그렇다 보니, 디자인/기획 팀과 끊임 없이 소통하며 좋은 서비스를 만들어 나가는게 가장 큰 업무라고 생각해요. 이러한 이유 때문에 언제나 활기차고 정신없는 팀중에 하나입니다. 다른 부서와 커뮤니케이션이 부담스러우신 분들에게는 단점일수도 있지만, 주도적이고 능동적인 분들에게는 장점이 될거라고 생각해요.
매력적인 부분은 내가 개발한 내용을 사용자가 바로 사용해볼 수 있다는 점이에요. 저희는 매달 말쯤 정기 서비스 배포를 진행하는데요, 배포 버튼을 누르는 순간, 그 버전에서 작업한 내용이 모든 사용자에게 고스란히 전달되죠. 그리고 잘한 내용이든, 잘못한 내용이든 고스란히 고객의 목소리로 돌아오구요. 그리고 다시 고객을 만족시키기 위해, 더 나은 서비스를 만들기 위해 우리는 또다시 빠르게 움직입니다. 그렇기 때문에 내가 만든 프로덕트를 누군가 써보고 피드백을 준다는 사실이 정말로 가슴 뛴다면 꼭 추천해드리고 싶습니다.
소통이 잘 되는 사람이었으면 좋겠어요. 치열하게 논의해서 나온 기획을 코드로 무사히 옮기는데는 개발자의 커뮤니케이션 능력이 상당히 중요합니다. 가끔 개발하기 귀찮은 기획/디자인이 나오면 싸우는 경우가 있다고 들었는데, 우리의 핵심 가치가 무엇인지 생각해본다면 더 유연하게 소통할 수 있지 않을까요?