프론트 엔드 및 백엔드
Frontend and backend소프트웨어 엔지니어링에서 프런트엔드와 백엔드(또는 백엔드 또는 백엔드라고도 함)라는 용어는 프레젠테이션레이어(프런트엔드)와 소프트웨어 또는 물리 인프라스트럭처 또는 하드웨어의 데이터액세스 레이어(백엔드) 사이의 문제를 분리하는 것을 의미합니다.클라이언트/서버 모델에서는 프레젠테이션 작업이 서버 자체에서 실제로 이루어지는 경우에도 클라이언트는 보통 프런트엔드로 간주되고 서버는 백엔드로 간주됩니다.
서론
소프트웨어 아키텍처에서는 하드웨어와 최종 사용자 사이에 여러 계층이 있을 수 있습니다.전면은 추상화이며 사용자에게 친숙한 인터페이스를 제공하여 기본 구성요소를 단순화하는 반면 후면은 일반적으로 데이터 스토리지와 비즈니스 로직을 처리합니다.
전기통신에서는 전면은 디바이스 또는 서비스로 간주할 수 있으며 후면은 서비스 제공을 지원하는 인프라스트럭처입니다.
경험적으로 클라이언트 측(또는 "프런트 엔드")은 사용자가 조작하는 컴포넌트입니다.서버측(또는 「백엔드」) 코드는, 통상은 서버에 존재해, 유저로부터 물리적으로 멀리 떨어져 있는 경우가 많습니다.
소프트웨어 정의
이 섹션은 목록 형식이지만 산문으로 더 잘 읽힐 수 있습니다.(2020년 9월) |
- 콘텐츠 관리 시스템에서 프런트 엔드(frontend)[1]와 백엔드(backend)라는 용어는 각각 CMS의 최종 사용자 대면 뷰와 관리 뷰를 나타낼 수 있습니다.
- 음성합성에서 프론트엔드는 입력된 텍스트를 기호음성표현으로 변환하는 합성시스템 부분을 참조하고 백엔드는 기호음성표현을 실제 [2]소리로 변환한다.
- 주요 컴퓨터 서브시스템의 경우 그래픽 파일 매니저는 컴퓨터 파일 시스템의 프런트 엔드이며 셸은 운영체제와 인터페이스합니다.프런트엔드는 사용자를 향하고 백엔드는 [citation needed]이에 응답하여 운영 체제의 프로그램을 실행합니다.
- 컴파일러에서 프런트엔드는 컴퓨터 프로그래밍 소스 코드를 중간 표현으로 변환하고 백엔드는 중간 표현과 함께 컴퓨터 출력 언어로 코드를 생성한다.일반적으로 백엔드는 보다 빠르게 실행되는 코드를 생성하도록 최적화합니다.프론트 엔드/백엔드의 구별은 소스 코드를 다루는 파서 섹션과 코드를 생성하고 최적화하는 백엔드를 분리할 수 있습니다.GCC 등의 일부 설계에서는 여러 프런트 엔드(다른 소스 언어 파싱) 또는 백엔드(다른 [3]타깃프로세서용 코드 생성) 중 하나를 선택할 수 있습니다.
- Command-Line Interface(CLI; 명령줄 인터페이스)를 사용하려면 특별한 용어를 취득하고 명령어를 암기해야 합니다.그래픽 사용자 인터페이스(GUI)가 프런트 엔드 데스크톱 환경으로서 기능합니다.
예로서 웹 개발
이 두 가지 차이점을 이해하는 또 다른 방법은 프런트엔드와 백엔드 소프트웨어 개발자에게 필요한 지식을 이해하는 것입니다.아래 목록은 예를 들어 웹 개발에 초점을 맞추고 있습니다.
둘다요.
프런트 엔드 중시
- HTML, CSS, JavaScript 등의 마크업 언어 및 웹 언어, Sass 또는 jQuery 등의 언어에서 일반적으로 사용되는 보조 라이브러리
- 비동기 요구 처리 및 AJAX
- 단일 페이지 애플리케이션(React, Angular 또는 Vue.js 등의 프레임워크 사용)
- 웹 퍼포먼스(최대 콘텐츠 페인트, 인터랙티브 시간, 60 FPS 애니메이션 및 상호작용, 메모리 사용량 등)
- 응답성이 뛰어난 웹 설계
- 크로스 브라우저 호환성 문제 및 해결 방법
- 헤드리스 브라우저를 사용한 엔드 투 엔드 테스트
- JavaScript 파일을 변환 및 번들하기 위한 자동화 구축, 이미지 크기 축소...Webpack이나 Gulp.js 등의 툴을 사용하여
- 검색 엔진 최적화
- 접근성에 관한 우려
- GIMP나 Photoshop 등의 이미지 편집 도구의 기본 사용법
- 사용자 인터페이스
백엔드 중시
- PHP, Python, Ruby, Perl, Node.js 또는 C#, Java, Go와 같은 컴파일 언어 등의 스크립트 언어
- 사용되는 언어의 자동 테스트 프레임워크
- 응용 프로그램 데이터 액세스
- 응용 프로그램 비즈니스 로직
- 데이터베이스 관리
- 확장성
- 하이 어베이러빌리티
- 보안에 관한 문제, 인증 및 인가
- 소프트웨어 아키텍처
- data 변환
- 백업 방법 및 소프트웨어
두 직책 모두 한 가지 제품에 종사할 수 있지만 매우 독특한 기술을 가지고 있다는 점에 유의하십시오.
API
프런트 엔드는 API를 통해 백엔드와 통신합니다.웹 및 모바일 프런트엔드의 경우 API는 HTTP 요청/응답에 기반하는 경우가 많습니다.API는 프론트 엔드 [4]측에서의 처리를 용이하게 하는 응답을 제공하는 BFF(Backend for Frontend) 패턴을 사용하여 설계되는 경우가 있습니다.
하드웨어 정의
네트워크 컴퓨팅에서 프런트엔드는 네트워크트래픽을 [5]최적화 또는 보호하는 모든 하드웨어를 가리킵니다.네트워크의 외측 프런트 엔드 또는 경계에 배치되어 있기 때문에 애플리케이션프런트 엔드 하드웨어라고 불립니다네트워크 트래픽은 네트워크에 들어가기 전에 프런트 엔드 하드웨어를 통과합니다.
프로세서 설계에서 프런트 엔드 설계는 Verilog와 같은 하드웨어 기술 언어로 회로의 동작을 최초로 기술하는 반면 백엔드 설계는 다이 [6]상의 물리적 트랜지스터에 해당 동작을 매핑하는 프로세스입니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Thapliyal, Vimal. "Difference Between Frontend and Backend MVC – Joomlatuts". joomlatuts.net. Archived from the original on 2016-12-30. Retrieved 2016-12-30.
- ^ Gutierrez--Osuna, Ricardo. "L18: Speech synthesis (backend)" (PDF). tamu.edu. Texas A&M University. Retrieved 2016-12-29.
- ^ Bin Muhammad, Rashid. "Operating Systems Notes". www.personal.kent.edu. Kent State University. Retrieved 2016-12-30.
- ^ Wickramarachchi, Viduni (24 February 2021). "The BFF Pattern (Backend for Frontend): An Introduction". Bits and pieces. Retrieved 13 November 2021.
- ^ O'Dell, Mike. "Network Front-End Processors, Yet Again June 2009 Communications of the ACM". cacm.acm.org. Retrieved 2016-12-30.
- ^ "Front-End Design Online Documentation for Altium Products". techdocs.altium.com. Retrieved 2016-12-30.