<목차>
ㅇ 웹의 4가지 요소
ㅇ 웹의 흐름
ㅇ WAS
ㅇ Multi Thread (멀티 쓰레드)
ㅇ Servlet
ㅇ 3주 가량 JSP&Servlet
1차 프로젝트 진행을 하면 백엔드쪽은 이걸로 할 거야
자바에서 했던 개념들 많이 나와
상속, 인터페이스, 오버라이딩, 업캐스팅
선택자 - 크롤링에서도 중요해
ㅇ 웹의 4가지 요소
- 클라이언트 / 서버 / http / html -- 맞나??
- 클라이언트가 요청(request)하면 서버에서 응답(response)을 해줘
- 이게 거의 전부라고 할 만큼 중요 ! 기본 베이스 !
- http : 데이터가 통신하는 규약
- 응답을 할 때 - html 문서로 응답한다.
ㅇ 웹의 흐름
- 서버에서는 그에 맞는 html문서로 응답
- 사용자들은 웹 브라우저를 통해 보게 돼
(문서 자체를 그대로 보여주게 된다면 일반 사용자들은 이해하기 어렵겠지)
ㅇ 동적/ 정적 페이지
동적 페이지 다이나믹웹/ 정적 페이지 스태틱웹
- 정적 페이지
- 위키백과에서 자바 검색하면 우리 반 모두가 똑같은 페이지를 보게 돼
- 동적 페이지
- 유투브를 열면 모두 다른 페이지가 뜰 거야
- 메일함. 사용자 로그인 정보에 따라 다른 페이지 떠
- 사용자가 어떤 걸 선택 하느냐에 따라 다른 페이지가 뜨는 것
ㅇ 웹 페이지 만들 때 필요한 것
- html, css, javascript 이렇게 3개 모두 있어야 지금 보고 있는 웹페이지가 만들어져
- html 만 가지고는 정적인 페이지밖에 못 만들어
- html은 틀, 뼈대, 정보 표현을 위한 것들을 모아놓은
- 헤드와 바디로 나누어져 있고
- 정보는 바디태그 안에. 바디태그에 적은 것들만 노출이 돼
- 헤드 안에는 부가적인 정보들 (css는 여기 들어가)
ㅇ 서버 프로그램의 필요성
- JSP & Servlet이 없었을 때는 옛날에는 html로 유툽 페이지를 만든다면
배치가 달라질 때마다 일일이 다 만들었었어야 해
- JSP & Servlet를 사용하면 유툽 영상 제목 이런 것들은 데이터베이스와 연동해서 디비에서 정보를 빼와서 연결해주는 것 가능해져
ㅇ WAS (Web Application Server) 웹 어플리케이션 서버
- 옛날에는 클라이언트 서버만 있으면 되고 html로 응답
- 기존에 있던 서버는 결과페이지 하나를 보여주는 친구
- 서버까지만 있으면 정적인 페이지밖에 못 만들어
- WAS는 DB에 접근해서 비즈니스 로직들을 구현할 수 있는 프로그램들을 담당
- 서버와 was를 모두 이용해서 동적인 페이지 만들 수 있어
ㅇ 로그인하는 상황을 예로
- 1 클라이언트가 아이디 패스워드 입력하면
-> 2 was에 로그인을 담당하는 프로그램 있어
-> 3 이걸 DB에 있는 정보와 일치하는지 확인
-> 4 일치하면 다시 프로그램으로 와서 일치한다는 결과값을 보여주고
-> 5 그거에 응답하는 html 문서를 만들어 내고
-> 6 그걸 다시 서버로 보내고
-> 7 서버가 클라이언트에게 html로 응답
ㅇ 3 Tier
- 프레젠테이션 티어
- 클라이언트에게 응답할 html문서들을 담아둠
- 보여지는 부분
- 웹디자이너
- 프론트엔드
- 어플리케이션 티어
- 디비와 연동해서 비즈니스 로직을 처리하는
- 소프트웨어 엔지니어
- 백엔드
- 데이터 티어
- 큰 회사일수록 이런 방식으로 업무가 나뉘어
- 업무 효율로는 3분야로 나눠서 진행하는 게 좋아
- 프로젝트에서도 이렇게 3가지로 나눠서 진행하면 좋을 거야
(웹 프로그래밍 언어, 서버단에서 사용하는 다양한 언어 중)
ㅇ JSP/Servlet을 사용하는 이유는?
- 1 우리가 자바를 배웠기 때문에
- 2 과부화를 줄일 수 있는 방식으로 작동
ㅇ Multi Thread (멀티 쓰레드)
ㅇ 기존 서버 프로그램 (새로운 유저가 접속할 때)
- CGI는 규약을 의미
- A라는 사람이 로그인 시도하면
-> WAS에서 하나의 로그인 프로세스가 생성돼
- b라는 사람이 또 로그인 하려 하면 로그인 프로세스가 또 하나 실행 돼
- a라는 사람과 b라는 사람이 똑같이 로그인 프로세스를 만들게 되면 같은 기능인데 2개 생기는 거잖아
- 메모리를 많이 잡아먹게 돼
- 서버 터졌다가 이런 표현
ㅇ Servlet (새로운 유저가 접속할 때)
- 웹 컨테이너에서 로그인 프로세스 생성되면
- a가 로그인 할 때 a의 스레드가 생성되고
jsp서블릿을 쓰면 로그인 프로세스가 새로 생성되는 게 아니라
b_스레드가 생성
- 스레드 단위로 생성 돼
- 프로세스는 하나이고 스레드로 동시다발적으로
CF. 프로세스/스레드 개념
- 프로세스 : 하나의 프로그램을 실행하고 있는 상태
- 스레드 : 프로세스 내에서 동시다발적으로 병렬적으로 진행할 수 있는 단위
- 컨트롤 알트 딜리트 누르면 작업관리자
- 세부정보 - 열에다가 우클릭 - 열 선택 - 스레드 누르면 활성된 스레드의 수 볼 수 있어
ㅇ 전자정부 스프링?
이 학원에서 스프링을 안 배운다 하더라도 자바 기반으로 준비할 거면 스프링 하면 좋아
ㅇ 서블릿(Servlet)
- 서버 상에서 작동하는 자바 기반의 웹 어플리케이션 프로그래밍 기술
- httpServlet 클래스를 상속 받음
- .java 확장자
- 멀티 쓰레드를 이용하여 동작 - 속도와 메모리 면의 효율성
- 객체지향적 대규모 웹 애플리케이션 개발에 적합