📝

어느 스타트업 프론트엔드 개발자의 이야기

Created
2022/12/15 23:50
Tags

[22-12-16]

안녕하세요. 볼드나인 프론트엔드 개발자 에이든입니다. 오늘은 개발자의 마인드에 대해 이야기해보려고 합니다.
최근 몇 년 사이에 개발자의 수요가 엄청나게 늘어났습니다. 그러면서 코드 부트 캠프도 많아지고 제 주변에도 개발자에 관심을 가지는 사람들이 많아졌습니다. 지인들은 저에게 “개발자 어때?”, “개발 공부 뭐부터 시작해야 해?” 등 많은 질문을 합니다. 이번 글은 제가 저의 지인들에게 이야기했던, 그리고 여러 개발자분들과 이야기했던 저의 개발자의 마인드에 대해서 이야기하려고 합니다.

개발자는 개발하는 사람이다.

개발을 한다는 것은 무엇일까요? 개인적으로 개발자는 단순히 코딩하는 직업이 아니라 제품을 만드는 사람이라고 생각합니다. 그렇다면 제품이란 무엇일까요? 저는 사용자에게 즐거움 또는 도움, 여러 가지 이점을 가져다 는 도구라고 생각합니다. 우리의 목적은 좋은 제품을 만드는 것입니다.
우리는 어떻게 하면 좋은 제품을 만들 수 있을까요?

비즈니스

제품은 프론트엔드 개발자 혼자서 만들 수 있는 게 아닙니다. 기획, 디자인, 백엔드 개발자 등 여러 포지션의 사람들과 함께 만들어 나갑니다. 그럼 커뮤니케이션은 아주 중요한 역량이 될 수 있겠죠.
개발자가 커뮤니케이션을 함에 있어 제일 중요한 부분이 비즈니스, 도메인입니다. 개발자의 목적이 제품을 만드는 것이라면 제품의 목적은 비즈니스를 표현하는 것이라고 생각합니다. 그렇기 때문에 개발자는 비즈니스도 필수적으로 공부해야 한다고 생각합니다.
그 이유에 대한 설명으로 몇 가지 예시를 들어보겠습니다. 우리가 상품을 등록하는 폼을 만든다고 가정해 봅시다. 필드 중 바코드 번호는 필수 정보입니다. 만약 기획 단계에서 바코드 번호 필드에 대한 유효성 검사를 빠뜨렸다고 했을 때 개발자가 비즈니스에 대한 지식 없이 그냥 기획된 대로 구현만 한다면 그 문제를 초기 단계에 잡을 수 없겠죠.
또 다른 예시를 들어보죠 물류에서는 피킹이라는 용어가 있습니다. 피킹은 창고에 수 많은 물건 중 출고 되어야 하는 상품을 출고 수량에 맞게 집어 오는일입니다.
사용자에게 피킹 리스트를 제공하는 기능을 만든다고 했을 때 피킹이라는 단어를 모른다면 원활한 커뮤니케이션을 하고 개발할 수 있을까요? 기획이 잘 되어 있어서 그대로 만든다고 해도 마음 한켠에 답답함이 남아 있을 겁니다.
이처럼 어떤 한 산업에서 제품을 만드는 사람으로서 비즈니스와 도메인 지식 또한 습득되어야 합니다.

사용자

제품을 사용하는 것은 결국 사용자입니다. 그런데 사용자가 사용하는데 불편하다면 좋은 제품이라 할 수 있을까요? 아니라는 것에 모두들 동의하실 거라고 생각합니다. 플로우 단계를 줄여 주고 사용자의 행동을 미리 예측하여 자동으로 실행시켜준다면 보다 매끄러운 플로우를 만들 수 있을 겁니다. 예를 들면, 핀테크 회사 서비스에서는 클립보드에 계좌번호가 있으면 바로 송금 계좌로 넘겨준다거나 인증번호 문자를 받을 때 문자를 들여다보지 않아도 Input에 바로 번호를 넣을 수 있는 버튼을 만들어 준다거나 하는 기능들이 있습니다.
사용자들의 실수도 줄여 줄 수 있습니다. 우리가 폼을 만들 때 이메일, 전화번호, 상품 수량 필드마다 값에 대한 유형은 다르고 값마다 디테일한 Validation check를 해준다면 사용자의 실수가 줄어들 것이고 빠른 해결 방법을 제공할 수 있을 겁니다.
제품을 만드는 데에 있어서 비즈니스와 도메인 그리고 사용자를 생각하며 만든다면 아이디어가 많이 나오고 커뮤니케이션하는데 답답함이 없어지며 능동적으로 일할 수 있게 되지 않을까요?

