brunch

매거진 Web

You can make anything
by writing

C.S.Lewis

by hyunko Dec 20. 2019

Front-End & Back-End

웹에서 프론트엔드와 백엔드의 차이

프론트엔드(Front-End)

: 소프트웨어의 표현 계층(Presentation Layer)


백엔드(Back-End)

: 소프트웨어의 데이터 계층(Data Access Layer)  





클라이언트(사용자가 사용하는 데스크탑, 노트북, 스마트 폰 등) <----> 서버 모델에서 일반적으로 클라이언트 부분을 프론트엔드로, 서버 부분을 백엔드로 간주하기도 합니다.



프론트엔드는 웹페이지에서 보여지는 것과 이와 관련된 직접적인 인터랙션을 의미합니다. 프론트엔드 개발자는 HTML, CSS, 그리고 JavaScript를 이용하여 웹사이트를 만들게 되는데, 이는 웹사이트의 디자인을 실제로 기능하도록 구현하는 것이라고 할 수 있습니다. 반면 백엔드는 웹페이지에서 보여지진 않지만 특정 기능을 수행하는 데 더욱 특화되어 있는 것을 의미합니다. 백엔드 개발자는 PHP, Ruby, Python 등의 언어를 이용하여 기능을 구현합니다. 또한, 백엔드 개발자는 프론트엔드 개발자와 함께 일을 해야 하는 경우가 많은데, 그 이유는 실제 프로젝트를 기능하게 하고(예를 들어 페이지에 버튼을 만들고 이벤트를 등록해 놓았다면 이벤트가 발생할 때, 어떤 정보를 불러와서 보여줄 것인지), 필요하다면 디자인을 조정해야 할 필요가 있기 때문입니다.

위에서 프론트엔드와 백엔드를 정의하기 위해 일반적인 방식으로 이 둘을 나누어 설명했지만, 최근 이 둘의 차이점은 점점 모호해지고 있습니다. 기술의 발전으로 인해 이전엔 백엔드에서만 가능했던 것들이 프론트엔드에서도 일부 가능해졌기 때문입니다. 그렇기에 최근에는 기술적으로 프론트엔드와 백엔드를 나누기보다는 실제 프로젝트에 더욱 적합한 개발 도구를 사용하는 것이 더욱 중요해졌습니다. 그리고 이처럼 기술적인 구분(프론트엔드인지 백엔드인지)에 구애받지 않고 작업할 수 있는 개발자를 풀스택(Full Stack) 개발자라고 부릅니다.
    그러나 많은 사람의 생각과는 다르게 풀스택 개발자들은 실제 프로젝트에 참여하여 웹사이트 전체를 코딩하지 않습니다. 이들은 다양한 언어를 충분히 이해하고 있기 때문에 프로젝트 진행 과정에서 이슈를 파악하고, 실제 필요한 부분에 들어가 도움을 주는 것을 주요 업무로 맡게 됩니다.

이처럼 기술의 경계는 점점 모호해지고, 요구사항은 점점 복잡해지는 상황에서는, 특정 기술에 전문화된(specialized) 능력도 중요하지만, 전체적인 기술을 조망하는(generalized) 능력 역시 중요하다고 할 수 있습니다. 그렇기 때문에 디자이너는 프론트엔드 개발을, 프론트엔드 개발자는 백엔드 개발을, 그리고 백엔드 개발자는 프론트엔드 개발을 배우고 이해하는 과정이 꼭 필요하다고 생각합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari