스프링부트 13

[SpringBoot] Thymeleaf form 태그

타임리프를 처음 써보면서 잘 몰랐던 문법에 대해 정리해보고자 한다. form th:action 폼이 제출될 URL이나 경로를 지정하는 데 사용 ex) th:action="@{/fileBoard/insertProc}"는 폼 제출 대상을 /fileBoard/insertProc URL로 설정 th:object 폼이나 템플릿의 특정 부분과 객체를 연결하는 데 사용 폼의 데이터 모델로 사용할 객체를 지정 ex) th:object="${fileBoardVO}"는 fileBoardVO 객체를 폼과 연결하여 Thymeleaf가 폼 입력값을 fileBoardVO 객체의 해당 속성과 바인딩 th: field th:field 속성은 폼 필드를 특정 객체 속성에 바인딩하는 데 사용 주로 , , 와 같은 폼 입력 요소에서 사용..

BACK/SPRING 2023.06.09

Spring Boot Project(5) - 게시글 페이징, 필터링하기

Pageable을 이용하면 간단하게 Pagination 와 Sorting을 처리할 수 있다. PostsRepository public interface PostsRepository extends JpaRepository { Page findAll(Pageable pageable); @Query(value="select p from Posts p where p.subject = :subject and p.division = :division and p.is_progress = :is_progress") Page findAllByFiltering(Pageable pageable, @Param("subject") String subject, @Param("division") String division, @P..

BACK/SPRING 2023.01.24

Spring Boot Project(4) - JPA Auditing으로 생성/수정 시간 자동화

JPA Auditing으로 생성시간/수정시간 자동화하기 domain 패키지에 BaseTimeEntity 클래스를 생성한다. 이 클래스는 모든 Entity의 상위 클래스가 되어 Entity들의 createdDate, modifiedDate를 자동으로 관리한다. @Getter @MappedSuperclass @EntityListeners(AuditingEntityListener.class) public abstract class BaseTimeEntity { @CreatedDate @Column(updatable=false) private String createdDate; @LastModifiedDate private String modifiedDate; @PrePersist public void onPr..

BACK/SPRING 2023.01.24

Spring Boot Project(3) - 게시글 CRUD

게시물 Entity domain 패키지를 만든다. 도메인이란 게시글, 댓글, 회원 등 소프트웨어에 대한 요구사항 혹은 문제 영역이다. @Getter @NoArgsConstructor @Entity public class Posts extends BaseTimeEntity { @Id @GeneratedValue(strategy= GenerationType.IDENTITY) @Column(name="post_id") private Long id; @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name="member_id") private Member member; @Column(length = 500, nullable = false) private String title; ..

BACK/SPRING 2023.01.24

Spring Boot Project(2) - 프로젝트 세팅, MySQL 연동하기

프로젝트 생성 프로젝트 설정을 해준다. 프로젝트에서 사용할 의존성을 추가한다. plugins { id 'java' id 'org.springframework.boot' version '2.5.6' id 'io.spring.dependency-management' version '1.1.0' } group = 'com.toy' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring..

BACK/SPRING 2023.01.24

[Spring Boot] Gradle 환경에 Swagger 적용하기

build.gradle 에 아래와 같이 추가한다. 최신 버전인 3.0.0을 사용한다. implementation 'io.springfox:springfox-boot-starter:3.0.0' config 파일에 SwaggerConfiguration.java를 작성한다. package com.toy.projectmate.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.Pa..

BACK/SPRING 2022.12.18

Spring Boot Project(1) - 프로젝트 개요

이전에 다른 친구들과 함께 같이 슿프링부트 버킷리스트 공유 사이트를 만든 경험이 있다. 백엔드 여러명끼리 기능을 분담하여 나는 게시판, 댓글 CRUD, 공유 기능, AWS 배포 등을 맡아 담당하였다. 그 때는 스프링부트를 처음 시작하자마자 바로 프로젝트에 들어간거라 많이 미흡했고, 이해보다 기능 완성에 급급했던 것 같다. 이 후에 스프링부트를 좀 더 공부하고, 백엔드는 혼자로써 웹 사이트의 기능을 모두 구현해보고자 하는 마음이 들기 시작해 이 프로젝트를 시작하게 되었다. 주제는 학교 내 팀플의 팀원들을 모집할 수 있는 사이트이고, 전반적으로 웹의 기본적인 기능을 갖춘 사이트를 만들어 보고자 한다. 서버는 내가 스프링 부트로 구현하고, 프론트는 리액트를 사용해 프론트 담당 두분과 함께 작업했다. 1. 프로..

BACK/SPRING 2022.12.15

[Spring Boot] Logback 적용하기

로깅(logging) : 애플리케이션이 동작하는 동안 시스템의 상태나 동작 정보를 시간순으로 기록하는 것 Logback은 자바 진영에서 가장 많이 사용되는 로깅 프레임워크 리소스폴더 안에 logback-spring.xml 파일 추가 INFO [%d{yyyy-MM-dd HH:mm:ss.SSS}] [%-5level] [%thread] %logger %msg%n 컨트롤러의 LOGGER 전역 변수로 Logger 객체 정의 @RestController @RequestMapping("/api/v1/get-api") public class GetController { private final Logger LOGGER = LoggerFactory.getLogger(GetController.class); ... } 로그..

BACK/SPRING 2022.10.11