분류 전체보기 99

좋아요 기능 개발

Member 엔티티(일부) @OneToMany( mappedBy = "member", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY) @OrderBy("id desc") private List hearts; Member 엔티티에 리스트로 Heart 엔티티와 연관관계로 설정하고 연관 관계 주인을 mappedBy로 member로 지정하였다. cascade = CascadeType.ALL 는 주인인 엔티티가 삭제되었을 때 이와 연관된 엔티티도 삭제되도록 설정한다고 한다. 나의 프로젝트의 경우 Member가 삭제(회원 탈퇴) 되면 좋아요 객체가 연동되어 삭제되게 설정하였다. fetch = FetchType.LAZY 지연 로딩(LA..

JpaRepository, Querydsl, 게시물 CRUD

게시물 CRUD 에 필요한 Repository 개발 및 게시물Controller작업에 대한 포스팅 기본CRUD는 JpaRepository를 활용하여 아래와 같이 작성하였다. Querydsl 설정 dependencies { //Querydsl 추가 implementation 'com.querydsl:querydsl-jpa' annotationProcessor "com.querydsl:querydsl-apt:$ {dependencyManagement.importedProperties['querydsl.version']}:jpa" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persiste..

Spring Security 회원가입 및 로그인

프로잭트에서 기존 MVC패턴으로 작성되어있던 회원 가입과 로그인에 SpringSecurity를 적용하였다. 기존 Model로 회원 정보를 받아 로그인 하는 로직으로 로그인을 처리하였다. 시큐리티를 적용하며 혼란스러웠던 점은 로그인 로직을 스프링 시큐리티가 실행해 준 다는 점을 알지 못하여서 Post로 받는 로그인 Request에 대해 어떻게 로그인을 실행하는가 이해가 안되어 한참 헤메었다. 아래 코드로 스프링 회원 가입 및 로그인을 정리해본다. 회원 Entity @Data @Entity public class Member { public Member(){ } public Member(String loginId, String nickName, String password, String email, Stri..

Spring Validator, 추가 Validator

Spring Validator 사용 @Data @Entity public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Integer id; @NotEmpty(message = "아이디를 입력하세요") @Pattern(regexp = "^[a-z0-9]{4,20}$", message = "아이디는 영어 소문자와 숫자만 사용하여 4~20자리여야 합니다.") private String loginId; @NotEmpty(message = "닉네임을 입력하세요") @Length(min = 2, max = 16,message = "2자 이상 16자 이하입니다.") private String nickName; @NotEm..

Thymeleaf

타임리프 프로젝트 적용 카테고리 == 카테고리 선택 == FREE 제목 내용 th:object="${post}" : 에서 사용할 객체(post)를 지정한다. 그 후 th:field="*{itemName}" 로 post객체의 인스턴스를 가져올 수 있다. HTML작성 시 ${item.itemName}로 작성되던 코드와 동일하다. @GetMapping("/posts/add") public String addForm(Model model) { model.addAttribute("post", new Post()); return "/post/addForm"; } @PostMapping("/posts/add") public String addPost(@ModelAttribute Post post, RedirectAt..