https://github.com/071yoon/Matching-App-via-MBTI
[MBTI 기반 이상형 매칭 애플리케이션]
과목명: 분산시스템
팀 원 :
유학현 (201713066) 김세영 (201713049) 박용준 (201711147) 서동재 (201713060) 윤영기 (201713025)
제 출 일 : 2021.06.11
팀 구성 및 역할
프로젝트 목표
2.1 프로젝트 개요 2.2 목표 기능 2.3 개발 환경
시스템 설계
3.1 CMWinClient 3.2 CMWinClientEventHandler 3.3 CMWinServerEventHandler
어플리케이션 사용 방법
영상과 Github 링크
팀 구성 및 역할
유학현 : 프로젝트 관리 및 개발 지원 김세영 : CM 기반 이벤트 설계 및 개발 박용준 : 기본 프로그램, 서버 설계 및 개발 서동재 : 개발 및 기타 업무 지원 윤영기 : 기본 프로그램 설계 및 데이터베이스 개발
2.1 프로젝트 개요
2019 년 하반기를 기점으로 전세계적으로 퍼져나간 코로나 19 바이러스의 대유행은 우리의 일상생활에 큰 변화를 가져왔다. 코로나 예방 수칙 중 하나인 ‘사회적 거리두기’의 장기화로 인해 언택트 (Untact)의 시대를 맞이하게 됨으로써 사람들은 기존 오프라인으로 이루어지던 모임들을 재택근무, 온라인 수업 그리고 화상회의 같은 온라인상의 모임으로 대체하게 되었다. 이러한 형태의 모임 증가는 이를 지원하기 위한 애플리케이션에 대한 수요 증가로 나타났으며 이는 곧 ZOOM, MS Teams 와 같은 온라인 회의 지원 애플리케이션의 사용률 증가로 이어졌다. 이렇듯 학업, 업무 등의 다양한 오프라인 활동들을 온라인으로 대체하고자 하는 변화는 이성과의 만남 방식 또한 바꾸어 놓았다. 기존의 오프라인 소개팅을 온라인으로 대체하기 시작한 것이다. 이는 곧, Tinder, Bumble 과 같은 온라인 데이팅 어플리케이션의 수요 증가로 이어지게 되었다. 따라서 우리는 이러한 수요 증가를 기반으로 기존 데이팅 애플리케이션과 차별화된 특성을 갖는 데이팅 애플리케이션의 개발을 목표로 하였다.
2.2 목표 기능
[그림 1] MBTI 성격 유형별 궁합 차트
최근 젊은 층 사이에서 화제가 되고 있는 성격 유형 검사 마이어스-브릭스 유형 지표(Myers-Briggs Type Indicator), 약칭 MBTI 를 활용한 이상형 매칭 및 데이팅 애플리케이션으로 다음과 같은 서비스를 제공한다.
2.3 개발 환경
Communication Framework (CM)를 기반으로, 기존 메소드를 수정하는 형식으로 설계를 진행하였다. 클라이언트 – 서버 형태로, 데이터 관련 프로세싱을 최대한 서버에서 처리할 수 있도록 설계하였다. 기존 CM 과 연동된 MySQL을 사용하여 데이터베이스를 설계하는 방향으로 구상하였으나, 차후 구현 단계에서 이를 사용하는 대신 유저 데이터를 자바 프로젝트 경로에 직접 읽고 쓰는 형식으로 변경되었다.
3.1 CMWinClient
유저가 사용하게 될 클라이언트 프로그램을 구현한 소스 파일. 유저에게 데이터를 입력 받는 창을 띄우거나 서버로부터 받은 데이터를 출력해주는 메소드들로 구성되어 있다. 또한 유저간 채팅 기능을 지원하기 위해 유저 데이터 파일을 읽는 메소드를 포함하고 있다. 해당 데이터 파일 경로 설정을 코드 내에서 지정해줘야 하는데, CMWinClient 664, 689줄에서 경로 설정을 할 수 있다.
m_outTextPane2 = new JTextPane();
m_matchButton = new JButton("Start Match");
public void loginExample();
JMenu list = new Jmenu("Partner");
JMenuItem list1 = new JMenuItem("Start Match");
JMenuItem list2 = new JMenuItem("Matched Partner");
JMenuItem list3 = new JmenuItem("Choose Partner");
public void printMessage2(String strText);
public void example3();
String name = null;
String password = null;
String gender = null;
String age = null;
String height = null;
String weight = null;
String mbti = null;
String hobby = null;
String p_age = null;
String p_height = null;
String p_weight = null;
아이디와 패스워드를 비롯해 성별, 나이, 키 등의 정보를 사용자로부터 입력받는다. 아이디의 경우 ‘b’, ‘g’, ‘s’를 입력할 경우 적합하지 않은 아이디로 판단하고 다시 입력할 것을 요청하는 메시지를 띄운다. (본 어플리케이션은 채팅에서 chat() 메소드를 활용하는데 chat메소드는 아이디 영역에서 b는 broadcast, g는 group, s는 session으로 받아들이기 때문에 해당 아이디를 생성하지 못하게 조치했다.)
이벤트 아이디가 "register"인 UserEvent를 생성한 후 CMClientStub에서 기본 제공하는 메소드인 send()를 이용해 디폴트 서버에 이벤트를 전달한다. 서버는 사용자가 보낸 정보를 갖고 기존 사용자 풀과 대조해 중복된 아이디일 경우 이를 반려하는데 이때 example3() 메소드가 다시 호출된다.
public void testLogoutDS();
public void testStartCM();
public void testTerminateCM();
public class MyActionListener implements ActionsListner();
public class MyMenuListener implements ActionListener();
public void Start Match();
public void Matched_Partner();
public void Choose_Partner();