107

about me

내 이야기

나는 왜 프론트엔드 개발자가 되기로 했나(지원동기)

간단히 말하면 눈에 보이는 아름답고 멋진 View 에 반했다고 말하고 싶습니다.  C와 Java로 컴퓨터 프로그래밍을 시작했었고, PHP를 접한 후로는 웹 개발에서 업무를 했습니다. PHP 템플릿을 주로 다루며 업무를 하면서, 학교에서 많이 다루지 않는 HTML, CSS, 그리고 Javascript로 인해서 많은 문제를 대면했었고, 그때마다 stackoverflow 와 medium 등의 커뮤니티 및 블로그를 통해 억지로라도 작동시켜 일을 처리하곤 했습니다. 그러다보니 문득, 이래서는 안되겠다는 생각이 들었습니다. 웹 개발의 영역이 현재는 Front-end와 Back-end 두 영역으로 나뉘어져 업무를 해도, 결국 양쪽 모두의 이해력은 요구하기 때문입니다. 처음에는 Front-end 영역으로 넘어갈 생각은 없었고, Javascript와  마크업, 스타일링에 대한 이해를 높인 뒤, Node.js 를 사용하는 Back-end 개발자가 될 생각 이였습니다. 그런데, Front-end 의 업무를 공부하다보니, 눈에 보여지는 부분이 없는 언어와는 다르게 브라우저를 통해 즉각적으로 아름다운 View 가 생성되는 부분에 큰 흥미를 느꼈습니다. 그리고 명시적인 C, Java 등의 언어와 다르게 다이나믹한 자유로움이 느껴지는 Javascript에도 큰 흥미를 느꼈습니다. 그리고 만만히 보던 HTML, CSS, JS 가 많은 지식과 전문 기술을 요구하고, 왜 Front-end 와 Back-end가 나뉘게 되었는지도 이해할 수 있었습니다. 프로그래밍은 일종의 건축의 예술과도 같다고 생각합니다. Back-end 에서는 설계를 할 수 있지만, Front-end 에서는 설계를 한 무언가가 눈에 보이는 형태로 모두가 볼 수 있어서 하나의 아름다운 건축물을 만들어 내는 것과 동일하다고 생각합니다. 마치 사람들이 아름다운 건물을 보면 아름다움을 알 듯이, 제 손에서 아름다운 무언가를 탄생시켜보고 싶습니다.


 

프론트엔드 개발자로서의 장, 단점

프론트엔드 개발자로서 디자인의 서비스로의 구현하는 작업과, Javascript 의 여러 디자인 패턴을 사용하여 라이브러리를 구축할 수 있습니다. 그 외에도, 도메인, 호스팅 및 서버관련 지식을 보유하여 문제가 발생하여도 대처가 가능합니다. 시맨틱한 HTML과 크로스 브라우징 이슈를 고려한 CSS 및 Javascript 를 사용하여 동적인 웹서비스를 구현할 수 있습니다.

 

프론트엔드 개발자로서 겸비해야할 중요한 능력들로는 Problem Solving(문제 해결)과 업무의 유연성입니다. 저는 영어권 국가에서 10년을 거주하며, 현재 국내의 프론트엔드 개발 시장이 해외의 트렌드를 따라가고 있는 모습을 보고 있습니다. 프론트 엔드 개발의 관련 지식과 문서들은 대부분이 영어로 되어 있으며, 아직 발전 단계인 국내의 한글 문서들은 노후하며 매우 양이 적습니다. 하지만, 이런 문제는 처음부터 영어로 프론트 엔드의 세계에 걸어들어온 저에게는 언어의 장벽이 되지 않습니다. 저의 주된 문제 해결은 물론 저의 머리에서 부터 시작하지만, stackoverflow, medium 과 같은 프로그래밍 닌자들의 글과, youtube, udemy와 같은 영문 비디오 강의를 통해 해결하며 학습합니다. 프론트엔드의 영역에서만 머무르지 않고 Node.js와 MongoDB를 사용한 full-stack javascript 개발자로 거듭나기 위해 항상 학습을 게을리 하지 않고 자기 주도 학습을 일상과도 같이 하고 있습니다. 하지만 프론트엔드 개발자가 필수적으로 활용해야 하는 UI/UX 의 영역에는 아직까지도 많이 부족하다고 느끼고 있습니다. 디자인 툴을 활용하고 사용에 익숙해지는 부분도 프론트엔드 개발자로서 필수적으로 지녀야 하는 부분이라고 생각하고 이 단점을 장점으로 바꾸기 위한 노력도 필요하다고 느끼고 있습니다. 그리고, 알버트 아인슈타인의 “Once you stop learning, you start dying” 말을 항상 프론트엔드의 길에 딱 맞는 명언이라고 생각합니다. 변화가 잦은 프론트엔드에서 배우기를 멈추는건 지식의 흐름을 따라갈 수 없다는 말과 같기 때문입니다.

 