안에 사수가 없다면 밖에서 찾아라.

가끔 “난 사수가 없어”, “주변에 배울 사람이 없어”,라는 말을 듣고는 합니다. 그래서 성장이 더디다는 것처럼요. 그 말을 완전히 부정할 수는 없습니다. 주변에 배울 게 많은 사람이 있다는 건 엄청난 행운이니까요. 하지만 없다면 직접 찾아 나서 봅시다. 제 경험을 이야기해 보겠습니다.

배운 것들

저는 개발을 시작한 지 얼마 되지 않았을 때인 2018년도에 스스로 부족함을 느껴 자바스크립트 스터디를 찾아 가입했습니다. 다양한 커리어, 심지어 포지션도 다른 사람들끼리 모여 스터디를 하였습니다. 자바스크립트를 공부하려고 가입한 스터디인데 그 외에 많은 것들을 배웠습니다. 다른 회사의 개발 프로세스, 문화도 듣고 공부 방법, 그리고 각자의 포지션에서의 기술들, 심지어 지금 글을 작성하고 있는 노션도 그 스터디를 통해 처음 사용하였고, 공부하게 되었습니다.
제가 처음 맞닥뜨린 문제가 있거나 처음 구현해 보는 도메인이 있으면 그분들에게 질문하였습니다.
그럼 그분들이 각자 회사에서 해결했던 경험이나 지금 자신이 해결한다면 어떻게 해결할 것인가에 대한 생각을 공유해 주었습니다. 나 혼자 하다 보면 ‘이게 맞나?’ 할 문제들에 답답함을 풀어 주었고 한 가지 문제에 대해 다양한 생각을 하게 되더군요.

나도 선생님 되기

여러분이 좋은 사수를 만났다면, 이번에는 여러분이 누군가의 사수가 되어 보세요. 누군가에게 무언가를 알려주는 것만큼 좋은 공부 방법은 없다고 생각합니다. 알려주면서 내 머릿속에 있는 것들을 정리하고 내가 안다고 생각했지만 잘 모르는 것을 찾아낼 수 있습니다. 그리고 그들에게 알려주기 위해 모르는 것을 찾으며, 가르쳐 줄 수 있을 정도로 공부하게 될 것입니다.
기술뿐만이 아닙니다. 여러분이 누군가에게 개발자로서 마인드를 배웠다면 여러분도 다른 누군가에게 자신의 개발자 마인드를 이야기해 줄 수 있을 겁니다. 그럼 리마인드도 되고 듣는 이에게 나의 마인드에 대한 생각을 들으며 배우는 것도 있을 것입니다.

프론트엔드 개발자로서 하고 싶은 것을 찾아라.

