-
프론트엔드 개발자가 갖춰야 할 핵심 역량은?IT 이야기 2023. 6. 23. 12:37
프로그래머스에서 시니어 개발자분들과 인터뷰한 내용의 일부를 재편집한 글입니다.
각 분야의 전문가가 생각하는 '프론트엔드 개발자에게 가장 중요한 역량'은 무엇일까요?
역량을 평가할 수 있는 방법과 실제 면접 질문도 살펴볼 수 있으니, 궁금하신 분들은 인터뷰 내용을 끝까지 살펴보세요!
프론트엔드 개발자에게 필요한 핵심 역량은 무엇일까요?
💬 이○○ 님 (풀스택 개발자)
프론트엔드나 백엔드를 떠나서 개발자라면 꼭 가져야 한다고 생각하는 것이 두 가지 있습니다.
개발자적 사고라고 할 수 있는데, '논리의 흐름을 파악하는 것'과 '추상화 정도를 어떻게 그룹핑할 수 있는가'
이 두 가지를 가지고 있으면 좋은 개발자라고 생각합니다. 요약하면 추상화 능력과 논리 흐름을 파악하는 능력의 두 가지라고 말할 수 있겠네요.Q.컴퓨팅적 사고력이라고도 볼 수 있을까요?
그렇게 볼 수도 있지만, 컴퓨터를 떠나서 개발자들은 설계를 하거나 논리의 흐름을 그려요. 그런데 이 논리에도 단계가 있어서 크게 보면 어떻게 논리가 흘러가고, 세세하게 봤을 때 어떻게 흘러가는지도 살펴보고, 또 해결하기 위한 방법이 여러 가지가 있는데 우리에게 가장 적합한 것은 무엇인지 파악할 수 있는 능력이 중요하다고 생각합니다.
프론트엔드라고 하면 리액트나 뷰를 이용해서 컴포넌트를 만들어 내는데요. 컴포넌트를 어느 정도의 크기로 만들 것인가, 그 크기로 만드는 이유는 무엇이고, 이렇게 만들었을 때 어떤 논리의 흐름으로 로직이 작성되어야 하는가에 대한 것들을 두 가지 능력이 출중한 사람은 빨리 결정할 수 있습니다.
💬 송○○ 님 (프론트엔드 개발자)
프론트엔드든 백엔드든 같이 일하는 동료 분들을 생각해 보면, 어떤 뚜렷한 능력이 반드시 필요한 것은 아닙니다. 그럼에도 어떤 역량이 반드시 필요하냐라고 물으면 '문제를 바라보고 가설을 세우고, 그걸 해결해 나가는 과정 자체를 얼마나 즐기고 잘하느냐'가 가장 핵심이었던 것 같아요. 그다음이 도구이고, 도구를 얼마나 잘 쓸 수 있느냐 없느냐는 사람마다 다릅니다. 유튜브에서 맨 손으로 숲에서 진흙 집을 짓는 영상을 봤는데요. 벽돌도 만들고 흙도 파는데, 생각해 보면 도구에 익숙해지는 것은 다음 문제고, 그전에 문제를 해결하는 것, 집을 짓겠다는 강력한 의지 같은 것들이 중요한 것 같아요. 문제 해결 능력으로 축약할 수 있을 것 같네요.
개발자의 성장 단계에 따라선 어떤 역량이 필요하다고 생각하시나요?
💬 김○○ 님 (프론트엔드 개발자)
주니어라면 요구사항에 맞게 화면 그리는 것을 할 줄 알면 돼요. 더 위로 간다면, 다른 개발자의 성장에 도움을 줄 수 있어야 하죠. 업무를 단순히 받는 것이 아니라 제시할 수 있는 사람. 최적화, 설계 방식 등에 대해 제안할 수 있는 사람말이에요.팀장이 되면 업무를 제시하고 환경을 만들어 가는 것도 필요합니다. 회사에 일이 없으면 뭘 할 수 있을지 제안도 해볼 수 있는 사람이요.
기술 리딩은 매니저와는 다릅니다. 또 다른 영역이에요. 일반 회사에서 얘기하는 매니저의 일은 당연히 개발자들이 싫어할 수 있지만 기술적으로 이끌어 가는 것은 다른 것 같아요. 다른 사람의 역량을 이끌어내는 것은 결국 시니어의 책임입니다. 매니저가 팀의 감독이나 코치와 같은 사람이라면, 기술 리더는 팀의 주장과 같은 역할인 것이죠.개발자의 역량을 효과적으로 평가할 수 있는 방법은 무엇이라고 생각하시나요?
💬 박○○ 님 (프론트엔드 개발자)
실리콘밸리에서는 사전 인터뷰를 0~3번 정도 봅니다. 경력이 좋으면 어느 정도 통과해서 온사이트 인터뷰로 바로 갈 수도 있고, 아무 백그라운드가 없으면 3번도 볼 수 있습니다. 온사이트 인터뷰는 5-7개의 테스트를 보는데요. 코딩을 보는 테스트가 1~2개, 그 외에는 회사 컬쳐와의 핏, 아키텍처, 도메인 날리지 등을 봅니다. 코딩 질문 등은 이미 노출되었다고 보고, 최소 요건으로만 봅니다.
Q. 면접에서 사용하는 질문 등이 있다면?
지금은 시스템 아키텍처나 자신의 프로젝트에 대한 설명에 대해 중점적으로 보고 있어요. 예를 들어 '네가 아마존 사이트를 만든다면 어떻게 만들 거야?', '최대 스케일업이 될 때 어떻게 할거야?' 이런 식으로 분산처리, 데이터 구조 등에 대한 백그라운드 스킬을 알아보는 거죠.
또 프로젝트는 가장 인상 깊거나 쉐어 하고 싶은 프로젝트를 알려달라고 합니다. 본인이 초이스 해서 규모가 큰 것, 혹은 테크니컬 챌린지가 있던 것, 신기술을 썼던 것 등 선택해서 말해달라고 합니다. 매치가 되면 기술에 대해서도 묻고, 혹은 기존 아키텍쳐랑 뭐가 다른지 등에 대해 물어봅니다. 이러한 질문을 할 때의 핵심은 이 사람이 자신의 경험에 비추어 신규 프로젝트를 할 때 어떤 테크스택을 가지고 만들 것인지 알아보기 위한 것이죠. 아, 과제를 내서 해보기도 합니다.
역량이 뛰어난 프론트엔드 개발자가 되기 위해선 문제를 바라보고, 가설을 세운 후 해결해 나가는 과정이 중요한데요.
문제해결력을 기르고 싶은 분들을 위해 실제 채용과제를 풀어보는 자바스크립트 강의를 준비했습니다. 시니어 개발자와 함께 요구 사항을 뜯어보며, 문제해결방식의 꿀팁을 얻고 싶은 분들은 하단의 링크를 통해 자세히 살펴보세요.'IT 이야기' 카테고리의 다른 글
비전공자의 개발자 취업 방법과 준비과정 (0) 2023.07.24 뛰어난 업무 성과를 내는 프론트엔드 개발자의 특징 (0) 2023.07.07 자율주행 인지 기술과 제어 기술, 어떻게 다를까요? (0) 2023.06.15 좋은 지표란 무엇일까? (0) 2023.06.12 내일배움카드 사용법 A-Z: 신청방법 및 자격 (0) 2023.05.19