프로그래밍을 오랜 기간 해온 탓인지, 사용자 경험이나 디자인 영역에 비해서 Javascript 언어와 라이브러리, 프레임워크에 대한 학습 속도와 이해력이 빠릅니다. 그리고 디버깅과 데이터 검증을 하지 않으면 안되는 중요한 부분으로 생각하고 코딩을 합니다. 프론트엔드 개발의 꽃이라고 불리우는 Javascript 에 대해 깊이 이해하고 사용할 수 있습니다. ES6, Babel, 그리고 webpack 과 같은 최신 프론트엔드 개발 언어 및 도구를 활용 가능합니다. 그리고, Git 을 사용한 협업이 가능하며 CLI 를 사용하는데 있어서 큰 문제가 없습니다. HTML5 표준을 준수하며, CSS와 Javascript 를 브라우저 호환성을 고려하여 코드를 구성할 수 있습니다.

 

프론트엔드 개발자는 웹의 전반적인 기획, 디자인, 그리고 서버와의 소통의 중요한 연결고리 역할을 해야 합니다. 그리고, 사용자가 사용하게 되는 인터페이스와 그것을 사용한 Interactive(소통?)을 고려해야 합니다. 소통을 하는데에 있어 적극적인 자세를 임하며, 컴퓨터 프로그래밍의 배경을 활용하여 결점 없는 결과를 만들어 내는 프론트엔드 개발자가 되겠습니다.


 

회사에서의 경험

캐나다 토론토에서 학교를 졸업 후, 군입대 전까지 일을 해보고 싶은 마음으로 이력서를 돌리다가 웹 사이트를 디자인하여 베포하는 웹 에이전시에 취직하게 되었습니다. 모든게 처음이기도 했지만, 프로그래밍을 할 수 있는 개발자는 저 혼자 였습니다. 주된 업무는 워드프레스로 구축된 수많은 클라이언트들의 사이트들을 편집하고, 혹은 처음부터 워드프레스 엔진으로 빌드 후 클라이언트에게 베포하는 일이였습니다. 디자이너였던 매니저와 다른 그래픽 디자이너들로부터 넘어오는 디자인을 기본으로 웹사이트를 빌드하였습니다.

 

지금와서 생각해보면 일하던 때에 가장 힘든 부분들이 현재는 경험으로 남게 되어 제 자신이 성장하게 된 부분들이 있습니다. 혼자서 개발을 하다보니, 제가 물어볼 수 있는 누군가가 존재하지 않았습니다. 개인적인 성향상 저는 답이 확실하지 않으면 제 자신이 직접 만든 코드에도 의심을 품게 됩니다. 근무하는 1년간 저에게 가장 큰 힘이 되 준 곳은 stackoverflow 였습니다. 너무 초보적인 질문들을 해서 커뮤니티 사람들에게 비난을 받기도 했지만, 배움에 창피한 부분은 없다고 생각합니다. 그리고 공식적으로 나와있는 Reference 사이트들도 많은 도움이 되었습니다. 디자이너들과 소통하는 부분도 많이 힘들었지만, 제가 상대의 아이디어를 먼저 존중한 후 차근차근 다가서면 일을 하는데에 큰 지장은 없다는 부분을 배웠습니다.

 

