카테고리 없음

나는 왜 프론트엔드 개발자가 되어야 하는가

H0CHI 2024. 7. 9. 04:54

2024년 7월 기준, 필자는 프론트엔드 개발자가 되고 싶어 한다. 하지만 목적을 가지고 앞만 보고 달려갔을 뿐, 그 이유는 중요하게 생각하지 않았다. 뒤에서 나오는 이야기이지만, 나의 꿈이 프론트엔드 개발자가 되는 과정은 나의 선택보다는 환경의 선택이 더 컸다.

그렇다, 나는 내가 원해서 개발자가 되고자 한 것이 아닌 어쩌다 보니 개발자가 되려고 했다.

이렇게 누군가 조종하는 것처럼 개발자가 장래희망이 되었지만, 한 가지 확실하게는 말할 수 있다.

나는 개발하는 것이 재밌고, 이 일을 10년 20년 할 수 있을 거 같다. 

이 글은 본인이 프론트엔드 개발을 공부하게 된 과정과 왜 그 길을 선택했는지 그런 개인적인 이야기이다. 필자는 현재 컴퓨터학부 4학년 1학기를 마치고 마지막학기를 앞두고 있다. 초반에는 개인적인 인생사로 개발과 관련 없는 내용들이 등장하니 적당히 건너 띄어도 괜찮을 거 같다..ㅎ

 

항공정비사를 꿈꾸던 소년

2016년, 고3이 된 나는 큰 고민이 있었다. 모두가 생각하는 고3이 하는 그 고민이 맞다. 수시 전형을 준비하고 있었지만 당시 성적은 3등급 후반대로 높지 않았고, 정시를 준비하기에도 천안에 있는 고등학교에서 정시파이터는 마치 신화에 등장하는 동물과 같은 존재였다. (그리고 심지어 문과였다.) 그래서 이 성적으로 대학을 가도 앞으로 제 능력을 발휘할 수 있는 일을 찾기 어렵다는 걸 그 어린 나이에 깨달았다. 그래서 어른들 주로 하던 말씀 "기술이나 배워라"를 귀담아 나는 항공정비를 배우기로 했다. 항공정비사가 되고자 했던 이유는 단순했다. 내가 비행기를 좋아했다.

그저 비행기를 좋아했던 아이였다.

 

그래서 항공정비 관련 교육을 받을 수 있는 전문학교에 입학했다. 그래도 어느 정도 열심해해 커리큘럼에 맞게 산업기사와 항공정비사 자격증을 2년 내로 취득을 했다. 그리고 미필의 또 다른 커리큘럼인 공군의 정비병으로 실무 경험을 쌓기 위해 19년 6월 공군 801기로 입대를 했다. 하지만 상병을 달 무렵 아무도 예상하지 못한 사건이 발생하게 되는데.......

COVID19로 인한 진로 변경

코로나 바이러스로 내가 장래를 위해 준비가 모두 물거품이 되었다. 가장 크게 타격을 받던 산업 중 하나가 항공사였고, 당연히 내가 준비한 항공정비사를 채용하는 기업은 전무했다. 아직도 학교 동기였던 형과 생활관 침대에 누워서 주고받았던 대화가 생생하다. 그 대화에 결론은 다음과 같았다. 우리는 전역하면 갈 곳이 없고, 편입을 통해 새로운 공부를 해야겠다!! 이런 내용이었다. 그렇게 21년 2월 군복무를 마치고 인생의 새로운 발검음을 향한 공부를 시작했다. 

대학 원서를 작성할 때 나의 1 지망은 기존에 공부한 내용과 유사성이 있는 항공정비공학과와 기계공학과였다. 대부분의 학교는 그렇게 작성했지만, 내가 지금 다니는 학교에 지원할 때는 별난 생각으로 원서를 접수했다. 숭실대면 컴공 아냐?? 사실 군대에 있을 때 컴공을 다니던 친구들이 사지방에서 코딩인 거 같은 걸 하는 걸 보고 반해 몇몇 학교는 컴공과를 적기로 생각을 했고, 그중 하나가 지금 다니는 학교였다. 최종적으로 6개의 학교에 합격을 했지만 그중 가장 좋은 학교가 여기였고, 그때부터 나의 장래희망은 항공정비사에서 개발자로 바뀌었다.

 

