2022년 9월 22일 목요일
@ 잠을 잘자니깐, 확실히 컨디션이 좋다,
공부가 우선이지만, 그렇다고 건강을 버리지는 말자,
결국 건강해야 양적인 부분을 가져갈 수 있고
그 이후에 질적인 부분을 높일 수가 있다.
오늘부터 대망의 스프링부트 진도가 시작된다고 하니
더욱 설레는 마음으로 기운내자.
[수업 순서]
[네이티브 SQL]
- JPQL은 데이터베이스들이 따로 지원하는 것들에 있어
모든 것을 SQL로 자동으로 바꿔주지 않는다.
(인라인 뷰, UNION, INTERSECT 등)
네이티브 SQL은 SQL을 개발자가 직접 정의해서
사용할 수 있도록 해주는 수동모드이다,
다양한 이유로 JPQL을 사용하지 못하는 경우
또는 SQL 쿼리를 최적화해서 데이터베이스의
성능을 향상 시키는 경우 사용한다.
[JDBC API와의 차이점]
- 네이티브 SQL은 JPA의 영속성 컨텍스트의 기능을
그대로 사용할 수 있다는 점이 차이점이다.
[타임리프]
- 타임리프는 스프링부트에서 공식적으로 지원하는
뷰 템플릿으로 JSP와 달리 html 확장자를
가지고 있어 JSP처럼 Servlet이 문서를
표현하는 방식이 아니므로 서버 없이 동작한다.
[템플릿 엔진(Template Engine)]
- 데이터와 이 데이터를 표현할 템플릿을
결합해주는 도구로 스프링부트가 지원하는
템플릿 엔진은 Thymeleaf, Freemaker,
Mustache, Groovy가 있다.
[타임리프 문법 적용]
- 스프링부트의 templates 폴더 하위에
html 확장자를 쓰고 xmlns:th 네임스페이스를
추가하고 타임리프 문법을 사용할 수 있다.
[타임리프의 장점]
- natural templates를 제공
- HTML의 기본 구조를 그대로 사용하며
HTML 파일을 직접 열어도 동작한다.
- 개발 시 디자인과 개발이 분리 되어
작업 효율이 좋다.
- WAS를 통하지 않고 파일을 웹 브라우저를 통해
열 수 있어서 퍼블리셔와 협업이 용이하다.
[타임리프의 단점]
- jsp 태그 라이브러리와 custom 태그들을
사용할 수 없어 기존 JSP 코드를
재사용할 수 없다.
- 기존 태그를 유지하며 속성으로 템플릿 구문을
넣는데 있어 어느정도 한계가 있고
자바스크립트의 도움을 필요할 수 있다.
※ 스프링부트를 본격적으로 배울텐데,
뭔가 이전에 배웠던 것들이 조합이 되면서
조금 더 친숙한 느낌이고, 추가적으로
굉장히 편리한 것 같아서 기대된다,
잘 배워놔서 프로젝트에도 사용하고
실무에서도 유연하게 사용할 수 있도록 하자!