일을 하다 보면 클라이언트들에게 수많은 요청이 들어오는데, 가장 큰 이슈가 되었던 부분은 바로 Cross-browsing 이슈 였습니다. 당시 저는 프론트엔드의 영역의 초보여서 여러 브라우저마다 작동이 다른 부분을 인지하고 있긴 했지만, 좋은 해결 방안을 찾지 못해 jQuery 에 의존하는 경향이 많았습니다. 지금 패스트 캠퍼스에서 배운 지식을 그 때에 알았더라면 당시 해결하지 못해서 고민하던 문제들을 모두 해결할 수 있을 거였다는 생각이 듭니다.

 

그리고 일을 하면서 코드 리팩토링 경험을 많이 쌓았습니다. 클라이언트의 요청에 따라 회사에서 관리하는 서버 외에, 외부의 서버에 접속해서 개발을 하는 경우가 있는데, 그 때 마다 다른 사람들이 작성한 코드를 보며, 좀 더 나은 방향으로 코드를 구성해보며, 코드를 깔끔하게 완성했을때의 기쁨을 맛보았습니다. 저는 Clean Code를 지향하며, 코드를 깔끔하고 직관적으로 구성하는 것을 굉장히 좋아합니다.



 

내가 꿈꾸는 프론트엔드 개발자 / 10년 후 나의 모습

프론트엔드 개발은 아직까지는 정해진 길 없는 항해와도 같습니다. 프론트엔드 직종이 먼저 생겨난 해외의 경우도 아직까지 10년이 되지 않은 신규 직업입니다. 시장에는 거대한 커뮤니티들이 여러 개 있지만, 해가 바뀔 때 마다 중심이 되는 커뮤니티는 언제나 달라지고, 트렌드도 시시각각 변하고 있습니다. 지금은 이해하고 알아야 할 부분이 정말 많은 프론트엔드 개발이지만, 시간이 지날수록 점점 더 정형화되며, 세련된 업무로 변화할 것입니다. 제가 노리는 저의 프론트엔드 개발자는 국내 프론트엔드 개발의 리더 입니다. 현재는 작지만, 트렌드와 표준은 세계의 흐름에 맞추어야 하기에, 프론트엔드 시장은 커질 것입니다. 그러면 현재 프론트엔드를 공부하는 저와 저를 포함한 모든 프론트엔드 개발자가 되려는 분들은 10년 후에 수많은 프론트엔드 초급자들의 시니어가 될 것 입니다. 프론트엔드 개발은 프로그래밍과 창작의 영역을 둘 다 보는 현대 시대에 새로 태어난 유형의 직업이라고 생각합니다. 저 또한 눈으로 즉각적으로 보이는 아름다운 View 에 반해 일반 프로그래밍을 배우다가 프론트엔드 개발로 끌려 넘어왔기 때문입니다. 저는 프론트엔드의 영역에서 멈추지 않고, Node.js 기반의 서버 개발까지 공부하여 Full-stack Javascript 개발자로 미래에 자리잡을 생각입니다. 기회가 온다면 Google 과 같은 javascript 기반의 웹 서비스와, 웹 어플리케이션을 만들어 보고 싶습니다. 그리고, 사용자 경험에 대한 깊은 이해도를 지녀 모든 사용자에게 거부감 없는 소통을 제공하는 서비스를 만들어낼 것입니다. 항상 무언가를 학습하고 배워야하는 프론트엔드 시장이 어려운건 사실이지만, 그만큼 특별한 개발자라고 생각합니다.



 

내가 생각하는 프론트엔드 개발과 시장

가장 첫번째로 떠오르는 장점이며 동시에 단점이기도 한 부분은 바로 학습을 멈출 수 없다는 점입니다. 개인차가 있는 부분이지만, 저는 개발자로서 코딩은 단순 업무에 멈춰있어서는 절대 발전할 수 없다고 생각합니다. 시시각각 변화해가는 프론트엔드 영역에서 최신 기술을 따라가며 학습하지 않는다면 순식간에 트렌드에 뒤쳐지고, 그만큼 경쟁력도 낮아지기 때문입니다. 저는 최신 기술을 활용하여 코드를 작성한 뒤, Polyfill 을 통해 하위 브라우저의 버전을 맞추는 방식을 선호합니다. 그래서 그런지, 저에게 시시각각 변화하는 최신 트렌드는 단순히 따라가야만 하는 지식보다는, 저의 작업을 좀 더 아름답고 생산적있게 도와주는 길이라고 봅니다. 그래서 저에게는 학습을 멈출 수 없는 부분은 장점이라고 생각합니다.

 

