Front-end & Back-end

Bam·2022년 3월 13일
0

CS

목록 보기
16/28
post-thumbnail

이 포스트는 프론트엔드, 백엔드 개발자가 되기위한 소양을 소개하는 것보다는 두 분야가 무엇인지에 대해서 정리하고, 소개하고 있습니다.

웹 개발자

웹 개발자는 웹 페이지 서비스를 개발하는 소프트웨어 엔지니어를 의미합니다. 웹 디자인부터 시작해서, User Interface(UI) 설계, 데이터베이스 관리 등 웹에 대한 것들을 프로그래밍하는 엔지니어들 입니다.

이들은 다시 두 분야로 나뉘는데 프론트엔드(Front-end)백엔드(Back-end)로 나뉩니다. 웹 개발 초기에는 요청에 대한 응답만 출력하면 되었기에 단순히 웹 개발자로 모든 직무를 맡은 경우가 있었으나, 현대에 들어오면서 웹 페이지가 거대해지고, 서비스도 거대해짐에 따라 프론트엔드와 백엔드로 나누어서 효율적인 분업을 하고 있습니다.

제 개인적인 생각으로는 스마트폰이 보급되고 인터넷과 웹 페이지가 대중화를 넘어서 생활의 필수 요소로 잡게된 시점부터 우리나라에도 일반인들에게 프론트엔드와 백엔드라는 말이 퍼지지 않았나 싶습니다. 당장 10년 전만해도 중학교 진로 찾기에서 웹 프로그래머라고 하면 웹 개발자, 웹 마스터(웹 마스터는 관리자에 더 가깝지만요.)라고만 나와있었던 기억이 납니다.

물론, 웹 퍼블리셔라는 UI만 개발하는 분들도 계시는데요. 저도 아직 학생이라 실제 개발자분들의 생각을 정확히는 모르지만 여기저기서 얻는 정보로는 이분들을 그냥 개발자로 보지 않고 디자이너로 보시는 분들도 계시기도하고, 최근 프론트엔드라는 직무가 위상이 올라가면서 프론트엔드 개발자분들이 웹 퍼블리셔의 업무까지 한다는 것 같기도 합니다. 또는 퍼블리셔분들이 프론트엔드 개발자가 되는 경우도 많다고합니다.
그래서 이 포스트에서는 웹 퍼블리셔에 대한 이야기는 하지않으려고 합니다. 결국 프론트엔드 개발자와 어느정도 겹치는 부분이 있기 때문이죠.

그러면 프론트엔드백엔드가 무엇이고 어떤 일을 하고 있는지 알아보도록 하겠습니다.


Front-end

프론트엔드는 서버로부터 가져온 데이터들을 페이지에 보여주고 페이지의 동작, 사용자와의 상호작용을 하는 사용자 인터페이스를 개발하는 분야입니다.

위에서도 짧막하게 언급한 웹 퍼블리셔와의 차이는 웹 퍼블리셔는 페이지의 디자인만 구성하는 반면, 프론트엔드 개발자는 서버의 데이터 처리와 동작, UI를 개발합니다. 결국엔 프론트엔드의 범위 안에 웹 퍼블리셔가 포함된다고도 볼 수 있습니다.
그래서 프론트엔드개발의 효율을 위해 디자인을 담당하는 퍼블리셔를 따로 두어 웹 퍼블리셔-프론트엔드-백엔드 세 분야로 나뉘어서 개발을 하는 회사도 있고, 프론트엔드-백엔드로만 나누어서 개발을 하는 회사도 있습니다.

프론트엔드의 기술들

프론트엔드HTML/CSS, Javascript를 기본적으로 알고있어야합니다. 세 가지 기술이 웹 페이지를 구성하는 기본 중의 기본 기술들이기 때문입니다. 추가적으로 네트워크, UI/UX서버에 대한 지식도 요구를 합니다.

사용자와 상호작용하고, 서버와 요청/응답 처리를 주고 받기 위해서 네트워크를 알아야하고, 서버와의 요청/응답 처리를 위해 서버에 대한 지식들을 요구로합니다.
또한 UI/UX(User Interface/User Experience)는 단순한 디자인을 넘어서 사용성, 편의성 등을 제공할 수 있도록 이들에 대한 지식도 요구를 합니다.

이 외에도 프론트엔드 웹 프레임워크나, 버전관리 시스템 등의 기술들도 필요로합니다.


Back-end

백엔드는 데이터베이스와 API 개발을 담당하는 분야입니다. 프론트엔드가 사용자의 상호작용을 하는 부분을 담당했다면 백엔드는 사용자에게는 보이지않는 비지니스 로직이나 데이터 처리 등을 담당하고 있습니다.

백엔드의 기술들

백엔드프로그래밍 언어데이터베이스 시스템을 기본적으로 알아야합니다. 프론트엔드 설명에 비해서 왜케 뭉뚱설명하냐면 백엔드는 선택지 폭이 넒기 때문입니다.

프로그래밍 언어는 Javascript(Node.js), Java, PHP 외에도 많은 언어들도 개발이 가능합니다. 그래서 주력 언어를 하나 갖고 그에 맞는 서버 프레임워크를 다룰 수 있어야합니다.
데이터베이스도 마찬가지로 MySQL, MariaDB 등 수많은 데이터베이스들이 있습니다. 기본적으로 SQL이라는 질의언어를 사용하지만, SQL을 사용하지 않는 데이터베이스도 있고, 아무튼 종류가 매우 다양합니다. 따라서 백엔드는 비교적 프론트엔드에 비해 원하는 언어/시스템을 선택할 수 있습니다.

백엔드개발자도 역시 네트워크에 대한 지식을 필요로합니다. 클라이언트측에 요청/응답을 주고 받기 위해 네트워크에 대한 지식도 필요합니다.


풀스택 개발자

웹 개발자 중에서 프론트엔드백엔드를 동시에 능통하게 할 수 있는 개발자를 풀스택 개발자라고 합니다.

0개의 댓글