>  기사  >  프로그래머가 말하는 프런트엔드, 백엔드, 풀스택이란 무엇입니까?

프로그래머가 말하는 프런트엔드, 백엔드, 풀스택이란 무엇입니까?

藏色散人
藏色散人앞으로
2021-07-30 11:58:413847검색

프론트엔드 프로그래머, 백엔드 프로그래머, 풀스택 프로그래머란 무엇인가요? 일자리를 찾을 때 프런트엔드 또는 백엔드를 선택해야 합니까? 미국에는 왜 그렇게 많은 전체 사이트 프로그래머가 있습니까? 이 기사에서는 이러한 질문에 대해 하나씩 답변하여 이러한 개념을 명확하게 이해할 수 있도록 할 것입니다!

원본주소 : https://www.bilibili.com/video/BV1DV411B7v5/

먼저 프론트엔드 개발이란 무엇일까요?

간단히 말해서, 프론트엔드 개발은 웹페이지의 "콘텐츠 디스플레이"와 사용자와의 상호작용을 개발하는 것입니다.

여기서 "콘텐츠 디스플레이"란 웹페이지에서 볼 수 있는 것을 말합니다. 사진, 텍스트, 비디오, 숫자 및 기타 정보.

그래서 사용자와의 상호작용은 사용자가 페이지에서 버튼을 클릭하고, 텍스트를 입력하고, 기타 작업을 수행하여 웹사이트에 데이터 입력을 제공하고 프런트 엔드가 사용자 입력에 응답하는 것을 의미합니다.

예를 들어 페이지의 콘텐츠를 업데이트하는 경우, 더 구체적인 예를 들자면 내 글 아래에 댓글을 달면 페이지가 해당 댓글에 응답합니다. 예를 들어 백그라운드 데이터베이스에 있는 내 콘텐츠를 업데이트합니다. 댓글 수.

그리고 아래와 같이 해당 기사에 대한 댓글 수를 페이지에 표시합니다.

프로그래머가 말하는 프런트엔드, 백엔드, 풀스택이란 무엇입니까?

프론트엔드 개발에 사용되는 기본 기술은 html, css , javascript이며, 이는 htmlcss javascript,分别用来控制网页里面的内容视觉效果用户交互

下面分别简单介绍一下。

html 并不是一门编程语言,他是一种用来定义结构化数据的标记语言,你在浏览器上看到的网页,其实就对应一个 html 文件,这个文件里装的就是 html 代码,而浏览器的职责之一,就是通过你输入的网址,从网站上下载对应的 html 代码,并且把代码渲染成你肉眼看到的样子。

那么,前端工程师的工作内容之一,就是编写 html代码,或者使用一些技术来为页面动态的生成 html 代码,任何一个网页,你都可以通过浏览器的开发者工具,看到他对应的 html 代码。

如果你仔细查看一段 html 代码,你会发现他其实就是由一堆各种类型的尖括号标签组合嵌套而成的,比如某视频在 youtube 页面上,视频的标题,对应于代码里面一个title类型的标签,那视频的播放器就对应于一个video类型的标签;其头像图片,对应于一个嵌套在超链接标签里的 image 标签;而评论里的文字又对应于一个 yt formatted-string 类型的标签,这里的 yt 应该只带的是youtube,那么这个标签,应该就是 youtube 自定义的标签,然后 css 的代码,则是用来指定每个 html 的标签,以什么样的外观和风格来展示,比如长宽、位置、颜色居中还是分散字体显示属性等等。

css的代码也是被浏览器读入,并且渲染成你肉眼所看到的效果,有时候pm会想把页面里面一个按钮的大小和颜色进行微调,而这个微调就是由前端工程师去改动;这个按钮对应的 css代码来实现的,前端开发中真正编程的部分是javascript,网页如何与用户交互,如何与后端交互,都是通过 javascript 的代码实现的,就像html代码和 css代码是被浏览器执行一样,页面里面的 javascript 代码也是交给浏览器来执行。

这里插一句,javascrip与java并没有什么关系,两者之间的特性差的很远,这就好比是印度跟印度尼西亚差的很远,熊猫跟小熊猫差的很远,雷峰和雷峰塔差的很远。

说回正题,大家在写程序的时候,不管用什么语言,通常都不会重复的造轮子,而是会调用该语言现成的 library来实现一些常见的功能,让开发过程更加高效。

对于前端javascript的开发,react是目前比较流行的library,也是我在工作中,做前端的时候会用到的。react这个library,不仅可以用来实现与用户的交互逻辑和事件响应,事实上页面上几乎全部的 html 代码,都可以通过 react来生成,这种在浏览器端生成 html代码进行渲染的方式,叫做 client-side rendering,与之相反的就是 service-side rendering콘텐츠 제어에 사용됩니다. 각각의 웹 페이지

, 🎜시각 효과🎜 및 🎜사용자 상호 작용🎜. 🎜🎜다음은 각각에 대한 간략한 소개입니다. 🎜🎜html은 프로그래밍 언어가 아니며, 구조화된 데이터를 정의하는 데 사용되는 마크업 언어입니다. 브라우저에 표시되는 웹 페이지는 실제로 html 파일에 해당하며, 이 파일에는 브라우저의 책임 중 하나가 포함되어 있습니다. 입력한 URL을 통해 해당 웹사이트에서 해당 HTML 코드를 다운로드하고, 육안으로 보이는 그대로 코드를 렌더링하는 것입니다. 🎜🎜따라서 프런트 엔드 엔지니어의 작업 중 하나는 HTML 코드를 작성하거나 일부 기술을 사용하여 페이지에 대한 HTML 코드를 동적으로 생성하는 것입니다. 모든 웹 페이지에 대해 브라우저의 개발자 도구를 통해 해당 코드를 볼 수 있습니다. HTML 코드. 🎜🎜HTML 코드를 주의 깊게 살펴보면 실제로는 다양한 유형의 꺾쇠 괄호 태그가 중첩되어 구성되어 있음을 알 수 있습니다. 예를 들어 YouTube 페이지에서 동영상 제목은 제목 유형 태그인 경우, 동영상 플레이어는 video 유형 태그에 해당하며, 아바타 이미지는 image 태그에 해당합니다. 주석의 텍스트는 yt formatted-string 유형 태그에 해당합니다. 여기서 yt는 YouTube만 전달해야 하므로 이 태그는 정의된 태그와 CSS 코드를 사용하여 지정해야 합니다. 길이와 너비, 위치, 색상 중심 또는 분산 글꼴 표시 속성 등과 같이 표시할 각 html 태그의 모양과 스타일. 🎜🎜CSS 코드는 브라우저에서도 판독되어 육안으로 볼 수 있는 효과로 렌더링됩니다. 때때로 PM은 페이지에 있는 버튼의 크기와 색상을 미세 조정하고 싶어하며 이러한 미세 조정은 다음에 의해 변경됩니다. 프론트엔드 엔지니어; 이 버튼은 이에 상응하는 CSS 코드로 구현됩니다. 프론트엔드 개발의 실제 프로그래밍 부분은 자바스크립트입니다. 웹페이지가 사용자와 상호작용하는 방식과 백엔드와 상호작용하는 방식은 모두 자바스크립트를 통해 구현됩니다. 코드는 HTML 코드와 CSS 코드와 마찬가지로 브라우저에서도 동일하게 실행되며, 페이지에 있는 자바스크립트 코드도 브라우저에서 실행됩니다. 🎜🎜여기에 문장을 넣으세요, javascript는 java와 아무 관련이 없습니다. 둘의 특성은 매우 다릅니다. 인도와 같습니다. 인도네시아와는 많이 다르게 판다는 붉은 판다와 거리가 멀고, 레이펑은 레이펑탑과 거리가 멀다. 🎜🎜주제로 돌아가서, 사람들은 어떤 언어를 사용하든 프로그램을 작성할 때 일반적으로 바퀴를 다시 만들지 않습니다. 대신에 그들은 언어의 기성 라이브러리를 호출하여 몇 가지 공통 기능을 구현합니다. 개발 프로세스가 더 쉬워졌습니다. 🎜🎜프론트엔드 JavaScript 개발에서는 react가 현재 인기 있는 라이브러리이고, 제가 프론트엔드 작업을 할 때도 사용하는 라이브러리입니다. React 라이브러리는 사용자와의 상호 작용 논리 및 이벤트 응답을 구현하는 데 사용할 수 있을 뿐만 아니라 실제로 페이지의 거의 모든 HTML 코드를 브라우저 측에서 렌더링하기 위한 HTML 코드를 생성하는 방법을 라고 합니다. >클라이언트 측 렌더링, 그 반대는 페이지의 전체 HTML 코드인 서비스 측 렌더링입니다. 이는 모두 웹사이트의 프런트 엔드 서버에 의해 생성됩니다. 그런 다음 브라우저로 전송됩니다. 🎜

여기서 프론트엔드 서버가 언급되었습니다. 그런데 프론트엔드 서버의 로직은 서버의 동작이 준수되는 한 java, javascript, php 또는 심지어 Scheme과 같은 프로그래밍 언어를 통해 구현될 수 있습니다. http 프로토콜을 사용하면 클라이언트 측 렌더링실버 측 렌더링 모두 장단점이 있습니다. 따라서 프로젝트 초기 단계에서 웹 페이지를 개발할 때는 실제 상황에 따라 가장 적절한 페이지 렌더링 방법을 선택해야 합니다. ;client-side renderingsilver-side rendering两种方式各有优缺点,因此前段工程是在开发网页的时候,需要结合实际情况,选择最合适的页面渲染方式;

除了 react,另外一种比较流行的 javascript library就是vue,在国内用的比较多,如果你去查看 b 站的html代码,你会发现 b 站的前端也用到了vue。

以上介绍的这些,就是前端开发的一些常规技术,html、浏览器和前端服务器的工作原理,一般会在学校里面的《计算机网络》课里面介绍,css、javascript、react就主要靠自学了。

 javascript和react学习课程感兴趣的可以去看《javascript高级教程》哦!

讲完了前端,现在来讲讲后端。

什么是后端开发呢?

相当一部分的后端开发工作,就是开发数据访问服务,使得前端可以通过调用后端的服务,来对数据进行增删查改,也就是大家经常听到的 curd,从而实现前端对用户的请求响应。

比如你在一个大型网站注册的时候,这个网站的前端就会调用他的后端,把你的用户信息写入数据库。一个后端服务其实不局限于只被前端调用,他还可以被 mobile app 调用,还可以被其他的后端服务调用。

类比一下,前端往往需要通过调用后端服务,来完成对用户的请求响应,而后端服务往往需要通过查询数据库。

来完成对前端请求的响应,从这个类比你可以看出,前端和后端的共性,都是通过调用一个比自己靠后的服务,来对前方客户的请求进行响应,后端工程师的工作范畴很广,几个比较常见的就是,设计后端服务的api,设计后端服务的架构图,设计后端服务的数据库且代码实现后端服务的业务逻辑,同时你还需要保证你设计的后端服务,highly available,也就是访问量很大的时候仍然不宕机,并且对客户请求的响应时间很短,或者说吞吐量高,单位时间内能处理的请求数量多。

如果要从头搭建一个新的后端服务,那么整个过程需要进行大量的系统设计,也就是后端工程师面试的时候,会考到了System Design,做System Design非常考察平时知识的积累。

那么后端工程师平时一般需要与哪些技术和工具打交道呢?

首先就是后端服务器了,和前端服务器一样,后端服务器也可以由几乎任何一种编程语言实现,只要能把正确的数据,返回给调用者就可以了。

主流的编程语言,也有各自流行的 Web Framework,也就是现成的轮子,来帮助大家站在框架的肩膀上,快速的实现一个后端服务,比如基于 PHP的 Web Framework有thinkphplaravel(插一句“PHP是世界上最好的语言”),基于 javascript 有 express,基于 java 的 Web Framework有Spring BootDrop wizard,以及基于python有flask这几个Web Framework,每一个都有大厂在使用,不同的公司具体选择哪种框架,一定程度上,是看创始的程序员们最喜欢哪种语言,哪种框架用的最6,还有一些后端服务的框架,可以支持你用多种编程语言来开发,而不是绑在一门特定的语言上。

