organize/프로젝트 19

1차 프로젝트 추가 - 암호화2

구현하려고 했던 것회원 가입 시 사용자가 입력한 평문 비밀번호를 암호화하여 DBMS Member 테이블의 pw 컬럼에 저장하고, 로그인 시 회원가입 시 입력한 비밀번호로 로그인 성공 발생한 문제DBMS Member 테이블에 pw컬럼에 암호화된 비밀번호가 입력, 하지만 로그인 시 회원가입 시 입력한 비밀번호로 로그인 실패, 암호화 된 비밀번호를 입력해야 로그인 성공 문제 해결을 위한 접근로그인 할 때 사용자가 입력한 평문 비밀번호와 DB에 저장된 암호화된 비밀번호를 직접 비교.Spring Security의 PasswordEncoder 인터페이스에서 제공하는 matches() 메소드를 사용 boolean matches(CharSequence rawPassword, String encodedPassword);..

1차 프로젝트 추가 - 암호화1

만들어진 프로젝트에 스프링 시큐리티의 암호화를 적용하기로 함  1. 라이브러리 추가기존 프로젝트 스프링 프레임워크의 버전은 4.3.8이었으나 Spring Security를 이용할때 4.x 버전에 버그가 있다고 하여,스프링 프레임워크의 버전을 5.0.7로 변경한 후 Maven Dependencies에 추가할 라이브러리를 pom.xml에 작성해주는 것으로부터 시작 pom.xml(...생략...) 11 5.0.7.RELEASE 1.6.10 1.6.6 org.springframework.security spring-security-core ${org.springframework-version} org.springframework.security spring..

컬렉션 프레임워크(1) Map

컬렉션 프레임워크는 모든 자바 교재를 보면 뒷부분에 나오는 것이지만 생각보다 자주 까먹게 되는 부분인 것 같다. 따라서 정리가 필요할 것 같다는 생각이 들었다. 자주 사용하려고 노력도 필요하지만 언제, 어떤 식으로 사용되는지 등을 다시 알아보는 시간을 가져고 보자 한다. Map 정의 및 특징컬렉션 프레임워크에서 키(Key)와 값(Value) 쌍으로 데이터를 저장하고 관리하는 자료 구조.데이터를 빠르게 검색, 수정, 삭제할 수 있는 기능을 제공키는 유일해야 함. 동일한 키에 대해 여러 값을 저장할 수 없음값은 중복이 가능함. 같은 값은 여러 키에 중복될 수 있음null의 키와 값 Map의 일부에서는 허용됨 정의는 쉽게 키-값 쌍으로 저장된 구조로 간단히 정리가 되는데 map은 언제 사용할까? 라는 의문이 ..

justBoard15 댓글 구현(6) 完

댓글 페이징 처리를 숨겨야한다.  글 읽기글번호${boardDTO.no}글쓴이${boardDTO.id}조회수${boardDTO.readcount}작성일글제목${boardDTO.subject}글내용${boardDTO.content} 댓글은 회원만 작성 및 확인 할 수 있습니다. 확인을 위해서 회원 가입해주세요.댓글비밀글 댓글 목록 비밀 댓글은 굵게 표시됩니다. 작성된 댓글이 없습니다. 작성자: ${replyDTO.id} 비밀글입니다..

justBoard15 댓글 구현(5) 댓글 페이지 처리

