글 작성하는 페이지를 추가하고 여기저기 버튼을 추가해 편의성을 높여보겠습니다. API 추가 @GetMapping("/anonymous-posts/write") public ModelAndView getAnonymousPostsWrite() { ModelAndView mav = new ModelAndView(); mav.setViewName("/anonymous_board/write_post"); return mav; } 글 작성을 하기 위한 페이지를 조회하는 API를 생성합니다. 참고로 글을 작성하고 DB에 저장하는 API는 이미 만들어져 있습니다. 2022.11.27 - [웹/Spring] - Spring Boot로 게시판 만들기 (게시물 생성, 조회) Spring Boot로 게시판 만들기 (게시물 생..
Mustache를 이용하여 화면을 그리던 중 날짜를 표시할 일이 있어서 {{anonymousPost.createdAt}}로 날짜를 표현했습니다. 날짜 기본 포맷으로 화면에 나타나기 때문에 보기 이쁘지도 않고 누가 봐도 이상한 형식으로 나오는 것을 확인할 수 있습니다. "2022-11-27T11:42:54Z" ... 이쁜 것 외에도 화면을 그리다 보면 데이터 포맷을 임의로 설정해야 할 때가 있는데요. 그 때 이용하면 되는 설정입니다. 코드를 자세히 까보지 않아서 정확한 설명은 불가한데요. 대략적으로 스프링 부트를 실행시켜서 서버를 띄울 때, Mustache 설정을 가져옵니다. 이 때 Mustache Formatter를 가져오고 화면 그릴 때 custom하게 추가한 Formatter를 타고 데이터를 내보내도..
기본적인 API와 동작을 만들었으니 화면에 그려보겠습니다. Mustache 사용 준비하기 Mustache는 build.gradle에 의존성 추가를 하고 implementation 'org.springframework.boot:spring-boot-starter-mustache' IDE(IntelliJ)에 Mustache 플러그인을 설치한다면 쉽게 이용할 수 있습니다. Mustache 문법 공식 문서(영어) http://mustache.github.io/mustache.5.html mustache(5) - Logic-less templates. mustache(5) Mustache Manual mustache(5) NAME mustache - Logic-less templates. SYNOPSIS A ty..
게시물을 생성하고 조회할 수 있는 API를 먼저 만들겠습니다. 만들 API는 총 3개이며 (1) 모든 게시물 조회 (2) 특정 게시물 조회 (3) 게시물 생성 입니다. 위처럼 Controller, Service를 작성했습니다. Controller Controller에서는 ModelAndView를 반환하고 있습니다. 이 부분은 나중에 작성할 거지만 간단하게 설명드리면 어떤 mustache를 이용해 어떤 값을 전달할지를 담습니다. mav.setViewName("/anonymous_board/post"); mav.addObject("anonymousPost", anonymousService.getAnonymousPost(postId)); 위 코드에서 setViewName()을 통해 mustache 경로를 작성..
익명 게시판은 연습용 게시판으로 단순한 게시판 기능만을 사용할 예정입니다. 게시글 작성, 게시글 수정, 게시글 조회, 게시글 삭제(는 미정)까지 지원할 예정이므로 간단한 값을 가지는 테이블 설계를 해보았습니다. 게시글 번호(id), 공지 여부(is_notice), 작성자(writer), 제목(title), 본문(body), 작성일자(created_at), 수정일자(updated_at) 위 컬럼을 가지는 객체를 생성했고, 이 중 본문은 따로 테이블을 만들어서 저장했습니다. 그래서 id, body를 가지는 anonymous_post_data 테이블과 그 외의 값을 가지는 anonymous_post_info 테이블을 생성했습니다. +) ERD 추가 컬럼은 추가, 수정될 수 있습니다. 당장 떠오르는 것은 sta..
mustache를 통해 화면을 그릴 수 있고, 요청을 정상적으로 처리한다는 것을 확인했으니 DB와 연결을 테스트 해보겠습니다. JPA는 처음이라 다른 블로그 참고하여 따라 하기 식으로 설정을 했습니다. 좀 더 공부하면서 세부 설정 등 변경해 볼 예정입니다. 우선 model에 TestModel, TestModelRepository를 추가했습니다. 그리고 TestService를 추가하여 Controller가 호출하고 CRUD를 할 수 있게 했습니다. 값을 확인하기 위해 간단한 mustache 파일도 생성했습니다. 우선 application.yml에 설정을 추가합니다. spring: datasource: url: jdbc:mysql://localhost:3306/test_schema?serverTimezone..
이제 사용자의 요청을 받아 화면(mustache)을 보여주는 작업의 첫 걸음을 해보겠습니다. 잘 연결이 되었는지, 요청을 정상적으로 처리하는지 확인하는 작업입니다. 사용자의 요청을 받아 다음 작업을 할 수 있게 도와주는 testController 화면을 보여주는 코드를 가지고 있는 simple.mustache DB 연결 정보를 가지고 있는 application.yml DB(mysql)를 연결할 수 있게 도와주는 라이브러리 의존성을 추가하는 build.gradle testController : 패키지 추가할 때 상위 패키지를 잘 확인하고 추가하시기 바랍니다. 엉뚱한 곳에 추가했다가 동작이 안 돼서 당황했었네요. simple.mustache hi application.yml spring: datasource..
오랜만에(1년) 글을 작성하네요. 생각보다 공부를 잘 안 하게 돼서 배우고 싶었던 것들 하나씩 해보려고 합니다. 우선 JPA를 공부하기 위해 간단한 게시판을 만들 예정입니다. https://start.spring.io/ 접속하여 Spring Boot 프로젝트를 받아옵니다. Gradle, Java(17), Lombok, Spring Web, Mustache, Spring Data JPA를 선택했습니다. https://www.toptal.com/developers/gitignore gitignore.io Create useful .gitignore files for your project www.toptal.com 위 사이트에서 gitignore 템플릿을 받아올 수 있습니다. ["macOS", "Java",..