주제
- 간단한 자기소개
- 사이드 프로젝트와 관련된 고민
- 회사와 업계에 관한 질문
- 현업에서 개발 방법에 대한 질문
질문
- FE 개발자에게 UX/UI 디자인에 대한 지식은 어느 정도로 필요한가요?
답변
예전에는 크게 중요하지 않고 개발자는 JS만 잘 하면 된다는 느낌이었는데, 지금은 퍼블리셔의 영역이 개발자로 넘어왔기 때문에 기능들이 어떻게 동작하고 UX/UI가 어떻게 작용하는지를 모르면 FE 개발자를 할 수 없을 정도로 중요해졌습니다. 생각보다 디자이너 분들이 UX/UI를 잘 모르는 경우도 많기 때문에 오히려 개발자가 알려줘야 하는 경우도 있습니다. 보통 회사에서는 UX/UI에 대한 이해를 잘 하는 사람을 선호하는 편입니다.
- 멘토님께서 생각하시는 좋은 회사를 고르는 팁은 무엇인가요? (ex. 회사의 규모와 상관없이 일 하기 좋은 회사 등)
답변
우선 회사랑 제가 스타일이 맞아야 합니다. 요즘은 채용을 진행하는 방식이 옛날처럼 공채를 통해서 진행된다기보다 수시채용이 많은 편이고, 리크루터들을 통해서 커피챗을 해보고 회사를 알아간 다음에 지원 할 수 있는 기회가 많은 편입니다.
그래서 그 회사가 일하는 방식이나, 보상은 어떻게 이뤄지는지에 대한 부분을 자세하게 알아볼 수 있습니다. 물론, 신입분들에 대해서도 해당될지는 모르겠지만 최소한 연차가 1~2년 되시는분들을 대상으로는 리크루터분들이 챙겨주기 때문에 정보를 알아갈 수 있습니다.
물론 일하는 환경도 중요하지만 보상도 사실 중요합니다. 특히 신입의 경우에 처음에 얼마로 시작하느냐가 이후에 기대 수익에 큰 영향을 주기 때문입니다.
개인적으로 중요하게 보는 부분에 대해서는 자유도를 높게 생각합니다. 딱 정해져있는 상황을 자신이 따라가는 환경보다는 무언가의 변화를 만들어나갈 수 있는 환경을 선호해서 스타트업을 선호해왔습니다.
물론, 자유도라는게 시스템이 아예 존재하지 않는거랑은 다른 부분이기는 합니다. 시스템이 존재하지 않아서 틀이 없고 이랬다가 저랬다가 하는 경우도 많기는 한데, 이건 자유도를 떠나서 좋은 회사는 아니라고 생각합니다.
사실 이런 부분은 다녀보기 전에는 알기 어려운 부분이라 다니시는 분께 여쭤볼 수도 있고 블라인드 같은 채널을 알아보는 등의 조사를 할 수 있습니다.
(추가질문) 현직자분들께서 실제로 답변을 잘 해주시나요?
질문의 의도가 어떤지, 질문을 어떻게 표현하는지, 질문 내용이 회사에 민감한 내용인지 아닌지 등에 따라서 달라질 것 같습니다. 저희의 멘토님의 경우에는 이런 경우에 잘 답변해주셨던 경우가 많은데 이는 사람마다 다를 수 있는 부분일 것 같습니다.
- 실무에서 프론트엔드 기능에 대한 테스트 코드를 실제로 많이 작성하게 되는지 궁금합니다. 작성된다면 주로 어떤 부분들에 대한 테스트 코드를 작성하는지 궁금합니다.
답변
실무에서는 거의 작성하지 않는 분위기이기는 합니다.
만약 만드는 것이 우주선이라고 한다면 우주까지 올라가서 프로그램이 동작하지 않으면 큰 문제이기 때문에 그러한 신뢰성이 중요한 프로그램에 대해서는 테스트 코드를 명확하게 작성하는 것이 중요하지만, 요즘 존재하는 대부분의 프로그램은 일주일에 한 번씩 요구사항이 바뀌는 등 굉장히 빠르게 변화하는 경우가 많은데 이런 부분들에 대해서 일일히 테스트를 작성하면 조금만 기능에 변화가 생겨도 테스트가 깨진다는 것이고, 그렇다는 것은 배포를 못한다는 원인이 되기도 합니다.
회사마다 테스트를 중요하게 생각하는 곳도 물론 있겠지만, 적어도 한국에서 그렇게까지 하는 회사는 거의 없다고 느낍니다. 그래도 테스트는 해야하는데, 보통 QA 분들이 요구사항을 작성해 놓고 손으로 테스트하는 경우도 있고, 프로그램을 작성해서 자동화 테스트를 진행하시는 분들도 계십니다.
또한 보통 테스트는 UI 중에서도 보여지는 부분이 아닌 로직에 대한 부분같은 경우에는 유닛 테스트로 많이 진행하긴 합니다.
- 현업에서 프론트엔드 기능 개발에 대한 설계를 할 때 중점적으로 고민하는 부분에 대해서 궁금합니다. 예를 들어 어떤 이름을 갖는 컴포넌트들이 있고, 그 컴포넌트의 역할은 무엇이고, 내부적으로 어떤 상태 값을 갖는 지와 같은 점들을 실제로 고려하게 되는지가 궁금하고, 설계에 대한 문서화를 위한 포맷은 존재하는지 궁금합니다.
답변
스타트업에서의 경험을 위주로 말씀드리자면 먼저 기획이 있으면 어떤식으로 프로그램이 동작하는지에 대한 플로우같은걸 기획자들이 작성합니다. 그런데 이건 개발자의 관점이 아니기 때문에 개발 측면에서는 부족한 부분들이 있을 수 있는데, 기획자와 개발자가 피드백하는 과정을 통해서 추상적인 부분들을 더 구체화하는 과정을 거치게 됩니다.
그런데 사실 룰렛 만들기와 같은 간단한 프로그램같은 경우에는 기획이나 설계에 중점을 두기보다는, 구현에 중점을 두는 것도 괜찮습니다. 학습하는 과정에서는 구현하는 방법을 익혀야 하는 단계이기 때문입니다. 보통 이미 나와있는 서비스들은 무엇인지 알아보고, 깃헙에 룰렛을 검색해서 나오는 프로젝트들은 어떻게 작성되어 있는지를 찾아보고 분석해보는 것도 배우기에 좋은 방법입니다.
기타 꿀팁
- 해커뉴스
- 기술 및 개발에 관한 다양한 뉴스를 접할 수 있음
- 투표로 인한 랭킹으로 아티클이 올라오기 때문에 프로그래밍에 관련한 최근 트렌드를 읽을 수 있음
- 현 OpenAI의 창업자인 샘 알트만이 참여하던 벤처 캐피털 회사에서 운영함