아무것도 모르는데 3학년이라고요?

편입학을 통해 학교에 들어오면 3학년으로 입학을 하게 된다. 입학은 22년에 했지만, 22년에 3학년인 점을 고려해 학번은 20학번을 부여받았다. 하지만 이전에 컴퓨터 관련된 공부를 한 적이 있나... 1학년 수업인 C언어로 조건문과 반복문 작성을 배우고, 2학년 수업인 Java를 힘겹게 듣는 수준이었다. 첫 학기 아무것도 모르는 상태로 시스템프로그래밍 과목을 신청했다가 과제도 못하고 F를 맞은 적이 있었는데, 그것 때문에 다음학기 국가장학금을 받지도 못하는 수모를 겪기도 했다. 

공부하다 현타가와 아이패드로 본인과 동기화를 시도하는 모습이다....

 

전공 공부를 하면서 개발자에 관심이 생길 무렵 누구나 한 번씩 하는 고민에 휩싸이게 되었다. 다양한 개발 파트 중 나는 어떤 파도를 타야 할까? 웹, 앱, 인공지능, 임베디드등 다양한 진로가 있었지만 아무것도 나의 시선을 사로잡는 분야는 없었다. 그렇지만 주변 사람들의 선택은 다들 약속이라도 한 듯 백엔드를 선택하고 있었다.

 

나는 왜 프론트엔드를 선택했을까

내가 처음 프론트엔드를 하기로 한 이유는 단순하기 짝이 없었다. 이 문단은 나의 지원서를 보고 있는 입사 담당자가 읽지 않았으면 좋겠다. "다들 백엔드를 공부하니, 프론트엔드를 하면 프로젝트를 하기 쉬울 거야!" 나는 개발과 관련된 경험이 전무했고, 그래서 나는 프로젝트 경험을 먼저 쌓기 위해 프론트엔드를 하기로 했다. 사실 그때 계획은 프론트엔드로 프로젝트 경험을 쌓고 백엔드로 전향을 목표로 했다. 하지만 어쩌다 보니 프론트엔드에서 헤어 나오지 못하게 되었다. 23년 여름 아무것도 모르는 상태에서 리액트로 간단하게 프로젝트를 해보고, 나의 개발 인생의 전환점 중 하나인 동아리인 코테이토에 들어가게 된다. 

동아리에서 교육팀으로 활동하고 있는데, 자세한건 다른 글에서 얘기하겠다.

 

신입 기수인 상태에서 운이 좋게 동아리 자체 사이트를 제작하는 프로젝트에 참여했다. 현재는 사이트를 운영과 동시에 새로운 기능들을 추가하는 일들을 하고 있다. 

 

 

 

여기까지 필자가 프론트엔드 개발을 하게 된 이야기이다. 처음에 얘기했듯 컴공과에 오고, 프론트엔드를 선택한 이유가 본인의 의지보다는 진짜 어쩌다 보니 선택하게 되었다. 하지만 나는 이 일이 재밌다. 이제부터 할 이야기는 왜 프론트엔드 개발이 재밌는지에 대한 이유이다.

내가 만든 결과물을 시각적으로 볼 수 있다.

아마도 많은 프론트엔드 개발자들의 공통적인 답변일 것이다. 내가 작성한 코드가 곧바로 브라우저에서 확인이 가능하고, 사용자와 가장 가까이 위치하는 분야이다. 요리사가 자신이 만든 요리를 사람들이 맛있게 먹으면 거기서 보람을 느끼고, 작가는 자신이 쓴 글을 사람들이 재밌게 읽으면 거기서 보람을 느낄 것이다. 마찬가지로 개발자는 자신이 만든 프로그램을 사람들이 사용할 때 가장 큰 보람을 느끼는데, 그중 프론트엔드 개발자가 그 보람을 가장 크게 느낄 수 있지 않을까 생각이 든다. 

