1️⃣ Board의 컬렉션을 조회, 프론트 확인먼저!!
🔹 배열로 담아서 배열의 갯수 만큼, 아래 화면처럼 나열할 것이다.
🔹 제일 최근글이 제일 위로 오도록 해야된다.
🔹 Mustache 반복문 문법이 있으면 편하다.

🔹 
{{#boardList}}와 {{/boardList}} 사이의 부분은 boardList라는 배열 또는 리스트를 반복 처리하기 위한 것이다. 각 반복에서 boardList의 현재 항목에 대한 데이터를 사용하여 HTML을 한다.
🔹 여기서 {{title}}과 {{id}}는 Mustache 템플릿에서 현재 항목의 title 및 id 속성을 참조하는 방법이다.
index.mustache 문서 전체 코드, 프론트에 사용된다.{{> layout/header}}
<h1>
    {{#sessionUser}}
        {{username}}
    {{/sessionUser}}
</h1>
<div class="container p-5">
    {{#boardList}}  // 해당 섹션이 게시물 개수 만큼 반복 생성된다.
        <div class="card mb-3">
            <div class="card-body">
                <h4 class="card-title mb-3">{{title}}</h4>
                <a href="/board/{{id}}" class="btn btn-primary">상세보기</a>
            </div>
        </div>
    {{/boardList}}
    <ul class="pagination d-flex justify-content-center">
        <li class="page-item disabled"><a class="page-link" href="#">Previous</a></li>
        <li class="page-item"><a class="page-link" href="#">Next</a></li>
    </ul>
</div>
{{> layout/footer}}2️⃣ 게시물 전체를 조회하는 DB 연동
🔹쿼리문이 잘 작동하는지 먼저 확인
🔹 H2콘솔 로그인
🔹 쿼리문이 잘 작동하는지 먼저 확인
🔹 잘 작동한다.
// 콘솔 주소 http://localhost:8080/h2-console/ // 전체 조회 쿼리문 select * from board_tb order by id desc

🔹 findAll() 메소드 구현
🔹 
EntityManager의 의존성 주입을 사용하여 조회된 객체를 Board.class로 담으면 JPA가 알아서 문법에 맞게 entity로 담아준다.
🔹 query.getResultList() 는 현재 기대하는 결과가 여러 개 이기떄문에 조회된 결과를 배열로 담아주는  코드 사용.package shop.mtcoding.blog.board;
import jakarta.persistence.EntityManager;
import jakarta.persistence.Query;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Repository;
import java.util.List;
@RequiredArgsConstructor //생성자 주입 문법
@Repository // bean객체 등록
public class BoardRepository {
    private final EntityManager em; // final선언 되어야 의존성 주입 완성
		private final BoardRepository boardRepository;
 
    public List<Board> findAll(){  // 조회된 데이터를 담을 컬렉션 객체 Board타입을 받는다.
        Query query = em.createNativeQuery("select * from board_tb order by id desc", Board.class);
				return query.getResultList(); // getResultList는 조회된 여러결과값을 배열로 담는다.
    }
}쿼리에 잘 담기는지 테스트 확인 → foreach문 구현후 URL로 접속하면 된다.
@GetMapping({ "/", "/board" })
    public String index(HttpServletRequest request) {
        List<Board> boardList = boardRepository.findAll();
        
        // 테스트용 코드 forEach문
        for (Board a : boardList){
            System.out.println(a);
        }
        request.setAttribute("boardList", boardList);
        return "index";
    }URL접속 주소 넣고 콘솔창을 확인해보자.
// 아래 URL을 주소창에 넣고 엔터 http://localhost:8080/

확인완료!

🔹 화면을 봤을 때 필요한 정보가 
🔹 아스트리크로 받으면 죽방 맞는다. 순서를 볼 수 없으니까 .
🔹 조회한 테이블이랑 동일한 엔티티를 만들어서 담고, DTO로 옮겨서 정제하는 것이 기본기
🔹 ORM이 뭐지?
🔹 DB에서 엔티티만들고 엔티티에서 DTO만드는 연습을 해야 신입으로서 빛을 발한다.



