프로젝트/도서 관리 시스템
-
[Spring Boot] 2-7. Validation 회원가입 중복 체크프로젝트/도서 관리 시스템 2023. 7. 17. 14:29
validation 어노테이션으로는 단일 필드에 대한 유효성 검증만 처리가 가능하기 때문에, 중복체크 같은 경우는 validation 어노테이션으로 해결이 불가능하다. 이전 포스팅에서는 js로 중복 검사를 하였는데 이번엔 validation을 커스터마이징하는 방법을 사용하려고 한다. 📑 1. Mapper 회원가입 시 사용자가 입력한 이메일 또는 닉네임에 해당하는 회원 정보가 db에 있을 경우 boolean 타입으로 true를 반환한다. 즉) false를 반환되어야 회원 가입이 가능한 것이다. select count(*) from members where email = #{email} select count(*) from members where nickname = #{nickname} package co..
-
[Spring Boot] 2-6. Validation을 이용한 회원가입 구현 (jsp)프로젝트/도서 관리 시스템 2023. 7. 5. 20:53
검증 기능을 매번 코드로 작성하는 것은 상당히 번거롭다. 특히 특정 필드에 대한 검증 로직은 대부분 빈 값인지 아닌지, 특정 크기를 넘는지 아닌지와 같이 매우 일반적인 로직이다. 이런 검증 로직을 모든 프로젝트에 적용할 수 있게 공통화하고, 표준화한 것이 바로 Bean Validation이다. 이전 세션을 이용한 회원가입에서는 js 정규표현식을 이용해 유효성검사를 구현했었다. 이번엔 더 편리한 방법으로 유효성 검사를 진행해보려고 한다. build.gradle에 아래 의존관계를 추가하면 라이버러리가 추가된다. implementation 'org.springframework.boot:spring-boot-starter-validation 📑 검증 어노테이션 (domain) package com.wish.li..
-
[Spring Boot] 2-5. 스프링 시큐리티, 로그인 실패시 메시지 출력프로젝트/도서 관리 시스템 2023. 7. 5. 14:10
현재 프로젝트에서는 로그인을 실패하면 아무 메세지가 보이지 않는다. 메세지는 없지만 페이지는 재로딩 되기에 이게 요청이 넘어간건지 클라이언트 입장에서는 당혹스러운 상황이 된다. 따라서 어떤 이유로 로그인에 실패했는지 에러 메세지를 띄워야 된다 생각한다. 이번 포스팅에선 로그인 실패시 메시지를 출력하는 기능을 구현해보려 한다. 📑 SecurityConfig 설정 필드 변수로 customFailureHandler 객체를 선언해주었다. private final AuthenticationFailureHandler customFailureHandler; 그다음 로그인 실패시 customFailureHandler 가 동작하게 설정한다. failureHandler(customFailureHandler)를 추가하였다...
-
[Spring Boot] 2-4. 스프링 시큐리티, 회원 가입 구현하기프로젝트/도서 관리 시스템 2023. 7. 5. 13:23
스프링 시큐리티를 이용한 로그인 처리는 아래 포스팅에 정리해두었다. 아래 포스팅을 봐야지만 회원 가입을 구현할 수 있다. https://wonisdaily.tistory.com/270 [Spring Boot] 2-3. 스프링 시큐리티, 로그인/로그아웃 구현 스프링 시큐리티에 관한 개념은 아래 포스팅에서 따로 정리해뒀다. https://wonisdaily.tistory.com/268 [Spring Boot] Spring Security 설정, 예제, 용어와 흐름 📑 Spring Security 설정 스프링 시큐리티를 구현하는 wonisdaily.tistory.com 📑 memberSaveForm (domain) 앞에서 로그인시 domain 클래스로 UserDetails 인터페이스를 구현하는 클래스를 사용하..
-
[Spring Boot] 2-3. 스프링 시큐리티, 로그인/로그아웃 구현프로젝트/도서 관리 시스템 2023. 7. 5. 12:54
스프링 시큐리티에 관한 개념은 아래 포스팅에서 따로 정리해뒀다. https://wonisdaily.tistory.com/268 [Spring Boot] Spring Security 설정, 예제, 용어와 흐름 📑 Spring Security 설정 스프링 시큐리티를 구현하는 프로젝트를 생성한다. 생성된 패스워드는 기본으로 사용해볼 수 있는 'user' 계정의 패스워드이다. 프로젝트가 정상적으로 실행된다면 브라우 wonisdaily.tistory.com 기본 개념을 넘어서 오늘은 스프링 시큐리티로 로그인과 로그아웃을 구현해보려고 한다. 아무래도 Spring Boot + JPA +thymeleaf 환경이 많고 블로그마다 정리된 내용이 조금씩 달라서 구현하는데 시간이 좀 걸렸는데, 잘 정리된 포스팅을 하나 발견해..
-
[Spring Boot] 2-2. 세션을 사용하는 회원 가입, 회원 정보 수정프로젝트/도서 관리 시스템 2023. 6. 19. 11:23
📑 회원가입 & 정보 수정 백단 insert into member(email, password, name, nickname, mfCode, cellNo) values (#{email}, #{password}, #{name}, #{nickname}, #{mfCode}, #{cellNo}) update member set password = #{password}, nickname = #{nickname}, cellNo = #{cellNo} where email = #{email} package com.wish.library.member.mapper; import com.wish.library.member.domain.MemberVO; import org.apache.ibatis.annotations.Mapp..
-
[Spring Boot] 2-1. 세션을 사용하는 회원 로그인, 로그아웃프로젝트/도서 관리 시스템 2023. 6. 19. 10:47
세션은 사용자(브라우저)로부터 들어온 데이터를 서버에 연결해 여러 페이지에서 일정하게 유지하는 기술이다. 즉) 사용자와 서버 간의 상태를 유지시켜 주는 방법이다. 그러나 현업에서는 session을 거의 사용하지 않는다. 일단 세션을 이용해 구현하는 방법을 알아보고 다음 포스팅에서는 Spring Security를 사용해서 회원 기능을 구현해보려고 한다. 회원 기능을 위한 요구사항은 다음과 같다. 📑 로그인 구현 select * from member where email = #{email} or nickname= #{nickname} mapper.xml에서 설정한 id를 mapper interface의 메서드 명으로 만들면 된다. 여기서 where 절에 email or nickname으로 한 이유는 로직상 ..
-
[Spring Boot] 1-4. 화면 레이아웃 구성프로젝트/도서 관리 시스템 2023. 6. 19. 10:13
정말 화면 스타일은 항상 고민을 하게 된다. 고민을 하지만 부트스트랩을 애용하는 중. 부트스트랩 가져다 써서 사용자화 하는게 너무 어렵다ㅠㅠ CSS 공부를 해야되나 가져와서 변경도 어려운... 최대한 활용해서 해야지. 이번 프로젝트는 기능들 구현하면서 백단 즉) 전체 흐름이랑 로직을 공부하기 위한 목적으로 화면단 디자인은 나중에 기능들을 구현한 후에 손보려고 한다. https://getbootstrap.com/docs/5.3/examples/ Examples Quickly get a project started with any of our examples ranging from using parts of the framework to custom components and layouts. getboots..