Q. 프리윌린에서 맡은 역할과 업무에 대해 소개 부탁드려요.
안녕하세요, 프리윌린 개발팀의 프론트엔드 개발자입니다. 저희는 회사의 주요 서비스인 매쓰플랫 화면을 개발하고 있습니다. 그 외에는 홈페이지를 만들거나, 사내 내부 툴인 CMS, CRM 개발도 진행하고 있어요. 또한, UX 디자이너나 기획자와 사용성을 논의할 때 개발 관점에서 방향성을 잡아주며, 백엔드 팀에게 필요한 기능과 API를 요청하여 화면을 만들어 나가고 있습니다.
또한, 사용자가 실제로 사용하는 기능이 무엇인지, 사용자가 어떤 방식으로 사용할 지도 고민하고 있습니다. 물론, 기획디자인팀 분들도 생각하시는 부분이지만, 저희는 좀 더 개발적인 관점에서 접근하고 있어요.
Q. 프리윌린 프론트엔드 개발자로서 언제 성취감을 느끼시나요?
얼마 전에 저희가 앱을 개선하기 위해 사용성 테스트를 진행했던 일이 있었어요. 저희 매쓰플랫을 사용해주는 선생님들을 모셔서 앱 사용에 있어 불편한 점을 듣는 자리였죠. 해당 내용을 바탕으로 매쓰플랫의 많은 부분을 개선하고 수정했어요.
앱을 개선한 후 선생님들이 바뀐 기능을 보고 ‘이게 불편했는데 개선되어서 좋네요.’, ‘이런 기능이 필요했는데 생겼네요.’ 라는 말씀을 많이 해주셨어요. 유저의 니즈를 충족시켜서 긍정적인 피드백을 받았을 때 큰 성취감을 느꼈어요.
또한, 구글 애널리틱스나 스마트룩, 뷰저블을 통해 사용자가 어떤 식으로 앱을 사용하는 지를 볼 수 있어요. 저희가 새로운 기능을 만들거나, 추가했을 때 유저들이 그것을 잘 사용하는 것을 보면 뿌듯해요. 처음에는 매쓰플랫을 앱으로만 운영하고 있었어요. 추가로 매쓰플랫 웹 버전을 개발한 후 웹 사용자 수가 높아지는 것을 보면서 뿌듯했습니다.
Q. 프리윌린 프론트엔드 개발자로서 익혀두면 좋은 기술이나 주로 사용하는 언어를 알려주세요.
현재 프리윌린 프론트엔드 개발팀은 퍼블리셔가 따로 있지 않아요. 그래서 저희가 퍼블리싱 업무도 함께 진행하고 있습니다. 그렇기 때문에, 화면을 그리는 HTML과 CSS를 능숙하게 사용할 수 있어야 합니다. 그리고 저희가 주로 사용하는 언어는 JavaScript와 TypeScript 에요. 특히, 모든 제품에 TypeScript를 사용하고 있기 때문에 해당 언어에 깊은 이해가 필요할 것 같아요.
그리고 현재 프레임 워크로 React를 사용하고 있습니다. React를 알고 계시면 좋겠지만, 프로젝트를 할 때 꼭 React만을 사용하는 것은 아니에요. 프로젝트 특성에 맞는 다양한 프레임 워크와 기술을 늘 염두에 두고 있기 때문에 프로젝트에 맞춰 새로운 기술을 배우려는 개방성도 중요할 것 같아요.
또한, PC와 태블릿이 저희의 주 지원 기기에요. PC도 중요하지만 태블릿에서도 동일한 화면이 보일 수 있도록 개발을 해야하죠. 브라우저 역시 크롬, 사파리 등 어느 프로그램을 통해 접속하더라도 동일한 화면이 보여야 하고요. 그런 걸 크로스 디바이스와 크로스 브라우징이라고 표현해요. 마지막으로, 반응형이라고 해서 기기의 사이즈가 어떻게 되든 해당 사이즈에 맞춰 보이게 하는 작업이 있어요. 위 세 가지를 경험해보신 분이라면 프리윌린 프론트엔드 업무에 빠르게 적응할 수 있을 것 같아요.
Q. 주로 어떤 부서와 협업하며, 그 과정에서 중요하게 생각하는 것이 있을까요?
서비스 기획자와 디자인 팀과 업무 협업이 많이 이뤄져요. 특히 화면을 개발하다 보면 디자인 팀과 업무적으로 소통할 일이 많습니다. 디자인팀은 어떤 부분까지 개발 가능한지 모르시는 경우가 있어요. 그래서 자유롭게 디자인을 해오시면, 어떤 부분은 개발이 가능하고 어떤 부분이 개발이 어려운 지 말씀드리고 개발적으로 좋은 방법을 제안해요. 기능 구현에 대한 개발적인 방향성을 잡아주는 역할을 한다고 생각하시면 될 것 같아요.
또한, UI가 정답이 있는 게 아니잖아요. 그러다 보니 의사 소통을 할 때 방어적인 태도보다는 열린 사고가 필요한 것 같아요. 백엔드 분야의 경우, 데이터가 틀어진다면 치명적인 오류로 발전할 수 있어요. 그렇기 때문에 신중해질 수밖에 없죠. 반면, 프론트는 리스크가 적기 때문에 변화에 더 자유롭고 능동적으로 대화할 수 있어야 할 것 같아요.
그리고 기능을 개발하기에 앞서 백엔드 팀이랑 논의를 해서 더 효율적인 방법과 좋은 API 데이터 구조에 대해 정의해요. 서로 원활한 의사 소통이 이루어질 수록 백, 프론트 간에 오류나 유지보수, 성능 측면에서 더 개선되는 경험을 하고 있어요.
Q. 프리윌린 프론트 엔드로서 필요한 역량은 무엇이 있을까요?
연차가 높은 시니어가 많이 있지 않기 때문에 스스로 찾아서 배우려는 역량이 필요하다고 생각해요. 현재 프리윌린 프론트엔드 팀은 누가 누군가에게 가르치는 게 아니라 서로 알고 있는 것을 공유하는 측면으로 업무를 진행하고 있어요. 물론, 신입분들이나 연차가 낮은 분들이 온다면 가르쳐 드리는 부분도 있지만, 서로가 알고 있거나 좋은 패턴을 발견했을 때 공유하는 식으로 다 같이 성장하는 방향으로 가고 있어요. 배움에 능동적이어야 할 것 같아요.
프로젝트에 들어갔을 때, 예전 회사에서는 사수가 해야 될 일을 정해주면 그것만 하면 됐었어요. 하지만, 프리윌린은 연차가 적더라도 프로젝트에서 자기가 맡은 부분은 스스로 만들고 책임지는 문화가 있어요. 프로젝트뿐만 아니라 조그만 기능이더라도 마찬가지죠. 그러다 보니 각자가 맡은 부분에 대한 책임감도 필요할 것 같아요. 물론, 맡은 것을 만들면서 서로와 의견을 나누고 조언을 구하는 것은 자유롭게 이뤄집니다.
Q. 프리윌린 개발팀의 개발 문화 중 공유하고 싶은 문화가 있을까요?
원래는 개발 문화가 따로 있지 않았어요. 그래서 개발팀끼리 서로 얘기하고 공부하면서 개발 문화를 만들려고 노력했습니다. 어떻게 보면 이것마저도 개발 문화라고 생각해요. ‘이런 문화를 가지면 어떨까’ 고민해서 진행해보고, 좋은 점은 유지하고 생각대로 안 된 부분이 있다면 개선하거나 중단하고 있어요. 모두가 만들고 싶은 개발 문화를 자유롭게 제안하고 실행해볼 수 있는 문화라 생각해요.
두 번째로는, *모각코라는 문화에요. 매주 목요일 퇴근 후에 원하는 사람들끼리 남아서 어떤 걸 공부할 지 얘기하고 진행해요. 공부했던 것을 월요일에 점심 식사를 하며 대화 나누듯이 다른 팀원들에게 공유하고 있어요. 그렇게 되면, 제가 한 게 아니더라도 다른 사람이 하는 전문 분야를 알 수 있고, 사고의 폭도 넓어지는 것 같아요.
오프라인 코드 리뷰 문화도 잘 갖추어져 있어요. 온라인으로도 코드 리뷰를 진행하지만, 오프라인 코드 리뷰는 보다 합리적이고 이성적으로 리뷰하려 하고 있습니다. 잘 안 풀리는 부분이 있어서 어떻게 해야 할 지 모르겠거나, 만든 것에 확신이 없을 때, 또는 중요한 부분이라서 모두에게 알려주고 싶은 경우에 오프라인 코드 리뷰에 가져와요. 그러면 모두 안 풀리는 부분을 어떻게 하면 좋을 지 논의하기도 하고, 중요한 부분을 체크하고 가기도 합니다.
* 모각코 : 모여서 각자 코딩하기의 줄임말
Q. 프론트엔드 개발 지원자에게 해주고 싶은 말이 있을까요?
취업 시 준비해야 하는 것을 정해 놓고 그것만 준비하는 게 아쉬워요. 내가 개발하고 싶은 부분이 주류가 아니어도 돼요. 개발 안에서도 매우 많은 영역이 있잖아요. 그 중에서 자기가 진정으로 하고 싶은 개발을 깊고 전문성 있게 공부했으면 좋겠어요.
꼭 직장에 들어가거나 경력이 있어야지만 개발자가 되는 게 아니에요. 자신이 진정으로 하고 싶은 개발을 매진해서 하고 있다면 이미 훌륭한 개발자이고, 훌륭한 개발자면 알아서 회사에서 뽑고자 할거에요.
그리고 끊임없이 배워야 할 것이 나오는 개발 분야 특성상 계속해서 공부하고 고민하는 태도를 가지는 것은 개발자의 필수 덕목이라고 생각합니다. 면접 시 지원자 분이 얼마나 개발하는 것을 좋아하는지 느껴지면 같은 개발자로서 매료 당하는 게 있어요. 면접 준비 시 개념을 외우는 것보다 본인이 가진 개발에 대한 진정성을 표현하고 개발을 하면서 어떤 경험을 겪었는지를 자연스럽게 얘기하시면 좋을 것 같아요.