템플릿 엔진, 동적인 html 웹페이지를 만들기 위한 라이브러리, template 폴더 안에 담긴다.
리턴값이 redirect:/hello.html 이면@GetMapping("/html/redirect")였어도 hello.html로 재요청해서 준다.
- 자바에는 존재하지 않고 자바스크립트에서 존재하는 형식
- return "{\"name\":\"Robbie\",\"age\":95}";
이렇게 넘길 경우 텍스트 형식으로 넘어감- return new Star("Robbie",95);
이렇게 객체로 넘길 경우 json 형식으로 넘아감
html을 반환하는게 아니라 그냥 데이터를 반환하는것이라는 의미
@Controller 대신 @RestController 사용 시 각 메서드마다 @ResponseBody를 안 붙여도 됨
- json 데이터 구조를 처리해주는 라이브러리
object -> json(String)
json(String) -> object
- 슬래시(/) 단위로 주소를 쓰는 방식
- 쿼리스트링 방식, ? 뒤에 붙음
- @RequestParam 은 생략 가능
- required 옵션은 디폴트는 true
required = false 이런식으로 설정 가능
- 바디 부분에 들어온 쿼리스트링 방식의 데이터를 객체에 매핑해서 가져 올 수 있음
- 받을 파라미터가 많을 경우 객체로 받으면 코드가 간결해짐
- @ModelAttribute 도 생략 가능
- 어노테이션을 생략 할 경우 스프링은 심플밸류타입은 requestParam으로 인식하고, 객체는 modelAttribute로 인식함
POST 방식으로 넘어온 데이터를 json 형식으로 받으려면 requestbody 어노테이션을 사용해야함
- Data Tranfer Object
- 데이터 전송 및 이동을 위해 생성되는 객체를 의미
- client에서 보내오는 데이터를 객체로 처리할 때 사용
- 서버의 계층간의 이동에도 사용
- DB와의 소통을 담당하는 Java클래스를 그대로 client에 반환하는 것이 아니라 DTO로 한번 변환한 후 반환할 때도 사용
- Entity와 비슷하지만 분리하는 이유는 DB와 소통하는 클래스는 조심해서 다뤄야하기 때문, JPA에서 추가 설명
DDL : CRDT
DCL : GRANT, REVOKE
DML : ISUD
- Java Datebase Connectivity
- DB에 접근할 수 있도록 Java에서 제공하는 API
- JDBC를 사용하면 DB 변경 시 드라이버 교체만으로 쉽게 DB 변경 가능
- Spring JDBC
- JDBC만 쓰면 교체는 쉽지만 여전히 DB에 연결하기 위한 작업 로직들을 직접 작성해야하는 불편함
- 이러한 불편함을 해결하기 위해 커넥션 연결, statement 준비 및 실행, 커넥션 종료 등의 반복적이고 중복되는 작업들을 대신 처리해주는 JdbcTemplate이 등장
- 하지만 JdbcTemplate도 복잡해서 현업에서 사용할 가능성이 낮음
- DB와 자바의 객체를 매핑해서 소통할 수 있는 ORM이라는 기술이 등장
- sql의 select 부분은 좀 사용할 수 있겠는데 나머지는 아직 보고 따라하는 정도라 sql도 중요하다고 하니 sql을 따로 공부해야할 것 같다.