@@ -22,18 +22,19 @@
 public class BoardService {
     private final BoardRepository boardRepository;
     private final UserRepository userRepository;
-    LocalDateTime now = LocalDateTime.now();
 
-    @Transactional
+
+    @Transactional(readOnly = true)
     public Page<Board> getBoards(int page, int size) {
         Pageable pageable = PageRequest.of(page, size);
         return boardRepository.findAll(pageable);
     }
 
 
     @Transactional
-    public void create(BoardDto boardDto) {
-        final User user = userRepository.findByUsername(boardDto.getUsername())
+    public void create(BoardDto boardDto, String identity) {
+        LocalDateTime now = LocalDateTime.now();
+        final User user = userRepository.findByIdentity(identity)
                 .orElseThrow(() -> new RuntimeException("일치하는 사용자가 없습니다."));
 
         Board board = Board.builder()
@@ -49,12 +50,14 @@ public void create(BoardDto boardDto) {
     @Transactional
     public void update(BoardUpdateDto dto) {
 
-        final User user = userRepository.findByUsername(dto.getUsername())
-                .orElseThrow(() -> new RuntimeException("일치하는 사용자가 없습니다."));
-
         final Board board = boardRepository.findById(dto.getId())
                 .orElseThrow(() -> new RuntimeException("일치하는 게시물이 없습니다."));
 
+        final String username = board.getUser().getUsername();
+
+        final User user = userRepository.findByUsername(username)
+                .orElseThrow(() -> new RuntimeException("일치하는 사용자가 없습니다."));
+
         if(user.getUsername().equals(dto.getUsername())) {
             board.update(dto.getTitle(), dto.getContent());
             boardRepository.save(board);
@@ -66,12 +69,16 @@ public void update(BoardUpdateDto dto) {
 
     @Transactional
     public void delete(BoardDeleteDto dto) {
-        final User user = userRepository.findByUsername(dto.getUsername())
-                .orElseThrow(() -> new RuntimeException("일치하는 사용자가 없습니다."));
-
         final Board board = boardRepository.findById(dto.getId())
                 .orElseThrow(() -> new RuntimeException("일치하는 게시물이 없습니다."));
 
+        final String username = board.getUser().getUsername();
+
+//        final String userid = board.getUser().getIdentity();
+
+        final User user = userRepository.findByUsername(username)
+                .orElseThrow(() -> new RuntimeException("일치하는 사용자가 없습니다."));
+
         if(user.getUsername().equals(dto.getUsername())) {
             boardRepository.delete(board);
         }else {

리뷰: 아래처럼 로직이 바뀌어야함
```java 
   @Transactional
    public void delete(BoardDeleteDto dto) {
        // 비즈니스 로직의 문제 -> 이런거를 고민하는게 백엔드 개발자의 역할
        
        // 게시판을 찾는다.
        final Board board = boardRepository.findById(dto.getId())
            .orElseThrow(() -> new RuntimeException("일치하는 게시물이 없습니다."));

        // 게시판의 작성자를 찾는다.
        final String username = board.getUser().getUsername();

        // 게시판의 작성자의 DB 조회
        final User user = userRepository.findByUsername(username)
            .orElseThrow(() -> new RuntimeException("일치하는 사용자가 없습니다."));

        // 게시판 작성자의 DB 와 현재 요청한 사람의 username 이 같은지 비교
        if (user.getUsername().equals(dto.getUsername())) {
            boardRepository.delete(board);
        } else {
            throw new IllegalArgumentException("작성자만 수정할 수 있습니다.");
        }
    }
```