인증, 인가
인증 authentication | 인가 authorization |
---|
신원확인 | 자원에 대한 권한 획득 여부 |
two-factor 인증 | 인증이 선행되어야함 |
단계
- 보호가 필요한 자원 식별
1) db 보호자원테이블에 저장
- 사용자 접근레벨 설정 (일반사용자, 관리자 등)
1) 접근레벨도 db에 저장
- 보호가 필요한 자원을 어느 레벨 사용자에게만 보여줄 것인지 (=인가정보)
1) 보호자원과 레벨의 관계를 형성한 db 정보 필요
- 요청 들어옴
- 보호자원인지 확인
- 클라이언트의 인증 여부 판단 (로그인 판단) =필터-> 로그인 redirect
- 클라이언트의 인가여부 판단 (롤 판단) =필터
Spring Security도 필터
게시판
- 주제결정: 게시판 구현
- 요구사항 분석
- 사용자 분류, 유즈케이스분류 -> 유즈케이스 다이어그램
- 각 케이스에 맞는 프로세스 절차화 -> 시퀀스 다이어그램
- 데이터 설계 -> 개논물ERD
- 개발
1. 주제결정: 게시판 구현
2. 요구사항 분석
- 게시글 쓰기, 수정, 삭제, 조회(목록조회, 상세조회), 추천
- 파일 업다운로드 포함, 댓글 구조 포함(REPLY, 계층형 게시판 (답글)), 덧글 구조 포함(상세조회 시 밑의 댓글)
상세
- 파일(업로드, 다운로드, 삭제) - 2개 이상 업로드 가능
- 덧글(쓰기, 수정, 삭제, 목록조회) - 2개 이상
3. DB 설계
게시글 (원본/답글, BOARD)
- 글번호 BO_NO NUMBER(6) PK
- 내용 BO_CONTENT CLOB
- 제목 BO_TITLE VARCHAR2(50) NN
- 작성자 BO_WRITER VARCHAR2(20) NN
- 날짜 BO_DATE DATE NN SYSDATE
- 조회수 BO_HIT NUMBER(4) NN 0
- 추천수 BO_REC NUMBER(4) NN 0
- 비번 BO_PASS VARCHAR2(200) NN
- 아이피(IPv6) BO_IP VARCHAR2(50) NN
- 이메일 BO_MAIL VARCHAR2(20 CHAR)
- 상위글번호 BO_PARENT NUMBER(6) -- 자기 참조형(OPTIONAL)
첨부파일(N) -> 정규화 필요
첨부파일 (N, ATTACH)
- latency time을 덜 발생시킬 수 있는 저장구조: 미들티어에 저장하고 메타데이터만 db에 저장
- 파일은 글삭제되어도 CASCADE로 삭제하지않고 따로삭제해야함 -> 이진데이터 삭제도 같이 일어나야하기때문
- 파일번호 ATT_NO NUMBER(6) PK
- 글번호 BO_NO NUMBER(6) NN FK
- 저장명 ATT_SAVENAME VARCHAR2(70 CHAR) NN
- 원본파일명 ATT_FILENAME VARCHAR2(50 CHAR) NN
- MIME ATT_MIME VARCHAR2(30 CHAR)
- 파일크기 ATT_FILESIZE NUMBER(10) NN
- 팬시크기 ATT_FANCY VARCHAR2(20) NN
- 다운로드수 ATT_DOWNCOUNT NUMBER(4) NN 0
덧글 (N, REPLY)
- 덧글번호 REP_NO NUMBER(6) PK
- 작성자 REP_WRITER VARCHAR2(20 CHAR) NN
- 날짜 REP_DATE DATE NN SYSDATE
- 비밀번호 REP_PASS VARCHAR2(200) NN
- 내용 REP_CONTENT VARCHAR2(100 CHAR)
- 글번호 BO_NO NUMBER(6) NN FK CASCADE
- 아이피 REP_IP VARCHAR2(50) NN
4. 단위 업무에 따른 uri
게시글&답글
- 쓰기: /board/boardInsert.do
- 수정: /board/boardUpdate.do
- 삭제: /board/boardDelete.do
- 목록조회: /board/boardList.do
- 상세조회: /board/boardView.do
- 추천: /board/recommend.do
첨부파일
덧글
- 쓰기: /reply/replyInsert.do
- 수정: /reply/replyUpdate.do
- 삭제: /reply/replyDelete.do
- 조회: /reply/replyList.do
5. 아키텍처와 디자인패턴