SPRING/IceWater Community

    [스프링]회원가입 이메일인증 구현

    [스프링]회원가입 이메일인증 구현

    이번엔 회원가입 시 ,이메일 인증을 구현했다. 메일로 인증번호를 받아서 인증번호를 입력 후 인증하는 방법과 메일에서 바로 버튼을 눌러서 인증을 하는 방법을 생각했는데, 사용자가 느끼기엔 버튼을 눌러서 인증하는 방법이 편할 것 같아서 후자의 방법으로 구현했다. 다음 프로젝트땐 전자의 방법으로 구현 할 생각이다. 크게 다르지 않다. pom.xml에 메일 라이브러리를 추가 javax.mail mail 1.4.7 org.springframework spring-context-support ${org.springframework-version} MailUtils.java 생성 public class MailUtils { private JavaMailSender mailSender; private MimeMessa..

    [스프링] 자동로그인 기능 구현 - 로그인4

    [스프링] 자동로그인 기능 구현 - 로그인4

    먼저, 로그인 화면에 로그인유지 체크박스를 만들었다. 로그인유지 로그인 인터셉터의 postHandle 부분 @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { logger.info("interceptor postHandel"); HttpSession httpSession = request.getSession(); ModelMap modelMap = modelAndView.getModelMap(); Object memberVO = modelMap.get("member"); if (memb..

    [스프링]로그인 권한설정과(인터셉터) 로그인,로그아웃 전 페이지 기억 기능 - 로그인 3

    [스프링]로그인 권한설정과(인터셉터) 로그인,로그아웃 전 페이지 기억 기능 - 로그인 3

    저번글에서, 로그인처리까지 완료했으니 이번엔 로그인 후, 권한에 따라 기능을 제한하고 나눠볼 예정이다. 로그인구현 첫번째 글에서 설명했듯이,인터셉터를 이용한 로그인 방식을 구현했다. 그래서 인터셉터를 이용해서 로그인 시, 글작성, 글수정과같은 기능을 제한 , 로그인 페이지로 넘어가게 만들고 이동 전 페이지를 기억해서 원래의 페이지로 돌아가도록 기능을 구현 할 예정이다. 먼저 kr.co.commons.interceptor 패키지에 AuthInterceptor 클래스를 만든다. public class AuthInterceptor extends HandlerInterceptorAdapter{ private static final Logger logger = LoggerFactory.getLogger(AuthI..

    [스프링]인터셉터를 활용한 로그인구현 (세션부여) - 로그인2

    [스프링]인터셉터를 활용한 로그인구현 (세션부여) - 로그인2

    이번엔 로그인처리를 해보려고 한다. 로그인기능은 클라이언트가 아이디와 비밀번호를 입력하면, 아이디와 비밀번호가 맞는지 확인하고, 맞다면 세션쿠키를 부여해서 그 회원의 권한에 맞게 뷰페이지나 글작성 ,관리자페이지 등을 들어갈 수 있고, 조작할 수 있게 구분해주는 작업이라고 할 수 있겠다. 이번엔 아이디와 비밀번호가 맞는지 확인하고, 세션쿠키를 부여하는데 까지 해보려고 한다. [스프링] Session과 Cookie , HttpSession :: 간편 웹프로그래밍 (tistory.com) [스프링] Session과 Cookie , HttpSession session이란? 세션과 쿠키를 사용하는 이유는 HTTP프로토콜의 특징이자 약점을 보완하기 위해서다. HTTP프로토콜은 비연결지향, 무상태 프로토콜이다. 클라..

    [스프링]회원가입(ajax 유효성 검사,비밀번호 암호화) - 로그인1

    [스프링]회원가입(ajax 유효성 검사,비밀번호 암호화) - 로그인1

    내가 생각하고 있던 로그인 방법은 1. controller에서 HttpSession 인터페이스를 이용해서 직접 세션값을 구현 2.인터셉터를 이용해서 세션값을 확인하는 방법으로 구현. 3.spring 시큐리티를 이용해서 필터로 로그인처리를 구현하고, 보안까지 잡는 방법이다. 원래는 스프링시큐리티를 이용해서 이번 프로젝트를 해보려고했는데 반나절정도 시간을 들여서 공부하고나니 음.. 할 수는 있겠지만 조금 헤맬거같은 느낌이 확 들길래 좀 더 숙련도를 쌓고 로직에 대한 이해를 하고 다음에 스프링부트로 프로젝트를 만들때, 스프링 시큐리티를 활용하기로 했다. 그래서 2번, 인터셉터를 이용해서 로그인을 구현해보려고 한다.. 중복체크나 이메일인증을 하다가 입력한 정보가 다 날아가버리면 웹사이트를 닫고 욕하며 나가버리는..

    [스프링]게시판 조회수,댓글수 순 정렬과 게시글 10개,20개씩 보기 구현

    [스프링]게시판 조회수,댓글수 순 정렬과 게시글 10개,20개씩 보기 구현

    오늘은 게시판 게시글을 조회수와 댓글수, 최신순으로 정렬기능을 구현하고, 게시글을 10개, 20개, 30개씩 볼 수 있는 기능도 같이 만들어봤다. 이 기능을 어떻게 구현해야할지 생각하던 중, OKKY 사이트의 구현되있는 버튼을 눌러보다가 방법을 찾았다. 이런식으로 게시글 정렬이 url에 따라 변경되고, 이렇게 url이 바뀌면서, 결국 검색,페이징기능과 비슷한 로직이라는 것을 알았다. 먼저 게시글목록을 select하는 쿼리의 정렬부분을 바꿔줘야 한다. 전에 게시글의 댓글수를 목록페이지에서 출력하고, 조회수를 출력하는 부분을 구현할때 댓글수와 조회수를 count하는 로직은 이미 만들어뒀기 때문에 그 부분은 넘어가도록 하겠다. SELECT BNO, TITLE, CONTENT, WRITER, REGDATE, H..

    [스프링] 다중 게시판 구현 (CRUD)

    [스프링] 다중 게시판 구현 (CRUD)

    이번엔 다중 게시판을 구현해보려고 한다. 순서는 먼저 게시판테이블에 BGNO 라는 게시판 구분용 속성을 추가한다. 게시판 테이블은 여러개 만들지 않고, 하나의 테이블을 사용하는 방식으로 구현하려고 한다. 커뮤니티의 BGNO = 1 , Q&A = 2, 포럼 = 3 이런식으로 그룹을 나눠서 구별한다. 새로운 속성이 추가되고, 게시글을 전부 나눠줘야 하기 때문에, 조회, 삽입, 수정 ,삭제 모두 백과 프론트단을 전부 수정해줘야 한다. 일단 게시판테이블(MP_BOARD)에 BGNO를 추가한다. alter table MP_BOARD add BGNO NUMBER NOT NULL; UPDATE MP_BOARD SET BGNO = 1; 현재 지금 있는 글들의 BGNO를 1로 갱신해준다. MAPPER SELECT BNO..

    [스프링]게시판 이전글 다음글 구현

    [스프링]게시판 이전글 다음글 구현

    오늘은 이전글 다음글을 구현해보려고 한다. 글 이동은 게시글내용(게시글상세보기) 뷰에서 할 것이므로, 처음에는 bno(게시글PR)로 게시글 구분을 하니, 버튼에 onclick= "location.href='상세페이지링크/bno=${bno -1}'" 로 bno값을 불러와 +1, -1하면 되지 않나...라고 떠올렸지만, 구현해보니 삭제된 글 때문에 문제가 되었다.. 1000번 글에서 이전글을보면 999번으로 가는데 999번글은 삭제해서 페이지가 제대로 나오지 않는다. 그래서 게시물 목록을 만들때 처럼, ROW_NUMBER()로 정렬한 select한 결과를 서브쿼리로 select해서 이전글 다음글을 만들어야하나 생각하다가, 검색을 통해 더 간단한 방법을 찾았다. [속성], LEAD([속성],[이동값],[이동후..

    [스프링] ajax 댓글 에디터 및 이미지 삽입 구현

    저번글의 에디터 적용을 활용해서 비동기 댓글창에도 에디터를 적용해주고 , 에디터를 이용해서 이미지 삽입 및 서버에 저장이 가능하도록 만들었다. 먼저 댓글작성시 파일첨부를 하면 업로드가 될 수 있도록 만든다. 새로 댓글파일첨부 테이블을 만들어서 댓글로직을 따로 처리할 수도 있지만, 여차피 게시글과 같은 로컬에 저장 할 것이고, 댓글PR인 RNO를 댓글을 구현하면서 VO(getter&setter)로 쉽게 받아올 수 있게 만들어놨기 때문에, 게시글과 같은 파일첨부테이블을 사용한다. 먼저 원래의 파일첨부테이블에 RNO (댓글PR)을 추가해준다. alter table MP_FILE add column RNO number; !! NULL값을 허용해야 한다. (NOT NULL X) SELECT MP_REPLY_SEQ..

    [스프링]게시판 글작성 에디터 적용과 파일미리보기,이미지 미리보기

    [스프링]게시판 글작성 에디터 적용과 파일미리보기,이미지 미리보기

    저번글에서 다중첨부파일의 crud 기능을 구현하고 이번엔 글작성페이지의 내용부분에 에디터 적용, 첨부파일 미리보기, 에디터에서 이미지첨부를 위한 컬럼 수정을 해봤습니다. 게시판 글쓰기 중, 내용부분에 에디터를 적용해봤다. 네이버 에디터나 다른 오픈소스 에디터를 적용하려고 해봤으나 부트스트랩 기반으로 프론트를 구성한 내 경우는 충돌이 심해 적용방법은 간단하지만 제대로 먹히질 않았다.. 그 와중에 summernote 에디터의 lite 버전을 사용하면 충돌없이 사용할 수 있는 것을 확인했다. 해당 코드를 body안에 추가해준다 (본인은 폼태그 뒤쪽에 넣어줌) 다른 폴더를 넣어줄 필요 없이 위쪽의 cdn코드를 넣어주고 아래의 스크립트 코드를 넣어준다. 그 후 에디터를 넣고 싶은 위치에 연결시켜주면 된다. $('..