JDBC-MiniProject : Dear.Diary

Java-MiniProject : Dear.Diary

구체적인 기억보다 더 깊고 오래 남는 그 때의 ‘감정’으로 기억하는 나의 하루!
Dear Diary와 함께하는 하루하루가 쌓여서 일주일, 한달, 일년이 되고나면 누구나 멘탈갑이 될 수 있습니다!

Dear.Diary
:thermometer: 날씨, 수면상태, 그 날의 기분, 하루 단상 등
:pencil2: 자신의 감정과 연관된 외부 및 내부 상태를 매일 간단히 기록 및 분석하고,
:couple: 다른 사람의 기록을 살펴보는 과정을 통해
:muscle: 나와 주변의 마음건강을 유지하도록 돕는
:massage: 셀프 멘탈 헬스케어 체크 SNS입니다.


WHY WE SELECT THIS TOPIC?

topic


출처 : 동아사이언스


정신줄 꽉 잡아요!

:mask: 사회적 거리두기의 일상화로 우울감이 심해지고 있는 포스트 코로나 시대,
사람들은 다양한 방식으로 이를 해결하려 노력하고 있습니다.

자기를 알고, 남을 안다. 아는 만큼 보인다!

:notebook: 정신건강 전문의들은 일기쓰기를 추천합니다.
:pencil2: 사소한 것이라도 자신의 감정을 글로 적어보면
:eyes: 그 감정에서 떨어져서 바라볼 수 있기 때문에 마음을 다스리는데 도움이 되기 때문입니다.

:family: 또 이럴 때일수록 서로를 살피고 공감하는 것이 필요하다고 권합니다.

바쁘다 바빠 현대사회

:clock8: 하지만… 늦어지는 퇴근시간, 휴대폰만 열면 넘쳐나는 재미있는 컨텐츠들 사이에서
:interrobang: 마지막으로 일기를 써본 적이 언제인지도 모르겠어요.

:relieved: 마스크 속에 가려진 감정들을 속시원하게 끄집어내 본 적도 언제인지 모르겠고요.

Dear.Diary

:no_mouth: 이렇게 메말라 가는 현대인의 감정을 돌보기 위해
셀프 멘탈 헬스케어 체크 SNS 플랫폼 Dear.Diary가 탄생했습니다!!<p></p>


CASE 1. REGULAR DIARY를 사용 중인 A씨 일기

오늘은 아침부터 이유없이 기분이 울적했다.
퇴근 길에 기분전환하려 만난 연인은 지루한지 하품을 해댔다.
즉석떢볶이 집에서는 맵기 정도를 두고는 싸웠다.<p> 연인과 싸우고 돌아오는 골목길,비가 쏟아진다.<p> 우산도 없는데 서럽다.
지금 내 얼굴 위 빗방울이 빗물인지 눈물인지 모르겠ㄷㅏ…★ <p></p>

CASE 2. DEAR DIARY를 사용 중인 B씨 일기

아침에 일어났는데 기분이 울적했다.
DEAR DIARY에 누적된 일기데이터 분석에 의하면 나는 비오는 날
평소보다 울적해진다. 일기예보를 보니 역시 비가 올 예정이다.
왜인지 아니까 안 우울하다.<p> 퇴근 길엔 연인을 만났는데 자꾸 하품을 했다.
DD의 커플정보를 보니 요즘 못 자던데 피로한 모양이다. 안쓰럽다.
연인이 내가 꾸물꾸물한 날 우울해지니까 매운 거 먹자고 하길래,
잠도 못잤는데 매운 거 먹으면 배탈난다고 죽집에 갔다.
나는 매운낙지, 그는 전복죽을 먹고 가서 푹 자라고 일찍 헤어졌다.
골목길에 들어서는데 비가 쏟아졌다. 아침에 우산 챙겼지롱!


STRUCTURE


MODELING

메뉴트리


Service

1. USER 행동 시나리오

:key: 로그인
:ballot_box_with_check: 내 다이어리 보기
:couplekiss: 커플 이용자 다이어리 보기
:pencil: 다이어리 쓰기
:calendar: 다이어리 수정
:x: 다이어리 삭제
:speech_balloon: 오늘 내 기분과 같은 기분인 사람들의 한줄 코멘트 보기
:bar_chart: 나의 감정상태 측정
① 자신이 지금까지 기록했던 기분점수 평균과
② 최근 7일간의 기분점수 평균 비교
id님,
:heavy_plus_sign: (감정상태가 평균과 같거나 더 높을 경우)
이번주도 해피해피하게 아주 잘 보내고 있어요!
:heavy_minus_sign: (감정상태가 평소보다 낮을 경우)
이번주는 평소보다 우울하신가요? 오늘 간식으로 달콤한 케이크 한 조각 어때요?

