숭실대학교 학생들을 위한 종합 서비스 플랫폼 ASSU의 Android 애플리케이션입니다.
대학교 주변 제휴 혜택은 정보가 분산되어 있어 학생은 이용이 번거롭고, 학생회는 매 학기 제휴 관리 부담이 컸으며, 제휴업체는 인증 과정의 비효율과 홍보 효과 측정의 한계를 겪고 있었습니다.
A:SSU는 제휴 계약부터 이용까지의 흐름을 하나의 시스템으로 통합해, 위치 기반 검색과 모바일 인증으로 이용 절차를 단순화하고 제휴 이용 현황을 데이터로 관리할 수 있도록 설계된 Android 애플리케이션입니다.
- 📱 네이티브 Android 앱: Kotlin 기반의 고성능 모바일 애플리케이션
- 🔐 다중 인증 시스템: 일반 회원가입, SSU 포털 연동, JWT 토큰 기반 인증
- 💬 실시간 채팅: STOMP 프로토콜 기반 실시간 메시징
- 📍 위치 기반 서비스: Kakao Map을 활용한 주변 매장 탐색
- 🔔 푸시 알림: Firebase FCM을 통한 실시간 알림
- 📷 QR 코드 인증: 매장 방문 인증 및 혜택 이용
| 기능 | 설명 |
|---|---|
| 👤 회원 관리 | 학생/파트너 회원가입, 로그인, 프로필 관리 |
| 🔔 푸시 알림 | FCM 기반 실시간 알림 수신 및 관리 |
| 📱 멀티 디바이스 | 여러 기기에서 동시 로그인 지원 |
| 🏦 매장 탐색 | 위치 기반 주변 매장 검색 및 상세 정보 조회 |
| 🔐 QR 인증 | QR 코드 스캔을 통한 매장 방문 인증 |
| 🤝 제휴 혜택 | 제휴 매장 혜택 조회 및 이용 |
| 💬 실시간 채팅 | 매장과의 1:1 실시간 채팅 |
| 📍 지도 서비스 | Kakao Map 기반 매장 위치 확인 |
| ⭐ 리뷰 시스템 | 매장 리뷰 작성, 조회, 관리 |
| 📊 이용 현황 | 개인 제휴 이용 통계 및 히스토리 |
| 🛡️ 신고 기능 | 부적절한 콘텐츠 신고 |
| 📷 카메라 기능 | 프로필 사진, 리뷰 사진 촬영 및 업로드 |
| 항목 | 사용 기술 / 라이브러리 |
|---|---|
| 플랫폼 | Android |
| 언어 | Kotlin |
| 최소 SDK | API 24 (Android 7.0) |
| 타겟 SDK | API 35 (Android 14) |
| 컴파일 SDK | API 36 |
| 빌드 도구 | Gradle 8.11.1, AGP 8.10.0 |
| 아키텍처 | MVVM, Hilt DI |
| UI | View Binding, Data Binding |
| 네비게이션 | Navigation Component |
| 네트워크 | Retrofit2, OkHttp3, Moshi |
| 비동기 처리 | Kotlin Coroutines |
| 이미지 로딩 | Glide, Coil |
| 카메라 | CameraX |
| 지도 | Kakao Map SDK |
| 푸시 알림 | Firebase Cloud Messaging |
| 실시간 통신 | STOMP, RxJava2 |
| 데이터 저장 | DataStore Preferences |
| 페이징 | Paging 3 |
| QR 코드 | ZXing |
| 차트 | MPAndroidChart |
| 위치 서비스 | Google Play Services Location |
| 시간 처리 | ThreeTenABP |
| 테스트 | JUnit, Espresso, MockWebServer |
┌─────────────────────────────────────────────────────────┐
│ Presentation Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Activity │ │ Fragment │ │ Adapter │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ Business Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ ViewModel │ │ UseCase │ │ Repository │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ Data Layer │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Remote API │ │Local Storage│ │ External │ │
│ │ (Retrofit) │ │(DataStore) │ │ Services │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
│
┌─────────────────────────────────────────────────────────┐
│ External Services │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │Backend API │ │Firebase FCM │ │ Kakao Map │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
└─────────────────────────────────────────────────────────┘
app/src/main/java/com/ssu/assu/
├── data/ # 데이터 계층
│ ├── api/ # API 인터페이스
│ ├── model/ # 데이터 모델
│ ├── repository/ # 리포지토리 구현
│ └── local/ # 로컬 데이터 저장
├── domain/ # 도메인 계층
│ ├── model/ # 도메인 모델
│ ├── repository/ # 리포지토리 인터페이스
│ └── usecase/ # 비즈니스 로직
├── presentation/ # 프레젠테이션 계층
│ ├── ui/ # UI 컴포넌트
│ │ ├── auth/ # 인증 관련 화면
│ │ ├── main/ # 메인 화면
│ │ ├── map/ # 지도 화면
│ │ ├── chat/ # 채팅 화면
│ │ ├── profile/ # 프로필 화면
│ │ └── store/ # 매장 관련 화면
│ ├── viewmodel/ # ViewModel
│ └── adapter/ # RecyclerView 어댑터
├── di/ # 의존성 주입
├── util/ # 유틸리티 클래스
├── service/ # 백그라운드 서비스
│ ├── fcm/ # FCM 서비스
│ └── location/ # 위치 서비스
└── Application.kt # 애플리케이션 클래스
- data: 외부 API 통신, 로컬 데이터 저장 관리
- domain: 비즈니스 로직과 도메인 모델 정의
- presentation: UI 관련 컴포넌트와 사용자 상호작용 처리
- di: Hilt를 사용한 의존성 주입 설정
- util: 공통 유틸리티 함수 및 확장 함수
- service: FCM, 위치 서비스 등 백그라운드 작업
프로젝트에 대한 문의사항이 있으시면 다음을 통해 연락해 주세요:
A:SSU © 2026