일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- React
- 개발
- 유데미
- frontend
- sucoding
- TypeScript
- 웅진씽크빅
- 프로젝트캠프
- 스나이퍼팩토리
- 프론트엔드
- 수코딩
- STATE
- Server State
- tanstack query
- React Query
- 리액트프로젝트
- 상태 관리 라이브러리
- 프론트엔드 개발
- 공식문서
- Today
- Total
yunicornlab
프론트엔드 개발자에게 필요한 역량은? - 인성측면 (1) 본문
근무할 때 직장 문화나 직장 위치와 같은 요소도 중요하지만, "직무"와 맞는 것이 정말 중요하다는 것을 깨달았다.
졸업 후에 진로를 결정하기 위해 여러 경험을 해보다가 IT 산업에 관심이 생겨 무작정 Python을 배우고 우연히 AI 개발 업무까지 하게되었다. 업무 당시에는 스스로 성장하는 모습과 성취감으로 즐거웠지만 한편으로는 내가 정말 AI 개발자에 올인할만큼 내 적성과 맞을지에 대한 고민을 못했던 점이 아쉬웠다.
이제는 뚜렷한 방향을 잡고 "T"자형 인재가 되기 위해 퇴사를 하고 스스로에 대해 고민하고 다양한 교육 과정을 거치면서 프론트엔드로 전향하기로 결심했다. 그리고 프론트엔드에 필요한 지식과 경험을 쌓으면서 즐거움은 물론이고 이 분야에서 성장하고 성공하고싶은 욕구가 매우 커졌다.
프론트엔드를 결심할 때, 내가 가진 역량과 프론트엔드 개발자로 성장하기 위해 필요한 역량이 잘 맞는지 알아보기 위해 프론트엔드 개발자에게 요구되는 역량을 정리해보았다. 처음엔 노션에 키워드만 정리해놓았고 이 블로그를 새로 만들면서 그동안 경험했던 것을 녹여서 다시 정리해보았다. 물론, 대부분의 큰 틀은 프론트엔드뿐만 아니라 모든 직무에서 필요할 수도 있다. 내가 알아본 역량과 해당하는 근거가 있는지 정리해봐야겠다고 생각했다. 이 글은 인성 측면이고, 다음 글에 기술 측면을 정리해볼 것이다.
성장 욕구
[ 호기심 / 도전정신 / 주도성 / 실천성 / 적극성 / 성과 달성 열정 ]
프론트엔드 분야는 특히 더 변화가 빠르다는 인식이 있다. 몇년 전만해도 jQuery가 강세였는데, 어느새 React가 주를 이루고 기존 기술이 업데이트되거나 새로운 기술들도 많이 상승세를 타고있다. 그렇기때문에 트렌드에 뒤쳐지지 않으려면 새로운 기술에 대한 호기심과 도전 정신이 있어야한다. 특히 새로운 기술은 기존 기술의 문제점을 보완하면서 등장할 가능성이 크기 때문에, 사용하고 있는 기술에 안주하지 않고 장단점을 확실히 인지하고있어야 새로운 기술에 대해서도 잘 적응할 수 있을 것이다. 이어서 호기심만으로 끝나는 것이 아니라 직접 실행해보는 실천적인 태도도 필요하고, 이것을 조직에 잘 공유하고 시도해볼 수 있게 적극적이고 주도적인 태도도 필요하다. 더불어, 지치지 않고 성장하기 위해서는 성취감이 필수적이라고 생각하기 때문에 성과를 달성하고자 하는 열정이 있어야 성취감이 동기부여로써 순환하며 작용할 수 있을 것이다.
그런데 채용 공고를 살펴보다 추가로 깨닫게된건, 프로그래밍 관련 기술에만 호기심이 필요한 것이 아니라 의외로 "도메인 지식"에 대한 호기심도 중요하다는 것을 알았다. 생각해보니, 나는 원래 자동차에 대해 관심이 정말 적어서 로고도 잘 모를 정도였는데, 차량 데이터 관리하는 아르바이트를 하면서 자동차에 대한 관심과 지식이 커질수록 업무에도 큰 영향을 준다는 것을 알았다.
그리고 나는 원래 새로운 지식을 좋아하고 다양한 경험을 추구한다. 억지로 배우거나 실행한 적은 별로 없고, 한 번 시작하면 굉장히 즐거워하며 해나간다. 그래서 오히려 더 천직이라고 생각했다. 수학과 졸업 후에 수학 선생님이나 수학 강사를 꿈꾼 적도 있지만, 발전이 중고교 수학에서 머물고, 과외를 해도 나는 "멘토"같은 사람이 되고싶었는데 점수를 높이는 데만 급급한 환경이 너무 힘들었다. 그래서 새로운 지식들에 나의 창의성을 발휘해 성과를 내고, 후에는 정말 "멘토"로서 개발자를 꿈꾸는 사람들에게 도움이 되는 개발자가 되고싶다.
T자형 인재
[ 깊은 탐색 ] + 위의 성장 욕구 역량
바로 위에서 말한 성장 욕구 부분의 호기심과 도전 정신을 포함해, 본인 직무 한 분야에서 깊은 탐색을 할 수 있는 역량이 있는 사람을 T자형 인재라고 말한다. 프론트엔드에서도 풀스택이 가능한 프레임워크가 나오고있듯이, 나중에는 프론트엔드와 백엔드가 통합될 수도 있다고 생각한다. 그렇기 때문에 여러 분야에 대한 관심이 필요한 것 같다. 심지어 요즘에는 청소년에게도 코딩 지식이 필수적인 것으로 변해가고 있는데, 점차 AI 개발 지식도 기본적으로 알아야 하는 지식으로 변하게되지 않을까?하는 생각이 든다.
하지만 중요한 건, 한 분야에서는 전문가가 되어야 여러 분야에 대한 지식이 쓸모있게 되는 것이다. 그렇기 때문에 그저 강의와 책에서만 알려주는 내용을 외우는 것에서 그치지 않고, 라이브러리나 프레임워크의 소스코드를 파헤쳐가며 원리나 코드를 뜯어본 경험도 필요한 것 같다.
이전 직장에서 원래 SageMath를 사용하고 있었는데, 설치 과정에서의 빈번한 오류와 한국 중고교 수학 표기에 맞게 커스텀하는 것이 불편한 것 등의 문제로 Python의 Sympy 라이브러리로 바꾸게 되었다. 그 과정에서 Sympy 라이브러리의 소스코드와 공식문서를 파헤쳐가며 연구해보았는데, 이 경험이 나에게 많은 것을 남겨주었다. 물론 항상 실천하게 된 건 아니지만 사용할 라이브러리에 대해 소스코드가 궁금해지는 습관이 생긴 것 같다. 정규표현식을 사용해서 수학 수식 데이터를 토큰화할 때도, 고급 문법까지 공부하고 적용해 코드를 간결하게 만들었다. 이런 경험들이 쌓이면서 프론트엔드를 공부할 때도 React의 소스코드가 궁금해졌다.
React를 사용하더라도 그 밑바탕은 JavaScript의 원리이다. 아래가 튼튼한 탑을 쌓아야 무너지지 않듯이 기본이 잘 받쳐줘야 위를 안전하게 쌓을 수 있다. 하지만 기본을 채우는 것이 생각보다 어려운 것 같다. 취업에 마음이 조급하다보면 지금 당장 해야할 것들이 너무 많아서 놓치기 쉬운 것 같다. 그렇지만 자주 인지하고 경각심을 가지면 극복할 수 있을 것이다.
문제해결 능력
[ 끊임없는 고민과 고찰 / 논리적인 사고 / 꼼꼼함 / 분석력 / 목표달성능력 ]
문제 해결의 시작은 문제 인식이다. 남이 알려준 문제만 해결하려하는 것이 아니라, 스스로 문제를 인식하고 해결 방법을 고민하고 더 나은 결과물을 만들기 위해서는 고찰을 끊임없이, 그리고 습관적으로 해야한다. 생각해보면 모든 기술은 결국 "고민"에서 나온 것이다. 어떻게 하면 코드를 더 가독성있게 만들 수 있을까?, 어떻게 하면 더 좋은 성능의 앱을 만들 수 있을까? 어떻게 하면 유지보수하기 좋은 코드를 만들 수 있을까? 어떻게 하면 좀 더 효율적이게 배포를 관리할 수 있을까? 등등.. 프론트엔드라도 고민에 고민을 더하다보면 프론트엔드 기술뿐만 아니라 자연스럽게 ERD, CI/CD에도 관심이 가게 될 것이고 리팩토링과 성능 최적화, 그리고 코드리뷰 문화에도 자연스럽게 관심이 갈 것이다. 많은 직무가 그렇겠지만, 결국 성장은 스스로 고민과 고찰하는 과정이 있어야 가능한 것 같다. 문제 인식을 했다면, 근거를 기반으로 생각하는 논리적인 사고가 바탕이 되어야 더 수월하게 해결할 수 있다. 그 근거는 이해한 원리와 현재 상황을 제대로 분석하는 능력에서 나올 것이다.
한 번은, 단순하게 수작업으로 데이터 관리할 때 이 업무를 더 효율적이고 정확하게 할 수 있는 방법이 없을지 스스로 고민했고, 탁송료의 전체적인 변동이 생겨 빠른 시일 내에 수정을 해야될 때 자동화를 도입해서 정확도와 효율성을 극대화시킬 수 있었다. 이런 성취감이 업무를 더 즐겁게 만들어주고 또 어디에 적용하고 발전시킬지 고민하게 해주었다.
'Developer' 카테고리의 다른 글
[개발 스터디 운영] 서드파티 빡공 취준단 스터디 운영 - 디스코드 셋팅 (0) | 2024.07.31 |
---|---|
[개발 스터디 운영] 서드파티 빡공 취준단 스터디를 개설하다! (0) | 2024.07.31 |
프로그래밍이란? (0) | 2024.07.09 |
프론트엔드 개발자에게 필요한 역량은? - 기술측면 (1) (0) | 2024.06.08 |
프론트엔드 개발자에게 필요한 역량은? - 인성측면 (2) (0) | 2024.06.08 |