스프링서버 , JSP, .servlet, Spring, Spring boot의 발전 흐름

Sorbet·2021년 3월 11일
0

index.html 의 의미

  • 주소창에 주소를 생략하면 뜨는 페이지!(웰컴 페이지)
  • 팀 버너스리가 웹을 처음 만들때, 웹은 문서를 관리하던 시절이라
  • 최상위 루트 위치로 가면 당연히 문서들의 목차가 나와야되서 관습적으로 지금까지 이렇게 쓰고있다
  • 그래서 웰컴페이지

대부분

  • 그냥 리턴이 포워드인줄 알았는데 아니다!

redirect

  • HTTP 302(템퍼러리)
    • 요청 >> 처리 >> 이동

301 : 퍼머넌트

  • 문서의 관점에서, 301은 영구적으로 이동했으니, 다음부터는 301로 가라라는 의미
  • 301 하면 캐싱이 될 확률이 높다!!! >> 다이렉트로 글로 가버릴테니까 너무 위험하다!

forward

  • JSP나 서블릿 개념
  • 이 포워드를 해 주는 주체는 :
  • 생각보다 안티패턴(안좋은거같아)
    • 포워드 수동으로 코딩하면, 여기서 다이렉트로 Usercontroller를 호출하면 되는데.. 안좋아보이지?
    • 이런것 보다는 복잡한 로직이 생긴다면, 서비스계층을 만들어서 해결하자!
    • 서비스가 이래서 필요한거야!

리턴 유저

  • return "user"
    • 콘트롤러 >> 모델 >> 뷰

domain, entitiy, repo

  • DDD : 도메인 드리븐 디자인
  • 각각 책임과 역할이 다르단다!!
  • 스프링 펫클리닉 예제 보면 잘 알 수 있다

DTO, DAO

  • 구닥다리긴 한데, 둘다 같이쓰지말고, 따로써라
  • DTO : 트랜스퍼 오브젝트
    • 데이터 전달하는데 씀 >> 네트워크 프로토콜에 가까운 개념 >> 다른계층에 넘겨줄때
  • DAO : 데이터 엑세스 오브젝트
    • 디비에서 값을 읽어오는거야, 읽어와서 DTO에 넘겨주는거
    • User객체는 DTO로부터 값을 읽어서 넘겨준다
    • VIEW :
    • 각 계층마다 데이터 포멧이 다른데 이런 갭차이를 극복하고 매꿔주는게 바로 DTO

레포지토리가 DAO 와 비슷

  • 동작은 매우유사하지만, 철학이 다르다
  • 요즘은 DAO 보다는 레포지토리라는 용어로 사용함다
  • 요즘 많이 사용하는 용어
    • 레포지토리, DAO

VO 는 엔터티랑 쌍이야(아이덴이 있으면 엔티티, 없으면 VO)

조용호님의 오브젝트 읽어보면 된당!

삽질하는것

  • 히든처리
  • put

게터가 없으면

  • 뷰에 안떠요

세터가 없으면

  • 컨트롤러에 값이 안들어옴, 리퀘스트가 못들어와
  • 롬복쓰면 알아서 게터세터 만들어주니까 이런걸 몰라! 그래서 수업에 롬복을 쓰지말라는거야!

미션2

  • 모델엔뷰, "사용자조회" 부분 문제있다!
  • 우리가 사용하는거랑

서블릿이란?

  • 서블릿이란 스프링의 껍데기
  • 엔지넥스>탐켓임베디드 > 서블릿 > 스프링 > 우리의 여러 콘트롤러들
  • 리퀘스트가 들어오면 발생하는일
    • 리퀘스트 들어오는데
    • 엔지넥스가 변환해서
    • 톰캣서버가 리퀘스트를 자바내부 객체로 변경해서 던져주면
    • 서블릿
  • 서블릿 스타일은
    • 자바 코드 내부에서 HTML 을 생성해주는거지
    • xml 페이지를 보고 그에 해당하는 자바 메소드를 호출해주는거지(web.xml)파일을 읽음
  • 서블릿 직접 호출하는게 너무너무 힘들고 복잡하니까,
    • 그냥서블릿은 유지보수 도저히 안되고
    • 처음에는 J2EE, 스트러츠 나왔는데 너무 어려웠고
    • MVC 너무 지원하기 위해서 스프링이 나온거고
    • 스프링이 너무 어려워서 좀더 쉽게 스프링부트가 나온거야
  • 서블릿
HelloServlet.java
  • 서블릿 처리해주는애가 서블릿컨테이너고, 톰캣 내부에 있음
  • 해드펄스트 서블릿, jsp 하루정도 살펴보면 기초에 도움됨.

Web.xml 파일을 읽고 적당한 java 메서드를 호출하는게 서블릿 컨테이너고, 톰캣에 내장되어있는 기능이라는게 맞나요?

  • 맞아용, 톰캣이라는게 서블릿컨테이너고

JSP

  • HTML내부에 자바코드 집어넣는거를 JSP
  • PHP 도 매우 유사

Optional 쓰기

  • 하지말아야 할 안티패턴
User user = userRepository.findById(),get();
  • 이거 별로 비추인데, 실패하면 > 스프링 글로벌 익셉션핸들러

크론탭

https://crontab.guru/

파이로 올려준 spring 자료

  • 구성
    • 3티어, 레이어
    • MVC모델과 웹 개발 흐름
    • Spring 3대 구성원리

jsp 로 돌리면 스파게티가 나타난다

profile
Sorbet is good...!

0개의 댓글