일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- SQL
- html tag
- 자바
- 상속
- 부트캠프
- 깃허브
- 파이썬
- HashSet
- stringbuffer
- git
- 알고리즘
- 부스트코스
- CRUD
- @NoArgsConstructor
- 프로그래머스
- HTML
- DTO
- @builder
- @AllArgsConstructor
- java
- 에러
- lv1
- entity
- github
- Python
- 기본생성자
- 캡슐화
- 브랜치
- Codeup
- 코드업
- Today
- Total
잉?
[부스트코스] Web개발의 이해 - FE/BE 본문
이 글은 부스트코스 강의를 정리한 글 입니다.
01. 저급언어 / 고급언어
[저급언어]
▷ 기계 중심의 언어
▷ 2진수(0, 1)로 이뤄진 값으로 작성하는 프로그래밍 언어를 기계어(Machine Language)
▷ 숫자로만 되어있기에 유지보수가 어려움(프로그래밍도 어려움)
→ 결국 숫자와 1:1로 대응하는 기호를 만듦(어셈블리어;Assembly Language)
→ 이 어셈블리어를 기계가 알아듣게 다시 숫자로 바꾸는 도구를 컴파일러(Compiler)
▶ 아주 특수한 경우 빼고 사용할 일이 없음
[고급언어]
▷ 사람 중심의 언어
▷ 사람이 이해하기 쉬운 문법으로 프로그래밍 할 수 있음
02. HTTP 프로토콜의 이해
▷ HTTP(Hypertext Transfer Protocol)
▷ 서버와 클라이언트가 인터넷상에서 데이터를 주고 받기 위한 프로토콜
▷ 클라이언트가 먼저 서버에 요청 → 서버가 클라이언트에 응답
▷ 무상태(stateless)프로토콜
-> 요청을 하고 서버가 응답을 한뒤 바로 다른 요청이 있다해도 일단 끊는다.
<장점>
- 불특정 다수를 대상으로 하는 서비스에 적함
- stateless는 계속 연결을 하고 있는 것이 아니라 응답을 하면 끊기 때문에 최대 연결수보다 훨씬 많은 요청과 응답을 처리할 수 있음
<단점>
- 바로 끊기 때문에 클라이언트의 이전 상황을 알 수 없음
- 이러한 단점 때문에 정보 유지를 위한 Cookie와 같은 기술이 등장
03. URL (Uniform Resource Locator)
▷ 인터넷 상의 위치
▷ 특정 파일에 접근하기 위한 경로(주소)
http:// | www.dahlia15.tistory.com/ | docs/ | index.html |
접근 프로토콜 | IP주소 또는 도메인 이름 | 문서의 경로 | 문서이름 |
04. 프론트엔드(FE) / 백엔드(BE)
[프론트엔드]
▷ 사용자에게 웹을 통해 다양한 콘텐츠(문서, 동영상, 사진)를 제공
▷ 사용자 요청에 반응해서 동작
<역할>
- 웹 콘텐츠를 잘 보여주기 위해 구조를 만듦 - HTML
- 적절한 배치와 보기좋은 디자인 제공 - CSS(스타일)
- 언어(HTML, CSS, JavaScript) - JavaScript(동적인 부분)
[백엔드]
▷ 프론트엔드(Client side)가 클라이언트 입장이라면 백엔드(Server Side)는 서버 입장
▷ 클라이언트가 요청한 문제를 해결해야 함
- 프로그래밍 언어
- 웹의 동작 원리
- 알고리즘, 자료구조 등의 지식
- 운영체제, 네트워크 등의 이해
- 프레임워크에 대한 이해(Spring)
- DBMS에 대한 이해와 사용법(MYSQL, Oracle)
05. 웹서버
▷ 소프트웨어
▷ 클라이언트가 요청하는 문서나 리소스(자원)를 전달
▷ Apache, Nginx, Microsoft, Google 등이 있음
06. WAS(Web Application Server)
WAS를 사용하기까지 간략히 살펴보자면
- 클라이언트/서버 구조
- 클라이언트는 서비스를 요청하고 서버는 서비스를 응답
- DBMS
- 다수의 사용자가 데이터베이스 내의 데이터에 접근할 수 있도록 해주는 소프트웨어
- 보통 서버형태로 서비스 제공
- 클라이언트의 로직이 많아지고, 클라이언트 크기가 커지는 문제점
- 대부분의 로직이 클라이언트에 포함되어 배포되기 때문에 보안이 좋지 않았음
- 미들웨어(MiddleWare)
- 클라이언트와 DBMS 사이에 다른 서버(미들웨어)를 두는 방식
- 클라이언트에 로직이 많을 경우 미들웨어에서 로직을 동작 함으로써 클라이언트는 입력과 출력만 담당
- 프로그램 로직이 변경되어도 중앙의 미들웨어만 변경하면 됨
- WAS(Web Application Server)
- 최초의 웹 브라우저는 정적인 데이터만 보여줌 → 웹이 널리 사용되면서 사용자들의 요구사항이 커짐
- 동적인 기능을 요구(데이터입력과 조회 등)
- 그 후 프로그래밍 기능이 들어감(CGI)
- 복잡한 프로그래밍을 요구(DBMS가 포함됨)
- 미들웨어가 필요하게 됨 이것을 WAS라고 함
<기능>
- 프로그램 실행 환경과 데이터베이스 접속 기능 제공
- 여러개의 트랜잭션(논리적인 작업 단위) 관리
- 업무를 처리하는 비지니스 로직 수행
<웹 서버 vs WAS>
- 웹 서버는 정적인 콘텐츠를 웹 브라우저에 전송
- 웹 서버가 WAS에 비해 간단한 구조
- WAS는 프로그램의 동적인 결과를 웹 브라우저에 전송
- WAS는 웹 서버기능이 내장되어 있음(점차 발전하면서 WAS만으로도 정적, 동적인 컨텐츠 제공 가능)
- 규모가 커질수록 웹 서버와 WAS를 분리
- 장애극복기능(failover)의 목적 때문에 웹서버가 WAS 앞단에서 동작하는 경우가 많음
'웹_WEB' 카테고리의 다른 글
Node.js란 무엇인가? (0) | 2020.06.07 |
---|