- Published on
- • 13 min read
10개월을 돌아보며 생각하는 좋은 프론트엔드 개발자
프론트엔드 개발자로 취업한지 10개월이 지났습니다.
빡쎈 프로젝트 하나를 끝내고 2주간 휴가를 받았죠.
이 기회에 '좋은 프론트엔드 개발자'가 무엇일까 생각해 보려 합니다.
이력서를 업데이트하면서 필요하다고 느꼈고,
앞으로 나아가야 할 방향에 대해 고민해 볼 필요가 있다고 느꼈거든요.
지난 10개월
취업 전
경제학과 4학년, 저는 졸업을 앞둔 다른 대학생과 같이 진로에 대해 많은 고민이 있었습니다.
취미로 개발을 하고 있었는데, 그게 생각나더라고요.
그래서 웹 개발자로 취업을 해야겠다고 생각했습니다.
취업 결심을 하고 혼자 프로젝트를 하면서
이력서를 엄청나게 넣었습니다.
2024년 06월, 프론트엔드 개발자로 입사하게 되었습니다.
취업 후 10개월 동안
입사를 하자마자 작은 프로젝트에 투입되었습니다.
이후 웹 개발자라면 누구든 마주하는 JavaScript를 포함해서
Flutter, Python, Java, C# 등을 사용해 회사에서 요구하는 다양한 문제를 해결했습니다.
프론트엔드 개발자로 들어와 화면 개발도 경험했지만,
대부분은 화면과는 상관없는 문제들을 해결했습니다.
크롤링, API 개발, 간단한 변환 프로그램 개발 같은 일이었죠.
이 과정에서 많은 의문과 회의감이 들었습니다.
'프론트엔드 개발자로 들어왔는데, 이게 맞나?'
이대로면 프론트엔드도, 백엔드 개발도 그저 그런 '깊이 없는' 개발자가 될 것 같았습니다.
물론 다양한 문제를 해결하는 과정에서
백엔드 개발, 커뮤니케이션 등을 경험하며 많은 것을 배웠습니다.
그럼에도 방향에 대한 의심은 계속되었습니다.
이번 기회에 '좋은 개발자'에 대해 생각하고 정리하는 시간을 가져보려 합니다.
프론트엔드 개발자?
웹 프론트엔드 개발자는 사용자가 보는 '화면' 개발을 책임지고 있습니다.
그치만 단순히 UI 개발'만' 할 줄 아는 개발자는 좋은 개발자가 아니라고 생각합니다.
그런 개발자는 누구나 될 수 있죠. 쉽게 대체 가능합니다.
UI 개발이라는 단어에는 생각보다 많은 요소가 함축되어 있습니다.
내가 생각하는 UI 개발
도메인 이해
처음 접하는 도메인이라면 용어 하나하나가 헷갈리겠죠.
'이게 뭐지...?' 싶은 단어도 많을 것입니다.
그래서 도메인에 대한 이해와 공부는 필수죠.
기획 이해 능력
도메인에 대한 이해는 '기획을 이해하는 능력'에 도움을 줍니다.
도메인 용어를 익히고 도메인을 깊이 이해하면, 본질을 파악하는 데 도움이 됩니다.
내가 맡은 화면이 어떤 역할을 하고, 사용자가 무엇을 원하는지 이해할 수 있죠.
이런 능력은 기획자, 디자이너와 능동적으로 커뮤니케이션할 수 있게 합니다.
문제의 핵심을 파악하고 더 좋은 제품을 만들 수 있습니다.
빠른 변화에 대응하기
화면은 엄청나게 빠르고, 많이 변화합니다.
기획이 변한다거나 디자인이 엎어지는 경우도 허다하죠.
UI의 변화일 수도, 로직의 변화가 생길 수도 있습니다.
이런 변화를 빠르고 정확하게 쳐내는 능력 역시 중요합니다.
결국 변화에 유연한, 좋은 코드를 작성할 수 있는 능력이필요하죠.
코드 작성 능력
'좋은 코드'를 작성하는 능력은 소프트웨어 개발자에게 중요한 역량 중 하나입니다.
프론트엔드라고 피할 수 없죠.
항상 좋은 코드에 대해 고민합니다.
지금 작성한 코드가 '변화'에 유리한지,
'성능'에 문제가 없을지 생각해야 합니다.
이 외에도 에러 처리, 클린 코드, 주석, 협업 등 생각해야 할 부분이 많죠.
항상 부끄럽지 않은 코드를 만들기 위해 노력해야 합니다.
지속적인 학습 능력
프론트엔드 개발 트렌드는 빠르게 변화합니다.
AI 도구도 끊임없이 나오고 있죠.
그럼 이 모든 변화를 따라가야 할까요?
아닙니다.
변화에 끌려다니면 안 된다고 생각합니다.
결국, 기본이 우선입니다.
단단한 기본기가 있어야 변화에 대응하기 쉽고, 빠른 성장이 가능하죠.
모든 웹 프레임워크는 HTML, CSS, JS가 기본입니다.
웹 개발자라면 웹에 대한 이해도 필수죠.
디버깅하는 방법, 특히 개발자 도구를 잘 이용할 수 있어야 합니다.
개발자 도구는 생각보다 많은 일을 할 수 있죠.
항상 호기심을 가지는 자세가 중요하다고 생각합니다.
무언가 궁금하면 찾아보고 시도해 보면 좋습니다.
언젠가 그것이 필요할때, 그때 공부 하거나
토이 프로젝트에 적용해 봐도 좋죠.
그 외
Spring 코드 정도는 읽을 수 있어요!
프로젝트에 참여하니 서버 개발 및 유지 보수를 해야 했습니다.
덕분에 Spring을 포함하여 간단한 인프라 지식을 얻게 되었죠.
Java 언어에 대한 지식은 없어도, Typescript를 사용해 봤다면 이해하기 쉽습니다.
개인적으로 Spring으로 간단한 API를 구현해 보는 게 큰 도움이 되었습니다.
API를 구현해 보면 백엔드 개발자와 커뮤니케이션하는 게 쉬워집니다.
원래는 백엔드 개발자에게 요청하기가 무서웠죠.
이게 얼마나 걸릴지, 어려운지 예측이 안되었기 때문입니다.
그치만 어느정도 알고나니 예측이 가능해졌습니다.
필요한 부분은 당당하게 요청해 빠르게 문제를 해결할 수 있습니다.
'이 API 응답값 다른 형태로 줄 수 있어요?'
이런 것들 말이죠.
프로덕트 감각
개인/토이 프로젝트를 해보는 걸 추천합니다.
가능하다면 기획부터 디자인, 배포, 마케팅 모든 과정을 겪어보는게 좋다고 생각해요.
사용자 중심으로 생각하는 연습을 할 수 있습니다.
프론트엔드 개발자는 사용자에게 가장 가까운 위치에 있다고 말하죠.
게다가 프론트엔드 개발자는 디자이너, 기획자, 백엔드 개발자 등
여러 사람과 소통할 일이 많습니다.
이때 적극적으로 소통할 수 있는 자신감과 능력은
'프로덕트 감각'에 달려있다고 생각해요.
소프트 스킬
내용이 길어질까봐 적당히 '소프트 스킬'이라고 적었습니다.
그치만 정말 중요하다고 생각해요.
아래의 것들에대해 고민해본 경험은 큰 도움이 되었습니다.
- 장인 정신
- 애자일
- TDD / 테스트코드
- 클린코드
- 리팩토링
- 코드 퀄리티
- 실용주의
그래서 어쩌라고?
주저리주저리 떠들었습니다.
많은 내용을 이야기했지만 결국 핵심은 이것이죠.
'복잡한 비지니스 문제를 이해하고, 해결할 수 있는 능력'
'여러 사람과 협업하고 능동적으로 문제를 풀 수 있는 능력'
결국은 '문제 해결'입니다.
그리고 이를 위해 어떤 언어나, 기술에 매몰 되는 건 큰 의미가 없다고 생각해요.
결국 '문제'가 적절하게 해결된다면 좋은 것 아닐까요?
마지막
좋은 프론트엔드 개발자가 되기 전에, 좋은 개발자가 되어야 합니다.
좋은 개발자는 복잡한 비즈니스 문제를 이해하고, 해결할 수 있죠.
특정 기술이나 언어에 종속되지 않고 문제를 해결할 수 있으며
이를 통해 비즈니스와 사용자에게 기여할 수 있습니다.
나는 어떤 개발자가 될 것인가
앞으로는 조금 더 능동적인 개발자가 되고 싶습니다.
장인 정신을 가지고, 더 좋은 프로덕트를 만들기 위해 노력하겠습니다.
더 적극적으로 소통하고, 먼저 문제를 발견하는 사람이 되고 싶습니다.
이는 코드만의 문제는 아니죠.
개인적으로 지금 재직 중인 회사에 열정이 부족하다고 생각했어요.
그래서 간단한 스터디를 조직했습니다.
일주일에 한번,
1시간 정도 모여서 스터디를 진행합니다.
조직에 열정을 불어넣어보려 합니다.
적어도 제가 있는 동안에는 더 열정있는 팀이 되었으면 하는 바램이 있습니다.
더 좋은 개발 문화와 열정을 회사 뿐만아니라 산업 전체로 확장하고 싶습니다.
좋은 글을 작성하고,
현재 운영하는 Threads계정도 활용하려 합니다.
커피챗을 통해 많은 사람들과 만나고 성장하려합니다.
매주 모각코를 열어 서로 네트워킹 하는 자리도 만들어보려 합니다.
이와 관련하여 외부 활동 관련 회고 글도 조만간 올릴 예정입니다.
긴 글 읽느라 고생하셨습니다.
감사합니다.