댓글 페이지 처리는 게시판 글 페이지 처리와 마찬가지로 PageDTO를 이용하면 될 것 같다.그래서 Controller, Service, DAO에 pageDTO객체만 추가해 주면 될 것 같다는 생각이 들었다. BoardController @GetMapping("/content") public String content(BoardDTO boardDTO, ReplyDTO replyDTO, PageDTO pageDTO,HttpServletRequest request, Model model) { System.out.println("BoardController Content()"); boardDTO = boardService.getBoard(boardDTO); //글에 대한 정보 boardService.re..

justBoard14 댓글 구현(4)

지난번 reply 테이블에 board 테이블의 no를 외래키로 지정했다.그리고 다음과 같이 추가 수정했다.content.jsp 글 읽기글번호${boardDTO.no}글쓴이${boardDTO.id}조회수${boardDTO.readcount}작성일${boardDTO.writetime}글제목${boardDTO.subject}글내용${boardDTO.content} 댓글비밀글 댓글 목록${replyDTO.id}${replyDTO.replyContent}  BoardController @PostMapping("/replyInsertPro") public String replyInsertPro(ReplyDTO replyDTO, Model model) { System.out.println("BoardCont..

justBoard13 댓글 구현(3) 데이터

화면까지 구성했고 어떤 식으로 주소매핑을 해야 할지 정했다.이번에는 주소매핑에서 mapper까지 설정해 보도록 하겠다. 이전글에서 Update로 되어있는 부분은 Insert로 수정하였다. 댓글을 작성하고 작성 버튼을 누르면 /board/replyInsertPro 여기서 댓글을 작성하는 처리과정을 거치게 된다. 이 과정부터 시작해 보도록 하자 BoardController @PostMapping("/replyInsertPro") public String replyInsertPro(ReplyDTO replyDTO, Model model) { System.out.println("BoardController replyInsertPro()"); BoardDTO boardDTO = new BoardDTO(); ..

justBoard12 댓글 구현(2) 화면

2일 전 화면 구성에 대해서 테이블 생성과 DTO를 만들었다.오늘은 화면 구성을 구현하고 다음에 기능을 구현하도록 할 예정이다. board/content.jsp에 대충 hr태그와 textarea태그를 넣어서 검사를 통해 크기 조정을 해보았다.  추가해야 할 부분은 등록하는 버튼, 작성자, 비밀글 체크박스가 될 것이다. 추가해야 할 부분을 추가해보았다. 글 읽기글번호${boardDTO.no}글쓴이${boardDTO.id}조회수${boardDTO.readcount}작성일${boardDTO.writetime}글제목${boardDTO.subject}글내용${boardDTO.content} 댓글비밀글 뭔가 그럴싸해보인다. 생각보다 나쁘지 않다고 느껴진다. 다음으로는 댓글 목록이 필요하다. 댓글 목록은 댓..

justBoard11 댓글 구현(1) DB

댓글을 구현해보고자 한다. 객체댓글과 관련된 객체를 먼저 어디에 무엇을 만들지 먼저 생각해 보도록 하자.티스토리의 댓글을 살펴보면 댓글 작성자, 댓글 내용, 댓글 작성 시간, 비밀글 여부 이렇게 생각해 볼 수 있다.DTO를 새로 만들어도 될 것 같고, 아니면 기존에 있던 BoardDTO에 객체를 추가하는 방법이 있을 것 같다. 만약 새로운 ReplyDTO를 만든다면String id, String replyContent, boolean replyHidden, Timestamp replyWriteTime 이렇게 객체를 만들면 될 것 같다. BoardDTO에 객체를 추가하는 식으로 한다면String replyContent, boolean replyHidden, Timestamp replyWriteTime을 추..

justBoard10 마무리

이전글 justBoard9에서 어제 몇 시간동안 왜 오류가 발생하는지에 대해서 이유를 찾지 못했다. 심지어 두 시간동안 고민해보고 gpt에도 물어보았다. 오류가 날 부분에 대해서만 코드를 보여주지 말고 이유만 알려달라고.. 그럼에도 내가 작성한 코드에서는 문제가 없다고 답을 해줬다. 문제를 해결하기 위해 명령 프롬프트에서 다음과 같이 데이터 삽입을 시도해보았다.이 곳에서도 들어가지 않는 것을 발견할 수 있었다. 이걸보고 오늘에서야 문제를 발견할 수 있었다. 이유는 컬럼명 때문에 발생한 문제였다. no와 subject는 MySQL 예약어였기 때문에 board 테이블을 만들 때 백틱을 이용해서 만들었다. 때문에 컬럼을 찾을 수 없어서 데이터가 입력되지 않았다.즉, 문제 원인은 컬럼명 입력을 예약어로 만들었고..

728x90