[2023.11.30] 개발자 교육 49일 차 : 강의-서블릿&JSP 실습 [구디 아카데미]

DaramGee·2023년 11월 30일
0
post-thumbnail

오늘 정리

서블릿이란? 자바를 사용하여 웹을 만드는데 필요한 기술이다. 이런 단점을 보와하고자 서블릿 기반의 스크립트 기술이다.

강의 내용

[서블릿]

jsp, 서블릿, 스프링.. 대체 다 뭐인지 궁금하다면??

서블릿(Controller : 중간다리)jsp(View : 화면구성)
자바 코드 안에 HTML 포함HTML 안에 Java 코드 포함
독자적 실행x, 톰캣 같은(jsp/servlet 컨네이너에서 실행)서블릿의 부분집합
server + applethtml+css+js+java
이른(요청 일어나지 않아도 잡고있음)게으른(요청 일어나면 생성)
초기 동적 웹앱 구성서블릿 단점 보완 (서블릿으로 화면만들기 너무 불편했던 것 보완)
뷰페이지 구현을 위한 개고생…쉬운 뷰페이지 구성, html처럼 보이는 코드

  • 생성 흐름 : java api → web 혁명 → 웹동적 서비스 → 기존 java.awt.Applet -JFrame
  • 웹 페이지 발전과정
    • 정적 페이지 → 클라이언트 요청에 따른 동적 페이지 처리 필요 → Servlet 등장(자바의 동적 처리를 하는 클래스로 서버사이드 자바 프로그램) → 뷰를 만들기 너무 어려워서 등장한 JSP(Java 언어 기반 서버사이드 스크립트 언어) (→jstl(2013이후) → 템플릿 엔진 → 싱글페이지 앱(주소변경, 유지x, 새로고침, 속도의 문제) → ajax → react )

      ⇒ 뷰는 JSP, 로직은 Servlet ⇒ MVC 패턴

  • 서블릿(server + applet 합성어) 의 조건
    • HttpServlet 상속 (Java는 Object를 상속)
    • 서버사이드 동작
    • 화면을 처리하지 않고(할 수있지만 비효율적이라) 컨트롤 계층의 역할을 한다.
    • 화면은 JSP가 담당한다(View)
  • JSP 동작과정?

[스프링 세팅]

  • 스프링 세팅 gradle 추가하는 순서 view - command palete - spring initializr.
기본값으로 생성(example - demo)
  • demo 안에서만 프로젝트 만들 수 있음. 포트수정, yml 파일 수정, 코끼리에서 빌드 실행 → 다시 demoApp 실행
  • 서블릿 라이프 사이클 갖기 → 관리(톰캣-웹앱서버 - jsp-api.jar, servlet-api.jar)
    • init
      • 서블릿 초기화 - 서블릿 생성 또는 리로딩 때 단 한번만 수행(싱글톤)
      • 서블릿 초기화 될 떄 자동으로 호출되는 메소드 - 개발자가 신경x
    • service
      • 브라우저 새로고침 눌렀을 때 반복적으로 호출 및 처리
    • destroy
      • 서블릿 제거시 단 한번 수행
  • 스프링 세팅(찐!!) https://spring.io/tools


[내가 만드는 프레임워크]

  • 공동목표 : 화면과 로직을 분리하자 (프론트, 백을 완전히 분리하는 구조 설계)
  • MVC 패턴(디자인, VO, DTO) 학습 → 스프링 기초 다지기
    • POJO - 내가 만들어보는 프레임워크 - MVC패턴(디자인패턴, VO, DTO) → 스프링 모방하기
  • Spring
    • maven - xml문법으로 환경설정 - JSON, 반복코드 줄어듦 → yml
    • gradle(최신) - 구글에서 코틀린(함수형 프로그래밍 유행 - 람다식, 화살표함수 등) 지지 - 안드로이드 프로젝트 - yml 적극 지원

0개의 댓글