'프론트 엔드'라는 용어는 '클라이언트 측'과 동의어입니까? 그렇다면 항상 그렇습니까?


18

상대적으로 새로운 (자체 학습) 웹 개발자로서 나는 프론트 엔드 , 클라이언트 측 , 백 엔드서버 이라는 용어를 자주 들었습니다 . 나에게 프론트 엔드와 백엔드는 항상 클라이언트 쪽과 서버 쪽과 동의어였다.

그러나 CodeIgniter와 같은 MVC 프레임 워크로 작업하기 시작하면서 기본적으로 최종 사용자가 보는 모든 것을 참조하는 프런트 엔드 인스턴스를 보았습니다 (서버 측 코드 포함). 최종 사용자에게는 표시되지 않습니다 (CMS 포함). 클라이언트 측과 서버 측은 그 의미가 훨씬 구체적입니다. 그것들은 그것들을 분리하는 매우 뚜렷한 선을 가지고 있습니다. 반면 프런트 엔드와 백엔드는 그렇지 않습니다.

대화에서 다른 웹 개발자와의 대화를 기억하면서 CodeIgniter (전체)를 프론트 엔드라고 언급했으며 이로 인해 루프가 생겼습니다. 나는 그를 교정하고 CodeIgniter가 나의 백엔드인지 또는 두 용어에 대한 나의 정의가 완전히 틀렸다는 것을 확신하지 못했습니다.

프론트 엔드와 백엔드의 정의를 검색하면 몇 가지 사항을 명확히했지만 일부 측면에서 좀 더 혼란 스럽습니다. 이 네 용어 사이에 선이 그려지는 위치와 웹 개발의 맥락에서 (특히 LAMP 스택에서) 어떻게 결합되는지 알고 싶습니다.


1
저는 "프론트 엔드"와 "백 엔드"를 사용하여 "프론트 직면"과 "프론트 직면"을 의미하는 한 남자와 함께 일했습니다. 그가 "올바른지"여부는 또 다른 질문입니다.
user16764

대신 "posterior"라는 단어를 사용해야합니다. 키딩. 다른 문구가 있었으면 좋겠다. "백엔드"의 동의어는 권장되지 않습니다.
Erik Aronesty

답변:


17

나는 그 용어들에 대한 공식적인 정의가 있다고 생각하지 않으며, 당신이 언급했듯이 어떤 경우에는 중복이 있습니다.

front-endclient-side중첩된다.
server-side그리고 back-end또한 중첩된다.

머리카락을 나누려면 다음과 같은 거친 경계를 제시하십시오.

  • client-side사용자의 컴퓨터에서 실행되는 응용 프로그램입니다. 독립 실행 형 응용 프로그램 일 수도 있고 (보다 자주) 웹 브라우저 기반 인터페이스를 가리킬 수도 있습니다.
  • front-end또한 최종 사용자를 향하고 일반적으로 웹 브라우저 기반 인터페이스에서 실행됩니다. 두꺼운 클라이언트가로 언급 된 적이 없습니다 front-end.
  • back-end다른 서버 또는 사용자 컴퓨터의 백그라운드에서 실행중인 프로세스 및 서비스를 나타냅니다. 종종 최종 사용자 컴퓨터에 없는 프로세스를 나타냅니다 . 그러나 핵심은 최종 사용자가 실행중인 프로세스를 반드시 인식 할 필요는 없다는 것입니다.
  • server-side는 확장 기능 back-end이지만 프로세스가 최종 사용자의 컴퓨터가 아닌 다른 곳에서 실행되고 있다는 사실을 명시 적으로 강화합니다.

예를 들어, 용어 사이의 혼란을 강조하기 위해 Minecraft를 예로 사용하겠습니다.

마인 크래프트는

  • client-side 자체 JVM을 사용하여 jar 파일을 로컬로 실행할 때 애플리케이션.
  • front-end 웹 브라우저에서 클라이언트 응용 프로그램을 실행하도록 선택한 경우
  • back-end 독립형 모드 인 경우 머신에서 로컬로 실행할 수있는 프로세스
  • server-side Minecraft 서버 응용 프로그램을 호스팅하는 서버에 로그인하도록 선택한 경우

Minecraft의 통계 중 일부를 살펴보면 단순히 게임에 a clientserver구성 요소를 지정한다는 것을 알 수 있습니다 . 이러한 구성 요소가 실행되는 위치를 신경 쓰지 않아도됩니다.


질문에 직접 대답하려면 :

'프론트 엔드'라는 용어는 '클라이언트 측'과 동의어입니까?

일종의, 그러나 실제로는 아닙니다. 웹 기반 세계 밖에서 논의 할 경우 용어 사이에 뉘앙스가 있습니다. 웹 기반 세계에 속한다면, 기능상 동의어입니다.

그렇다면 항상 그렇습니까?

웹 세계에서는 그렇습니다. 다른 영역에서는 내가 제공 한 대략적인 정의에 설명 된대로 아니요라고 대답합니다.


그것은 내가 생각한 것에 관한 것입니다. 머릿속에서 이것을 정리하도록 도와 주셔서 감사합니다.
DC_

2
백엔드는 종종 웹 사이트 / 응용 프로그램의 클라이언트 쪽 관리 부분을 의미하는 데 사용됩니다.
Florian Margaine

19

서버 측은 서버에서 실행됩니다. 클라이언트 측은 클라이언트에서 실행됩니다. 백엔드는 데이터를 처리하고 있습니다. 프론트 엔드가 표시하고 있습니다.

