[패스트캠퍼스] 자바&스프링 강의 8주차

YunGyu Choi·2023년 7월 13일
0

FastCampus JavaSpring

목록 보기
8/8

웹 개발 역량강화를 위해 내일배움카드로 수강할 수 있는 백엔드 교육과정을 찾아보았다. 남궁성&박매일 님의 '나도 할 수 있는 Java & Spring 웹 개발 종합반'이 교육일정이나 커리큘럼이 무난한 것 같아서 수강하게 되었다. 8주 총 65시간의 과정을 포스팅하고자 한다.

커리큘럼

주차학습 내용
1주차생각,표현,코딩하기란?
2주차Java 기초 다지기1
3주차Java 기초 다지기2
4주차객체지향 프로그래밍 시작하기
추가1객체지향 프로그래밍 설계하기
5주차Spring 시작하기
6주차Spring MVC part1
7주차Spring MVC part2
8주차Spring MVC part3
추가2Spring DI 와 AOP
파이널 프로젝트

서블릿

서블릿과 컨트롤러 비교

컨트롤러의 @Controller + @RequestMapping = 서블릿의 @WebServlet 이다.
서블릿은 HttpServletdml 상속을 받지만 컨트롤러는 받지 않는다.
서블릿은 class에 붙이지만 컨트롤러는 메소드에 붙인다.
서블릿은 기본적으로 싱글톤이다. (1개의 인스턴스만 생성해서 재활용)
둘은 유사하지만 컨트롤러가 좀 더 발전된 형태이다.

서블릿과 스프링은 둘다 싱글톤이지만
서블릿은 요청이 들어오면 그때 초기화를하는 lazy-init 이고,
스프링은 요청이 오지 않아도 객체를 만들어두는 early-int 이다.

JSP

서블릿과 JSP 비교

서블릿과 비슷하다. JSP로 작성하면 서블릿으로 변환한다.
JSP는 HTML안에 자바코드를 넣는 것이다.
그 내용이 다 service()안으로 들어가는 것이다.

  • 만드는 곳 : src/main/webapp/이름.jsp
  • 갑 출력 : <%=값%>
  • 클래스 : <%!내용%>

JSP에는 기본객체가 존재한다. (생성없이 사용할 수 있는 객체)
서비스 변수의 지역변수로 선언되어 있어서 가능하다.

유효범위(scope)와 속성(attribute)

HTTP는 상태값을 저장하지 않는다.

4개의 저장소가 있다.
map table 형태로 key/value를 저장한다.

  • (1) pageContext
    lv 저장(기본객체)이다.
    읽기(getAttribute())와 쓰기(setAttribute())가 가능하다.
    범위는 같은 페이지 안이다.
    요청할 때마다 값이 초기화된다.

  • (2) application
    전체에서 접근가능한 저장소이다. 전체에서 1개 밖에 없다.
    개별적인 아이디를 저장하기에 좋은 저장소는 아니다.
    읽기(getAttribute())와 쓰기(setAttribute())가 가능하다.

  • (3) session
    클라이언트 마다 1개씩 존재하는 개별 저장소다.
    개별적인 아이디를 저장히기에 좋은 저장소다.
    세션은 쿠키를 이용해 각 세션이 누구의 것인지 알 수 있다.
    모든 페이지에서 접근 가능하다.
    서버 부담이 제일 큰 저장소라서 최소한의 데이터만 저장한다.

  • (4) request
    리퀘스트 객체가 맵을 가지고 있는 것이다.
    이 객체는 요청할 때마다 생기고 서로 독립적이다.
    request 저장소에 저장되어 요청이 들어온 내용을 foward를 통해서 다른 페이지에 넘겨줄 수 있다.


서블릿의 URL 패턴

@WebServlet으로 서블릿을 URL에 매핑할 때 사용한다.
URL로 요청이 들어왔을 때 어떤 서블릿이 처리할지를 결정하는 과정이다.
(loadOnStartup 옵션은 미리 초기화해두는 옵션)

스프링에서도 @RequestMapping과 같이 사용하는 URL 패턴이 존재한다.
스프링은 모든 요청을 DispatcherServelt이 다 받아서 자체적으로 가지고 있는 매핑으로 처리한다.

쿠키(Cookie)

세션(Session)

느낀점

profile
velog에는 이론을 주로 정리하고, 코드와 관련된 것은 Git-hub로 관리하고 있어요. 포트폴리오는 링크된 Yun Lab 홈페이지를 참고해주시면 감사하겠습니다!

0개의 댓글