- 타임캡슐은 현재의 시간과 메시지, 사진 등을 포함하여 미래의 어느 시점에 열어 볼 수 있도록 묻어두는 것을 말합니다.
- 이는 과거의 추억을 전하는 것뿐만 아니라, 미래의 사람들에게 메시지를 전하거나 특정한 의미를 기념하기 위해 사용될 수 있습니다.
- 타임캡슐은 특정 시간에 대한 추억을 보존합니다.
- 우리의 삶은 변화하고 성장하며, 시간이 흐름에 따라 과거의 경험들은 희미해지고 잊혀질 수 있습니다.
- 타임캡슐은 그 순간의 감정과 기억을 소중히 간직하며, 미래의 세대들과 공유할 수 있는 기회를 제공합니다.
- 영구적 보관
- 보다 쉬운 접근 및 공유
- AR을 통해 현실과 디지털 세계 연결
- 같은 장소에 방문했을 때 이전의 추억을 생생하게 되돌아볼 수 있어요.
- 나의 소중한 추억들을 친구들과 함께 나눌 수 있어요.
- AR을 통해 실제 타임캡슐을 열어보는 듯한 생동감을 느낄 수 있어요.
- Android Studio:
Flamingo 2022.2.1
- Intellij:
2022.3.1
- Kotlin:
1.8.0
- JAVA:
11.0.17
- JAVA:
11.0.18
- MySQL:
8.0.32
- SpringBoot:
2.7.11
- Docker:
23.0.5
- Jenkins:
2.60.3
- 이슈 관리: JIRA
- 형상 관리: GitLab
- 커뮤니케이션: Notion, Mattermost, Webex
- 디자인: Figma
- UCC: Movavi
- CI/CD: Jenkins
- 카카오 로그인 SDK
2.13.0
- 네이버 로그인 SDK
5.5.0
- retrofit
2.9.0
- coroutine
1.3.9
- lifecycle-viewModel
2.4.0
- glide
4.15.1
- jetpack navigation
2.5.3
- FireBase-bom
32.0.0
- FireBase-messaging
23.1.2
- AR Core
1.37.0
- SpringBoot
- Spring Web
- Lombok
- Spring Data JPA
- Spring Data Redis
- Spring Cloud (Gateway, Eureka)
- Spring Security
- Oauth2
- Redis
- Firebase
- MySQL
- SSL
- Swagger
📦BE
┗ 📂capsule/member/oauth-service
┃ ┣ 📂src
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂timecapsule
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂oauthservice
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂api
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂request
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂response
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂config
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂redis
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂controller
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂db
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂entity
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂exception
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂security
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂filter
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂jwt
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂povider
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ServiceApplication.java
┃ ┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┃ ┣ 📂firebase
┃ ┃ ┃ ┃ ┣ 📜application-oauth.yml
┃ ┃ ┃ ┃ ┣ 📜application.yml
┃ ┃ ┃ ┃ ┣ 📜favicon.ico
┃ ┃ ┃ ┃ ┗ 📜keystore.p12
┃ ┣ 📜.gitignore
┃ ┣ 📜build.gradle
┃ ┣ 📜Dockerfile
┃ ┣ 📜gradlew
┃ ┣ 📜gradlew.bat
┃ ┣ 📜Jenkinsfile
┃ ┗ 📜settings.gradle
┃
┃
┗ 📂apigateway-service
┃ ┣ 📂src
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂timecapsule
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂apigatewayservice
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂filter
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ApigatewayServiceApplication.java
┃ ┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┃ ┣ 📜application.yml
┃ ┃ ┃ ┃ ┗ 📜keystore.p12
┃ ┣ 📜.gitignore
┃ ┣ 📜build.gradle
┃ ┣ 📜Dockerfile
┃ ┣ 📜gradlew
┃ ┣ 📜gradlew.bat
┃ ┣ 📜Jenkinsfile
┃ ┗ 📜settings.gradle
┃
┃
┗ 📂discovery-service
┃ ┣ 📂src
┃ ┃ ┣ 📂main
┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┗ 📂timecapsule
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂discoveryservice
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜DiscoveryServiceApplication.java
┃ ┃ ┃ ┗ 📂resources
┃ ┃ ┃ ┃ ┣ 📜application.yml
┃ ┃ ┃ ┃ ┗ 📜keystore.p12
┃ ┣ 📜.gitignore
┃ ┣ 📜build.gradle
┃ ┣ 📜Dockerfile
┃ ┣ 📜gradlew
┃ ┣ 📜gradlew.bat
┃ ┣ 📜Jenkinsfile
┃ ┗ 📜settings.gradle
┃
┃
┃
📦FE
┣ 📂AboutTimeCapsule
┃ ┣ 📂app
┃ ┃ ┣ 📂release
┃ ┃ ┃ ┗ 📜output-metadata.json
┃ ┃ ┣ 📂src
┃ ┃ ┃ ┣ 📂androidTest
┃ ┃ ┃ ┃ ┗ 📂java
┃ ┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂aboutcapsule
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂android
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜ExampleInstrumentedTest.kt
┃ ┃ ┃ ┣ 📂main
┃ ┃ ┃ ┃ ┣ 📂java
┃ ┃ ┃ ┃ ┃ ┗ 📂com
┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂aboutcapsule
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂android
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂data
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂capsule
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂memory
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂mypage
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂oauth
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂factory
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂model
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂repository
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂service
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂util
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📂views
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂ar
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂capsule
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂chat
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂login
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂mainpage
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂map
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂mypage
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┣ 📂notification
┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┃ ┗ 📜MainActivity.kt
┃ ┃ ┃ ┃ ┣ 📂res
┃ ┃ ┃ ┃ ┃ ┣ 📂color
┃ ┃ ┃ ┃ ┃ ┣ 📂drawable
┃ ┃ ┃ ┃ ┃ ┣ 📂drawable-v24
┃ ┃ ┃ ┃ ┃ ┣ 📂font
┃ ┃ ┃ ┃ ┃ ┣ 📂layout
┃ ┃ ┃ ┃ ┃ ┣ 📂menu
┃ ┃ ┃ ┃ ┃ ┣ 📂mipmap-anydpi-v26
┃ ┃ ┃ ┃ ┃ ┣ 📂mipmap-hdpi
┃ ┃ ┃ ┃ ┃ ┣ 📂mipmap-mdpi
┃ ┃ ┃ ┃ ┃ ┣ 📂mipmap-xhdpi
┃ ┃ ┃ ┃ ┃ ┣ 📂mipmap-xxhdpi
┃ ┃ ┃ ┃ ┃ ┣ 📂mipmap-xxxhdpi
┃ ┃ ┃ ┃ ┃ ┣ 📂navigation
┃ ┃ ┃ ┃ ┃ ┣ 📂values
┃ ┃ ┃ ┃ ┃ ┣ 📂values-night
┃ ┃ ┃ ┃ ┃ ┣ 📂values-v23
┃ ┃ ┃ ┃ ┃ ┗ 📂xml
┃ ┃ ┃ ┃ ┗ 📜AndroidManifest.xml
┃ ┣ 📜.gitignore
┃ ┣ 📜build.gradle
┃ ┣ 📜gradle.properties
┃ ┣ 📜gradlew
┃ ┣ 📜gradlew.bat
┃ ┗ 📜settings.gradle
-
MSA 구조를 적용하여 서버의 부하를 방지하고 에러 발생시 전체 서비스로 확장 방지합니다.
MSA MicroService Architecture으 약자로, 각각을 마이크로하게 나눈 독립적인 서비스를 연결한 구조로 이러한 특성 덕분에 시스템 전체의 중단 없이 필요한 부분만 업데이트/배포가 가능
-
Spring Security를 베이스로 JWT를 사용하여 인증과 인가 구현하여 보안을 강화합니다.
Spring Security Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크 JWT JSON Web Token의 약자로, Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token
-
MVVM 패턴을 적용하여 단위 별로 의존성을 줄이고 View와 Model 의 독립적인 개발 방식을 적용합니다.
MVVM 패턴 페이지를 Model, View, ViewModel 단위로 분리한 패턴으로, MVC 패턴에서 Controller를 빼고 ViewModel을 추가한 패턴
-
캡슐 찾는 과정에 AR을 적용하여 현실 세계에서 디치털 세계의 캡슐을 생생하게 경험할 수 있도록 합니다.
ARCore 증강 현실 애플리케이션을 구축할 수 있도록 Google에서 개발한 소프트웨어 개발 키트
-
나의 캡슐이 오픈되거나 친구와 공유된 캡슐을 생성되었을 때 알림을 통해 서비스를 편하게 이용할 수 있도록 합니다. 또한 나의 추억에 댓글이 달리거나 친구 요청과 관련된 상황을 알림을 통해 실시간으로 확인할 수 있습니다.
FCM Firebase Cloud Messaging으 약자로, 무료로 메시지를 안정적으로 전송할 수 있는 크로스 플랫폼 메시징 솔루션
-
로그인 시 사용되는 Refresh Token을 저장하여 빠른 액세스 속도로 로그인 시 병목 현상을 방지합니다.
-
알림 토큰 및 진행 상황을 Redis에 저장하여 뛰어난 속도로 데이터에 접근할 수 있습니다.
Redis Remote Dictionary Server의 약자로, "키-값" 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템
👑김아린 | 🐶강정훈 | 🐸장별하 | 🐹장유범 | 🐻허진선 |
---|---|---|---|---|
팀장/백엔드 Infra아키텍쳐 AR |
프론트 마이페이지 구현캡슐페이지 구현 |
백엔드 캡슐 API 구현멤버 API 구현 알림 서비스 |
프론트 지도페이지 구현캡슐페이지 구현 |
백엔드 Auth API 구현 |