이 웹 페이지를보십시오. 데이터베이스에서 모든 주석을 가져 오는 것은 서버 측 백엔드 작업입니다. 템플릿에 데이터를 배치하는 것은 프런트 엔드 서버 측 작업입니다. AJAX 투표 위젯과 멋진 텍스트 입력 상자는 클라이언트 쪽 프런트 엔드입니다.


4
+1 프론트 - 엔드 / 백 - 엔드 및 개념 클라이언트 측 / 서버 측 개념 간의 직교성 지적
프란체스코 Feltrinelli을

1

나는 일반적으로 개발 / 개발자를 설명하기 위해 클라이언트 측과 서버 측을 사용하는 것이 덜 모호하다는 것을 알았습니다. 데이터를 저글링 / 포맷하는 클라이언트 쪽 부분은 백엔드 구성 요소로 볼 수 있습니다. 반면에 "프론트 엔드 (front end)"에 대해 사람들이 프론트 엔드 Java 또는 C # 개발로 이야기하는 경향이있는 백 엔드에서 발생하는 모든 템플릿이 있습니다. 드문 일이지만 직업 설명에서 보았습니다.

그러나 일반적으로 프론트 엔드를 말하면 상호 작용이 일어나는 부분입니다. 백엔드는 모든 상호 작용이 유용한 것으로 바뀌는 부분입니다.


0

이 질문은 다소 오래되었지만 2c를 추가하겠습니다.

필자의 웹 개발에서는 브라우저에서 잠시 처리되는 코드 또는 기타 리소스를 의미하는 "프론트 엔드"라는 용어를 사용했습니다. 이제는 "클라이언트"라는 용어를 사용합니다. esp를 혼동 할 수 있기 때문입니다. 웹 애플리케이션을 할 때. (단일 페이지 앱)

백엔드 측에는 "프론트 엔드" 있기 때문에 일반적으로 (브라우저로의) 출력을 담당하는 응용 프로그램의 일부를 의미합니다. "프론트 엔드"는 실제로 두 가지를 의미 할 수 있습니다. 그러나 "클라이언트"라는 용어는 실제 클라이언트 (이 경우 브라우저)와 관련된 것을 더 명확하게 설명합니다.

추신 : 글쎄, 아마도 내 별명을 "client_dev"로 바꿔야합니다.)


0

웹 애플리케이션의 클라이언트 측은 사용자 / 고객의 통제하에 있으며 서버 측은 개발자의 통제하에 있습니다. 이것이 서버에서 데이터 유효성 검사를 수행해야하는 이유 중 하나입니다.

프런트 엔드백 엔드 라는 용어 는 종종 클라이언트 측서버 측에 동의어로 사용 되며 대부분의 경우 괜찮습니다. 그러나 중요한 반례도 있습니다. 에 , 프론트 엔드는 아무것도 사용자에게 보여줍니다 뭔가입니다.

다음 이미지에서 일반적인 기술 / 개념과 이들이 (프론트 엔드, 백 엔드) / (클라이언트 측, 서버 측) 사분면에 어떻게 적용되는지 확인할 수 있습니다.

여기에 이미지 설명을 입력하십시오

프론트 엔드 및 백엔드 개발자

프론트 엔드 및 백엔드 개발자는 매우 일반적인 역할입니다. 서버 측으로 렌더링 할 수있는 React와 jinja templating engine 을 포함하는 Flask와 같은 것이 있으면 라인이 약간 흐려 집니다.

Web Client 데이터베이스 및 Indexed Database API 와 같은 기술을 "클라이언트 측 백엔드"사분면에 배치하지만 일반적으로이를 알고있는 역할은 프론트 엔드 개발자 역할입니다.

  • 프론트 엔드 개발자 는 HTML, CSS, DOM 및 일반 브라우저 기능 (예 : caniuse )에 대해 알아야 합니다. 일반적으로 jQuery 또는 React를 알고 있습니다. 내 정의에 따르면 백엔드이지만 프론트 엔드 개발자는 클라이언트 측 스토리지에 대해 알고 있어야 합니다.
  • 백엔드 개발자 는 nginx, gunicorn, Apache 또는 node.js와 같은 웹 서버에 대해 알아야합니다. 최소한 하나의 SQL 데이터베이스 (Postgres, MariaDB / MySQL 등), 키-값 저장소 (Redis), API 개발 (REST 및 GraphQL)을 알아야합니다. LAMP 는 얼마 전 전형적인 스택이었습니다. 나는 백엔드 개발자가 브라우저에 대해 아무것도 알기를 기대하지 않습니다!

UI 디자이너 및 프런트 엔드 개발자

다른 두 가지 역할은 UI 디자이너와 프론트 엔드 개발자입니다. 하나의 차이점은 하나는 디자이너이고 다른 하나는 개발자입니다.

객관적인:

  • UI 디자이너는 사용자 경험을 초안
  • 프론트 엔드 개발자는 예상대로 보이는지 확인합니다 (초안에서 실제 내용 작성).

도구 :

  • UI 디자이너는 주로 Adobe Photoshop / Illustrator / Sketch / Balsamiq / Invision을 사용합니다.
  • 프론트 엔드 개발자는 React, Vue, Angular를 사용합니다.

API : REST 및 GraphQL

API는 백엔드 팀에서 제공하며 프론트 엔드에서 앱으로 데이터를 채우는 데 사용됩니다. 백엔드는 장치 전체의 영구 저장소이고 프런트 엔드는 프레젠테이션 계층입니다. API는 둘 다의 통신 채널입니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.