https://github.com/boostcampwm2023/and07-mindsync
π§ μ¬λ¬λͺ
μ΄μ λμμ λ§μΈλλ§΅μ 그릴 μ μλ€κ³ ~? MindSync ...λ보기
https://github.com/boostcampwm2023/and07-mindsync
android crdt mindmap nestjs socket-io
Last synced: 12 months ago
JSON representation
π§ μ¬λ¬λͺ μ΄μ λμμ λ§μΈλλ§΅μ 그릴 μ μλ€κ³ ~? MindSync ...λ보기
- Host: GitHub
- URL: https://github.com/boostcampwm2023/and07-mindsync
- Owner: boostcampwm2023
- Created: 2023-11-06T07:33:22.000Z (over 2 years ago)
- Default Branch: develop
- Last Pushed: 2025-03-29T11:40:13.000Z (about 1 year ago)
- Last Synced: 2025-03-29T12:27:51.390Z (about 1 year ago)
- Topics: android, crdt, mindmap, nestjs, socket-io
- Language: Kotlin
- Homepage:
- Size: 7.27 MB
- Stars: 25
- Watchers: 3
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# Mind Sync (Mind Synchronize)
λ§μΈλλ§΅ μ€μκ° κ³΅λ νΈμ§ μ΄ν리μΌμ΄μ

