요즘의 우리는 매일같이 핸드폰이나 컴퓨터를 통해 인터넷에 접속해 많은 작업을 한다. (노는 것도 작업이라고 쳐두자)
인터넷이나 앱을 통해 (인스타그램, 페이스북, 유브 등등) 쇼츠를 보고 서핑을 하고 하는 눈에 보이는 모든 작업의 결과물들이 프론트엔드 개발과 백엔드 개발이 합쳐져 탄생하게 된다.
가령 유튜브 쇼츠를 보다 보면 쇼츠가 아닌 원본의 영상으로 보고 싶을 때가 있다. 홍보를 더 똑똑하고 열심히 하는 채널 주인이라면 하단부에 있는 세모 버튼을 추가해 두었을 것이다.
요런 버튼(몰랐으면 알아가시라)
우린 그 표시를 눌러 원하는 영상의 원본으로 들어가 즐길 수 있는데, 이렇게 버튼을 누를 수 있는 틀을 잡아주는 게 프론트엔드 개발자가 하는 일이라면 백엔드 개발자는 그 버튼을 눌렀을 때 해당 영상을 화면에 띄워주는 일을 한다.
이렇듯 우리가 평소 아무렇지 않게 작동해 왔던 것들이 최소한 (정말 간단하게 보자면..) 두 가지 동작이 합쳐져 있는 행위였던 것이다.
얼핏 보면 비슷해 보이지만 전혀 다른 영역에서 다른 방식으로 일 처리를 해야 하기에 서로 사용하는 언어도 다를 수밖에 없다.
서로 다른 언어?
- 프론트엔드 대표적 언어
Java Scrpt 웹 페이지 상에서 동적 기능을 구현하는 데 주로 활용되는 스크립트 언어
HTML HTML은 웹 브라우저에 웹 페이지의 내용을 표시하기 위한 구조적 요소와 텍스트를 정의하고, 링크, 이미지, 멀티미디어 등 다양한 요소를 표현가능케 한다.
CSS
웹 페이지의 디자인, 폰트, 색상, 레이아웃 및 다양한 시각적 효과를 정의
- 백엔드 대표적 언어
PHP 서버 측 웹 개발을 위한 스크립트 언어로, 동적 웹 페이지를 생성하고 데이터베이스와 상호 작용하기 위해 사용
Java Java는 백엔드 개발에서 널리 사용되는 객체지향 프로그래밍 언어
그럼 난 왜 백엔드?
난 꽤 오랫동안 커피머신이나 오븐 등 주방 장비를 다루는 엔지니어였다.
정신 없는 전기도면 ㅜㅜ
사용자의 니즈에 맞춰 세팅을 도와주고 잘못된 부분을 찾고 고쳐나가는 게 주된 업무였다.
가끔은 일을 하며 결국 이 기기 안에서 내가 할 수 있는 건 정해진 틀 안에서 이렇게 저렇게 조합해보는 일 밖에 할 수 없겠구나 하는 생각이 들었다. 적지 않은 기간 일을 하다 보면 유저가 바라는 걸 더 맞춰줄 수 있으면 좋을텐데 이미 프로그래밍 돼 있는 이 안에서 내가 할 수 있는건 없겠구나.. 하고 회의감이 들기도 했다.
그러면서 알게 된 개발자.. 그중에서도 백엔드 개발자는 내가 하던 일의 연장선으로 보이기도 했다.
요즘은 버튼 한 번만 누르면 내가 원하는 커피를 만들어 마실 수도 있고, 음식을 데워 먹을 수도 있다.
버튼을 만드는 사람도, 그 버튼이 눌렸을 때 작동 되는 행위를 만드는 사람도 누군지 모르지만 우리는 너무나 간편하게 버튼 한 번을 눌러 많은 이득을 취하며 살아가고 있다.
또 정신 없는 머신 내부 (뭔가 코딩을 현실화 시켜둔 것 같다 얽히고 설키고 ~)
그래서 결국 나는
버튼을 만드는 사람도 좋지만 난 그보다 원래 보이지 않는 곳을 만지던 엔지니어였다. 보이지않던 곳에서더 원하는 게 생겼던 나였고 그걸 백엔드 개발자라는 직업이 조금 더충족시켜줄수 있을 거라 생각해 택하게 되었다. (나두커피 먹을 때야 그냥 먹었지 저렇게정신없는 줄몰랐찌..근데코딩은 더정신없다.)