웹 개발 세계에서 백엔드 / 서버 측 프로그래머는 정확히 무엇을합니까? 나는 전체 개념을 실제로 이해하지 못한다고 생각합니다.
PHP로 HTML / CSS 레이아웃과 웹 사이트 디자인 및 약간의 SQL을 수행했습니다. 또한 소량의 JavaScript / JQuery를 수행했습니다.
그러나 스크립팅 언어 (Rails / Python / etc)와 같은 "백엔드"작업을 이해하지 못합니다. 그들과 정확히 무엇을합니까?
웹 개발 세계에서 백엔드 / 서버 측 프로그래머는 정확히 무엇을합니까? 나는 전체 개념을 실제로 이해하지 못한다고 생각합니다.
PHP로 HTML / CSS 레이아웃과 웹 사이트 디자인 및 약간의 SQL을 수행했습니다. 또한 소량의 JavaScript / JQuery를 수행했습니다.
그러나 스크립팅 언어 (Rails / Python / etc)와 같은 "백엔드"작업을 이해하지 못합니다. 그들과 정확히 무엇을합니까?
답변:
PHP를 사용했다면 서버 측 작업을 완료 한 것입니다!
평신도의 관점에서, 클라이언트 측 코드는 컴퓨터, 웹 브라우저에서 실행되고 서버 측 코드는 인터넷의 컴퓨터에서 실행되며 서버 측 계산 결과는 인터넷을 통해 인터넷으로 전송됩니다. 브라우저.
SQL 문을 실행하는 PHP 코드를 작성하면 원격 컴퓨터 (서버)에서 SQL 호출이 이루어지고 그 결과 (일반적으로 생성 된 HTML 형식)가 인터넷을 통해 브라우저로 전송됩니다.
반면에 JavaScript는 브라우저에서 실행됩니다. CSS도 마찬가지입니다.
자세한 내용은 클라이언트 측과 서버 측 프로그래밍의 차이점을 확인 하십시오.
기본 전제는 다음과 같습니다.
사용자는 자신의 입력을 제공하고 어떤 종류의 네트워크를 통해 전송 한 다음 서버는 입력에 따라 마술을 수행합니다.
기본적으로 모든 보안 및 유효성 검사가 서버 측에서 수행되기를 원합니다. 눈에 거슬리지 않는 양식 유효성 검사와 같이 클라이언트 쪽을 실행하는 기능이 있습니다 (여전히 서버 쪽의 유효성을 검사해야합니다!).
큰 질문 : 왜?
사용자는 자신의 컴퓨터에서 정보를 수정할 수 있습니다. 예를 들어 사용자가 게임을 '해킹'할 수 있도록 메모리 값을 수정하는 게임 트레이너를 참조하십시오. 컴퓨터, 물리적 구내에서 핵심 작업을 수행하는 경우 보안 검사를 조작 할 가능성이 크게 줄어 듭니다.
시스템의 클라이언트와 상호 작용하는 시스템을 설계 할 때 프런트 엔드를 설계합니다. 여기서 client라는 단어는 상당히 크지 만 기본적으로 외부 세계에 인터페이스를 제공 할 때 프런트 엔드에서 작업하고 있음을 의미합니다.
대부분의 웹 사이트는 프론트 엔드에 불과합니다. 즉, 외부 세계에 정보를 제공하며 대부분의 경우이 정보는 HTML 파일에 텍스트로 매우 간단하게 저장 될 수 있습니다.
서비스를 제공하고 프런트 엔드가 사용할 기능을 캡슐화해야 할 때 백엔드를 설계합니다. 이를 통해 일부 워크로드를 클라이언트 (프런트 엔드)에서 서버 (백 엔드)로 대체 할 수 있습니다. 시스템에 동시에 액세스 할 수있는 다른 클라이언트의 정보를 조정해야하는 경우에이를 수행합니다. 또는 동적 데이터를 수집하기 위해 중앙 데이터 저장소를 사용해야하거나 특정 보안 요구 사항이 필요한 경우. 이 목록은 결코 철저하지 않고 간단한 예일뿐입니다.
간단히 말해 프론트 엔드 (클라이언트)는 외부 세계에 정보를 제공 할 것입니다. 일반적으로 이들은 HTML이나 다른 방식으로 GUI를 통해 사람입니다.
백엔드는 프론트 엔드가 사용할 서비스를 중앙 집중화하는 수단을 제공합니다. 백엔드를 사용하는 것은 필수는 아니며 시스템에 복잡성을 추가하지만 구축하려는 시스템 고유의 복잡성을 더 잘 관리 할 수 있습니다.
예를 들어 Wiki 와 같은 서비스 를 프론트 엔드를 통해서만 제공하는 것이 가능 하지만 백엔드를 사용하여 데이터를 저장하고이를 프론트 엔드에 제공하는 것이보다 자연스러운 방식으로 해결 될 수 있다는 많은 제한이 있습니다.
제 생각에는 서버 측 작업 (이미 언급 한 것은 웹 사이트에 액세스하는 서버에서 실행되는 모든 것입니다)은 사이트에 실제 생활을 제공합니다. 대부분의 기능은 여전히 클라이언트 측 기술을 사용하여 달성 할 수 있지만 제 생각에 이것은 훨씬 복잡한 접근 방식이며 클라이언트가 클라이언트 측 코드에있는 모든 것에 액세스 할 수 있다는 점에서 훨씬 덜 안전합니다. PHP와 ASP는 일부 컴퓨팅 활동을 수행 한 후 브라우저에 웹 페이지 컨텐츠를 제공하기 위해 거의 독점적으로 사용되는 하이브리드 프로그래밍 언어입니다. 파이썬, 루비, 자바 또는 다른 프로그래밍 언어로 작업을 시작하면 프로세스가 끝날 때 결과 정보를 클라이언트에 보내기 위해 더 많은 기능과 기능이 있지만 약간 더 많은 작업이 필요합니다.
일반적인 웹 앱 / 웹 사이트에는 양면이 있습니다.
앞면-UI / 레이아웃 / 색상 / 글꼴 등의 컨트롤
뒷면-데이터베이스에서 데이터 조작 또는 파일 조작을 처리하고, 많은 경우 논리를 수행합니다. mySQL / PostreSQL / MS SQL Server와 같은 소프트웨어.
뒷면은 엑셀 파일 생성, 보고서 생성, 계산, 다른 서버에서 데이터 가져 오기 등 많은 작업을 수행 할 수 있기 때문에 훨씬 강력합니다.
그런 다음 해당 데이터를 준비하고 표시합니다 (전면 설정 방법).
어느 쪽이든 잘하는 것은 많은 노력, 연습, 학습 및 자기 훈련입니다.
당신이 최고가되기를 원한다면, 연습을하고 배우기를 멈추지 말고, 모든 답을 아는 것으로 가정하지 마십시오.