Project/anonymous board project
1. 초기 데이터 설정하기 (Board의 Category) Board 테이블의 카테고리들은 변하지 않는 파트로 한 번 입력된 후 변경 가능성이 거의 없다. 처음에는 전체 게시판 카테고리 불러오기 메서드 안에서 네가지 카테고리를 입력하고, 그것들을 불러오는 로직을 짰다. ex. // BoardService class // 전체 게시판 카테고리 불러오기 // 게시판의 카테고리가 정해져있기 때문에 불러오면서 바로 카테고리를 저장하도록 했다. // todo: 고민점은 카테고리를 저장하는게 맞는지가 ? 고민... 확장성도 고려하고 싶은데.. public List readBoardCategories() { Board board1 = Board.builder().category(BoardCategory.자유).bui..
엔티티를 직접 반환하고 사용하고 있는데, 뭔가 말이 안된다는 느낌이 든다... 데이터베이스에 직접 왔다갔다 하는게... 괜히 엄청나게 위험한 행동인듯한 느낌.. 그리고 DTO를 만들어두고서는 사용을 한번도 안한것도 이상하다. DTO는 Data Transfer Object로 클라이언트와 서버 간 데이터 전송을 위해 설계된 객체. Entity는 데이터베이스에 저장되는 데이터 객체. >> 이것만이 데이터베이스와 직접적으로 연결되게 된다. Entity를 직접 반환할 경우 여러가지 문제가 생긴다. 1) 필요한 데이터만 전송하기 어렵다. : 엔티티 반환시 엔티티에 존재하는 모든 데이터가 반환된다. 불필요한 데이터를 사용자에게 전달하게 될 수 있다. 2) 순환 참조 문제 : 엔티티 간에 양방향 관계가 존재할 경우, ..
Controller에서 전체 게시판 보기 >는 모델에 따로 맵핑할 필요가 없고 나머지 카테고리별 게시판 보기 >는 모델에 맵핑하여 board를 전해준다. 이때 게시판 화면은 같기 때문에 th:if문으로 경우에 따른 조건을 설정해주어야 한다. 컨트롤러 // 카테고리별 게시글 목록 보기 @GetMapping("/{boardId}") public String readArticles(@PathVariable Long boardId, Model model) { Board board = boardService.findByBoardId(boardId).orElse(null); model.addAttribute("boards", board); model.addAttribute("articles", boardServic..