웹 어플리케이션 개발은 크게 프론트엔드 개발과 백엔드 개발로 나눌 수 있다. 각각의 특징에 대해 개략적으로 정리하고, 어떻게 내가 백엔드 개발을 선택하게 되었는지 이야기해보려 한다.
Front-End 와 Back-End 비교
기본적으로 웹 개발에 있어서 프론트엔드(FE) 개발과 백엔드(BE) 개발은 상호보완적인 관계이다. 어느 한 쪽만으로는 정상적인 웹 사이트를 제작할 수 없다는 의미이다.
1. Front-End
프론트엔드는 웹사이트에서 사용자와 직접적으로 상호작용하는 부분을 말한다. 따라서 프론트엔드 개발이란 웹사이트에서 사용자에게 보여지는 화면을 구성하고, 사용자와 상호작용하기 위한 기술을 구현한다. HTML, CSS, JavaScript 등의 언어를 사용하여 글자, 이미지, 색상, 버튼, 메뉴 등 화면 상에서 볼 수 있는 것들 일체를 구성한다.
프론트엔드 개발은 크게 반응성과 퍼포먼스에 중점을 둔다. 예를 들어, 화면 크기를 어떻게 조절하여도 비정상적으로 작동하는 부분이 발생하지 않도록 다양한 경우에 대응할 수 있는 코드를 작성하기 위해 노력한다.
<질문해보세요>
Q. 시각적인 요소에 흥미를 느끼는가?
Q. 디자인 작업을 즐기는가?
Q. 사용자 경험을 중요하게 생각하는가?
2. Back-End
백엔드는 웹사이트의 서버 및 데이터베이스 측을 말한다. 따라서 사용자와 직접적으로 상호작용하는 프론트엔드와 달리, 백엔드는 사용자에게 보여지지 않으며 직접적으로 상호작용할 수도 없다. 다만 각종 데이터를 저장 및 정리하고, 프론트엔드에서의 작업이 원활히 진행될 수 있도록 지원하는 역할을 함으로써 백엔드는 프론트엔드를 통해서 간접적으로 상호작용한다. API 작성, 시스템 컴포넌트 작업, 라이브러리 생성, 데이터베이스 관리 등의 활동을 한다.
백엔드 개발은 효율적인 데이터 처리와 안정적인 서버 운영에 중점을 둔다. 사용자가 프론트엔드를 통해 요청하는 정보를 적절하게 제공하도록 시스템을 구축하며 그 시스템이 연속적으로 구동되도록 유지・보수하는 작업을 한다.
<질문해보세요>
Q. 논리적인 사고를 지향하는가?
Q. 효율적인 문제 해결을 위한 알고리즘과 시스템 최적화를 즐기는가?
Q. 안정성을 지향하는가?
내가 백엔드 개발을 선택한 이유
개발 공부를 시작했던 시점으로 돌아가 생각해보면 내게 프론트엔드와 백엔드는 모두 매력적인 선택지로 다가왔었다. 다양한 웹 및 어플을 사용해보며 저마다의 서비스에서 제공하는 사용자 경험에 대해 생각해보거나, 시각적으로 아름다운 화면 구성에 대해 아이디어를 내는 것을 좋아하여 프론트엔드 개발에도 흥미가 있었고, 다른 한편으로는 논리적인 사고를 하는 것을 좋아하여 어려서부터 수학을 좋아했고, 대학에서 통계학을 전공하며 데이터 관리의 효용을 배우며 백엔드 개발에도 마음이 갔었다.
프론트엔드와 백엔드 각각의 특성만 놓고 보면 어떤 것이 더 나의 적성에 맞을지 잘 와닿지 않아 직접 경험해봐야겠다고 생각했다. 그래서 클론코딩도 해보고, 미니 팀 프로젝트를 통해 프론트엔드와 백엔드 개발 역할을 구분하지 않은 채 작업하며 두 분야 모두를 체험해보기도 했다. 스코프가 그리 넓지 않은 소규모 프로젝트였지만 '백문이 불여일타'라는 말대로 어렴풋이나마 길이 보이는 듯한 경험을 할 수 있었다.
프로젝트를 마친 후 나의 선택은 백엔드였다. 나의 성향에 대해 고찰해 보았을 때, 내가 추구하는 것은 효율성이다. 가령 길을 찾는다거나 일정 및 계획을 세울 때 혹은 일을 할 때에도 대부분의 경우 가장 우선적으로 생각하는 것이 '그것이 효율적인가?' 이다. 단순히 일을 하는 것은 누구나 할 수 있다. 하지만 한정된 자원 아래에서 보다 큰 효용을 창출하기 위해서는 효율성이 필요하다. 대용량 트래픽 부하가 발생하는 상황이라면 더욱 그럴 것이다. 이러한 효율성의 수준을 결정하는 것은 백엔드 개발의 수준에 달렸다고 여겨졌다. 데이터를 처리하는 과정에서 어떤 로직 및 알고리즘을 사용하는지, DB와의 통신은 어떻게 처리되는지, 수집한 데이터에 대한 보안 처리는 안전한지 등이 관련되어 있을 것이다.
눈에 보이지도 않고 잘해야 본전인 분야가 백엔드라는 분야인듯 싶기도 하지만, 시스템을 안정적이고 효율적으로 만들 때 보람을 느낄 수 있는 것도 이 분야라고 한다. 돌아보면 나는 어떤 일을 할 때 화려한 퍼포먼스를 자랑하기보다는 조용히 나의 할 일을 하며 조직이 원활히 운영되는 데에 기여할 때 보람을 느꼈다. 누가 알아주지 않아도 묵묵히 자기 할 일을 해내며 내면적인 부분까지 완성도를 추구하는 장인정신과 같은 태도를 추구하는 백엔드 개발이 내게 적합한 분야라고 여겨져 백엔드 개발을 선택하게 되었다.
[참고한 자료]