자바, 스프링을 공부했던 것들을 기록하기 위해서 만든 블로그 기존의 다른 블로그들도 있지만 직접 내가 만들면서 다시 공부하자는 마음으로 프로젝트를 계획하게 되었습니다. 프로젝트는 [자바 웹 개발 워크북]에 있는 내용들을 참고하였습니다.
.
|-- main
| | `-- generated
| | `-- java
| | `-- org
| | `-- zerock
| | `-- b01
| | |-- B01Application.java
| | |-- config
| | | |-- CustomServletConfig.java
| | | |-- RootConfig.java
| | | `-- SwaggerConfig.java
| | |-- controller
| | | |-- BoardController.java
| | | |-- SampleController.java
| | | `-- SampleJSONController.java
| | |-- domain
| | | |-- BaseEntity.java
| | | `-- Board.java
| | |-- dto
| | | |-- BoardDTO.java
| | | |-- PageRequestDTO.java
| | | `-- PageResponseDTO.java
| | |-- repository
| | | |-- BoardRepository.java
| | | `-- search
| | | |-- BoardSearch.java
| | | `-- BoardSearchImpl.java
| | `-- service
| | |-- BoardService.java
| | `-- BoardServiceImpl.java
| `-- resources
| |-- application.properties
| |-- static
| | |-- img
| | | |-- home-bg.jpg
| | | |-- modalcat.png
| | | |-- post-bg.jpg
| | | `-- teco.png
| | `-- js
| | `-- scripts.js
| `-- templates
| |-- board
| | |-- list.html
| | |-- modify.html
| | |-- read.html
| | `-- register.html
| `-- layout
| `-- basic.html
|-- test
| |-- generated_tests
| `-- java
| `-- org
| `-- zerock
| `-- b01
| |-- B01ApplicationTests.java
| |-- DataSourceTests.java
| |-- repository
| | `-- BoardRepositoryTests.java
| `-- service
| `-- BoardServiceTests.java
게시물을 등록한 후 전체 게시물을 화면에 출력할 때 맞는 데이터가 들어오는지 확인하기 위해서 테스트 코드를 작성해 보다가 에러가 발생하였다.
InvalidDataAccessApiUsageException 예외가 발생하였는데 검색 한 결과를 토대로 예외를 해석하자면
Board 테이블을 등록하기 위해서 Member 테이블도 같이 등록해야 하는데 Member id 값을 알 수 가 없기 때문에 예외가 발생한거 같다.
해결 방안으로는 cascade (영속성 전이)를 사용해서 Board 엔티티를 영속화 시키기 전 Member 엔티티를 먼저 영속화 시켜준다.
검색해본 결과 dangerouslySetInnerHTML 이라는 속성을 이용하면 해결이 가능 하지만 Thymeleaf에 th:utext 라는 속성을 사용해도 같은 효과를 볼 수 있다고 한다.
출처 : Thymeleaf 홈페이지(https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf.html#what-is-thymeleaf)content에 타입을 text로 바꾸어도 여러 개의 이미지를 넣으면 에러가 발생한다.
🔍 https://myeongdev.tistory.com/49 블로그를 참고하였다.
quill-editor에 작성한 이미지는 ajax를 사용해 서버에 미리 저장 하고 저장된 이미지를 불러오는 것이다.
게시물을 등록하는것은 해결 했지만 수정시에는 서버에 저장된 이미지도 같이 삭제 해야 하는데 이건 좀 더 공부 해보고 해결해보겠습니다.
-
프로젝트 설치 및 실행 방법
-
프로젝트 사용 방법