그리고 사용자 경험을 분석하는게 재밌다. 사소하게 버튼 위치나 애니메이션 하나하나 사용자에게 어떻게 느껴질지 고민하는 과정이 흥미롭다. 최근에는 서비스를 이용하면서 항상 사용자 경험을 분석하는 직업병(??) 같은 게 생기기도 한 거 같다. 테이블 오더를 사용하다 가격이 잭팟 머신처럼 올라가는 애니메이션이 있었는데, 그런 거를 보고 내가 만드는 서버스에도 적용을 하고 싶다는 생각을 하고 다닌다.

이처럼 사용자에게 나의 가치를 직접 전달할 수 있음에 큰 매력을 느낀다.

문제를 해결하는것이 재밌다.

이는 프론트엔드뿐만이 아닌 모든 개발에 해당하는 내용이겠다. 누군가 개발자란 뭐 하는 직업인가라는 질문을 하면 현실 속의 문제를 코드로 해결하는 사람이라고 답변을 할 거 같다. 과거의 웹 개발은 자바 서블릿을 기반으로 프론트엔드는 단순히 서버에서 연산된 값을 퍼블리싱하는 정도였다. 하지만 최근에는 리액트와 같은 프론트엔드 프레임워크(리액트는 사실 라이브러리지만)가 트렌드가 되면서 클라이언트에서도 다양한 연산이 발생한다. 사용자의 이벤트에 따라 다음 결과물을 출력하기까지 과정을 논리로 세우고 이를 구현하면서 큰 보람을 느낀다.

내가 그 라이트테마를 쓰는 사람이다.

프론트엔드 개발자는 신생 직종이다.

직전 문단에서 얘기했듯 과거 프론트엔드는 서버에서 마크업 하여 클라이언트에게 전달하는 방식이었다. 하지만 앵귤라라는 프론트엔드 프레임워크가 나오고, 리액트와 뷰가 인기를 끈 게 이제 5년 정도가 되었다. 브라우저의 발달로 클라이언트단에서 많은 연산이 가능해지고, 사용자 경험의 중요성이 부각되면서 프론트엔드 개발자의 역할이 더욱 커졌다. 필자는 이를 프론트엔드 개발자는 신생 직종이라고 표현할 수 있다고 생각한다. 그만큼 앞으로 사회가 프론트엔드에 다양하게 요구사항이 발생할 것이라 예상한다. 계속해서 새로운 기술과 도구들이 등장하고, 이를 통해 새로운 요구사항들을 해결해 나간다? 이 문장이 앞으로 프론트엔드 개발자가 얼마나 흥미로운 직업이 될 지에 대한 대답이다.

 

 

 

그래서 나는 어떤 개발자가 돼야 할까?

어쩌다 보니 프론트엔드 개발자가 꿈이 되었고, 이런저런 이유로 프론트엔드 개발이 재밌다고 생각하고 있다. 그리고 마지막 질문을 던져보고자 한다.

why를 끊임없이 붙이는 개발자가 되고 싶다.

 

왜 이런 기술들을 선택했나? 왜 코드 설계를 이렇게 했나? 왜 변수명을 이렇게 지었나? 이러한 질문에 완벽하게 대답할 수 있는 개발자가 되는 것이 나의 목표다.

최근에 '잘하는 개발자란 무엇인가'에 대해 깊이 고민하던 중, 그 답을 찾았다. 바로 '다른 사람이 보기 쉬운 코드를 작성하는 사람'이라는 것이다. (여기서 '다른 사람'에는 미래의 나 자신도 포함되더라.) 다른 팀원이 작성한 코드에 핫픽스로 내가 기능을 추가하는 일이 있었다. 코드가 논리적으로 분리되어 있고, 간단한 코드로 기능이 추가되는 점을 보고 잘하는 개발자의 정의를 발견했다.

다른 사람이 보기 쉬운 코드를 만들기 위해서는 어떻게 해야 할까? 이를 위해서는 내가 작성한 모든 코드에 깊은 고민이 녹아 있어야 한다고 생각한다. 나는 내가 작성한 코드와 내가 사용한 모든 기술에 대해 '왜'라는 질문을 받았을 때, 그 대답을 즉시 할 수 있는 개발자가 될 것이다.