포폴 수정? - 서비스 소개 필요?
회원탈퇴시 게시글 삭제? 혹은 잔류?
admin 계정 권한 부여.
- 블로그 기획서
- 블로그 기술 설명서
- 서비스 기획서 <- 기획서 잘 쓰기. 기대효과.. 시장분석... 성공할 확신...
- 서비스 기술 설명서
tts ( 참고 )
프로젝트 기술 설명서 ( 참고 )
0923
월요일까지 준비해야 하는 것
- 프로젝트 개요 PPT
- 프로젝트 기술 설명서
수요일까지준비해야 하는 것
- 프로젝트 개요 PPT
- 프로젝트 기술 설명서
10월 4일까지는 서비스의 핵심 필수 요소들이 모두 구현되어야 함.
- 현재 진행상황 공유
* 목요일 발표 내용
- 프로젝트 개요 (PPT)
- 기술적인 설계가 아니라, 비전문가에게, 내가 진행하는 프로젝트가 어떤 내용인지 알리는 목적
( 기술적인 부분 > 프로젝트 종료 후에 만들 예정 )
- 현재 상황
- 이미 구현한 기능 목록
- 앞으로 구현할 기능 목록
- 예상되는 어려움
* 프로젝트 종료
- 날짜 : 2020.09.23
- 종료일 이후부터는, 포트폴리오 문서 작업을 해야 합니다. ( 참고 : 포폴 예시 )
대략 계획
아무리 길게 끌어도 19일(토)까지는 기능 구현을 완성해야 함. > 20, 21, 22 디자인 최소 3일.
현재의 방식으로 BOARD를 사용하는 메리트가 있는가???
그냥 MEMBER로도 되는데???????
더 헷갈릴 뿐 아닌가??????????????????????////
MEMBER에 사이트 이름을 추가하는 편이 낫지 않을까?????????????????????????????????????//
> 어떤 사이트든 자유게시판, 공지사항은 필요. 이를 위해 board는 살려야 함.
미세팁
- select가 많을 경우 검색을 하고 싶다면 select2 사용. > select2 라이브러리를 불러와야 함.
- a 태그를 버튼처럼 쓰고 싶다면 a 태그 안에 button 태그 넣기 (참고 )
![](https://blog.kakaocdn.net/dn/zNaxk/btqHelbPf1M/JLEbMB3htOhPO3UsvgXow1/img.png)
- 반응형 줄바꿈
- 기본 : word-break: break-all;
- 안 깨지게 하는 법 : word-break: keep-all;
- extra
- extra를 불러오지 못할 때 > dao.xml에서 resultType을 resultMap으로 변경!
- 이 때, resultMap 내용물은 소문자로 적기.
![](https://blog.kakaocdn.net/dn/kyje4/btqHjrjvm4C/qRpGAKDzD27mTPp6rmWdI0/img.png)
-
!! 추가 DB 필요 !!
series / chapter 추가 필요.
toastEditor는 모바일에서 이상함 > 변경적용 참고. 테이블도 반응형으로 적용
READIT
- 한 개의 ID당 한 개의 개인 블로그 소유 가능
- 장르 선택
- 카테고리 선택 ( 시리즈 / 단편 )
- 댓글 ( 로그인 후 이용 가능. 비밀 댓글 checkbox )
- 디자인은 추후에.
현재 문제점
- 인증 코드 메일 발송(attr)
- write의 형식을 toast editor로 변경 > 최우선!
- 가입시 몇 번째 가입회원인지 띄우려 했으나 '1번째 회원'으로 계속 뜸. > Util 사용으로 해결
- 정보 수정 / 로그아웃시 기존의 doModify, doLogout이 url에 그대로 남아있음. > 해결 (alert)
- 게시글 작성과 리스트의 url이 원하던 형태가 아닌 단순히 write/list로만 되어있음. 수정 필요.
방향 잡는 중
- 공지사항과 자유게시판은 필요가 없음.
- 보드가 필요 없고, 대신 카테고리가 필요함.
- 한 사람의 게시물들을 보는 형식 > 사람 개개인을 보드로 설정하는 것은?? (board에 memberId 추가)
- home에서는 전체 게시물 중 인기 게시물들을 볼 수 있음. > article에 hit 추가 필요
- home에서 노출시키고 싶은 것 : 인기 게시물 / 인기 시리즈 / 사이트 사용법 / 인기 작가 최신글
- http://localhost:8085/usr/article/detail?id=10
- http://localhost:8085/usr/article/{boardCode}-list?series=10574 (혹은food처럼 string?)
- http://localhost:8085/usr/article/{boardCode}-detail?series=10574&id=3
- http://localhost:8085/usr/article/{boardCode}-write (본인 보드에는 본인만 글 쓸 수 있음)
- 1 member당 1 board를 실현하려면 회원가입 할 때마다 board 생성을 해야 함.
> 메일 인증을 한 후에 blog를 생성하는 건 어떨까?
> blog 이름은 default로 loginId로 하고, member 테이블에 >> 폐기
해결해야 하는 것(new!)
chapter
- list
- 페이징
- 검색
- detail
- 이전글/다음글
novel
- modify
해결해야 하는 것(old)
- MyList와 Write의 경우, boardCode를 이용하여 링크를 탄다.
Ex. loginId가 p인 계정으로 로그인 한 경우, MyList를 누르면 p-list, Write를 누르면 p-write이 url에 찍힘
이 때, board가 생성되지 않은 member로 로그인 한 경우, MyList/Write가 안 뜨도록 하던가, 접근 불가능하게 해야 하는데 그냥 -list로 이동됨. > list 기준이 멤버가 아닌 보드가 되어서 폐기
- head.jsp의 경우 추후 LIST 형식으로 변경. (보드/카테고리)
- series table
- 존재 의의 : 동일 시리즈를 모아 보기 위해서
- 들어갈 내용 : id / regDate / updateDate / memberId / name(series) / displayStatus / chaptersId(챕터 하나하나의 아이디까지 넣을 필요가 있는지?) / cateId(필요??)
- 해당 테이블이 생길 경우 article table에 seriesId를 추가해야하는가?
- chapter table
- 존재 의의 : 시리즈의 한 챕터(특정 화).
- 들어갈 내용 : id / regDate / updateDate / memberId / seriesId(이렇게 된다면 series table과 서로 가리키는 것 아닐까.. 중복? 필요성에 대해 생각하기) /
- 카테고리랑 board의 경우 delStatus랑 delDate보다는 displayStatus만 남겨두는 편이 낫지 않았을까? 하다못해 카테고리라도???
- 카테고리와 시리즈의 우선순위.. 카테고리는 필요 없는 것 아니었을까.................................................
- Write : 선택할 카테고리가 없는 경우 글 생성이 안되는데, 디폴트로 들어갈 카테고리를 설정해두는 게 낫지 않을까?
- LIST > 페이징
해야할 것
#DB
- chapter
- 몇 화인지 column 추가. (chapter 작성 시 title을 작성하는 작가도 있고 아닌 작가도 있기 때문.)
> title이 없어도 되도록 하기 위함. > 취소
- 장편 시리즈 중간의 chapter를 삭제해도 해당 부분은 내용을 없앨 뿐, 뒤의 화수를 땡겨오는 행동은 X > 취소
- 장편 시리즈의 글을 작성할 때 title의 defaultValue 설정. > 취소
(Ex. 10화 연재. 11화 작성하려고 write를 할 경우, title에는 자동으로 '11'이 적혀 있도록?)
- 글 작성시 [novel 선택] 란에는 seriesStatus가 장편인 novel들만 뜨도록? > 취소 (단, 단편들은 하단 배치)
- 이렇게 만들고 싶은 이유: 단편 1개일 지라도 이를 위해 novel 1개를 생성해야 하는데,
이 경우, novel이 너무 많아짐. 단편이 많아질 경우 선택할 카테고리가 많아지는 문제가 됨.
- 고민할 부분 : 그렇다면 [단편] 분류인 novel에는 애초에 글 한개밖에 작성할 수 없도록 해야하는것인가?
>>>>>>> ??? 이럼 novel 단편의 존재 의의가 없는 거 아닌지 ???
- 조회수, 추천수 cloumn 추가
- TTS
- '모두 읽기'를 할 경우, 다 읽으면 자동으로 다음 화로 넘겨서 읽도록 하기.
- 다 읽으면 event로 onEnd가 뜨는 걸 이용???
- novel
- novel은 메일 인증을 완료한 사람만 접근 가능해야 함. - TBD
- 접근할 때 만약 로그인한 계정의 authStatus가 0이라면 홈으로 돌아가게 해야함.
#Spring
- list
- chapter을 보기 위해서는 반드시 novel을 거쳐야 하는 지금의 구조. > 수정 필요
> 어떻게? list 들어가면 게시물 novel별로 보기, chapter별로 보기 버튼을 따로 만들어야 하나?
#디자인
top-bar
- Home
- Novel (메일 인증?)
- 노벨별 전체보기 (total-list)
- 챕터별 전체보기 (추가 필요)
- MyNovel (메일 인증 필수)
- 나의 노벨 (a-list)
- 나의 챕터 (추가 필요)
- 나의 챕터 작성 (a-write)
- 나의 노벨 setUp (a-setUp)
- Free
- Notice
1004
종료.
1002
한 것
- admin 계정에 권한 부여
- 챕터 삭제
- 댓글 삭제 >> replyService 수정함. detail.jsp 수정해야 함.
- 게시글 삭제
- 회원 탈퇴시 해당 계정이 작성한 글들 어떻게 할 지. > 잔류
- 포폴에서 39p의 챕터 삭제 내용이 비어있음.
0929
추가로 작업한다면...
- 로딩바
- 강사 상담
- 추석 연휴 계획
- 0930 : 학원에서, 블로그 CSS 수정
- 1003 : 휴식
- 1004 : 카페에서, 블로그 기획서 보완
- 1005 : 학원에서, 서비스 오류 수정
- 1006 : 학원에서, 서비스 오류 수정
- 1007 : 카페에서, 이력서 작성
- 1008 : ...
- 1012 : 면접 시작
* 준비해야 하는 것들
- 블로그 완성
- 블로그 기획서, 기술 설명서
- 서비스 단계적 완성(모든 기능이 완벽하진 않지만 작동은 하는 상태)
- 서비스 기획서, 기술 설명서
- 이력서
- 자소서
* 추천
- 모든 준비가, 1006에 끝나는 것
- 최대 1010 전까지는 무조건 끝나야 함.
추가 구현?
연속 재생 기능.
autoplay용 버튼을 만들고, 이걸 누르면 다 읽은 후, 자동으로 다음 화로 넘어가면서 (이 때 parameter에 autoplay=1 추가되어 있음.) 재생 여부 컨펌 창 띄움.
> 예 누를 시, autoplay=1인 상태로 계속 읽고 다음화로 가는 걸 반복.
> 마지막 화에서는 다음 화로 가는 url 대신 마지막화임을 알리는 팝업 창 띄움.
할...할수잇도록...파이팅...
0928
한 것
- 회원 정보 변경 > 해결 : member-modify에서 nickname js 위치를 옮겼음.
- ajax로 닉네임 변경 가능 여부 체크할 수 있는 코드 추가했더니 닉네임을 건들지 않고는 수정이 진행되지 않음
> ajax로 안된다면 controller에서 해결하는 방법으로라도 하기.
0927
한 것
- 수정시 자물쇠가 그대로 수정 가능 영역에 들어옴. (지워도 새로고침하면 사라지긴 하지만.)
> 해결 : before 이용
> 이로 인한 문제 : 수정완료를 누른 후 새로고침을 하면 자물쇠가 하나 더 늘어있음;
> 해당 문제는 해결 : replyController에서 subString 이용 > 그러나 근본적인 해결은 아니다...
문제점
- 비밀 댓글 ( 참고 )
- 처음 쓸 때만 가능. 수정시 비밀 댓글의 노출 여부를 수정할 수 없음.
0925
한 것
- 모바일 화면
- findId
- findPw
- 시리즈 이전글/다음글 css
- 이전글/다음글
- 시리즈용 이전글/다음글만 가능한 지금의 상황... 이전에 됐는데 어째서??? > 해결 : novelId 관련 코드 삭제
0924
한 것
- 모바일 화면을 위한 css
- detail
- main
- write
- genNovel
- login
- join
- checkPw
- myPage >> myPage와 modify는 고치지 않아도 괜찮음.
- modify (member)
- member modify에서 닉네임을 기존에 있던 것으로 바꿀 경우 error 발생. > 해결
0923
한 것
- 메인 페이지 > 조회수 관련 수정
- 소설 작성 페이지
- 소설 수정 페이지
- 비밀번호 체크 페이지
- 회원 정보 페이지
- 리스트 페이지
- setUp 페이지
문제 발생
- novel 조회수의 업데이트가 novel-list에서 이루어져서 main에선 이전 조회수 정보로 운영됨. > 해결
0922
한 것
- 메인 화면
- novel-detail
0921
한 것
- head 관련 css
0920
한 것
- 페이징 (작가별)
- 소설 볼 때 검색창 삭제
- 페이징 (setUp)
- 페이징 (article)
- 검색 (article)
- 이전글/다음글 (article)
0918
한 것
- 비밀 댓글
- 페이징 (전체일 때)
고민중
- 단편 기능을 아예 없앨까?
0917
해야 하는 것
- 페이징
- 검색 (article)
- 비밀 댓글?
- 카테고리별 보기.......... 가능할까? 한다면 novel에만...chapter말고....
한 것
- 검색 (novel 완료)
- novel-list에서 소설당 챕터 수 추가 (db 추가 완료)
- 공지사항은 관리자 회원만 가능하도록(memberId=1)
- detail - 장편 챕터의 소설 관련 수정
- list(전체/작가별)일 때, 이전글/다음글
문제 발생
- 이전글/다음글의 적용은 현재 a-list만 가능(total 미적용)
> 그런데 서치 결과물의 경우, 이전글/다음글은 total-list처럼 닉네임 구분 없이 움직임.
(서치하지 않았을 경우엔 해당 문제는 발생하지 않음)
> 문제발생 위치 : chapterDao.xml - getChaptersBySearchKeywordAndSearchKeywordType
> 해당 부분에 memberId를 넣으면 당장 이 문제는 해결되나, 전체 chapter 보기에서 들어왔을 경우와, 작가별 chapter 보기의 구분이 가능하지 않아서, 이렇게 해결할 지 전체 보기에서 서치했을 경우 문제 발생.
> 임시 해결 : location을 넣고, 전체 리스트일 경우엔 null, 작가별 리스트일 경우엔 해당 작가의 닉네임을 넣었음.
> 문제가 생기지 않을 지 실험 많이 하기.
- detail
- 장편 시리즈의 경우, 한 편만 존재한다면 위의 시리즈명 바로 오른쪽의 [/]와 하단의 시리즈 관련 이전글/다음글에서 문제 발생
0916
한 것
- 조회수 추가 (novel, chapter, article)
0915
한 것
- 노벨리스트 페이지에서 글작성 버튼 띄우기.
0914
한 것
- chapter - 장편 novel일 경우 동일 novel의 이전글/다음글 가능.
- novel - modify 구현
0913
한 것
- chapter - doDelete 구현
- chapter - modify 구현
- chapter - detail에 tts 적용
0912
한 것
- 메일 인증시 자동으로 novel 생성하던 거 삭제하기.
- 본래 메일에서 인증하기 누르면 곧바로 readit으로 갔는데 테스트를 위해 local로 가는 것도 만들었음.
=> 플젝 완성하면 수정하기!!
- 현재 novel은 닉네임으로 관리하는 데, 닉네임 수정시, novel-list도 수정하도록 해야 하는.
- 새로운 novel 추가할 때, seriesStatus 관련 쿼리문을 작성하지 않았기에 장편인 novel이 없었음.
- DB에서 reply 테이블에 relType, relId가 아닌 articleId가 존재하여 해당 부분 수정 & replyDao.xml에서 매핑 수정.
- novel - doDelete 구현
0911
한 것
- before에 haveNovel (로그인 한 계정이 novel을 갖고있는지 유무 판단) 을 추가하여, novel의 list와 write의 노출 유무를 결정.
- novel 생성하기 기능 구현
- DB ~ chapter에서 cateId를 삭제.
(이유: 챕터는 반드시 노벨에 속해야 하고, 노벨의 카테고리에 따라 챕터의 카테고리가 결정되기에,
기존에 novel과 chapter 둘 다에 cateId를 넣었으나, 이젠 novel에만 넣도록 수정함.)
novel-write.jsp
function NovelWriteForm__getAutoNovelTitle(input){
var form = input.form;
$.get(
'getAutoNovelTitle',
{
novelId: form.novelId.value
},
function(data){
var $title = form.title;
if(data.resultCode.substr(0, 2) == 'S-'){
$title.empty().append('<div style="color: red;">' + data.msg + '</div>');
}
else {
$title('value="' + data.msg + '"');
// 다른 장편 novel 눌러서 title이 작성될 경우에는 비워야할텐데,
// 제목을 먼저 쓰고 novel을 선택할 경우엔 어떻게...?
// 해당 ajax 부분 실행을 title이 비어있을 경우로 한정?
// 그런데 이렇게 할 경우엔 해당 title의 value값이 auto로 생긴 것인지 아니면 직접 작성한 것인지 판단이 불가.
}
},
'json'
);
}
NovelWriteForm__getAutoNovelTitle = _.debounce(NovelWriteForm__getAutoNovelTitle, 100);
에러 발생
Cannot serialize; nested exception is org.springframework.core.serializer.support.SerializationFailedException: Failed to serialize object using DefaultSerializer;
- 발생 이유 : session을 이용하여 member 정보까지 저장해서. (memberId, member 2개를 저장했음)
기존엔 문제가 되지 않았으나 redis를 사용하면서 문제가 됨.
- 해결 : member를 session으로 저장하던 것을 삭제 (이로 인해 session으로 저장하는 것은 memberId 뿐).
그리고 또 이와 같은 상황을 방지하기 위해 기존 코드에서 꼭 session을 쓸 필요가 없는 것은 req로 대체함.
0910
- SQLyog 호스트에 연결 설정 ( 참고 )
0909
- 내일까지 사이트 2개 올리기
- 블로그 도메인
- 서비스 도메인
- 문제 발생
- redis > 해결 : Redis-x64-xxx.msi 설치
- 메일 인증 : local로 들어가게 됨.
0908
* chapter를 쓸 때 novel을 선택한다는 것이 기준인데 이 경우, 카테고리 선택은 필요가 없음.
> 어떻게 해결하지??
> 1. 특정 novel에서 chapter쓰기를 하는 경우와 그냥 chapter쓰기 하는 경우로 나누거나,
2. 기존 방식대로 가되, 선택한 novel의 카테고리와 다를 경우 경고창???
> 2의 경우 결국 강제로 바꿔야 하는 거니까 의미 없지 않나?
> 1로 가되, 새로 추가된 장편 novel의 경우에만 한정시키고, 단편물의 경우, 초기 생성된 novel에서 작성 가능 및 이 경우 카테고리는 자유롭게 할 수 있는 것으로...?
> 그렇다면 submit할 때,
1. 작성한 글의 novel명 확인
2. novel명이 초기 novel이 아닌 경우, 카테고리 설정 무시...?... ...........
> 이것도 이상함....
> 첫번째 셀렉트 박스 값에 따라 뒤의 셀렉트 박스 값을 다르게 하기
.jsp
<div>
<div class="row">
<div class="col-3">
<select name="06Lv1" id="06Lv1" onchange="setSelectBox(this)">
<option value="">전체</option>
<c:forEach items="${1depthList}" var="resultV0" varStatus="status">
<option value="${resultV0.mcbscode}">
${resultV0.mchgname}
</option>
</c:forEach>
</select>
</div>
<div class="col-3">
<select name="06Lv2" id="06Lv2" onchange="setSelectBox(this)" disabled>
<option value="">전체</option>
</select>
</div>
</div>
</div>
> 잘 안된당... ajax 동적 셀렉트 박스 < 이 키워드로 검색 함 해보기.
>> 원하는 형태의 구현
1. novel 선택 값에 따라
2. category 선택이 가능하거나(단편들) 혹은 불가능하거나(category 설정이 되어있는 novel)
* 해야 하는 것
- novel 생성 / 수정 / 삭제
- novel의 카테고리를 수정할 경우 소속된 chapter들의 category도 일괄 수정
- novel을 삭제할 경우 내용물은 1. 삭제 2. novel에 소속되지 않는 일반 chapter로 변경
- http://localhost:8085/usr/novel/aaa-list?novelId=3
- aaa라는 닉네임을 가진 경우 위처럼 novelId로 어떤 노벨을 볼 지 정해지는 데
- chapter 수정 / 삭제
* 이것저것 생각중
- novel에 소개말 적는 것 / secretStatus(나만보기) 을 추가할까?
- reply에는 secretStatus 추가 필요할 듯. (비밀댓글!)
* 내일 예정 (참고)
- www.ncloud.com (가입 완료. 카드 등록)
- 닷네임, 카페24, 가비아 or https://iwandmyname.com/ (도메인 1개 구매)
- dnszi.com 가입 (완료)
- 달에 2~3만원씩 나가는데 한 번 세팅해놓고 정지해놓으면 됨....?
######
도메인 구매해야 함.
범용성 있는 도메인을 사는 게 좋겠죵.
**** 파일 질라 문제 발생 ****
오류: 디렉터리 목록을 조회하는 데 실패함
=> 해결!
=> 문제 원인 : 방화벽
=> 해결 방법 : 시작 > 제어판 > 윈도우 방화벽 > 고급 설정 > 인바운드 규칙 > ftp client 프로그램 아래 캡쳐와 같이
( 참고 )
0907
- 발표
- 메일 인증을 할 경우 해당 계정의 novel을 생성
- novel 내의 글이 없는 경우 해당 novel은 TotalList에선 보이지 않도록.
현재 문제
- 메일 인증 시 메일을 변경하면 인증이 취소되나, 인증에 성공했던 메일을 다시 열면 현재 설정 메일과 다르더라도 메일 인증에 성공하는 문제가 발생. > 인증코드 remove로 해결
- 메일 인증 후 사이트 돌아가는 게 잘 안 됨. > novel 함수 문제?
- 팔로우? 구독
ㅅㅅㅁ
DB
- novel : name / id unique 걸기
- 게시글 조회수 추가
계획
!!블로그
!!서비스
- 구글 애널리틱스(접속통계)
- 구글 애드센스
!!리눅스 - 매달 2만원 정도. 수업 중간마다 할 예정. 이 외의 시간에는 프로젝트 진행.
- 따라하기
- 도메인, SSL, 배포, 백업, 보안
!!오라클 (3일)
- 동영상
!!안드로이드 (5일)
!!스프링(약점)
- 동영상
16일 이수자 테스트??? ㅇ0ㅇ
아래 두 개 사이트 가입하기.
NAVER CLOUD PLATFORM
cloud computing services for corporations, IaaS, PaaS, SaaS, with Global region and Security Technology Certification
www.ncloud.com
DNSZi - 무료 네임서버(dns) 관리 서비스! 무료파킹서비스! 무료포워딩서비스!
도메인 DNS관리를 웹에서 쉽게 하세요! - DNS를 관리하는데 시간과 비용이 드시나요?- 번거롭게 도메인 등록업체에 매번 DNS정보 수정을 요청하시나요?- DNS관리자에게 DNS정보 수정을 요청하�
dnszi.com
0903
- DB 추가 (series)
- 구조 개선 필요 (고민중)
- 공지 게시판 글 작성은 admin 계정만 가능하도록
- series의 소속
- member : board가 문제. 불러오는 것이 어렵고 (불가능?) 이후에 board 정보가 없어서 힘듦.
- article : free, notice 구분 없이 작동됨. 이 경우 강제로 free에 고정할 텐데 이렇게 수동으로 적용시켜도 되는가?
- 작성자의 닉네임을 클릭하면 주소창은 free-list/series?memberId=2 이런 식으로?
이대로면 이 때 free는 board에서 갖고오는 것이 아닌 수동으로 작성해도 괜찮은가?
- 현재 보드리스트 2개 존재. free / notice. 그리고 위처럼 할 경우 모든 글이 free로 몰림.
- DB category 모든 회원 일괄 적용. 종류 미리 정해놓기. 1개 이상 필수로 존재해야 함.
- DB series 개인별 적용. 타인이 볼 수 있고/없고 구분. 없어도 됨.
- 작성자 닉네임을 누르면 해당 작성자의 게시글들 리스트 / 시리즈 둘 다 뜨도록? 선택해서 뜨도록??
- detail - 카테고리 이름, 시리즈(에 포함된 게시글인 경우)의 이름을 뜨도록 하고 싶은데 이 경우 join이..................
>> series의 경우 articleService가 아닌 seriesService를 통해 얻어서 따로 model로 값 넣어줌.
0902
* 내일 발표
- 프로젝트 개요서
- 현재 상황
하고 싶은 거
- 댓글
- 리스트 페이징
- 검색
0901
하고 싶은 거
- 회원정보 수정 시, PW 페이지 거치도록 ( 참고 - java-blog : GIT / 동영상 | at : GIT )
- 댓글
- 0829에 했던 것 변경하기 ( 2020-07-30 참고 )
0831
오늘 해야 하는 거
- 본인 서비스 구현
- 프로젝트 진행상황 발표
하고 싶은 거
- 메일 인증 > 해결
- 탈퇴시 '로그아웃 상태' 혹은 '해당 아이디로 로그인 상태'가 아니어도 가능한지 확인 > 막자... > 해결
0829
오늘 한 거
- 패스워드 바꾼지 3개월이 지났다면, 비밀번호 변경 권유 (서치 키워드 : java 날짜 차이 계산, java 현재 날짜)
- 현재, 임시 패스워드를 사용중이면 로그인 시 한 번 경고창 띄우기 > member TABLE 수정 (db.sql 참고)
0828
오늘 해야 하는 거
- 현재, 임시 패스워드를 사용중이면 로그인 시 한 번 경고창 띄우기 > 해결(0829)
- 패스워드 바꾼지 3개월이 지났다면, 비밀번호 변경 권유 > 해결(0829)
- 소스코드, db.sql 압축
오늘 한 거
- 회원가입 시 아이디 중복 검사를 ajax로 처리 (lodash debounce 적용) - 참고
- list / detail - 작성자 닉네임 노출
- memberDao.xml에서 getMemberByLoginId에 AND delStatus=0 추가. > 해결
-> 이게 없어서 삭제한 아이디로 로그인이 되는 사태가 발생
-> 삭제된 아이디라 정보를 받아오질 못하니 head에선 로그아웃 상태인데,
사실 내용물이 텅 빈 로그인 상태이니 '회원가입', '로그인' 페이지에 접근이 불가능.
0827
오늘 해야 하는 거
- 소스코드 리팩토링
- 중복된 로직 제거
- 지저분한 소스코드 정리
- 변수명, 함수명을 좀 더 일관성있고 직관적으로 변경
- 테스트
- DB 인덱스 전략 재확인
- 회원정보 수정 시, PW 페이지 거치도록
오늘 한 거
- 수정 (첨부파일X)
- common.js 추가 <- 이게 없어서 renderYoutube가 안되었던것.
- common.css 추가 <- 이게 없을 경우, 유튜브 화면 비율 이상함.
- 로그인/로그아웃 가드에 findLoginId, findLoginPw 추가
- write에서 file 내용 삭제 (혹시 모르니 주석...)
- 본문에 동영상, 이미지 저장이 가능한데 첨부파일까지 하면 너무 지저분함.
- 회원가입 시 아이디 중복 검사를 ajax로 처리 ( 참고 : GIT / 동영상 )
- lodash의 debounce 적용하여 최적화(ajax 통신횟수를 극도로 줄이기) > 해결(0828) : 한줄만 추가하면 되었던 것을...
- 아이디 입력란이 비어있다면 메세지도 없어야 함.
0826
- 회원 탈퇴
- delStatus를 1로
- 해당 아이디로 다른 사람이 새로 가입할 수 X
0825
- 글 삭제
- 게시글에 첨부 파일(img, video) 및 해당 첨부 파일 detail에서 노출시키기
0824
완료
- 비번찾기(이메일로 임시 비번 발송)
- 1. 로그인 아이디 / 이름 / 메일 주소 작성
- 2. 작성 정보와 (로그인 아이디 기준) 계정이 일치할 경우 작성 이메일로 임시 암호 발송
- 후에 Member에 임시번호 status 같은 걸 추가하여, 비번 변경 요청을 alert 하는 것도 구현해보기.
- board 삭제 > member로 대체 가능. > 삭제 안 함. (삭제했던 코드는 branch에)
0821
- 주말까지 목표
- 로그인 / 로그아웃
- 회원가입
- 회원정보 수정
- 아이디 찾기
- 가입시 감사 메일 발송
- 자유 공지사항 게시물 작성
- 자유 공지사항 게시물 리스트
0820
- 완료해야 하는 기능
- 로그인, 회원가입, 회원정보수정, 가입감사메일, 아이디찾기
- 오늘 필수로 구현해야하는 기능 : 게시물 리스트 / 작성 (어떤 서비스건 자유게시판, 공지사항은 있어야 함.)
- board 테이블, article 테이블 생성
- /usr/article/free-write : 자유 게시물 작성
- /usr/article/notice-write : 공지사항 게시물 작성
- 힌트 (참고 : 48. 다중 게시판)
- @RequestMapping("/usr/article/{boardCode}-write")
- public String showWrite(Model model, @PathVariable("boardCode") String boardCode) {
- /usr/article/free-list : 자유 게시물 리스트
- /usr/article/notice-list : 공지사항 게시물 리스트
- @RequestMapping("/usr/article/{boardCode}-list")
- public String showList(Model model, @PathVariable("boardCode") String boardCode) {
- 작업 11, 매 요청마다 필요한 정보를 미리 세팅해 두려고 인터셉터 도입
- GIT
- 동영상
0819
- 회원가입
- 로그인
- 회원 정보 수정 > 보완 필요
- 회원 정보 수정 창으로 들어가기 전, PW 체크 필요. (URL 입력을 통한 skip이 없도록)
- 아이디 찾기 (이름, 이메일 입력)
- 현재 alert로 보여줌. mail로 수정하는 것이 나을까? (비번 찾기는 mail 확정)
- 가입 시 감사 메일 발송 > mail 관련 이해력 부족
DB
article
- 그림 첨부 가능.
- 유튜브 영상 첨부 가능 - toast editor?
- 추천
- 북마크
- 추가 필요
- 추천
- 카테고리 ID
CREATE TABLE `article` (
`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME NOT NULL,
updateDate DATETIME NOT NULL,
delDate DATETIME DEFAULT NULL,
delStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
displayStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 1,
title CHAR(200) NOT NULL,
`body` LONGTEXT NOT NULL,
memberId INT(10) UNSIGNED NOT NULL,
boardId INT(10) UNSIGNED NOT NULL,
`cateId` INT(10) NOT NULL
);
member
- 이메일 인증
- 추가 필요
- bookmarks : '북마크'한 article의 id
- subscribe : '구독'중인 member의 id > 최신글 띄울 수 있도록. > 우선순위 낮음.
CREATE TABLE `member` (
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME,
updateDate DATETIME,
delDate DATETIME,
delStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
authStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
loginId CHAR(20) NOT NULL UNIQUE,
loginPw CHAR(100) NOT NULL,
`name` CHAR(20) NOT NULL,
`nickname` CHAR(20) NOT NULL,
`email` CHAR(100) NOT NULL
);
reply
- 비밀 댓글 (checkbox)
- `body`의 경우 LONGTEXT보다는 TEXT가 낫지 않을까? 댓글에서 저렇게 많이 쓸 필요가 있는 것인가 생각하기.
CREATE TABLE reply (
id INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
regDate DATETIME,
updateDate DATETIME,
memberId INT(10) UNSIGNED NOT NULL,
articleId INT(10) UNSIGNED NOT NULL,
displayStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
`body` LONGTEXT NOT NULL,
`private` TINYINT(1) UNSIGNED NOT NULL DEFAULT 0
);
category
- 창작
- 단편
- 연재
- 완결
CREATE TABLE category (
`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` CHAR(100) NOT NULL,
regDate DATETIME NOT NULL,
updateDate DATETIME NOT NULL,
delDate DATETIME DEFAULT NULL,
delStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
boardId INT(10) UNSIGNED NOT NULL
);
board
CREATE TABLE board (
`id` INT(10) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
`name` CHAR(100) NOT NULL,
regDate DATETIME NOT NULL,
updateDate DATETIME NOT NULL,
delDate DATETIME DEFAULT NULL,
delStatus TINYINT(1) UNSIGNED NOT NULL DEFAULT 0,
memberId INT(10) UNSIGNED NOT NULL UNIQUE
);
컨셉 : 소설 읽어주는 사이트
사용자들이 글을 읽는 것이 아닌 틀어놓을 수 있게.
시리즈 기능 구현하기.(이전글/다음글)
'강의' 카테고리의 다른 글
redis (0) | 2020.08.25 |
---|---|
파일럿 프로젝트 주제 정하기 (0) | 2020.08.18 |
오디션 프로그램 만들기 (0807) (0) | 2020.08.07 |
자바블로그(스프링부트) - 200803~ (0) | 2020.08.03 |
이후 (0) | 2020.07.15 |