🚗 Backend Toy Project
[Photogram] 회원가입 - 데이터베이스 저장
회원가입을 하기 위해서 우리는 아래와 같은 정보를 사용자에게 입력으로 받아오도록 하고 있습니다. 가입 📝 SignupDto 위 4개의 데이터를 사용자에게 전달 받기 위해 아래와 같이 DTO를 생성해주었습니다. package com.cos.photogram.web.dto.auth; ... @Data public class SignupDto { private String username; private String password; private String email; private String name; public User toEntity() { return User.builder() .username(username) .password(password) .email(email) .name(name) ..
[Photogram] 회원가입 - Security 설정
현재 사용하는 웹 페이지는 어떠한 경로로 들어가든 Spring Security에서 이를 막고 아래와 같은 로그인 페이지를 보여주고 있습니다. 다만 우리는 직접 만들어 놓은 로그인 페이지가 따로 있으며 인증이 필요한 페이지와 그렇지 않은 페이지를 직접 구분하기 위해 Security 설정을 수행해주어야 합니다. 📝 SecurityConfig 이를 위해 우선 WebSecurityConfigurerAdapter를 상속받는 클래스 SecurityConfig를 생성하여 구현해주었습니다. package com.cos.photogram.config; ... @EnableWebSecurity //Security 활성화 @Configuration //IoC public class SecurityConfig extends ..
[스프링부트 게시판] 27. 게시글 작성일 및 조회수 추가
기존에 만들었던 게시판 구조에서 게시글 작성일과 조회수를 간단하게 추가하여 구현해보았습니다. 📝 1. 게시글 작성일 추가 작성일은 Board 엔티티에 함수를 따로 추가하여 View에서 해당 함수 호출하는 식으로 손쉽게 구현할 수 있었습니다. @CreationTimestamp private Timestamp create_date; public String getCreateDate() { return new SimpleDateFormat("yyyy.MM.dd").format(create_date); } Created: ${board.createDate} 📝 2. 조회수 추가 조회수의 경우에도 구글링을 통해 쉽게 구현할 수 있었는데 그 방법은 다음과 같습니다. 우선 Repository에 아래와 같은 함수를 생..
[스프링부트 게시판] 26. 커스텀 Validation을 통한 중복 검사 구현
Validation 어노테이션으로는 단일 필드에 대한 유효성 검증만 처리가 가능하기 때문에, 중복체크 같은 경우는 해결이 불가능했습니다. 따라서 커스텀 Validation을 따로 만들어 중복 검사를 구현해보았습니다. 중복되는 코드가 조금 생기긴 하였지만 결과는 나름 만족스럽게 나온 것 같습니다. 📝 1. UserRepository 우선 아래와 같이 해당 데이터가 DB에 존재하는지 여부를 확인하기 위한 Named Query를 작성해주었습니다. Spring Data Jpa에서는 이를 exists를 통해 사용할 수 있습니다. 반환 타입은 boolean 형으로, 해당 데이터가 존재할 경우 true, 존재하지 않을 경우 false를 리턴합니다. package com.cos.blog.repository; // @R..