1 of 33

수정바다

유리병

20190994 정준서

20201009 전시현

20200975 강수진

배경

|

소개

|

구현

|

영상

|

전망

2 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

개발 배경

코로나19로 인해 성신여자대학교 학우들 간의 교류가 줄어들었다.

비대면 수업을 하게 되면서 신입생들이 동기 / 선배와 친해질 수 있는 기회가 없다.

다양한 주제의 고민으로 우울감을 느끼는 학우들이 있다.

성신여자대학교 학생임을 인증 받은 학생들을 위한 소통장이 필요하다!

3 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병에

대해서

수정바다 유리병

To. 나는야 수정

From. 20200000@sungshin.ac.kr

To. 20201111@sungshin.ac.kr

From. 귀여운 수룡이

20200000@sungshin.ac.kr

20201111@sungshin.ac.kr

귀여운 수룡이

나는야 수정

4 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병에

대해서

가장 중요한 성신여자대학교 재학생 인증!

매칭 시스템은?

대화 활성화를 위해서는?

학번@sungshin.ac.kr

이메일 인증

DB에 프로시저를 생성해서

언제든지 변경 가능하도록

최대 매칭 5번

5 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명

개발 환경

Data Base

서버

Eclipse

MySQL

Apache Tomcat 8.0

개발 언어

Java

6 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(DB)

usertbl

matchbl

mailtbl

+새로운 사용자가 회원가입을 하면 해당 사용자의 matchtbl이 생성되도록 trigger 생성

20190000

null

null

null

null

user_id

match1

match4

match3

match2

match5

null

7 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(DB)

searchmatch(matchreq_id, matched) 프로시저

=> 매칭을 신청한 matchreq_id에 대해 매칭 가능한 상대를 검색해서 matched 인자에 저장

현재 매칭을 신청한 matchreq_id에 이미 매칭된 id들을 비교를 위해 변수에 저장

매칭 신청을 한 사용자 중에서

매칭 수가 5을 넘지 않고

매칭을 신청한 자신을 빼고

전체 사용자 중에

이미 매칭된 상대를 뺀 사용자 중

무작위로 한 명을 골라

두번째 인자에 저장

만약 해당하는 상대가 없으면 매칭 가능한 상대가 생길때까지 기다려야 되므로 신청한 자신의 matchreq를 true로 바꿔

=> 웹에서 구현

8 of 33

배경

|

소개

|

구현

|

영상

|

전망

matching(matchreq_id) 프로시저

=>searchmatch 프로시저를 호출해서 매칭 상대를 구하고

matchtbl에 이를 저장

Matchtbl에 새로운 매칭을 저장하기 위해서 필요한 변수를 선언

매칭 상대를 검색해서 변수 matched에 저장

매칭 상대의 매치 개수를 가져와서 가장 처음 비어있는 곳에 매칭 신청자 id저장

ex) 매칭 하게 된 상대방의 매치 수가 2면 이미 match1, match2은 차있으므로 match3에 매칭 신청자 id저장

매칭 신청자의 matchtbl에도 같은 방식으로 저장

20190000

20180001

null

null

20190002

user_id

match1

match4

match3

match2

match5

null

20190000

20180001

null

20190003

20190002

null

9 of 33

배경

|

소개

|

구현

|

영상

|

전망

Matchdel(mdelreq_id, mdeleted_id) 프로시저

  • 매칭 끊기를 신청한 사용자와, 상대방 사용자의 id를 인자로 받아서 두 사용자의 matchtbl에 매칭 끊은 상태 저장

20190000

20180001

20190004

20170003

20170002

20190000

20180001

20190004

20170002

20170003

20190000

20180001

20190004

20170002

Ex) 4명의 매칭이 있는 매칭 신청자가 match3와의 매칭을 끊으려 할 때 matchtbl에 match1, match2, match4이 아니라 match4를 match3에 저장해서 match1, match2, match3에 매칭이 저장되도록 수정

user_id

match1

match4

match3

match2

20190000

20180001

20190004

20170002

null

match5

null

null

null

null

null

10 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명

로그인 페이지

회원가입

페이지

비밀 번호

검색 페이지

환영 페이지

메일 보내기

받은 메일함

소개 및 사용방법

비밀번호

변경

탈퇴하기

매칭 신청

매칭 끊기

11 of 33

배경

|

소개

|

구현

|

영상

|

전망

로그인 페이지

환영 페이지

메일 보내기

받은 메일함

소개 및 사용방법

12 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(메일 전송)

랜덤한 코드를 전송하는 메일��: 회원가입시 계정인증, �임시비밀번호 발급

편지 전달 메일��: 글쓰기 페이지에서 사용자가 �작성한 편지를 받는사람에게 전달

13 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - 회원가입시 계정인증)

14 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - 회원가입시 계정인증)

15 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - 회원가입시 계정인증)

16 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - 임시 비밀번호 발급)

17 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - 임시 비밀번호 발급)

18 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - JavaMailUtil.java)

19 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - JavaMailUtil.java)

메일 서버 설정

20 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(코드 전송 메일 - JavaMailUtil.java)

Gmail 계정과 비밀번호 입력 후 접근

21 of 33

배경

|

소개

|

구현

|

영상

|

전망

메시지 준비 및 전송

22 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(편지 전달 메일 - write.jsp)

23 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

구현 설명(편지 전달 메일 - WebSendMail)

mapping

24 of 33

배경

|

소개

|

구현

|

영상

|

전망

메일 서버 설정

25 of 33

배경

|

소개

|

구현

|

영상

|

전망

Gmail 계정과 비밀번호 입력 후 접근

26 of 33

배경

|

소개

|

구현

|

영상

|

전망

27 of 33

배경

|

소개

|

구현

|

영상

|

전망

28 of 33

배경

|

소개

|

구현

|

영상

|

전망

29 of 33

배경

|

소개

|

구현

|

영상

|

전망

보내는 사람 닉네임

메일 제목

시간 설정

30 of 33

배경

|

소개

|

구현

|

영상

|

전망

31 of 33

배경

|

소개

|

구현

|

영상

|

전망

32 of 33

배경

|

소개

|

구현

|

영상

|

전망

mailtbl 구조

33 of 33

배경

|

소개

|

구현

|

영상

|

전망

수정바다 유리병

앞으로는??

꼭 성신여자대학교만?

무조건 무작위 매칭?

학번@sungshin.ac.kr

이메일 인증

프로시저를 변경하면 같은 학년/학과에서 매칭도 가능