Skip to content

축구 경기 매칭에 특화된 그룹 결성, 매칭 서비스, 쪽지 및 채팅 등을 제공하는 SNS 서비스, Node.js와 Express 기반의 웹 애플리케이션 개발 프로젝트

Notifications You must be signed in to change notification settings

Jaehwi-So/WEB_Application_Pj_MatchUP

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 

Repository files navigation

MatchUP!

스포츠 경기 매칭을 목표로 하는 SNS 서비스

Node.js 기반 웹 어플리케이션



1. 프로젝트 정보

진행 기간 : 2020/10/22 ~ 2020/11/03

개인 프로젝트 : 소재휘

프로젝트 진행

  • 2020/10/22 전체 레이아웃, 로그인, 가입, 팔로우, 팔로잉, 유저 검색
  • 2020/10/23 유저 프로필, 프로필 프론트엔드 레이아웃
  • 2020/10/24 프로필편집, 계정 수정, 계정 탈퇴
  • 2020/10/25 메시지 서비스
  • 2020/10/26 팀 생성, 가입, 관리, 탈퇴 기능, 팀 프로필 레이아웃
  • 2020/10/27 팀 목록 검색, 나의 팀 조회
  • 2020/10/28 팀 가입신청, 팀 초대 기능
  • 2020/10/29 팀원 영입 게시판 서비스, 검색 기능, URL 매핑오류 이슈들 수정
  • 2020/10/30 ~ 10/31 패키지 구조 변경, 계층 세분화, 로그인, 팀 매칭 관련 비즈니스 로직 오류 수정
  • 2020/11/01 경기 찾기, 매칭 기능 추가, 시간 포매팅 이슈 해결, 템플릿 엔진 연결 에러 수정
  • 2020/11/03 socket.io 연결, 팀/경기 채팅방 서비스

2. 사용 언어 및 기술

언어

  • Node.js, Javascript(ES6)

  • HTML5, CSS3

데이터베이스

  • RDBMS(MySQL), NoSQL(MongoDB)

프레임워크, 라이브러리, 모듈 및 미들웨어

  • Express.js

  • Jquery, Socket.io

  • ORM, ODM : Sequelize, Mongoose

템플릿 엔진

  • Nunjucks


3. 웹 어플리케이션 소개 및 기능


3-1. 프로젝트 목표

현재 우리가 살아가고 있는 세상은 웹 기술을 통한 사람들간의 커뮤니케이션이 매우 활성화되어있다.
요즘은 오히려 전화나 문자보다 소위 SNS라고 불리는 웹, 모바일 어플리케이션을 통해 소통하는 것이 매우 익숙해졌다.
이러한 SNS의 순기능을 축구나 농구 등 스포츠 매칭에서의 활용을 목표로 해당 프로젝트를 진행하게 되었다.
개인간의 쪽지, 팔로우 기능, 실시간 채팅 기능을 가진 SNS의 기본 기능은 물론, 경기 팀을 결성할 수 있으며 팀 간의 경기를 매칭할 수 있는 기능을 도입하여 스포츠 경기 진행에 특화된 SNS를 제작하고자 하였다.


3-2. 프로젝트 구성

Express Project

데이터베이스 관계


3-3. 제공 기능

해당 웹 사이트는 축구, 농구, 풋살 등 스포츠 팀을 결성하고 경기 일정을 잡을 수 있는 소셜 네트워크 서비스입니다.

회원

  • 기본적인 회원 가입을 통해 서비스를 이용할 수 있습니다.
  • 프로필에서 회원 정보의 수정과 탈퇴가 가능합니다.

활발한 SNS 기능

  • 가입 후 프로필 사진, 정보 등을 꾸밀 수 있습니다.
  • 팔로우와 팔로잉 기능을 지원하여 다른 사람과의 관계를 결성할 수 있습니다.
  • 쪽지 기능을 지원하여 다른 이용자와 의사소통을 할 수 있습니다.
  • 쪽지의 종류는 일반 쪽지, 팀 초대, 가입 관련 쪽지, 경기 신청 관련 쪽지, 매칭 알림 쪽지로 나뉩니다.
  • 각각의 팀과 경기에서는 실시간 채팅방을 지원합니다.

팀 결성

  • 자신만의 팀을 직접 결성할 수 있습니다.
  • 자신이 만든 팀에 다른 사람을 초대할 수 있습니다.
  • 다른 사람이 만든 팀에 가입 신청을 할 수 있습니다.
  • 멤버 모집 게시판에 팀을 홍보하여 팀원을 모을 수 있습니다.
  • 팀이 결성된 후 다른 팀과의 경기 신청을 통해 경기를 진행할 수 있습니다.
  • 멤버 초대, 가입 신청, 다른 팀과의 경기 신청, 수락의 권한은 팀장에게 있습니다.
  • 팀을 생성할 시 자동으로 팀장이 됩니다.
  • 팀 프로필에는 팀의 정보와 프로필 사진, 팀원들의 목록, 진행중인 경기들을 확인할 수 있습니다.
  • 자유롭게 팀에서 나갈 수 있으며 만약 팀장으로서 팀을 나가게 될 시 자동으로 다른 멤버에게 팀장이 위임됩니다.
  • 팀에 사람이 1명도 존재하지 않을 시 팀은 자동으로 삭제됩니다.
  • 팀원들끼리는 자유롭게 실시간 채팅을 할 수 있습니다.

