웹프로그램 개발자로 15년 정도 일을 했는데 가장 힘든 것이 신기술의 등장이라고 생각합니다. 30대 때는 입문 서적 보고 어느 정도 흐름 파악하고 맨몸으로 부딪혀 개발을 하며 익히고 그랬습니다. (그리운 나의 30대 ㅜㅜ) 40대가 되어서 그런지 기억력도 가물가물하고, 무서운게 점점 많아져서 인지, 이제는 맨몸으로 부딪혀가며 개발을 하면 이해력도 떨어지고 함수나 문법도 기억이 안나는 경우가 상당합니다. 그래서 앞으로 이 작은 공간에 개인적으로 공부하고 익힌것은 정리하여 두도록 하겠습니다.
○ Front-End, Back-End, Full Stack ???
몇 년 전까지만 하더라도 웹프로그램 개발자는 전천후 파이터와 같았습니다. 회사생활 초기에는 Front-End, Back-End라는 개념도 그다지 없었고 사용자 화면부터 WEB/WAS/DB서버 설정 및 세팅 모든 부분을 두루두루 알아야 했었습니다. 또, 그렇게 사수한테 배웠고 그래야만 문제가 발생해도 빠른 대응이 되었으니까요. 하지만 점점 분야가 나눠지는 추세인것 같습니다. 서론이 너무 길었고, 웹프로그램 개발영역의 차이를 알아보고 어느 영역인지 확인해 보도록 하겠습니다.
- Front-End : 사이트 이용자가 보는 부분(HTML/CSS/JAVASCRIPT 등등)을 개발 합니다. 즉, 뷰(View) 부분을 개발하는 사람을 이야기합니다.
- Back-End : 사이트 이용자가 눈으로 보지 못하는 부분(서버코딩, DB활용, API제작, User Interface 등등)을 개발 합니다. 주로 서버단에서 비즈니스 로직을 짜거나 데이터를 처리하는 부분을 담당하는 사람을 이야기합니다.
- Full Stack : 다양한 환경 및 플랫폼을 이해하고 사용되는 대부분의 언어와 지식을 갖춘 인재를 얘기합니다. Front-End와 Back-End를 다 한꺼번에 다 하는 사람입니다. (나네...나!! ㅋㅋ)
그렇다면 Full Stack 개발자가 가장 잘하는 거 아니냐?? 라는 생각을 하시겠지만, 그건 아닙니다. 업무분담이 어떻게 나누어 지는지의 차이이고, 업무 체계가 잘 잡혀있는 회사는 이러한 업무분담이 잘 나누어져 있는 경우가 많습니다. 그리고 개발자도 한쪽만 집중해서 하는 것이 이것저것 다 하는 것보다 편합니다.
(소규모 프로젝트 혹은 프로젝트 초창기에는 Full Stack 개발자를 더 선호한다는 개인적인 의견입니다.)
○ Vue.js 를 선택하고 공부하게 된 이유
2~3년전에 같은 동호회를 하는 사람이 Vue.js로 프로젝트를 하며 처음 용어를 접하게 되었고, 요즘 회사에서 Front-End 프레임워크로 Vue.js 를 사용한다는 이야기를 들었습니다. 그래서 Vue.js를 공부해야 겠다고 생각을 했습니다. (그래.. 이제 넥사크로는 버리자.. ) 개인적으로 Vue.js 입문 서적을 구매하여 공부하며 이곳에 요약을 하고 나름의 공부를 시작하려 합니다.
○ Vue.js 란 무엇인가?
빠르게 변화하는 Front-End 시장에서 요즘 가장 주목 받고 있는 것이 Vue.js 가 아닐까 생각이 듭니다. Vue.js 가 무엇인지 하나씩 정리를 해보겠습니다.
- 창시자 : 에반 유(Evan You)
- 공식 사이트 : https://vuejs.org/
- 공식 배포 : 2014년 2월
- 웹 페이지 화면을 개발하기 위한 Front-End 프레임워크 (점진적인 프레임워크)
- 탄생 : 앵귤러의 명시적 데이터바인딩과 같은 필수적인 요소들만 가지고 화면을 구현하기 시작했고, 오픈 소스화하면서 많은 사람들이 참여하여 프레임워크의 기능을 붙이기 시작
- 장점
. 배우기가 쉽다.
. 리액트와 앵귤러에 비해 성능이 우수하고 빠르다.
. 리액트와 앵귤러의 장점을 가지고 있다. - 특징
. MVVM 패턴의 뷰 모델에 해당하는 화면단 라이브러리
. 컨포넌트 기반의 프레임워크
. 리액트와 앵귤러의 장점을 가진 프레임워크
간단하게 Vue.js 가 무엇인지 정리하였습니다. 근데 "리액트, 앵귤러가 뭐야?", "이런거 안해봤는데.. " 라고 생각을 하시는 분이 있을지 모르겠습니다. 괜찮습니다. 저도 잘 모릅니다. (저런 기술이 있다는 것을 듣기만 했습니다.) 리액트, 앵귤러를 지금 배울것도 아니니까요. 그럼 다음에는 환경설정과 간단한 프로젝트를 만들어 보도록 하겠습니다.