[SpringBoot & JPA] 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 - 4

dgw0620·2023년 5월 13일

Controller

  • @Controller과 @RestController의 차이
    @controller는 보통 View를 반환할때 사용한다. (데이터 반환 필요시 @ResponseBody 사용)
    @RestController는 보통 데이터를 반환시 사용 (@Controller + @ResponseBody)

  • Model
    서버 템플릿 엔진(서버 사이드)에서 객체 저장.

    @GetMapping("/")
    public String index(Model model) {
        model.addAttribute("posts", postsService.findAllDesc());
        return "index";
    }

    위의 경우 "posts"의 이름으로 postsService.findAllDesc()의 결과를 index로 전달한다.


Service

  • @Transactional(readOnly = true)
    readOnly를 사용하면, 조회 속도가 개선된다. (다른 기능은 X)
    최적화를 위해 사용하면 좋음.

Repository

  • @Query
    Jpa에서 제공하지 않는 메소드는 쿼리로 작성 가능하다.
    @Query("SELECT p FROM Posts p ORDER BY p.id DESC")
     List<Posts> findAllDesc();
    위와 같은 방법으로 쿼리 지정하고, 해당 메소드를 정의 가능하다.

Mustache

JSP처럼 서버 사이드 랜더링할때 사용한다.
Vue.js, React는 클라이언트 사이드 랜더링시 사용.
⭐ 서버 사이드 - 검색 엔진 최적화에 편하고 빠른 랜더링, 하지만 서버 부하가 크다.
⭐ 클라이언트 사이드 - 브라우저에서 구현되므로 서버 부하가 작다. (주로 사용)

  • {{>}}
    외부의 파일을 연결할 때 사용.

  • {{#NAME}} {{/NAME}}
    "NAME"의 List를 순회한다. (for문과 유사)

  • {{NAME}}
    리스트에서 "NAME"의 객체 필드를 뽑아 사용한다.

0개의 댓글