프론트엔드와 백엔드(Client-Server 모델)

지온·2023년 11월 10일
post-thumbnail

클라이언트-서버 구조

개발하면서 클라이언트와 서버라는 용어를 흔히 듣게 된다.
클라이언트는 서비스를 요청하는 고객이고 서버는 서비스를 제공자라고 보면 된다.
유저가 클라이언트(PC, 스마트폰 등) 기기로 서버에 요청을 보내면 서버는 이에 응답하고 서비스를 제공한다.
웹/앱 개발에서 흔히 볼 수 있는 프론트엔드와 백엔드의 구분 역시 여기에서 나왔다고 볼 수 있는데, 프론트엔드가 클라이언트와 대응되고 백엔드가 서버와 대응된다.
그럼 이 둘의 역할에 대해서 좀 더 자세히 알아보자.

Front-End

유저가 보게 되는 클라이언트 화면을 구현하는 작업이다.
우리가 웹 사이트에 들어가게 되면 보게되는 모든 요소들은 프론트엔드 개발자가 구현하게 된다.
디자이너가 제공한 시안대로 화면을 구성하고 필요한 정보를 서버에 요청해서 화면에 표시하기도 한다. 업무 특성상 디자이너와 백엔드 개발자와의 소통이 중요하다.

Back-End

사용자에게는 보이지 않는 뒷단의 서버를 개발하는 작업이다.
프론트엔드(화면)에서 필요한 정보를 제공할 수 있도록 API를 만들어서 프론트엔드에 제공한다.
즉, API 사용법만 프론트엔드 개발자가 알고 있으면 내부의 복잡한 원리를 모르더라도 원하는 정보를 쉽게 불러올 수 있는 것이다.

==============================================================

여담) 내가 백엔드를 공부하게 된 이유...

나는 2년전 게임 클라이언트로 개발에 입문해서 한 개발업체에 입사했다.
주된 업무는 게임엔진으로 UI/UX 디자이너에게서 받은 시안대로 UI를 구현하는 것이었다(신입 개발자는 주로 UI 배치나 개발부터 시작한다).
그러다 웹게임 개발 프로젝트에 참여하게 되었는데 그 때 처음으로 웹 API를 다루게 되었다.
그리고 이때 다른 업체(백엔드 담당)와 협업할 기회가 있었는데 여기에서 서버의 중요성을 깨닫게 되었다.

예를 들어 UI에 사용자의 획득 점수와 클리어 횟수 등을 표시하고 싶은데 제공된 API로 불러왔을 때 제대로 된 정보가 오지 않으면 프로그램이 터지거나 UI에 정보가 이상하게 표기된다.
우리가 개발한 부분에서 생긴 오류가 아니기 때문에 백엔드 개발 업체에게 해당 부분의 수정을 요구해야 했고 이 과정에서 프론트에서 생긴 오류가 아니라는 것을 증명해야 했다.
그런데 아무래도 내가 서버 쪽은 잘 알지 못하다 보니 답답한 일이 많아졌고 언젠가 한번 서버를 공부해야겠다 싶었다.
그러다가 올해 가을쯤에 회사를 나오게 되었고 이 기회에 내가 잘 몰랐던 서버를 공부해봐야겠다는 생각이 들었다.

0개의 댓글