🧑🏻💻 게시물의 데이터를 DB에 보관하는 것까지 완료했으니 이제 그 데이터를 기반으로 리스트를 한번 만들어보자.
mariaDB 에서 생성해보자. 
use board 에 커서를 두고 command+Enter 한번, call testDataInsert;에 커서를 두고 command+Enter 를 눌러주자

먼저, boardController 로 이동해 위 내용을 추가하여 boardlist 를 주소에 매핑해주자.
그 다음 templates 하위에 boardlist 라는 이름의 html 파일을 추가하고 아래와 같이 작성하자.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>게시글 리스트 게시판</title>
</head>
<style>
.layout{
width : 500px;
margin : 0 auto;
margin-top : 40px;
}
</style>
<body>
<div class="layout">
<table>
<thead>
<tr>
<th><b>No</b></th>
<th><b>Title</b></th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>제목입니다</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>

이제 실제 DB에 있는 데이터를 목차로 불러와보자.
먼저 boardService 로 이동해 해당 코드를 추가해준다.

반환형
List<Board>는Board자료형을List 배열에 넣어 반환한다는 의미이다.

boardList 매소드를 다음과 같이 수정한다. addAttribute 함수를 사용함으로써 전에 작성한 boardlist() 에서 반환해 준 List<Board>형 의 데이터를 boardlist html 파일로 넘겨주는 형식이다.😃 이제 넘겨받은 데이터를 페이지에 출력해보자.

먼저 html 테그 안에 위와 같이 추가해주자. thymeleaf 기능을 사용할 수 있도록 해주는 역할이다.
<!DOCTYPE html>
<html lang="en" xmlns:th="https://thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>게시글 리스트 게시판</title>
</head>
<style>
.layout{
width : 500px;
margin : 0 auto;
margin-top : 40px;
}
table {
width: 100%;
border-collapse: collapse;
}
th, td {
padding: 10px 5px;
text-align: center;
}
</style>
<body>
<div class="layout">
<table>
<thead>
<tr>
<th><b>No</b></th>
<th><b>Title</b></th>
</tr>
</thead>
<tbody>
<tr th:each="board: ${list}">
<td th:text="${board.id}">1</td>
<td th:text="${board.title}">제목입니다</td>
</tr>
</tbody>
</table>
</div>
</body>
</html>
전체 코드는 다음과 같다. tbody 부분을 설명하자면 ${list} 부분에는 아까 넘겨준 List<Board> 형의 데이터가 들어온다. List 안에는 Board 형의 데이터가 들어있으며 이 데이터를 하나씩 꺼내서 board 에 담는다. 그리고 . 연산자를 통해 board 에 있는 데이터인 id 와 title 에 접근하는 방식이다.
이제 저장하고 다시 실행한 후 /board/list/로 접속해보자.

보통 목차에서 Title 부분을 클릭하면 그 게시물의 목차와 내용을 볼 수 있다. 그 기능을 한번 구현해보자.
먼저 게시물의 내용을 보여줄 상세페이지를 구성해보자.
templates 하위에 boardview 라는 html 파일을 하나 만들어주고 다음과 같이 작성하자.

그런 다음 Controller 로 넘어와 해당 html 파일을 /board/view 경로에 매핑해주자.

그리고 잘 매핑이 되었는지 /board/view 경로로 이동해 확인해보자.

문제 없이 매핑된 것을 확인할 수 있다!!😃
이제 BoardService로 이동해 해당 게시물을 클릭했을 때, 그 게시물을 불러올 수 있도록 작업해주자.

boardRepository의 메소드중findById().get()는 정수형id를 인자로 받아 해당id와 일치하는id를 갖고 있는Board를 리턴해준다.

get() 메소드는 Board 자료형을 리턴한다고 명시되어있다.
boardview html 파일에 받아온 Board 를 넘겨주는 과정이다. boardlist 에서 넘겨준 방식과 비슷한 맥락.
/board/view에 접속할 때/board/view?id=3이렇게 접속하게 되면id가3인 게시물의 상세 내용을 보여주는 구조이다.

boardview로 돌아와 <body> 부분을 다음과 같이 수정해준다. 이제 사용자가 id=3 인 게시물을 조회했을 때 해당 게시물의 제목과 내용이 보여질 것이다.
/board/view?id=3 으로 접속하면 위와 같이 id=3 인 게시물이 잘 조회가 된다. 근데 일일히 URL의 id값을 변경해서 접속하는 경우는 없을 것이다. 게시물 리스트 페이지에서 제목을 클릭하면 해당 게시물로 넘어가게 링크를 걸어주자.😄<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>게시글 상세 페이지</title>
<style>
.container {
text-align: center;
}
.bordered-section {
border-bottom: 1px solid #000;
padding-bottom: 10px;
margin-bottom: 20px;
}
</style>
</head>
<body>
<div class="container">
<div class="bordered-section">
<h1 th:text="${board.title}">Title</h1>
</div>
<div>
<p th:text="${board.content}">Content</p>
</div>
</div>
</body>
</html>
Title 과 Content 사이에 구분선 을 추가한 것이다.Title 부분에 링크를 걸어줄건데, 링크의 주소는 어떻게 될까? 우리가 만든 /board/view 로 이동해 클릭한 게시물의 id값을 갖고 넘어가야한다. 아마 형식은 /board/view?id=4 이런 형식이지 않을까?
boardlist html 파일로 돌아가 <tbody> 부분을 다음과 같이 수정해준다. 아까 href 는 링크 를 걸어주는 테그이고 그 뒤의 값은 링크에 대한 주소 정도로 이해하면 되겠다.
이제 다시 /board/list 로 접속해보자.

보이는 것과 같이 전과 다르게 Title 부분에 링크가 걸려있다. 한번 눌러서 접속해보자.
