어떤 개발자가 되고 싶은가?

어떤 개발자가 되고 싶은가?

Mar 06 ·
10 분 읽음

들어가며

프론트엔드 개발자로 일한 지 벌써 4년이 흘러 그동안의 시간과 경험을
한 번 정리해보고 싶다는 생각이 들었습니다.

매일 새로운 기술이 등장하고, 더 효율적인 방식이 논의되지만
결국 개발자의 성장은 문제를 어떻게 바라보고 해결하느냐에 달려 있다고 느낍니다.
그래서 이 글에서는 지난 시간을 돌아보며,
앞으로 어떤 개발자가 되고 싶은지에 대해 정리해보려 합니다.


4년 동안의 성장, 그리고 배움

결제 솔루션 회사에서의 4년은 저에게 많은 배움을 준 시기였습니다.
처음에는 단순히 기능을 구현하는 것에 집중했지만,
점점 기술적인 선택이 팀 전체의 효율과 사용자 경험에 어떤 영향을 주는가를 생각하게 되었습니다.

Relay에서 제공하는 hooks를 사내에 처음으로 도입했던 때가 떠오릅니다.
백엔드 개발자와 스키마 구조를 정의하는 과정은 쉽지 않았습니다.
하지만 그 과정을 문서로 정리해 프론트엔드 챕터에 공유했고,
그 덕분에 이후 다른 개발자들이 Relay를 도입할 때 시행착오를 줄일 수 있었습니다.
처음 시도한 일이 팀의 생산성 향상으로 이어지는 경험이 꽤 인상 깊었습니다.

BunJS POC를 진행했을 때도 비슷했습니다.
결과적으로 도입까지 이어지진 않았지만,
그 과정에서 새로운 기술이 정말 우리 팀의 문제를 해결할 수 있는가라는 질문을
기술 선택의 기준으로 삼게 되었습니다.
그 경험은 기술을 바라보는 태도를 완전히 바꿔놓았다고 생각합니다.


나의 변화 — 구현보다 문제를 정의하려는 태도

입사 초기의 저는 주어진 요구사항을 빠르고 정확하게 구현하는 데 집중했습니다.
하지만 시간이 지날수록 단순히 기능을 만드는 일보다
사용자에게 어떤 도움이 될까라는 질문을 먼저 고민하게 되었습니다.

그런 변화가 가장 뚜렷하게 드러난 사례가 있습니다.

하위 셀러 정보를 수정하는 페이지를 개발할 때의 일입니다.
해당 페이지는 페이지네이션 형태의 테이블로 구성되어 있었고,
기획 단계에서는 여기에 ‘전체 수정’ 기능이 포함되어 있었습니다.

초기 기획안은 이랬습니다.
전체 수정 버튼을 누르면 테이블의 각 행에 체크가 된 체크박스가 노출되고,
테이블 헤드에는 모든 행을 한 번에 선택하거나 해제할 수 있는 체크박스가 추가되는 구조였습니다.

하지만 이 기능을 실제로 구현하기 전, 몇 가지 고민이 생겼습니다.

먼저 UX적인 문제였습니다.
전체 수정 버튼을 눌러 체크박스가 노출된 상태에서
테이블 헤드의 체크박스를 해제했을 때,
이게 전체 페이지의 체크를 해제하는 걸까, 아니면 현재 페이지만일까라는 모호함이 있었습니다.
사용자 입장에서 의도치 않은 동작처럼 느껴질 수 있는 부분이라고 생각했습니다.

그리고 개발적인 문제도 있었습니다.
API는 선택된 행의 아이디 값을 배열 형태로 받아 처리하도록 설계되어 있었는데,
만약 사용자가 전체 선택 후 일부 행만 해제하면,
프론트엔드에서는 현재 페이지의 체크 상태만 알 수 있는 구조였습니다.
즉, 실제로 어떤 데이터가 전체적으로 선택된 상태인지를
정확히 추적하기 어려운 상황이었습니다.

이 문제를 기획자와 논의하기 위해 회의를 요청했습니다.
전체 수정이라는 기능을 그대로 가져가기보다,
여러 건 선택 후 수정하는 형태로 바꾸는 것이
사용자 경험과 구현 측면 모두에서 명확하다고 제안했습니다.

결국 논의 끝에 제안이 받아들여졌고,
기능은 복잡한 전체 수정 대신
여러 건 선택 후 수정하는 방식으로 결정되었습니다.

그 과정을 통해 저는 하나의 중요한 사실을 배웠습니다.
좋은 개발이란 단순히 기획서를 충실히 구현하는 게 아니라,
문제를 명확히 정의하고, 불필요한 복잡성을 줄이는 것이라는 점입니다.


앞으로의 방향 — 리더십, 구조적 사고, 그리고 새로운 시도들

앞으로는 단순히 기능을 구현하는 개발자가 아니라,
팀의 방향을 함께 고민하고 문제 해결 방식을 설계하는 개발자가 되고 싶습니다.

또한 프론트엔드 아키텍처 전문가로서
확장성과 유지보수성을 고려한 코드 구조,
성능 최적화, 협업 효율성 같은 부분을 더 깊게 다루고 싶습니다.
기술의 깊이뿐만 아니라, 조직과 함께 성장할 수 있는 개발자로 남고 싶습니다.

최근에는 AI를 활용한 개발 생산성 향상에도 관심을 가지고 있습니다.
특히 Cursor를 사용하면서 커스텀 룰을 적용해보고,
MCP(Multi-Context Protocol) 기능을 사용해보며
AI를 개발 과정에 자연스럽게 녹여내는 방법을 익혀가고 있습니다.

아직은 시도하는 단계이지만,
AI를 단순히 코드를 대신 써주는 도구가 아니라
개발자가 더 효율적으로 사고하고 문제를 정리할 수 있도록 돕는 협업 도구로 활용하고 싶습니다.
AI가 코드를 완성하는 시대가 아니라,
문제를 더 명확하게 정의하고 해결 방향을 빠르게 찾는 시대를 준비하는 마음으로 배우고 있습니다.

함께 일하고 싶은 팀은 기술적으로 뛰어난 팀보다,
문제를 함께 정의하고 해결해가는 팀입니다.
서로의 아이디어를 존중하고, 문제를 발견했을 때 그걸 비판이 아니라 성장의 기회로 바라볼 수 있는 문화 속에서 일하고 싶습니다.


마치며

앞으로도 기술과 사람, 그리고 문제 해결의 균형을 잃지 않으면서
꾸준히 성장해나가는 개발자가 되고 싶습니다.
결국 개발의 본질은 새로운 기술을 얼마나 많이 아느냐가 아니라,
주어진 문제를 얼마나 명확하게 정의하고, 우아하게 해결하느냐에 달려 있다고 믿습니다.

그 믿음을 바탕으로,
앞으로도 끊임없이 배우고, 더 나은 방향을 고민하는 개발자로 남고 싶습니다.


이 글을 나중에 다시 읽게 될 때,
지금보다 조금 더 단단해진 개발자가 되어 있기를 바랍니다.