:sleeping: 9) 나의 수면상태 측정
① 지금까지 기록했던 수면시간 평균과
② 최근 7일간의 수면시간 평균 비교
id님,
:heavy_plus_sign: id님, 푹 쉬셨네요 ! 주말엔 등산처럼 활기찬 야외활동을 해보는 게 어떨까요 ~?!
:heavy_minus_sign: 이번주는 평소보다 덜 주무셨어요. 주말엔 꼭 포근한 이불 속에서 푹 쉬세요!


2. 관리자 행동 시나리오

:wrench: 1) 모든 다이어리 정보 CRUD
:busts_in_silhouette: 2) 감정 테이블에 감정 추가/수정 (향후 Update용)
:droplet: 3) 날씨 테이블에 날씨 추가/수정 (향후 Update용)


SQL TABLE

drop table USERINFO;

create table USERINFO(
   id varchar2(50) constraint userinfo_id_pk primary key,
   pw number(7) not null,
   matchingid varchar2(50) constraint userinfo_fk references USERINFO(id)
); 

insert into USERINFO values('ace123', 123456, null);
insert into USERINFO values('bestyou1', 1111111, null);
insert into USERINFO values('coral2', 222222,  'ace123');
insert into USERINFO values('doglover3', 333333, 'bestyou1');
insert into USERINFO values('enough4', 444444, null);
insert into USERINFO values('forever5', 555555, null); 
insert into USERINFO values('admin', 1234, null); 

commit;          
drop sequence EMOTIONS_SEQ;
drop table EMOTIONS;

create sequence EMOTIONS_SEQ;

create table EMOTIONS(emotionno number(1) constraint emotions_emotionno_pk primary key,
   emotionstats varchar2(20) not null); 
                
                
insert into EMOTIONS values(emotions_seq.nextval, '화가나');
insert into EMOTIONS values(emotions_seq.nextval, '짜증나');
insert into EMOTIONS values(emotions_seq.nextval, '걱정돼');
insert into EMOTIONS values(emotions_seq.nextval, '그럭저럭'); 
insert into EMOTIONS values(emotions_seq.nextval, '평온해');
insert into EMOTIONS values(emotions_seq.nextval,' 최고');     

commit;             
drop table WEATHER;

create sequence weather_seq;
create table WEATHER(weatherno number(1) constraint weather_weatherno_pk primary key,
   weatherstats varchar2(20) not null); 

insert into WEATHER values(weather_seq.nextval, '따뜻해');
insert into WEATHER values(weather_seq.nextval, '더워');
insert into WEATHER values(weather_seq.nextval, '비가와');
insert into WEATHER values(weather_seq.nextval, '추워');
insert into WEATHER values(weather_seq.nextval, '구름둥둥');
insert into WEATHER values(weather_seq.nextval, '눈온다'); 

commit;         
drop sequence DIARY_SEQ;
drop table DAIRY;

create sequence diary_seq;

create table DIARY(
   diaryno number(2) constraint diary_diaryno_pk primary key, 
   id varchar2(50) constraint diary_id_fk references USERINFO(id),
   emotionno number(1) constraint diary_emotionno_fk references EMOTIONS(emotionno),
   weatherno number(1) constraint diary_weatherno_fk references WEATHER(weatherno),
   reportingdate DATE,
   sleepingtime number(2) not null, 
   diarycomment varchar2(200) not null, 
   isPublic number(1) not null 
); 