[](https://hits.seeyoufarm.com)
## β¨ νλ‘μ νΈ μκ°
- λ§μΈλλ§΅μ μ¬μ©νμ¬ μμ΄λμ΄λ₯Ό μκ°μ μΌλ‘ ννν΄λ³΄μΈμ
- νμ
μ μνλ μΉκ΅¬λ λλ£λ₯Ό μ΄λνλ κ²λ κ°λ₯ν©λλ€
- κ°νΈνκ² λ§μΈλλ§΅μ μμ±νκ³ , λ€λ₯Έ μ¬μ©μλ€κ³Ό μ€μκ°μΌλ‘ 곡λ νΈμ§μ μ§νν μ μμ΄μ
## π¨βπ©βπ§βπ¦ νμ μκ°
|[κΉμ°¬ν¬(J035)](https://github.com/Conut-1) | [μμ μ(K023)](https://github.com/yang1318) | [μ΄μμ€(K027)](https://github.com/hegleB) | [μ΄μ©ν(J110)](https://github.com/tnpfldyd) | [μ΄μ¬ν(K029)](https://github.com/jaehan4707) |
|:--------:|:---------:|:---------:|:---------:|:---------:|
|  |  |  |  |  |
## βοΈ κΈ°λ₯ μκ°
### π μ€νμ΄μ€
- μ€νμ΄μ€λ μ¬λ¬ μ¬μ©μκ° ν¨κ» νμ
νλ 곡κ°μ
λλ€.
- μ€νμ΄μ€λ₯Ό λ§λ€κ³ , μ΄λμ½λλ₯Ό 곡μ ν΄μ λ€λ₯Έ μ¬μ©μλ₯Ό μ΄λν μ μμ΅λλ€.
- μ€νμ΄μ€μ ν¨κ» μλ μ¬μ©μλ€μ μ€νμ΄μ€μ μ μ₯λ 보λλ€μ 곡μ νκ² λ©λλ€.
- μ€νμ΄μ€λ μ€νμ΄μ€μ μ°Έμ¬ν λͺ¨λ μ¬μ©μκ° λκ°κ² λλ©΄ μμ λ©λλ€.
|μ€νμ΄μ€ μΆκ°|μ΄λ μ½λ λ°κΈ|μ€νμ΄μ€ μ°Έκ°|μ€νμ΄μ€ λκ°κΈ°|
|:---:|:---:|:---:|:---:|
|
|
|
|
|
### π 보λ
- 보λλ λ§μΈλλ§΅μ μ μ₯νλ 곡κ°μ
λλ€.
- μ€νμ΄μ€ νλμ μ¬λ¬κ°μ 보λκ° μ μ₯λκ³ , κ° λ³΄λμλ λ§μΈλλ§΅μ΄ νλμ© ν λΉλ©λλ€.
- 보λλ₯Ό μμ νλ©΄ 보λλ ν΄μ§ν΅μΌλ‘ μ΄λλ©λλ€.
- 보λλ₯Ό μꡬ μμ ν μλ μκ³ , μμ λ μΌμ κΈ°μ€μΌλ‘ 7μΌμ΄ μ§λλ©΄ μλμΌλ‘ μμ λ©λλ€.
- μ¬λ¬λͺ
μ΄ νμ
ν μ μλ νκ²½μ΄κΈ° λλ¬Έμ μꡬ μμ λ λμ§ μλλ‘ νμ΅λλ€.
|보λ μμ±|보λ μμ |ν΄μ§ν΅|
|:---:|:---:|:---:|
|
|
|
|
### π§ λ§μΈλλ§΅
- 보λλ₯Ό ν΄λ¦νλ©΄ λ§μΈλλ§΅ νλ©΄μΌλ‘ μ΄λνκ² λ©λλ€.
- ν΅μ¬ κΈ°λ₯μΈ λ§μΈλλ§΅μ κ·Έλ¦¬κ³ , νΈμ§ν μ μλ 곡κ°μ
λλ€.
- λ
Έλλ₯Ό μΆκ°, μμ , νΈμ§, μ΄λν μ μμ΅λλ€.
- socket.ioμ CRDT μκ³ λ¦¬μ¦μ μ΄μ©ν΄ μ€μκ°μΌλ‘ ν΅μ μ΄ λλλ‘ νμ΅λλ€.
|λ
Έλ μΆκ°|λ
Έλ μμ |λ
Έλ νΈμ§|
|:---:|:---:|:---:|
|
|
|
|
|λ
Έλ μ΄λ|νλ/μΆμ/λλκ·Έ|μ€μκ°λμνΈμ§|
|:---:|:---:|:---:|
|
|
|
|
## π― κΈ°μ μ λμ
μ ν¬λ λ€μκ³Ό κ°μ κ³Όμ μ λμ νμ΅λλ€.
1. **λ§μΈλλ§΅μ 그릴 μ μλ€.**
2. **λ§μΈλλ§΅μ λμμ μ€μκ° νΈμ§ ν μ μλ€.**
κ·Έλμ ν΄λΉ κ³Όμ λ₯Ό μννκΈ° μν΄ λ€μκ³Ό κ°μ κ³Όμ μ κ±°μ³€μ΅λλ€.
1. **λ§μΈλλ§΅μ 그리기 μν΄**
- **λ
Έλλ₯Ό κ·Έλ €μ£Όλ 컀μ€ν
λ·°μ λΌμΈμ κ·Έλ €μ£Όλ 컀μ€ν
λ·°λ₯Ό ꡬννμ΅λλ€.**
- [컀μ€ν
λ·° νμ΅νκΈ°](https://yangyang-workspace.notion.site/CustomView-9d4a86f6cd2046f4806d42655d220340?pvs=4)
- [λ§μΈλλ§΅μ μ μ₯νλ μλ£κ΅¬μ‘° μ€κ³νκΈ°](https://yangyang-workspace.notion.site/d89604f305e7406fa8243ddb0926706a?pvs=4)
- [λΌμΈμ 곑μ μΌλ‘ 그리기](https://yangyang-workspace.notion.site/5adf5fa59e464e7ba316ad5dc4b0db51?pvs=4)
- [ν
μ€νΈ ν¬κΈ°μ λ°λ₯Έ λ
Έλ ν¬κΈ° μλν](https://yangyang-workspace.notion.site/CustomView-DrawText-0c7165d51af84f50b82673fde84766a5?pvs=4)
- **μ€ κΈ°λ₯μ μΆκ°νκ³ , λμ΄λλ λ§μΈλλ§΅μ ν¬κΈ°μ λ°λΌ μ€μ μ‘°μ νμ΅λλ€.**
- [λ§μΈλλ§΅μ΄ μ»€μ‘μ λ μ리λ νμ ν΄κ²° κ³Όμ ](https://yangyang-workspace.notion.site/947792eae0014041aa1d7d92869a1d71?pvs=4)
- [μ€ κΈ°λ₯μ΄ μΆκ°λ¨μ λ°λΌ, λ
Έλ μ΄λκΈ°λ₯κ³Ό κ²ΉμΉλ ν°μΉ μ΄λ²€νΈ κ΄λ¦¬νκΈ°](https://yangyang-workspace.notion.site/56448f36097049e4acef2897fecac41a?pvs=4)
- [μ΄λ μ€ κΈ΄ μμ λ
Έλκ° μ‘΄μ¬ν λ λ°μνλ λ¬Έμ ν΄κ²°](https://www.notion.so/yangyang-workspace/cd711263900d4929bd3fd925f0f5941d?pvs=4)
- **λ
Έλκ° μΆκ°/νΈμ§ λ λλ§λ€ ν¬κΈ°λ₯Ό μ¬κ³ , μ λ ¬νλλ‘ νμ΅λλ€.**
- [μ λ ¬ μκ³ λ¦¬μ¦](https://yangyang-workspace.notion.site/067de1120ec841808d46279d752b9352?pvs=4)
3. **λ§μΈλλ§΅μ λμμ μ€μκ° νΈμ§ ν μ μλλ‘ νκΈ° μν΄**
- [Tree ꡬ쑰μ μ μ©κ°λ₯ν μμ
κΈ°λ° CRDTλ₯Ό ꡬννμ΅λλ€.](https://yangyang-workspace.notion.site/CRDT-093a7ce7785543cc8c69ac84c138a955?pvs=4)
- [socket.io νμ΅νκΈ°](https://yangyang-workspace.notion.site/Socket-IO-bd7ceaba859a4449bfe73bbeaa2f6798?pvs=4)
4. **λΉ λ₯Έ μλ΅μ μν μΊμ±μ μ§μ ꡬνν΄ μ μ©νμ΅λλ€.**
- [μΊμ μ μ©κΈ°](https://yangyang-workspace.notion.site/Cache-c3a6b494d39c45ce93c2ee9dd95cf6e6?pvs=4)
5. **λ§μΈλλ§΅μ μλ²μ μ μ₯νλ 곡κ°μΈ 보λμ 보λλ₯Ό μ¬λ¬κ° μ μ₯ν μ μλ 곡κ°μΈ μ€νμ΄μ€λ₯Ό μ€κ³ν΄ μ¬μ©μκ° μ΄λ/κ°μ
ν μ μλλ‘ νμ΅λλ€.**
6. **μμ£Ό μν΅νλλ‘ λ
Έλ ₯νλ©° νμ
νμ΅λλ€.**
- νμ΄νλ‘κ·Έλλ°μ μμ£Ό νμ΅λλ€.
- μλλ‘μ΄λ&λ°±μλ λΆμΌκ°μ μν΅λ λ§€μΌ νλ°νκ² μ΄λ£¨μ΄μ‘μ΅λλ€.
- μ΄λ°μλ λ§€μΌ 1μκ°μ ν°νμμ κ°μ§λ©΄μ λ§€μΌ 1μκ°μ© κΌ λννλ μκ°μ κ°μ‘μ΅λλ€.
- api μ μ©, μμΌ ν΅μ μ κ°λ°νκΈ° μμνκ³ λμλΆν°λ λ λ§μ μν΅μ΄ νμνκ³ , κ·Έλμ κ°μ νμμ€μ μ¬μ©ν΄μ μλ‘μ μ΄μλ₯Ό λ°λ‘λ°λ‘ 곡μ ν μ μλλ‘ νμ΅λλ€.
## π λ¬Έμ ν΄κ²° κ³Όμ
- [μλλ‘μ΄λμ Access Tokenκ³Ό Refresh Token μ μ©νκΈ°](https://yangyang-workspace.notion.site/Access-Token-Refresh-Token-DataStore-Preference-Interceptor-Authenticator-9934da08678f4b13a5396f47038e1f7f?pvs=4)
- [μλ²μ Bulk Insert λ° Update μ μ©νκΈ°](https://yangyang-workspace.notion.site/Bulk-Insert-Update-ec109de908e54b4f833ffaf24e206d8c?pvs=4)
- [μλ²μ μΉ΄μΉ΄μ€ OAuth μ μ©νκΈ°](https://yangyang-workspace.notion.site/OAuth-ceee7681f4124d34aafd714728b8aaeb?pvs=4)
- [μλ²μ Refresh Token μ μ©νκΈ°](https://yangyang-workspace.notion.site/Refresh-Token-66f30a6645cb472582817f695d759e28?pvs=4)
- [μλλ‘μ΄λ CI μ μ©κΈ°](https://yangyang-workspace.notion.site/Android-CI-7eb07b0b0c5346959a1271c526993604?pvs=4)
- [μλλ‘μ΄λ CD μ μ©κΈ°](https://yangyang-workspace.notion.site/Android-CD-7bf21956eafc47b8bd5a06990f3852da?pvs=4)
- [μλ² μ€λ³΅ μ½λλ₯Ό μΆμ ν΄λμ€λ‘ λΆλ¦¬νκΈ°](https://yangyang-workspace.notion.site/228c00d520ed42e7a2706297fc7c1c09?pvs=4)
- [Google Play Store μλ λ°°ν¬ κ΅¬μΆ](https://www.notion.so/yangyang-workspace/Google-Play-Store-CD-9bd55780c0f64f7997534b98f1986b2a?pvs=4)
## π κΈ°μ μ€ν
### AOS
- `Kotlin` `Canvas` `Socket.IO` `Coil` `MVVM` `Retrofit` `Datastore` `Hilt` `Flow` `Jetpack Navigation` `DataBinding`
### BE
- `Typescript` `NestJS` `Naver Cloud Platform` `MySQL` `MongoDB` `CRDT` `OAuth`
## π λ¬Έμ
|μ€κ³μ|νΌκ·Έλ§ λμμΈ|νλ‘λνΈ λ°±λ‘κ·Έ|μ€νλ¦°νΈ λ°±λ‘κ·Έ|κ·ΈλΌμ΄λ λ£°|
|:---:|:---:|:---:|:---:|:---:|
|[πμ€κ³μ: νλ‘μ νΈλ₯Ό μμνλ©΄μ λͺ©νμ μ΄λ€ κΈ°λ₯μ ꡬνν μ§ μ€κ³ν λ΄μ©](https://yangyang-workspace.notion.site/7efada904a3d44328474a6fb30689db7?pvs=4)|[πνΌκ·Έλ§ λμμΈ](https://www.figma.com/file/Wb1U49Xd2W9xKHaPEltIRB/MindSync?type=design&node-id=2%3A218&mode=design&t=3MJMbYI1z4k217UB-1)|[π§Ύνλ‘μ νΈ λ°±λ‘κ·Έ: μ 체 κΈ°λ₯μ λν μΌμ μ€κ³](https://github.com/orgs/boostcampwm2023/projects/41)|[μ€νλ¦°νΈ λ°±λ‘κ·Έ: λ§€μ£Ό μμ±νλ ꡬ체μ μΈ μΌμ μ€κ³](https://github.com/orgs/boostcampwm2023/projects/40)|[β³MindSync νμ κ·ΈλΌμ΄λ λ£°](https://github.com/boostcampwm2023/and07-MindSync/wiki/%ED%8C%80-%EA%B7%B8%EB%9D%BC%EC%9A%B4%EB%93%9C-%EB%A3%B0)|