또 다른 장점으로는 커뮤니티의 활성화가 잘 되어 있다는 부분입니다. 국내의 웹 시장은 노후한 상태이고 이제 막 해외의 트렌드를 따라가는 추세라 커뮤니티가 굉장히 작지만, 해외의 프론트엔드 시장을 커뮤니티가 매우 크게 활성화 되어 있습니다. 영어가 가능하다는 이점을 활용해 원하는 지식을 항상 접근하여 학습할 수 있고, 업무에 활용할 수 있습니다. Nodejs 의 성장과 Google 의 Javascript를 활용한 어플리케이션들도 프론트엔드 커뮤니티의 활성화에 큰 역할을 했습니다.

 

무엇보다 가장 큰 장점은 재미라고 생각합니다. 프론트엔드의 직업은 특성 상 백엔드 서버와 UI/UX 의 디자인 영역까지 이해하는 지식을 겸비해야 합니다. 한 가지만을 원하는 누군가에게는 굉장히 짜증나는 업무일 수 있지만, 눈에 보이는 디자인 영역과, 동적인 뷰, 그리고 프로그래밍적 논리를 모두 다룰 수 있다는 점은 분명한 장점입니다.

 

하지만, 큰 단점도 존재합니다. 프론트엔드 개발자라는 직업은 태어난지 오래 되지 않았습니다. 그리고 코드의 생태계도 아직까지는 혼란스럽습니다. 마치 초창기 브라우저 전쟁과도 같다고 봅니다.  유명한 프레임워크들인 React, Angular, Vue 등을 동시에 다 배우는 것은 굉장히 어려운 일인데 비해, 짧은 주기로 흔히 말하는 대세 프레임워크가 변하는 상태이다 보니 프론트 엔드 진입 장벽을 어렵게 만들고 있습니다. 자바스크립트가 기반으로 두는 ECAMScript 의 버전도 매년 변하고 있어서, 무엇이 가장 좋은 방법인지 선별하고 학습하는데에도 어려움을 만든다고 생각됩니다. 프론트엔드의 학습을 위한 서적을 구매할 때에도 현재의 트렌드에 맞는 언어들과 문법을 사용했는지 세심하게 살필 시간의 손해를 보기도 합니다.

그리고 국내에서의 프론트엔드 개발은 IE 구버전의 대응도 아직까지는 해야하는 시장이라, 해외에서의 업무와는 다르게 크로스 브라우징 이슈를 많이 고려해야 해서 프로젝트의 개발 시간이 상대적으로 길어진다는 단점이 있습니다.

 

프론트엔드의 개발자로서의 장점은 보통 단점이기도 합니다. 그래서 단점이 장점으로 느껴지기 위해서는 본인의 열정이나 흥미가 큰 역할을 한다고 생각합니다.

 

Project & Activity

대외활동
2015-09 ~ 2015-10

CISM(International Military Sports Council) 영어 통역

경북 문경 세계 군인 체육대회 통역 담당
외국인 선수 및 VIP 멤버 대상 영어 <-> 한글 통역 역할 수행

Work Experience

경력
2014-03 ~ 2014-11

Mozaic Creative Inc.

Wordpress Theme, Templates, Plugin 개발

2013-11 ~ 2014-02

NCA Language School

PHP Admin templates 개발

Attitude & Ability

특별한 역량
thumb_up
0
Javascript
thumb_up
0
html
thumb_up
0
CSS
thumb_up
0
sass
thumb_up
0
ES6
thumb_up
0
jQuery
thumb_up
0
Vue.js
thumb_up
0
Gulp
thumb_up
0
Webpack
thumb_up
0
Susy
thumb_up
0
bootstrap
thumb_up
0
Firebase

Language

언어
영어 비즈니스 회화가 가능해요.

Design Showcase

비핸스/드리블
Behance

연결된 Behance 계정이 없습니다.

Dribble

연결된 Dribbble 계정이 없습니다.

Tech Stack & Tool

프로그램/언어

Code Archive

깃허브/비트버킷
GitHub

연결된 GitHub 계정이 없습니다.

Bitbucket

연결된 Bitbucket 계정이 없습니다.

기업문화 엿볼 때, 더팀스

로그인

/