저에게 누군가가 “뭐부터 시작해야 해?”라고 물어본다면 저는 “뭘 하고 싶은지부터 생각해 봐라.”라고 할거 같습니다. 뭘 만들고 싶은지도 포함될 수 있을 거 같습니다. 개발 관련 지식은 분야도 다양하고 범위도 넓습니다. 그 많은 양의 지식을 습득하는 것은 불가능하죠. 그렇다면 우리는 필요한 지식, 지금 당장 필요한 지식부터 습득하는 것이 좋겠죠. 우리가 뭘 하고 싶은지부터 정해진다면 해야 할 것은 몇 가지로 좁혀질 수 있습니다.
예를 들어, 채팅 서비스가 만들고 싶다고 가정해 봅시다. 그럼 채팅 서비스에 필요한 기술인 네트워크, 웹 소켓, 그리고 관련된 라이브러리들을 공부하게 될 것입니다. 일단 시작이 되었고 그것들로부터 파생돼 나오는 기술, 지식에 대해 호기심을 갖는다면 충분히 자신만의 로드맵을 만들 수 있을 것입니다.
또 다른 예를 들어보겠습니다. 이번에는 제품이나 서비스보다는 어떤 개발자가 되고 싶은지에 포커스를 맞춰 보겠습니다. 프론트엔드 포지션 내에서도 어떤 개발자는 퍼포먼스 개선에 관심이 많은 사람이 있고 어떤 개발자는 인터렉션에 관심이 많을 수도 있습니다. 만약 내가 인터렌션에 관심이 많다면 ThreeJS와 같은 라이브러리를 공부하고 UI/UX를 공부할 수도 있겠죠. 물론 프론트엔드 개발자라면 전반적으로 알아야 하는 지식이겠지만 관심이 있는 쪽에 공부 비중을 좀 더 두고 확장 시켜 나간다면 미래에 자신의 무기가 될 수도 있겠죠.

환경을 만들어라.

우리가 영어 단어를 외울 때 빨리 외우고 싶으면 지나가는 길마다 영단어를 써 붙여 놓아라는 말을 들은 적이 있을 것입니다. 저는 개발도 마찬가지라고 생각합니다.

다양한 매체 이용하기

우리는 지금 많은 매체들을 통해 수많은 콘텐츠 속에서 살고 있습니다. 저는 블로그 플랫폼, 유튜브, 오픈채팅, 페이스북에 개발 콘텐츠가 많이 노출 되도록 하고 있습니다. 그렇게 하면서 느낀 장점은 다음과 같습니다.
트렌드를 파악하기 편하다.
다른 분야도 쉽게 접할 수 있다.
내가 찾던 내용이 어느새 나에게로 찾아온다.
 트렌드를 파악하기 편하다.
React 18 버전이 막 릴리즈 되었을 때 블로그, 유튜브에서 17 버전과 차이점, New Fetures에 대한 콘텐츠들이 쏟아져 나왔습니다. 그럼 저는 그 콘텐츠들을 보고 공부하였습니다.
 다른 분야도 쉽게 접할 수 있다.
저는 프론트엔드 개발자입니다. 그래서 주로 프론트엔드 관련 기술 자료를 찾는데 시간을 많이 쏟습니다. 하지만 프론트엔드 관련 기술들 말고 다른 기술에도 관심이 있습니다. 그럴 때 다양한 매체의 콘텐츠들은 나에게 도움을 줍니다. 예를 들면, 최근에 OpenAI에서 ChatGPT 라는 인공지능 챗봇을 발표했습니다. 많은 학습을 통해 사용자의 질문에 정확도 높은 피드백을 주고 심지어 코딩까지 대신해 준다고 하네요. 지금 무료라고 하니 관심 있으신 분들은 사용해 보세요.
이렇듯 어려 분야의 지식들을 쉽게 접할 수 있습니다.
 내가 찾던 내용이 어느새 나에게로 찾아온다.
내가 관심이 있는 분야의 콘텐츠는 언제든지 자주 보게 되어 있습니다. 그럼 알고리즘이 우리를 안내해 줄 겁니다.
“React hook”에 대한 콘텐츠를 찾고 있었다면 React hook에 대한 내용과 깊이가 다양한 콘텐츠들이 많이 노출되고 그 콘텐츠들은 우리에게 도움을 줄 것입니다.

마무리

이번 글은 개발자로서 저의 마인드에 대해 이야기 헤보았습니다. 이번에 이야기 한 것들이 정답이라 할 수 없지만 공감과 참고가 되는 글이였음 합니다. 그리고 저를 포함하여 이 글을 읽어주신 모든 분들이 자신만의 생각과 견해를 가지고 성장하는 좋은 개발자가 되었으면 좋겠습니다.