프론트엔드개발자는 사용자에게 보이는 화면 즉 웹사이트 화면을 만드는 개발자다. 백엔드개발자가 눈에 보이지 않는 부분들을 만든다면 프론트엔드개발자는 바로 눈에 보이는 요소들을 만든다.
단순히 웹사이트를 만드는 개발자라고 할 수 있지만 나는 그렇게 생각하지 않는다. 디자이너가 디자인한 화면을 그대로 만들어내는 사람이 아니라, 웹사이트의 전체적인 흐름 그리고 사용자들의 니즈와 패턴을 이해하고 공감할 수 있도록 노력해야 하는 사람이라고 생각한다.
프론트엔드개발자는 사용자들이 직접적으로 사용하고 이용하는 화면을 만들게 된다. 이때, 사용자들이 실질적으로 원하는 웹사이트가 어떤 모습일지, 그리고 그들이 보다 편하게 정보를 얻고 유의미한 경험을 할 수 있는 기능들이 무엇일지를 끊임없이 생각하고 고민하고 또 구현해야 한다.
백엔드 개발자보다는 사용자와 가까운 위치에 있어야 하는 개발자라고 생각하기 때문에 무엇보다도 사용자를 이해하고 공감할 수 있는, 공감 능력을 필요로 하는 개발자
가 아닐까 생각한다.
프론트엔드는 클라이언트 부분을 담당한다면 백엔드는 서버를 담당하게 된다.
즉, 프론트엔드는 앞서 말했던 것과 같이 눈에 보이는 화면, 웹 사이트를 만들고 해당 웹 사이트에 필요한 기능들을 구현하기도 하며 서버로부터 받아온 데이터들을 잘 다듬어 보여주는 일을 하기도 한다. 또한 웹사이트를 만들 때 접근성 및 검색엔진 최적화 등의 작업을 하기도 한다.
반면에 백엔드 개발자는 사용자의 눈에 보이지 않는 부분들을 개발하는데, 데이터를 저장하는 데이터베이스, 데이터를 처리하기 위한 API 등 데이터를 관리하고 또 서버를 개발하고 성능을 업그레이드하기 위한 작업들을 한다. 백엔드 개발은 영역이 넓고 방대하다 보니 규모가 큰 기업에서는 각각의 전문 분야를 나눠서 맡기도 한다. 그 예로 클라우드 엔지니어, 데이터베이스 관리자 등이 있고 클라우드 엔지니어의 경우에는 말 그대로 클라우드와 관련된 일을 맡고 데이터베이스 관리자의 경우에는 데이터베이스에 있는 데이터들을 관리하고 유지 및 보수하는 일을 하게 된다.
이처럼, 프론트엔드 개발자는 사용자에게 보이는 시각적인 요소들을 개발하는 일을 한다면 백엔드 개발자는 사용자의 눈에는 보이 않는 서버를 개발하는 일을 한다.
프론트엔드는 클라이언트 담당 vs 백엔드는 서버 담당