说了这么多的语言和框架,如果你想去某个公司做后端开发,一定需要对他们使用的语言和框架很熟练吗?

一般来讲不会,我找工作的时候看到岗位描述,里面有我不会的语言和框架,也无所谓,照样投,对公司来说你会其中一部分就够了,很多东西都是在工作里面学的,而且事实上,两周内上手一门新的编程语言,是一名职业程序员的基本素养,除了开发和维护后端服务器,后端工程师还会花大量的时间,在数据库上,不管是为你的后端服务创建数据库,还是为数据库的性能调优或者是分析里面的数据。

目前最常用到的数据库是关系型数据库,比如在工业界被广泛使用的MySQLPostgreSQL

React 외에도 중국에서 널리 사용되는 또 다른 인기 있는 자바스크립트 라이브러리는 vue입니다. 스테이션 b의 코드를 사용하면 스테이션 b의 프런트 엔드에서도 이를 사용하는 것을 확인할 수 있습니다. vue에 도착했습니다. 🎜🎜위 내용은 HTML, 브라우저 및 프런트엔드 서버의 작동 원리를 주로 학교의 "컴퓨터 네트워크" 수업에서 소개하는 몇 가지 일반적인 기술입니다. JavaScript 및 React. . 🎜🎜 자바스크립트 및 리액트 학습 과정에 관심이 있으시면 "javascript 고급 튜토리얼을 방문해 보세요. "아! 🎜🎜프론트엔드에 대해 이야기한 후 백엔드에 대해 이야기해보겠습니다. 🎜🎜백엔드 개발이란 무엇인가요? 🎜🎜백엔드 개발 작업의 상당 부분은 데이터 접근 서비스를 개발하는 것으로, 프런트엔드에서 커드인 백엔드 서비스를 호출하여 데이터를 추가, 삭제, 확인, 수정할 수 있도록 하는 것입니다. 프런트엔드 사용자의 요청 응답을 실현하기 위해 모두가 자주 듣는 내용입니다. 🎜🎜예를 들어, 대규모 웹사이트에 등록하면 웹사이트의 프런트 엔드에서 백엔드를 호출하여 사용자 정보를 데이터베이스에 기록합니다. 백엔드 서비스는 프런트 엔드에서만 호출되는 것으로 제한되지 않으며 모바일 앱 및 기타 백엔드 서비스에서도 호출할 수 있습니다. 🎜🎜유추하자면 프런트 엔드는 사용자 요청에 대한 응답을 완료하기 위해 백엔드 서비스를 호출해야 하는 경우가 많고, 백엔드 서비스는 데이터베이스를 쿼리해야 하는 경우가 많습니다. 🎜🎜프런트엔드 요청에 대한 응답을 완료하려면 이 비유를 통해 프런트엔드와 백엔드의 공통점은 뒤에 있는 서비스를 호출하여 프런트엔드 고객의 요청에 응답한다는 것을 알 수 있습니다. 백엔드 엔지니어의 작업 범위는 매우 광범위합니다. 보다 일반적인 작업으로는 백엔드 서비스의 API 설계, 백엔드 서비스의 아키텍처 다이어그램 설계, 데이터베이스 설계 등이 있습니다. 백엔드 서비스 및 백엔드 서비스의 비즈니스 로직을 구현하는 코드와 동시에 고가용성, 즉 백엔드 서비스를 설계해야 합니다. 트래픽이 매우 많고, 고객 요청에 대한 응답 시간이 매우 짧거나, 처리량이 높고, 요청을 단위 시간당 처리할 수 있는 경우에도 다운되지 않습니다. 🎜🎜새로운 백엔드 서비스를 처음부터 구축하려면 전체 프로세스에 많은 시스템 설계가 필요합니다. 즉, 백엔드 엔지니어가 인터뷰할 때 시스템 설계 테스트를 치르게 됩니다. 일상적인 지식의 축적을 테스트하는 것이 중요합니다. 🎜🎜그렇다면 백엔드 엔지니어가 일반적으로 처리해야 하는 기술과 도구는 무엇입니까? 🎜🎜첫 번째는 백엔드 서버입니다. 프런트엔드 서버와 마찬가지로 백엔드 서버도 호출자에게 올바른 데이터를 반환할 수 있는 한 거의 모든 프로그래밍 언어로 구현할 수 있습니다. 🎜🎜주류 프로그래밍 언어에는 자체적으로 인기 있는 웹 프레임워크도 있는데, 이는 모든 사람이 프레임워크의 어깨에 서서 백엔드 서비스를 빠르게 구현할 수 있도록 도와주는 기성품 바퀴입니다. 예를 들어, PHP 기반 웹 프레임워크는 다음과 같습니다. thinkphp 및 <code>laravel("PHP는 세계에서 가장 인기 있는 좋은 언어입니다"), javascript 기반에는 express가 있고, java 기반의 웹 프레임워크에는 Spring Boot가 포함되어 있습니다. Drop Wizard 및 Java Python을 기반으로 하는 flask와 같은 여러 웹 프레임워크가 있으며, 각 프레임워크는 주요 제조업체에서 사용합니다. 어떤 프레임워크를 선택하느냐에 따라 어느 정도 달라집니다. 특정 언어에 얽매이지 않고 여러 프로그래밍 언어로 개발할 수 있도록 지원하는 백엔드 서비스 프레임워크도 있습니다. 🎜🎜 이렇게 많은 언어와 프레임워크가 있다고 했는데 특정 회사에서 백엔드 개발을 하려고 한다면 그 회사에서 사용하는 언어와 프레임워크에 능숙해야 합니까? 🎜🎜 일반적으로 일자리를 찾을 때 직무 설명을 보았는데, 거기에는 내가 모르는 언어와 프레임워크가 포함되어 있어서 상관없었고, 그냥 회사에 지원했습니다. , 그 중 일부를 아는 것만으로도 충분합니다. 직장에서 배우는 것은 사실 2주 안에 새로운 프로그래밍 언어를 배우는 것이 전문 프로그래머의 기본 자질입니다. 서버, 백엔드 엔지니어는 백엔드 서비스를 위한 데이터베이스 생성, 데이터베이스 성능 조정 또는 그 안의 데이터 분석 등 데이터베이스에 많은 시간을 소비합니다. 🎜🎜현재 가장 일반적으로 사용되는 데이터베이스는 업계에서 널리 사용되는 MySQLPostgreSQL과 같은 관계형 데이터베이스입니다. 🎜

