230421_80일차 : 머신러닝 & Spring / 230420_79일차 저작권문제로 비공개처리
1교시, 2교시, 3교시, 4교시 - 머신러닝(ex04_titanic 데이터를 활용한 생존자 예측 모델 만들기)
1. ex04_titanic 데이터를 활용한 생존자 예측 모델 만들기 - 75일차 정리
5교시, 6교시, 7교시, 8교시 - Spring(회원가입&게시판 프로젝트/ Spirng Security프로젝트)
1. 회원가입&게시판 프로젝트
8-4) 로그인 이후, 회원관련작업 - 77일차 정리
8-5) 게시판 수정
① 로그인을 안한 경우, '글쓰기' 버튼을 없애기 (로그인한 경우만 '글쓰기'버튼 생성)
② '수정, 삭제'는 글쓴사람만 가능하도록 => board 테이블에 'memID'컬럼을 추가해야한다
2. Spring Security 프로젝트
9-1) 세팅
> Server에서 stop, SpringMVC03 삭제 > SpringMVC03 복붙하여 'SpringMVC04' 생성 > 해당 프로젝트 우클릭하여 maven -update > Server에 SpringMVC04 넣기
> 3개의 모든 xml 삭제 : web.xml, root-context.xml, servlet-context.xml
> pom.xml 코드 추가
> 패키징 생성
> 자바파일 생성 : WebConfig.java / RootConfig.java / ServletConfig.java
> webConfig.java
- 빨강 : 해당 부모클래스로부터 extends(상속)받음
- 노랑 : 상속부 내용 입력후, 자동으로 빨간줄이 생겨 클릭하여 처리하면 아래처럼 노란 override부분이 생성됨
- 연두 : post방식 인코딩은 직접추가해야함(아래 이미지처럼 해당 부분=getServletFilters을 체크하여 생성) / 태그로 설정했던것을 자바로
> ServletConfig.java
- alt+shift+s - overried/implement Methods : 2개의 override 생성
- 노랑 : 상단부의 2개의 어노테이션 추가필요
- 빨강 : servlet-context.xml에서 연결할 3가지
> RootConfig.java
- 연결할 내용들은 propertise로 만들어 주입받아 사용 : src/main/resources - 우클릭 New File - persistence-mysql.properties(명칭정확해야함)
- 주의) 띄어쓰기도 인식하므로 맨끝에 주의
- 노랑 : 어노테이션으로 설정파일 명시
- 빨강
9-2) 보안작업(암호화)
> pom.xml > 설정파일 처리후 '업데이트'필수
> SecurityInitializer.java 생성 : 보안관련 class를 상속받아 사용
> SecurityConfig.java 생성 :
+ 요청에 대한 보안설정을 SecurityConfig.java에 추가해야한다
+ WebConfig.java에 SecurityConfig.class를 추가한다
=> 결과: 로그인, 회원가입등 DB에 값이 들어가는 경우 forbidden실행됨
> joinForm.jsp
+ 보안은 post방식일 때, DB에 insert하는 것만 주의할 것. 로그인은 아이디와 비밀번호라는 특수성때문에 보안필요
> loginForm.jsp
> imageForm.jsp : enctype이 multipart/form-data이므로 보안전달시 post방식이 아닌 get방식으로 전달가능
> updateForm.jsp
> main.jsp
+ 글쓰기(post방식) / 수정, 삭제, 조회수도 동일하므로 아래의 태그를 복붙해주면 된다
> 회원정보 업데이트시, 설정해둔 프로필사진이 사라지는 것을 수정