Front-end는 화면개발에 보이는 부분을 HTML, CSS, Javascript을 이용하여, 사용자와 상호작용 하는 부분입니다.
Back-end는 로그인세션처리, Front-end에 필요한 리소스나 화면에 표시할 데이터 전송을 담당합니다.
* Front-end
기본: HTML, CSS, Javascript
ReactJS: 데이터 기반 화면 랜더링 프래임워크, Transcomplie을 통한 JSX을 Javascript로 변경함이 특징, 학습비용 큼
VueJS: 데이터 기반 화면 랜더링 프래임워크, Transcomplie을 통한 문법을 Javascript로 변경함이 특징, 학습비용 작음
AngularJS: 데이터 기반 화면 랜더링 프래임워크, Transcomplie을 통한 문법을 Javascript로 변경함이 특징, TypeScript 때문에 학습비용이 큼
jQuery: Javascript 보다 편하게 DOM 조작 가능한 라이브러리, 자주쓰이는 함수 제공, 최근 개발되는 웹사이트에는 사용되지 않지만 5년이상된 사이트 유지보수용으로는 쓰임
* Back-end, Front-end 통신방법
Ajax : 자바스크립트 비동기 통신 기본적으로는 문자열을 전송한다.
WebSocket : Ajax은 HTTP 단방향 인바운드 서버 통신에 주소 사용하는 반면, 아웃바운드 통신이 필요하거나 스트림처리, 연결지향 반복적 요청처리용으로 사용
* 통신시 사용되는 용어 및 데이터 포멧
URL: www 또는 패쇠망, DNS에서 고유한 이름 주소
Method(Get/Post/Put/Delete..): RestfulAPI 규칙에 따라 URL에는 리소스를 명세하고, 해당 리소스를 어떻게 할지에 대해 서술
JSON: Ajax에 body(Put/Post에서만 가능) 넣는 텍스트 형식 메터데이터
XML: Ajax에 body(Put/Post에서만 가능) 넣는 텍스트 형식 메터데이터
form-data: Ajax에 body(Put/Post에서만 가능) 넣는 텍스트 형식 메터데이터, HTML에 Summit에 해당
* Back-end
php: 매우 오래된 사이트(10년+) 외 사용안함
nodeJS: Front-end개발자가 Back-end까지 단일언어(JavaScript)로 개발 할 수 있는 매력, 모든 IO에 관한 비동기 처리를 기반으로 하는 점이 장점이자 단점(프론트 Ajax처럼 호출함)
Java: OOP 기반 컴파일 언어, 가상머신에 의한 GC 위임
Java - JSP: 웹서비스를 위한 Framework
Java - Spring: 최신 언어 트랜드를 반영한 아키택쳐 설계를 위한 Framework 이며, 그 중 HTTP Server(웹서비스) 기능을 제공
.net: MS계열 OOP 기반 컴파일 언어, Java와 매우 유사
.net ASP: JSP와 매우 유사, 동시대 언어
.net MVC: MVVC, MVC 모델 적용 Java Spring과 유사
python: 스크립트 언어이며 컴퓨터과학, 임베디드등 다양한 분야에 이용됨
* Database
SQL 이라는 언어로 데이터를 저장하고 조회할 수 있음
각 회사 또는 제품마다 DBA입장에서는 차이가 있지만 connectString을 제외하고
프로그래머 입장에서 CRUD는 비슷한편임
mySQL: 이전에 오픈소스였으나 현재 오라클에서 판매하는 DB
MSSQL: MS사 DB, 원도우 기반 서버에서 주로씀
Oracle: 유닉스/리눅스 기반 대형 서버에서 주로씀
기타 많은 DB들이 있으며, NoSQL 등장 이후, 이러한 종류를 RDBMS라고 부름
추천: 백엔드는 멀로 해도 상관없으나 굳이 추천하자면 nodeJS나 python을 추천함
풀스택개발자가 아닌 이상 프론트백엔드 다 할 필요는 없으나,
프론트개발자라고 하더라도 통신을 해야하고 종속성 패키지 설치를 위해 npm, yarn은 보통 설치하므로,
nodejs(일반적인 책에 간단한 예제는 nodejs을 많이 사용하는 추세)을 이용한 DB조회정도까지는 할줄 알면 크게 도움됨