관계형 데이터베이스를 설계하는 방법, SQL 쿼리를 사용하여 데이터에 액세스하는 방법, 인덱스를 사용하여 데이터 쿼리를 가속화하는 방법 이러한 지식 포인트는 학교 데이터베이스 과정에서도 소개되지만 학교 데이터베이스 과정에서는 거의 소개되지 않습니다. 그러나 최근에는 비관계형 데이터베이스가 점점 더 많이 사용되고 있는데, 이는 모두가 흔히 No-SQL 데이터베이스라고 부르는 것입니다.

예를 들어, LSM 트리 기반의 LevelDB와 같은 JSON 문서 기반의 MongoDB는 관계형 데이터베이스보다 더 나을 수 있습니다. MongoDB,比如基于LSM treeLevelDB,这些数据库在某些特定的情况下,可能会比关系型数据库更适合你的业务需求,

大家一般也是在工作中去学习他的原理和特性,数据库往往是一个后端系统里面的性能瓶颈,也就是最慢的一环,因此后端工程师在进行系统设计的时候,会用很多办法来使得后端的性能,比如响应的时间,尽量的少被数据库拖后腿,比如使用MemCached这种缓存系统,来加速读取数据的速度,比如用Kafaka把数据写入异步化,提升后端写数据的性能,后端开发就大致介绍到这里。

后端开发里的其他重要环节,比如性能监视,比如 DevOps

