프론트엔드 백엔드 개념
프론트엔드는 웹사이트에서 사용자들이 사용하는 화면과 같은 앞단을 말하고
그리고 이러한 사용자 화면을 개발하는 사람을 프론트엔드 개발자라고 한다.
백엔드는 눈에 보이지 않는 영역으로 API와 같은 뒷단의 영역을 말한다.
그리고 이러한 API를 개발하는 사람을 백엔드 개발자라고 한다.
넓은 의미로는 클라이언트 서버라고도 한다.
클라이언트는 인터넷상에서 요청하는 쪽을 말하고 서버는 이러한 요청에 대해 서비스를 제공하는 역할을 한다.
정리하면 프론트엔드는 요청하는 앞단의 영역이고 백엔드는 요청에 응답하는 뒷단의 영역이라고 할 수 있다.
장/단점
프론트엔드 개발의 장점은 본인이 하는 작업의 비쥬얼 피드백을 바로 얻을 수 있다는 것이다.
본인이 작업한 아름다운 웹사이트, 앱, 비디오게임 등을 자랑할 수 있고, 또한 유저와도 가깝다.
"너가 만든 웹사이트 멋지다!"와 같은 유저의 피드백을 얻을 수 있다는 것은 가장 큰 장점이라고 생각한다.
프론트엔드 개발자가 되는 것의 가장 큰 단점은 기술이 너무나 빠르게 발전한다는 것이다.
자바스크립트 피로도 (JS fatigue) 라는 단어까지 있는데 JS 개발자들이 느끼는 피로도를 뜻한다.
계속 끊임없이 발전, 업데이트 되는 환경 덕분에, "이 언어를 마스터했다."라는 느낌을 유지하기가 힘들다.
이는 동기부여를 가져오게 해줄 수도 있고, 피곤하게 할 수도 있다. Why? JS가 빠른 속도로 발전하고 있기 때문이다.
백엔드의 가장 큰 장점은 개발환경이 꽤나 안정적이라는 것이다.
장고, 루비, 레일스.. Node js 변하기는 하지만 프론트엔드처럼 빠르게 변하지는 않는다.
프론트처럼 항상 업데이트할 필요는 없고 자바스크립트처럼 빠르게 변하지는 않는다는 뜻이다.
예를 들면, 장고를 2년 전에 배웠는데, 오늘 다시 공부하려고 한다면 몇몇 새로운 부분만 업데이트 하면 큰 문제 없이 따라갈 수 있다.
그러나 웹팩, 리액트, 그래프큐엘을 2년 전에 배웠다면, 그리고 오늘 다시 공부하려고 한다면 엄청나게 많은 걸 새로 공부해야 할 것이다.
이건 백엔드의 큰 장점이다. 장고를 배워놓으면 2~4년 정도는 괜찮고, 업데이트 필요성이 높지 않으니깐..
또 다른 포인트는 프론트엔드 개발자는 무조건 html, css, js를 배워야한다.
프론트엔드 개발자로서 만약 css를 싫어한다면 .....(안됨) 유일하게 디자인을 줄 수 있는 방법이다.
그래서 프론트엔드는 무조건 반드시 html, css, js를 할 줄 알아야 한다.
그러나 백엔드 개발자에게는 옵션이 있다. 자바, 루비, 장고, 파이썬, 플라스크 ... (엄청 많음)
그래서 백엔드 개발자가 프론트엔드 개발자보다 더 선택권이 많다.
그러나 단점은, 유저와 긴밀한 연결점이 없다는 것이다.
"우와. 너 웹사이트 데이터베이스 구조 짱이야!", "엄청난 보안이야!" 등.. 이런 피드백은 기대할 수 없다.
왜냐면 백엔드는 유저로부터 숨어있기 때문이다.