insert into DIARY values(diary_seq.nextval, 'ace123', 6, 1, to_date('2020-12-01'), 6, '돈 주웠다 최고!', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 5, 1, to_date('2020-12-01'), 7, '오늘 하루도 끝', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 6, 2, to_date('2020-12-01'), 8, '도자기가 잘 구워졌다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 6, 1, to_date('2020-12-01'), 8, '예약해둔 맛집에서 저녁 먹었다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 5, 1, to_date('2020-12-01'), 7, '저녁이 맛있었다.', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 3, 1, to_date('2020-12-01'), 5, '12월 첫날이라니 벌써...', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 5, 3, to_date('2020-12-02'), 6, '무난무난한 하루였다.', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 6, 3, to_date('2020-12-02'), 7, '보고싶었던 공연을 봤다', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 4, 3, to_date('2020-12-02'), 8, '배고픈데 간식을 선물받았다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 2, 3, to_date('2020-12-02'), 6, '아이스크림 바닥에 흘렸다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 5, 3, to_date('2020-12-02'), 6, '택배가 왔다', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 2, 3, to_date('2020-12-02'), 7, '지갑을 놓고 나왔다', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 4, 4, to_date('2020-12-03'), 5, '내일만 지나면 주말!!', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 2, 2, to_date('2020-12-03'), 6, '왜 다 나한테 시키지', 1);
insert into DIARY values(diary_seq.nextval, 'coral2', 5, 1, to_date('2020-12-03'), 5, '알고리즘 문제 4개 풀었다 그리고 드디어 하나 맞았다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 5, 5, to_date('2020-12-03'), 7, '지하철에서 앉아서 왔다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 5, 5, to_date('2020-12-03'), 3, '길가다 친구를 만났다', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 3, 5, to_date('2020-12-03'), 5, '내일 기말고사 마지막 시험', 0);
insert into DIARY values(diary_seq.nextval, 'ace123', 2, 2, to_date('2020-12-04'), 6, '친구가 아프다고 한다.', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 5, 2, to_date('2020-12-04'), 7, '떡볶이 먹었다', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 2, 2, to_date('2020-12-04'), 5, '되는일이 없었다', 1);
insert into DIARY values(diary_seq.nextval, 'doglover3', 6, 1, to_date('2020-12-04'), 6, '쇼핑 최고다...진짜', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 5, 2, to_date('2020-12-04'), 6, '부장님이 월차를 썼다', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 4, 2, to_date('2020-12-04'), 7, '점심 메뉴가 나쁘지 않았다', 0);
insert into DIARY values(diary_seq.nextval, 'ace123', 6, 3, to_date('2020-12-05'), 7, '월급이 들어왔다!', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 6, 3, to_date('2020-12-05'), 6, '오랜만에 친구들 만났다', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 4, 3, to_date('2020-12-05'), 7, '돈까스를 먹었다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 1, 3, to_date('2020-12-05'), 5, '엄마가 아프다.', 0);
insert into DIARY values(diary_seq.nextval, 'enough4', 5, 3, to_date('2020-12-05'), 7, '오늘 요리가 잘됐다', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 3, 3, to_date('2020-12-05'), 6, '알바하는데 손님 너무 없어서 지루했다', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 4, 4, to_date('2020-12-06'), 6, '평온한 주말이다', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 6, 4, to_date('2020-12-06'), 8, '강릉에서 킹크랩을 먹었다', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 4, 4, to_date('2020-12-06'), 6, '집에서 운동했다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 3, 4, to_date('2020-12-06'), 5, '지우개 잊어버렸다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 5, 4, to_date('2020-12-06'), 6, '배민 쿠폰 1만원 당첨', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 3, 4, to_date('2020-12-06'), 6, '은행업무 보러가기 귀찮다', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 4, 1, to_date('2020-12-07'), 7, '일요일이다!', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 5, 1, to_date('2020-12-07'), 6, '오늘은 버스가 시간에 맞춰왔다', 1);
insert into DIARY values(diary_seq.nextval, 'coral2', 2, 1, to_date('2020-12-07'), 6, '안경이 깨졌다', 1);
insert into DIARY values(diary_seq.nextval, 'doglover3', 4, 1, to_date('2020-12-07'), 7, '부장님 없는 틈타 퇴근했다', 1);
insert into DIARY values(diary_seq.nextval, 'enough4', 6, 1, to_date('2020-12-07'), 7, '생일선물로 조던 받았따', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 6, 2, to_date('2020-12-07'), 7, '밀린 드라마 다 몰아봄. 눈이부시게 최고., ', 0);
insert into DIARY values(diary_seq.nextval, 'ace123', 2, 4, to_date('2020-12-08'), 7, '상사한테 깨졌다', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 2, 4, to_date('2020-12-08'), 5, '내일은 출장이다', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 3, 4, to_date('2020-12-08'), 7, '배고프다', 0);
insert into DIARY values(diary_seq.nextval, 'doglover3', 4, 4, to_date('2020-12-08'), 6, '새우튀김을 먹었다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 6, 4, to_date('2020-12-08'), 7, '일이 꼬인 줄 알았는데 해결됐다', 0);
insert into DIARY values(diary_seq.nextval, 'forever5', 5, 4, to_date('2020-12-08'), 6, '오랜만에 친구들 만나서 수다 떨었다.', 0);
insert into DIARY values(diary_seq.nextval, 'ace123', 3, 5, to_date('2020-12-09'), 4, '실수했다. 어떡하지', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 3, 5, to_date('2020-12-09'), 3, '출장인지 짐셔틀인지...', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 1, 5, to_date('2020-12-09'), 3, '교통사고가 났다.', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 5, 5, to_date('2020-12-09'), 7, '꼬북칩 초코맛 편의점에서 발견해서 3봉지 삼', 1);
insert into DIARY values(diary_seq.nextval, 'enough4', 1, 5, to_date('2020-12-09'), 0, '친구가 죽었다.....', 0);
insert into DIARY values(diary_seq.nextval, 'forever5', 3, 5, to_date('2020-12-09'), 7, '길에서 죽은 새를 보았다.', 0);
insert into DIARY values(diary_seq.nextval, 'ace123', 5, 6, to_date('2020-12-10'), 7, '점심으로 제육볶음을 먹었다.', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 3, 6, to_date('2020-12-10'), 3, '에고 피곤해', 0);
insert into DIARY values(diary_seq.nextval, 'coral2', 5, 6, to_date('2020-12-10'), 6, '첫눈 내림', 1);
insert into DIARY values(diary_seq.nextval, 'doglover3', 6, 6, to_date('2020-12-10'), 8, '맛집에 웨이팅이 없었다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 4, 6, to_date('2020-12-10'), 7, '오랜만에 드라마를 봤다', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 3, 6, to_date('2020-12-10'), 2, '아 테스형! 세상이 왜 이래!', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 4, 1, to_date('2020-12-11'), 8, '무난무난', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 3, 1, to_date('2020-12-11'), 8, '길냥이가 불쌍해', 1);
insert into DIARY values(diary_seq.nextval, 'coral2', 6, 1, to_date('2020-12-11'), 7, '티켓팅, 성공했다!!!!, ', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 5, 1, to_date('2020-12-11'), 8, '오랜만에 중학교 동창한테 연락이 왔다!! 반가웠다!!!!', 1);
insert into DIARY values(diary_seq.nextval, 'enough4', 4, 1, to_date('2020-12-11'), 6, '쇼미더머니 결승전 ㄷㄷㄷㅈ', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 2, 1, to_date('2020-12-11'), 7, '컨디션 너무 안 좋다. 코로나면 어뜨카지...', 0);
insert into DIARY values(diary_seq.nextval, 'ace123', 3, 5, to_date('2020-12-12'), 4, '주말인데 걱정된다.', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 4, 5, to_date('2020-12-12'), 10, '토!요!일!!!!!!!', 2);
insert into DIARY values(diary_seq.nextval, 'coral2', 1, 5, to_date('2020-12-12'), 4, '사이드미러가 깨졌다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 4, 5, to_date('2020-12-12'), 5, '간단하게 회식했다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 3, 5, to_date('2020-12-12'), 4, '병원에 가야된다', 0);
insert into DIARY values(diary_seq.nextval, 'forever5', 2, 5, to_date('2020-12-12'), 9, '친구 결혼식 다녀왔다. 나빼고 다 결혼해', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 2, 5, to_date('2020-12-13'), 5, '짜증난다.', 0);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 5, 5, to_date('2020-12-13'), 7, '이승우 작가님 신작 읽었다, 크', 0);
insert into DIARY values(diary_seq.nextval, 'coral2', 2, 5, to_date('2020-12-13'), 7, '밥먹다가 머리카락 나왔다', 2);
insert into DIARY values(diary_seq.nextval, 'doglover3', 3, 5, to_date('2020-12-13'), 4, '운동하다가 다쳤다', 2);
insert into DIARY values(diary_seq.nextval, 'enough4', 2, 5, to_date('2020-12-13'), 4, '이사짐 싸느라 매우 힘듦...', 0);
insert into DIARY values(diary_seq.nextval, 'forever5', 4, 5, to_date('2020-12-13'), 5, '오늘치 목표량 공부 다 했다.', 1);
insert into DIARY values(diary_seq.nextval, 'ace123', 6, 1, to_date('2020-12-14'), 6, '최고다!', 2);
insert into DIARY values(diary_seq.nextval, 'bestyou1', 4, 1, to_date('2020-12-14'), 6, '월요일인데 안피곤하다', 1);
insert into DIARY values(diary_seq.nextval, 'coral2', 6, 1, to_date('2020-12-14'), 6, '이제 카페갈 수 있다', 1);
insert into DIARY values(diary_seq.nextval, 'doglover3', 5, 1, to_date('2020-12-14'), 6, '점심이 맛있었다', 0);
insert into DIARY values(diary_seq.nextval, 'enough4', 6, 1, to_date('2020-12-14'), 6, '이사 첫 날, 새 집에는 햇살이 잘 들어서 좋다.', 1);
insert into DIARY values(diary_seq.nextval, 'forever5', 6, 1, to_date('2020-12-14'), 6, '일년만에 오프라인 공연 보러 다녀옴! 매우 신남!!', 1);

commit;    

ovenapp

INSPRATION

  1. GITHUB 연동 문제점

1) 버전 오류

  1. UPDATE를 고려한 설계

1) LOGIN 2) 구조 짜기