index.html 의 의미
- 주소창에 주소를 생략하면 뜨는 페이지!(웰컴 페이지)
- 팀 버너스리가 웹을 처음 만들때, 웹은 문서를 관리하던 시절이라
- 최상위 루트 위치로 가면 당연히 문서들의 목차가 나와야되서 관습적으로 지금까지 이렇게 쓰고있다
- 그래서 웰컴페이지
대부분
redirect
301 : 퍼머넌트
- 문서의 관점에서, 301은 영구적으로 이동했으니, 다음부터는 301로 가라라는 의미
- 301 하면 캐싱이 될 확률이 높다!!! >> 다이렉트로 글로 가버릴테니까 너무 위험하다!
forward
- JSP나 서블릿 개념
- 이 포워드를 해 주는 주체는 :
- 생각보다 안티패턴(안좋은거같아)
- 포워드 수동으로 코딩하면, 여기서 다이렉트로 Usercontroller를 호출하면 되는데.. 안좋아보이지?
- 이런것 보다는 복잡한 로직이 생긴다면, 서비스계층을 만들어서 해결하자!
- 서비스가 이래서 필요한거야!
리턴 유저
domain, entitiy, repo
- DDD : 도메인 드리븐 디자인
- 각각 책임과 역할이 다르단다!!
- 스프링 펫클리닉 예제 보면 잘 알 수 있다
DTO, DAO
- 구닥다리긴 한데, 둘다 같이쓰지말고, 따로써라
- DTO : 트랜스퍼 오브젝트
- 데이터 전달하는데 씀 >> 네트워크 프로토콜에 가까운 개념 >> 다른계층에 넘겨줄때
- DAO : 데이터 엑세스 오브젝트
- 디비에서 값을 읽어오는거야, 읽어와서 DTO에 넘겨주는거
- User객체는 DTO로부터 값을 읽어서 넘겨준다
- VIEW :
- 각 계층마다 데이터 포멧이 다른데 이런 갭차이를 극복하고 매꿔주는게 바로 DTO
레포지토리가 DAO 와 비슷
- 동작은 매우유사하지만, 철학이 다르다
- 요즘은 DAO 보다는 레포지토리라는 용어로 사용함다
- 요즘 많이 사용하는 용어
VO 는 엔터티랑 쌍이야(아이덴이 있으면 엔티티, 없으면 VO)
조용호님의 오브젝트 읽어보면 된당!
삽질하는것
게터가 없으면
세터가 없으면
- 컨트롤러에 값이 안들어옴, 리퀘스트가 못들어와
- 롬복쓰면 알아서 게터세터 만들어주니까 이런걸 몰라! 그래서 수업에 롬복을 쓰지말라는거야!
미션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 로 돌리면 스파게티가 나타난다