개발 한 달 차, 개발을 처음 접하게 해준 친구가 내게 물었다.
친구: "너는 프론트엔드 개발자 할거야? 백엔드 개발자 할거야?"
나: "프론트엔드 개발자"
친구: "왜??"
나: "백엔드는 뭔지 모르니깐"
당시 나는 프론트앤드로 개발을 시작했었고, '생활코딩' JavaScript 강의를 들으면서 끙끙 혼자서 홈페이지 CRUD를 구현하고 있었다.
데이터베이스와 통신하면서 AWS에 배포까지 해보았지만, 직접 하면서도 내가 백엔드를 하고 있다고는 알지 못했다.
비전공자인 내가 그런 개념까지 정리해가면서 공부하는건 사치 였달까...
(구글링하면서 기능 구현하기에만 급급했던 나의 예전이여😵💫)
1년이 지난 지금에서야 그 차이가 뭔지 생각해볼 수 있게 되었다.
요즘 대세인 ChatGPT에 따르면 둘의 차이는 아래와 같다.
프론트엔드(Frontend) : 사용자가 웹사이트를 방문했을 때 직접 보고 상호작용하는 부분입니다. 프론트엔드 개발은 HTML, CSS, JavaScript와 같은 언어를 사용하며, 사용자 인터페이스(UI)와 사용자 경험(UX)에 중점을 두고 개발합니다. 웹 디자인, 애니메이션, 사용성, 반응형 디자인(다양한 디바이스와 스크린 크기에 맞게 적응하는 디자인) 등을 다룹니다.
백엔드(Backend) : 서버, 애플리케이션, 데이터베이스 등 사용자에게 직접적으로 보이지 않는 웹사이트의 부분을 담당합니다. 백엔드 개발은 서버 측 로직을 작성하며, 데이터베이스와의 상호작용, 서버 측에서 클라이언트 측으로의 데이터 전송 등을 관리합니다. 백엔드 개발에는 Python, Ruby, Java, PHP, Node.js 등의 언어가 사용됩니다.
그림을 통해서 좀 더 이해해보자.
첫번째 그림은 인터넷 연결이 안된 상태에서 Youtube 앱을 실행시킨 것이다.
데이터가 보이진 않지만 화면이 표시된다.(프론트엔드)
두번째 그림은 데이터가 받아져서 영상이 보인다!(백엔드)
그리고 사람마다 다르게 추천알고리즘이 작동할 것이다(AI)
그렇다면 하나의 프로젝트를 만들때 3 파트의 필요 인력 비율은 어떻게 될까?
보통 프(3), 백(6), AI(1)로 구성된다고 한다.
그래서 내가 백엔드를 선택한 것이다. 백엔드의 필요가 가장 많다.
그리고 서비스의 유지를 위해서는 백엔드 엔지니어가 계속해서 필요하지만, 프론트엔드 엔지니어는 경기가 나빠져서 신규 프로젝트를 하지 않는다면 필요하지 않을 수도 있다!
즉, 백엔드 엔지니어는 경기침체의 여파를 덜 겪는다.
하지만 위 이유들에서는 "내가" 백엔드 개발자를 하려는 이유는 아니다.
do{ //백엔드 개발자로 성장하여랏!! }while( ??? )
저 반복문의 ??? 값은 대체 뭘까.
그저 뭔가를 만드는게 재미있다.
몰입해서 공부하고, 어려운걸 드디어 이해했을 때의 쾌감을 느끼고 싶다.
사람들과 함께 성장하고, 주변 사람들을 도와주는데 행복을 느낀다.
끊임없이 이유에 대해서 질문할 것이다. 정해진 답은 없다. 내 스스로 저 물음표에 대한 값을 정하는 순간 내가 잃게 되는 것은 내 인간성일테니깐.