경기 매칭

  • 대전 찾기에서 팀에서 경기를 공지하거나 다른 팀이 공지한 경기를 열람할 수 있습니다.
  • 상대팀이 나타나지 않으면 '대전 찾는 중', 상대팀을 찾아 경기가 진행중일 시 '매칭 완료'로 표시됩니다.
  • 경기 신청 시 쪽지를 통해 상대편 팀장에게 경기 수락이 가능한 쪽지가 발송됩니다.
  • 상대편 팀장이 경기를 수락할 시 매칭이 완료됩니다.
  • 매칭 완료 시 실시간 채팅이 활성화됩니다.
  • 현재 팀에서 진행중인 매칭은 팀 프로필에서 확인이 가능합니다.
  • 매칭 완료 시 대전에 대한 정보는 양쪽 팀장만이 수정이 가능합니다.
  • 한 쪽의 팀장이 경기를 종료할 시 경기는 자동으로 삭제됩니다.

3-4. 이용 사례


4. 회고


4-1. 기능 및 서비스적 측면


  • 기본적인 소셜 네트워크의 서비스를 만족시키고자 계정 생성, 프로필 편집, 팔로우, 팔로잉 기능, 쪽지, 실시간 채팅을 도입하여 SNS의 목적인 사람들과의 커뮤니케이션이라는 목적을 부합시켰다고 판단한다.
  • 스포츠 경기 매칭에 특화된 SNS로서 팀에 소속될 수 있는 방법을 다양하게 제공하여 쉽게 단체에 소속될 수 있도록 하였고, 경기 매칭을 통해 다른 팀과의 경기 일정을 잡는 것은 물론 채팅 등의 SNS 기능을 통해 간편하게 경기를 진행할 수 있도록 서비스를 제공하여 클라이언트들을 만족시킬 수 있을 것으로 전망한다.

  • 해당 웹 서비스를 관리하는 관리자 측의 비즈니스 로직을 추가하여 웹 사이트를 이용하는 클라이언트들을 인터페이스를 통해 관리할 수 있었다면 완성도 높은 프로젝트가 완성되었을 것이다.

4-2. 기술 및 업무적 측면


  • WAS를 개발하는 과정에서 업무 효율을 높이기 위해 모듈을 세분화시켜 분리시켰다. 각각의 기능만을 분리시켜 프로젝트를 관리하기 용이했으며 코드의 재활용과 효율적인 프로그래밍 측면에서 도움이 되었다.
  • 다양한 미들웨어를 라우터에 연결하고 Socket.io를 포함한 라이브러리들을 사용하며 웹 서비스에서 효율적이고 다양한 서비스를 제공할 수 있었다.
  • RDBMS와 No-SQL DBMS를 데이터 유형에 맞추어 활용하여 데이터베이스 설계 측면에서 이전에 웹, 어플리케이션 서버 구축을 할 때보다 정돈된 데이터 구조를 갖출 수 있었다.
  • NPM과 NPX를 활용하여 효율적인 버전 관리를 할 수 있었다.

  • REST 형식의 URL 매핑을 사용하였지만 설계 과정에서 용도에 따라 변형된 요청들이 존재한다. 더욱 일관성 있는 요청 방식을 제공하는 방법을 생각해보면 좋을 것 같다.
  • 데이버베이스 쿼리를 수행할 때의 비효율적인 로직이 존재하여 성능 테스트를 지속적으로 거쳐 더욱 개선된 쿼리문을 수행할 수 있도록 설계할 필요성이 있다고 판단한다.

4-3. 결론


  • 주로 Java 기반 서버 구축을 해왔었는데 이번에 Node.js를 이용하여 해당 프로젝트를 진행하며 다양한 방법으로 서버를 구축하고 서비스를 제공하는 경험을 얻을 수 있었다.
  • 항상 웹 프로젝트를 진행하면 요청 URL 매핑, 놓칠 수 있는 예외, 데이터베이스 설계와 쿼리의 효율성 등이 주요 이슈로 작용하게 된다. 완벽하다고는 할 수 없지만 이전에 서버를 구축할 때 보다 일관성있는 설계 과정과, 발전된 쿼리, 예외 처리를 테스트를 통해 꼼꼼히 수행하여 이전보다 완성도 높은 프로젝트를 만든 것 같다.

About

축구 경기 매칭에 특화된 그룹 결성, 매칭 서비스, 쪽지 및 채팅 등을 제공하는 SNS 서비스, Node.js와 Express 기반의 웹 애플리케이션 개발 프로젝트

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published