Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- MPA
- 배열
- 파이팅
- 코딩
- 보조 스트림
- 메서드
- SSR
- ArrayList
- 상속
- Java
- 예외 처리
- node.js
- throws
- 변수
- 백엔드
- 인터페이스
- try-catch
- 인스턴스
- 문자 단위 스트림
- 자바
- 개발자
- 코린이
- exception
- 새벽공부
- 자료형
- 다형성
- 초보개발자
- FileInputStream
- 졸리다
- 바이트 단위 스트림
Archives
- Today
- Total
SHUSTORY
Frontend / Backend 본문
728x90
🦦 Frontend
- 사용자가 마주보는 인터페이스를 '프론트엔드'라고 한다.
- 사용자가 직접 상호작용하는 웹 서비스의 인터페이스를 구축하는 분야를 말한다.
- html, css, js 등의 기술을 활용하여 웹페이지를 실제로 구현한다.
- 사용자가 애플리케이션을 사용할 때 시각적으로 보기 좋은 UI를 만들어주며, 사용자 경험을 향상시킨다.
- 프론트엔드 개발자는 클라이언트 개발자라고도 한다.
- 백엔드 개발자들이 만들어 놓은 API 명세서를 확인한 후 html, css, js를 사용하여 일반적인 사용자가 볼 수 있도록 사용자인터페이스, 즉 UI를 개발한다.
- 개발 시 주로 사용되는 언어
- 웹 서비스
- HTML(Hyper Text Markup Language)
문서가 화면에 표시되는 형식을 나타내거나 데이터의 논리적인 구조를 명시하기 위한 규칙들을 정의한 마크업 언어- 🐚마크업 언어?
문서의 구조와 의미를 표현하는 언어로, 텍스트에 계층적 구조를 부여하고,
각 요소의 역할을 나타내는 데 사용된다.
- 🐚마크업 언어?
- CSS(Cascading Style Sheets)
HTML 콘텐츠를 크기, 색상, 위치 변경 등으로 꾸미는, 디자인 담당이다. - JS(JavaScript)
HTML과 CSS를 통해 만들어진 웹 페이지가 동작하도록 만들어준다.
- HTML(Hyper Text Markup Language)
- 앱 서비스
- 구글과 애플이라는 큰 회사에서 다른 운영체제로 경쟁하는데, 각각의 운영체제만을 위한 플랫폼이 있기 때문에, '네이티브 앱'이라고도 불린다.
- 안드로이드는 코틀린, ios는 스위프트라는 언어로 개발하게 되는데, 대부분의 서비스는 구글과 애플에 모두 올라가 있다.
- 몇몇 개발자가 하나의 서비스를 두 언어로 두 개의 앱을 개발함에 불편함을 느껴 만들어진 '크로스 플랫폼 개발 언어'를 통해 한 번에 두 플랫폼에 서비스를 제공할 수 있게 되었다. 대표적으로 리액트네이티브(JS기반, 리액트와 기본 개념은 유사), 플러터(dart 언어 기반)가 있다.
- 웹 서비스
- 필요 역량
- React, Vue, Angular 등 프론트엔드 프레임워크에 대한 경험과 지식이 필요하다.
- HTML, CSS, JS만으로도 기본적인 웹 서비스를 만들 수 있지만,
더 편리하게 개발할 수 있도록 라이브러리와 프레임워크를 사용한다.
- HTML, CSS, JS만으로도 기본적인 웹 서비스를 만들 수 있지만,
- HTML, CSS, JS 등의 웹 프론트엔드 기술에 대한 이해와 능력이 필요하다.
- React, Vue, Angular 등 프론트엔드 프레임워크에 대한 경험과 지식이 필요하다.
🦦 Backend
- 사용자가 직접 볼 수 없는 웹 서비스의 서버 측 로직을 개발하는 분야를 말한다.
- DB와 상호작용하고, 서버에서 실행되는 코드를 작성한다.
- 프론트엔드에 있는 사용자들이 취하는 행동들을 처리한다.
데이터를 저장하고 관리하며, 웹사이트에서 작동할 수 있게 해준다.
- 백엔드 개발자는 서버 개발자라고도 한다.
- 프론트엔드에서 사용할 수 있도록 JAVA, Python 등과 같은 서버측 언어를 사용하여 필요한 기능의 API를 개발하여 API 명세서와 함께 프론트엔드 개발자에게 제공한다.
- 즉 서버 개발자라고 해서 서버를 개발하는 것이 아니라, 서버 위에서 실행되는 어플리케이션을 개발하는 개발자를 말한다.
- 🐚서버 자체 개발이 아닌, 서버 어플리케이션 개발이라는 것이 무슨 의미일까?
서버 개발자는 사용자가 요청을 보낼 때 서버가 그 요청을 처리하고, 필요한 데이터를 반환하는 등의 기능을 개발한다.
이 때 서버 자체는 이미 구축된 물리적 장치 또는 클라우드 상의 가상 서버이다.
- 🐚서버 자체 개발이 아닌, 서버 어플리케이션 개발이라는 것이 무슨 의미일까?
- 개발 시 주로 사용되는 언어
- C++, Java, Python, PHP 등 다양한 언어를 사용해 백엔드 서버 구축이 가능하다.
- 해당 언어를 활용해 쉽게 서버를 만들게 해주는 라이브러리가 있다.
- JAVA - Spring
- JS - Node, Nest
- Python - Django, Flask
- 백엔드 언어는 동작 원리에 따라 장단점과 적합한 영역이 존재한다.
- 웹 개발 - JS
- 인공지능, 머신러닝 - Python
- 해당 언어를 활용해 쉽게 서버를 만들게 해주는 라이브러리가 있다.
- C++, Java, Python, PHP 등 다양한 언어를 사용해 백엔드 서버 구축이 가능하다.
- 필요 역량
- 서버와 DB를 다루는데 관심이 있어야 한다.
- Django, Spring, Flask 등의 백엔드 프레임워크에 대한 경험과 지식이 필요하다.
정리하자면..
- 프론트엔드는 요청하는 앞단의 영역, 백엔드는 요청에 응답하는 뒷단의 영역이라고 할 수 있다.
BE 개발자가 개발한 서버 측 코드는 API를 통해 FE 개발자가 작성한 클라이언트 측 코드와 상호작용한다. - 현업 개발자분의 말을 들어보니 최근 들어서 FE와 BE는 현업에서 큰 차이는 없고 DB에 직접적으로 접속하느냐 정도의 차이라고 생각하면 될 듯하다고 한다!