6월 29일 화요일 WAS이론 ㅇ

@_@·2021년 6월 28일
1

JSP&Servlet

목록 보기
1/6
post-custom-banner

<목차>
ㅇ 웹의 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 확장자
  • 멀티 쓰레드를 이용하여 동작 - 속도와 메모리 면의 효율성
  • 객체지향적 대규모 웹 애플리케이션 개발에 적합



profile
STEP BY STEP
post-custom-banner

0개의 댓글