모든 사람은 일반적으로 직장에서 그 원리와 특성을 학습합니다. 데이터베이스는 종종 가장 느린 링크인 백엔드 시스템의 성능 병목 현상이므로 백엔드 엔지니어는 시스템을 설계할 때 다양한 방법을 사용합니다. 예를 들어 Kafaka를 사용하여 데이터를 저장하는 등 데이터 읽기 속도를 높이기 위해 MemCached와 같은 캐싱 시스템을 사용하는 등 응답 시간과 같은 백엔드 성능을 향상시키는 데 사용됩니다. . 백엔드 데이터 쓰기 성능을 향상시키기 위해 비동기적으로 작성합니다. 이것은 백엔드 개발에 대한 대략적인 소개입니다.

DevOps 와 같은 성능 모니터링과 같은 백엔드 개발의 다른 중요한 측면은 여기서 건너뜁니다! 풀 스택

에 대해 이야기해 보겠습니다.

풀 스택은 모든 작업을 수행하는 것을 의미합니다. 여러분은 완전하고 작동하는 웹 앱을 스스로 구축하고 배포할 수 있어야 하며, 프런트엔드와 백엔드를 독립적으로 작성할 수 있어야 합니다. 최종 코드는 서버와 디자인 데이터베이스를 구성할 수 있습니다.

일을 시작한 이후로 저는 프론트엔드와 백엔드를 모두 해왔습니다. 제 시간의 약 80%는 백엔드에 소비됩니다. 나, 프론트엔드와 백엔드 중 어느 전공이 더 나은 발전 전망을 가지고 있습니까? 어느 전공이 입학하기 더 쉬운가요, 아니면 어느 전공이 여자에게 더 적합한가요? 여기서 저는 모든 사람들에게 "

처음부터 프로그래밍을 배우기 시작해야 하는 곳은 어디입니까?"라는 기사를 읽어볼 것을 권장합니다. 2021년 학습에 적합한 추천 프로그래밍 언어

프론트엔드와 백엔드 선택의 차이는 사용하는 기술과 고려하는 측면에만 있고, 프론트엔드는 주로 사용자 경험을 고려합니다. 최종적으로는 기본 비즈니스 로직, 플랫폼 안정성 및 성능을 주로 고려합니다. 사용자가 볼 수 있는 부분을 좋아하는지, 아니면 사용자가 볼 수 없는 부분을 고려하는지에 따라 다릅니다.

많은 사람들이 여자가 미적 감각이 더 좋고 프런트 엔드 작업에 적합하다고 생각하지만 회사에서는 모든 것이 라이브러리의 기존 구성 요소에서 직접 호출됩니다. 좋아요와 콘텐츠 정렬은 제가 결정하는 것이 아니라 PM과 UI 디자이너가 결정하는 것입니다. 제 미학은 확실히 디자이너만큼 전문적이지 않습니다.

마지막으로, 특정 방향을 선택하더라도 실제로 다른 사람들이 직장에서 무엇을 하는지, 자신이 좋아하는 것과 하고 싶은 것이 무엇인지 알게 될 것입니다. 프론트엔드나 백엔드로 전환하고 싶다면 회사를 살펴보면 됩니다. 그룹에서 기회가 있으면 스스로 공부하고 다른 기회를 찾을 수도 있습니다. 이전 직장 경험은 헛되지 않으며 회사는 항상 더 많은 기술을 가진 직원을 좋아합니다! 🎜🎜풀 스택 프로그래머에게는 더 많은 직위가 있습니다. 이는 기술이 더 포괄적이기 때문일 수 있습니다. 구직자의 경우 수년간의 업무 경험을 가진 사람을 고용하는 데는 한 번의 급여가 필요합니다. 채용될 가능성이 높기 때문에 다들 기본적으로 풀스택 프로그래머를 선택하게 되고, 일을 한 후에는 개인의 관심분야와 전문 분야를 바탕으로 천천히 메인 프론트엔드, 메인 백엔드 풀사이트나 관리직으로 발전하게 됩니다. . 🎜

위 내용은 프로그래머가 말하는 프런트엔드, 백엔드, 풀스택이란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 bilibili에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제