오늘 정리
서블릿이란? 자바를 사용하여 웹을 만드는데 필요한 기술이다. 이런 단점을 보와하고자 서블릿 기반의 스크립트 기술이다.
강의 내용
[서블릿]
jsp, 서블릿, 스프링.. 대체 다 뭐인지 궁금하다면??
서블릿(Controller : 중간다리) | jsp(View : 화면구성) |
---|
자바 코드 안에 HTML 포함 | HTML 안에 Java 코드 포함 |
독자적 실행x, 톰캣 같은(jsp/servlet 컨네이너에서 실행) | 서블릿의 부분집합 |
server + applet | html+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 적극 지원