프론트엔드와 백엔드 차이 - 백엔드 개발자가 되고 싶은 이유
프론트엔드와 백엔드의 차이
프론트엔드와 백엔드를 비유하기 위해 일반적으로 사용되는 비유 중 하나는 빌딩이다.
프론트엔드 개발(Frontend)
프론트엔드 개발은 마치 건물 외부 및 내부 디자인을 담당한다고 생각 할 수 있다
예를 들어 빌딩을 만드는 사람이라고 가정 했을 때 아래와 같은 것들을 담당한다고 볼 수 있다.
- 빌딩의 외부와 내부 디자인
- 엘리베이터의 출입문, 화려한 전등,깔끔한 바닥재 및 벽지 설치
- 사용자 또는 방문자가 직접 눈으로 볼 수 있는 부분을 꾸미고 내부를 사용자 친화적으로 만듦
위와 같이 프론트엔드 개발자는 사용자 경험을 개선하고 시각적으로 매력적인 환경을 제공할 수 있다. 또한 마치 건물 내부 및 외부에서 보이는 부분과 같이, 웹사이트나 애플리케이션의 외관과 사용자 인터페이스를 담당한다.
하지만 건물에 화려한 전등을 설치하고 디자인이 아주 멋있는 엘리베이터를 설치했다고 해서 그것이 올바르게 작동하는 것은 아니다 전등이 잘 켜지고 엘리베이터 같은 건물의 요소들이 올바르게 작동 해야 비로소 하나의 건물이 완성 되는것처럼 백엔드는 그러한 부분들을 담당 한다고 볼 수 있다.
백엔드 개발(Backend)
위에서 설명한 것 처럼 백엔드 개발은 빌딩을 만든다고 가정했을 때 건물의 기반과 시설을 담당 한다고 할 수 있다 예를 들어 아래와 같은 것들을 생각 해 볼 수 있다.
- 전기, 냉난방, 수도 등의 시설을 구축
- 구축된 건물의 시설과 기반등을 안전하고 효율적으로 운영
- 사용자 또는 방문자가 직접 보지 못하지만 핵심적인 역할을 담당
위와 같이 백엔드 개발자는 데이터베이스와 서버를 구축하여 프론트엔드에서 필요로 하는 데이터를 제공하고, 프론트엔드로부터의 요청을 처리한다. 마치 엘리베이터가 예쁜 문이 잘 열리고 버튼을 누르면 각 층으로 잘 움직일 수 있는것처럼 사용자에게 직접 보이지 않지만 건물 전체를 지탱하고 지원하는 역할을 한다.
이러한 비유를 통해 프론트엔드와 백엔드가 각각 사용자와 직접적으로 상호작용하는 부분과 그 뒤에서 데이터와 구조를 지탱하는 부분으로 나누어짐을 이해 할 수 있으며 함께 동작하여 완성된 건물, 즉 웹 애플리케이션은 프론트엔드와 백엔드의 효과적인 협업과 통합으로 가능해짐을 알 수 있다.
백엔드 개발자가 되고 싶은 이유
사실 무조건 백엔드 개발자가 되고 싶었다는 아니었다. 개발에 대해 아무것도 모를 때 개발이라는것이 그냥 배우면 게임개발도 할 수 있고 윈도우 프로그램도 만들 수 있고 그런건 줄 알고 등록했다. 그냥 제일 빨리 시작하는 학원을 등록했는데 등록 한 학원이 우연히 풀스택 웹개발자 양성 학원이었다. 학원에서 프론트엔드도 해보고 백엔드도 개발도 해보니 백엔드 개발자가 되고 싶은 이유를 찾을 수 있었다.
- 재밌다.
- 일단, 너무 너무 재밌다. 마치 퀴즈 문제 게임을 할 때 처럼 안 풀리던 무언가가 어느 순간 생각나서 풀리는 그 희열, 하루 종일 뭘까 뭘까 하다가 갑자기 생각나서 컴퓨터에 입력하고 돌려 보며 될까 안될까 긴장되며 기다리는 그 설레임, 모든 것이 너무 좋다.
- 효율적으로 일하는 것을 추구
- 이건 물론 모든 개발자에 해당하겠지만, 코드를 짜놓고 이게 정말 효율적인지, 예를 들면 유지보수성이 좋은 코드인지, 가독성은 또 좋은지 등 이런 것들을 고민하는 시간들이 나를 더 발전시키는 것 같아서 뿌듯할 때가 있다.
- 디자인에 ‘디’도 모르겠다
- 프론트엔드 개발자가 일반적으로 디자인을 직접 하는 것은 아니지만 처음 개발을 배웠을때는 웹디자이너분이 없었기 때문에 직접 디자인을 하고 개발을 진행 했었는데 프론트엔드를 개발해보다 보니 느꼈던 점은 “무슨 차이인지 하나도 모르겠다.”였다. 그래서인지 프론트엔드보다 백엔드쪽을 더 많이 공부하게 되었고 자연스럽게 백엔드쪽에 더 흥미를 붙일 수 있었다.
마치며..
사실, 백엔드 개발자가 되고 싶은 이유에 대해 작성해보니, 나는 백엔드 개발자가 되고 싶다기보다는 개발자가 되고 싶은 것 같다. 눈 앞에 놓인 문제들을 해결하고 코드의 유지보수성과 가독성 같은 것들을 고민하는 것은 백엔드 개발에만 필요한 것이 아닌 모든 개발자에게 해당하는 것이다. 나는 대체로 이런 것들에 재미를 느끼는 것 같다. 또 처음 내가 개발을 시작할 때 생각했던 것 처럼, 지금은 백엔드 개발에 충분히 재미를 느끼고 있지만, 나중에는 프론트엔드도 물론이지만 게임 개발 같은 것도 한 번 배워보고 싶은 생각도 있다.