많은 인연을 만나며, 누군가를 온전히 기억하는 것이 어려웠던 적이 있나요?
우리는 수많은 정체성을 지니고 살아갑니다.
학생으로써 정체성, 가족 안에서 첫째로써 정체성, SNS에서의 정체성 등,
누군가에게 나 자신을 소개해야 하는 상황일 때, 어떤 정보를 보여줘야 할지 망설이게 되죠.
엠덱스는 나를 남들에게 좀 더 간편하게 보여줄 수 있는 경험을 제공합니다.
당신이 가지고 있는 여러 페르소나들을 마치 카드를 뒤집듯, 쉽고 간편하게 남들에게 소개해보세요! MZ를 위한 간편하고 빠른 인맥 관리 서비스, 엠덱스
환영합니다! 엠덱스, MZ세대를 위한 간편하고 빠른 인맥 관리 서비스입니다. 여러분의 다양한 페르소나를 손쉽게 소개하고, 인덱스처럼 정리하여 더욱 효율적인 관리를 돕습니다.
1. 페르소나 프로필: 엠덱스는 여러분의 다양한 페르소나를 자세하게 소개할 수 있는 프로필을 제공합니다. 각 페르소나마다 사진, 직업, 취미 등을 등록하여 자신을 표현하세요.
2. QR 코드를 사용한 손쉬운 친구 추가 : 엠덱스에서는 생성한 여러 페르소나마다 고유한 QR 코드를 제공합니다. QR 코드를 촬영함으로써 손쉽게 소나맺기(친구추가)가 가능하고, 추가할 시 알림을 전송합니다.
3. 간편한 관리: 엠덱스를 사용하면 모든 페르소나의 정보를 한 눈에 확인할 수 있습니다. 이제 이름이나 특정 관심사를 검색하거나 필요한 정보에 빠르게 접근하여 인맥을 손쉽게 관리하세요.
4. 그룹화와 태그: 엠덱스는 인맥을 그룹화하고 태그로 분류하는 기능을 제공합니다. 회사 동료, 대학 친구, 취미 그룹 등 원하는 대로 그룹을 만들어 관리하세요. MBTI나 태그를 활용하여 유사한 관심사를 가진 사람들을 빠르게 찾을 수 있습니다.
5. 일정과 메모: 엠덱스에서는 각 페르소나별로 메모를 관리할 수 있습니다. 상대방의 중요한 정보를 놓치지 않고 기억할 수 있도록 메모를 남겨보세요.
6. 연락하기 쉽게: 엠덱스는 연락 정보를 효과적으로 관리할 수 있는 연락처에 대한 공유를 선택적으로 할 수 있는 기능을 제공합니다. 휴대전화 번호, 이메일 주소 등을 등록하여 다른 사람들이 여러분과 쉽게 연락할 수 있도록 도와줍니다.
7. 소셜 네트워크 연동: 엠덱스는 주요 소셜 네트워크와 연동하여 더 넓은 인맥 관리를 지원합니다. LinkedIn, Facebook, Instagram 등 여러 플랫폼에서 소중한 인맥들을 한 곳에서 효과적으로 관리하세요.
엠덱스와 함께라면 여러분의 다양한 면모를 효율적으로 관리하고, 소중한 인맥을 손쉽게 유지할 수 있습니다. 지금 바로 다운로드하여 더 나은 인맥 관리 경험을 시작해보세요!
- Language : Flutter
- Building : Java 11 , Spring Boot
- ORM : Spring Data JPA
- DB : MongoDB , PostgreSQL , Redis
- Message Broker : RabbitMQ
- Security : Spring Security , JWT
- Cloud Messaging : FCM
- AWS EC2
마주하는 순간, 마주(Mazu)팀은 각자 자신을 MZ 세대라고 주장하는 사람들로서 팀으로서 본인이 필요한 앱을 만드는 것을 목표로 하는 팀입니다. 스마트ICT융합공학과, 컴퓨터공학부, 산업디자인학과가 모여 이루어졌습니다.
박정환 | 하진우 | 장동수 | 구가빈 |
---|---|---|---|
Park Jeonghwan | Ha Jinwoo | Chnag Dongsoo | Koo Gabin |
PM / 프론트엔드 | 프론트엔드 개발 | 백엔드 개발 | 기획 / 디자인 |
https://github.com/haruachm | https://github.com/woo4826 | https://github.com/ehdtndla123 | https://github.com/gabin9 |
mailto:[email protected] | mailto:[email protected] | mailto:[email protected] | mailto:[email protected] |
- https://www.mongodb.com/docs/
- https://docs.spring.io/spring-amqp/reference/html/
- https://www.rabbitmq.com/tutorials/tutorial-one-spring-amqp.html
- https://docs.spring.io/spring-framework/docs/4.3.x/spring-framework-reference/html/websocket.html
- https://firebase.google.com/docs/cloud-messaging/concept-options?hl=ko
- 프/백 동시적용
-
Firebase
-
FCM : Firebase Cloud Messaging
- Cross Platform 푸시 전송
- iOS: APNS (Apple Push Notification service)
- Android: GCM (Google Cloud Messaging)
-
Firebase Cloud Firestore and Storage
- NoSQL Database
- Realtime Database
- Firestore 를 통한 유저의 이미지 관리 및 압축(flutter)
-
- Backend ( Spring Framework )
- 알림 기능 (using MongoDB , FCM Token)
- 알림 기록 : 수평적 확장이 가능하며 Document 형식을 사용하는 MongoDB 를 사용. 본래
Full Table Scan
→ memId 필드로 알림 기록을 가져오므로memId 에 대한 인덱스
설정 하여 쿼리 성능 향상. - 알림 푸시 : FCM 토큰을 이용하여 사용자에게 알림을 푸시하는 기능을 구현.
- 알림 기록 : 수평적 확장이 가능하며 Document 형식을 사용하는 MongoDB 를 사용. 본래
- 위치 기능 ( WebSocket STOMP , RabbitMQ )
- 자신의 소나와 맺어있는 소나 보여주기 : Websocket 기반 STOMP 사용. STOMP(Simple Text Oriented Messaging Protocol)은 메세징 전송을 효율적을 하기 위해 탄생한 프로토콜. 기본적으로 pub/sub 구조로 되어있어 메세지를 전송하고 메세지를 받아 처리하는 부분이 확실히 정해져 있기 때문에 개발자 입장에서 명확하게 인지하고 개발 가능.
- 로드 밸런싱 환경 지원 : Spring Stomp 를 사용하는데 내장되어있는 SimpleBroker 를 사용한다. 로드 밸런싱이 적용되어 있는 경우, 위치 기능은 스프링 프로젝트에 종속적이기 때문에 가까운 위치에 있더라도 기능이 정상적으로 작동하지 않는다. → 외부 브로커인 RabbitMQ 를 사용하여, 기존 STOMP 의 pub/sub 구조를 사용하면서, 로드 밸런싱 환경에서도 안정적으로 동작하도록 구성.
- 온라인 소나 관리 : Redis 사용하여, 온라인인 소나만 상태 관리.
- Frontend ( Flutter Framework )
-
FLutter
- : iOS, AOS 와 동시에 Web, Desktop 을 지원하는 크로스 플랫폼 프레임워크.
- : 이를 통해 하나의 코드로 모든 플랫폼을 지원할 수 있음.
- : 또한, Flutter 는 Dart 라는 언어를 사용하는데, 이는 JIT 컴파일러를 사용하여, Hot Reload 를 지원함. 따라서, 개발자는 코드를 수정하고, 앱을 다시 빌드하는 과정을 거치지 않고, 코드를 수정하면서 실시간으로 앱을 확인할 수 있음.
- : App Store 의 여러 규정들을 준수하며 개발을 진행, 배포 단계까지 진행되어 심사만 거치면 스토어 출시 가능 (Playstore, App Store)
-
위치 기능 ( using Flutter local Location Service )
- : 실시간 위치 변동의 경우 서버로의 부하가 큼. 따라서, 위치 변동이 없는 경우에는 서버로의 요청을 하지 않고, 위치 변동이 있는 경우에만 서버로 요청을 하도록 구현.
-
QR 코드 기능
- : QR 코드 생성 및 스캔 기능을 구현. 사용자는 직접 검색하지 않아도 QR 코드를 통해 소나를 찾을 수 있음.
-
cached network image
- : 이미지를 캐싱하여, 사용자가 이미지를 다운로드 받지 않아도, 사용자가 로컬에 캐싱된 이미지를 사용할 수 있도록 함.
-
Firebase Cloud Messaging (FCM): Cross Platform 푸시 전송을 위해 사용.
-
data stream provider
- 사용자의 데이터들을 실시간으로 동기화, 업데이트를 가능하게 함.
- 소나 정보 업데이트, 상대방 소나 정보 관리, 알림 리스트 조회 등에서 사용.
-
GetX : 상태관리 라이브러리 사용
-
Local Notification Lib : 서버에서 오는 push message 중, 데이터 fetch 등을 위해 사용되는 PUSH 알람으로서, 사용자에게 보여지지 않고 백그라운드에서 동작하는 여러 앱 내부 동작을 위해 사용.
-
Google Crash Analytics : 앱의 크래시를 실시간으로 모니터링하고, 크래시가 발생한 경우, Firebase 에서 사용자의 디바이스 정보와 함께 크래시 로그를 확인할 수 있음. 이를 통해 앱의 지속적인 유지 관리가 가능해짐.
- 배포
- AWS EC2
- : AWS EC2 를 사용하여, 서버를 배포하였음.
- Xcode Cloud
- : Xcode Cloud 를 사용하여, iOS 앱을 배포하였음. 사용자가 Frontend 코드를 수정하고 git 에 푸시하였을 때, 자동으로 환경을 설정하고 Testflight 까지의 배포를 자동으로 진행함.
Apache License 2.0