너 또 돈썼니...?
MoneChat은 사람들의 소비를 다시 한번 생각하게 해주는 거지방을 편하게 세팅해주는 앱입니다.
친구들을 초대해 함께 가계부를 쓰고 소비 내역을 공유하며 자신의 소비가 적절한지를 컨펌을 받으며 재고해보세요!
당신의 소비는 확실히 줄어들 것입니다...
FrontEnd:
- Tool: JAVA
- IDE: Android Studio
BackEnd:
- Tool: Node.js
- Server: AWS EC2
- DB: MongoDB Atlas
Design: Figma
- 김원중(KAIST 전산학부 20): github 프로필
- 이수연(숙명여대 컴퓨터과학전공 21): github 프로필
- 카카오로 로그인하기 버튼을 통해 앱에 로그인할 수 있습니다.
![](https://private-user-images.githubusercontent.com/96229091/347278551-eb14d6cf-9251-4d5e-9a1c-27137d709c5a.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg1NTEtZWIxNGQ2Y2YtOTI1MS00ZDVlLTlhMWMtMjcxMzdkNzA5YzVhLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTgzNTI2OWI2MWQyNWUxZjRlYjlmZDg3ZjQxZTJmZjgyMjEwZmVlNWMxNTc5YWI0YWU3YzQzNWZkZjY5N2YwZmMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.e7rat6D3cdpKSlUsvqH1McfFf1ApBrQvqd8rg3NLE8I)
- 가계부 페이지에서 자신의 지출과 수입을 월별로 구분해서 RecyclerView로 제공합니다.
![](https://private-user-images.githubusercontent.com/96229091/347278808-878e4316-942b-4fe5-b66d-77267863cdc6.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MDgtODc4ZTQzMTYtOTQyYi00ZmU1LWI2NmQtNzcyNjc4NjNjZGM2LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFhN2I2NGNjZjY5YzczNjQ2OTE5MjUyNGU1ZDI0NzUyZjJmOTI5OGVlMDczMzM1NDQxMmQ1NTAxMThkZDc3MTYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.rXOh4oshRnya8TDR4YpmPEvwTi-Wq9WfId0CPzRKNQg)
![](https://private-user-images.githubusercontent.com/96229091/347278814-283784f0-5f84-4d92-a6c0-30a9865ea85f.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MTQtMjgzNzg0ZjAtNWY4NC00ZDkyLWE2YzAtMzBhOTg2NWVhODVmLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTYzYTFkODkwNmEzMGUyZDc3MDllYWY0YWNlOWE5N2I3YjA1MTczYTcwZGIwODI2YmUzZTU4ODBlODNiYWI3ZTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.JyHr3KmXMTPnDEwWdBnuLf0aV_9nLGKJIa9JzZa8r4k)
- 각 내역을 클릭 시 세부 내역을 확인할 수 있습니다.
![](https://private-user-images.githubusercontent.com/96229091/347289079-342737aa-48e2-49bb-a4c4-2e767bac0377.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyODkwNzktMzQyNzM3YWEtNDhlMi00OWJiLWE0YzQtMmU3NjdiYWMwMzc3LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWYzMTU0OTQzODk2Yjg2MDc5YjU3MWNkOTllYjEwMDMxNGQyOWQ1NzU3YjM3MWExMjBiODlhN2YyZmViZTQ0ZDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ocfN9L4iwuoVyWuWooY73v1dF7ZO75NfqQAM9YNbHGQ)
- 지출 및 수입 내역을 새로 등록하면 자동으로 정렬되어 화면에 보여집니다.
![](https://private-user-images.githubusercontent.com/96229091/347278816-e63fc8a1-769d-4d5c-97eb-d350e3583943.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MTYtZTYzZmM4YTEtNzY5ZC00ZDVjLTk3ZWItZDM1MGUzNTgzOTQzLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQxYTlkOTg0YjJkNDhjNjllMjQ2NTBlMDhjZGFjN2Q5MGM1Nzc5MWVkZGM4MDYyMGRhYjlkZWM3YWZhZmE4YTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.zAOS8b6lBv5_G747Qe6L2WCrog6Moh-feRewKZRj0m8)
![](https://private-user-images.githubusercontent.com/96229091/347278819-24699948-2c4c-4276-9b38-854bbb1bface.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MTktMjQ2OTk5NDgtMmM0Yy00Mjc2LTliMzgtODU0YmJiMWJmYWNlLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc2M2E5NGNmOTY1MWUxN2M5MTZiZWIzZWNkNmYxYWZhMzc4MWEyOTM5OGVkZTA3MDJhYzU0NzY2MGUzZWU1NTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.4ACYo0oMh5lCAJXaCLYY7opRXA5z20j9VtMY7dZ_d1o)
![](https://private-user-images.githubusercontent.com/96229091/347278823-ed8624f0-428d-4cf6-a79e-0319c0d99555.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MjMtZWQ4NjI0ZjAtNDI4ZC00Y2Y2LWE3OWUtMDMxOWMwZDk5NTU1LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkZTQ2NWEzY2IzNWU3OTcwOGI4ZjI2NjBiYjI4ZDczODk5MGQ4NGQxZmRjYzU1Zjg5MjY5MjlkNTA5MmQ3NjAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.F1Yop7vICoDKWRiCvQqpjhnWDlPsS4i5tsGSwk6J_9Y)
![](https://private-user-images.githubusercontent.com/96229091/347288400-9aefa65d-9009-45ac-bb72-307821d764eb.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyODg0MDAtOWFlZmE2NWQtOTAwOS00NWFjLWJiNzItMzA3ODIxZDc2NGViLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg3YjQ3Njc3MzZjNmFlN2MxYjU5ZTVjMjA5NTY0MWU1MDZmMmExMzFlNDU0N2U0NDNhYTJiNmI0YTlmYmU0YjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.GrWWA1QsQe471hP-awza7i3Yw0tF9sclfA51YltWzAY)
![](https://private-user-images.githubusercontent.com/96229091/347288393-99b7de43-9343-450c-86a0-8dc46c993931.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyODgzOTMtOTliN2RlNDMtOTM0My00NTBjLTg2YTAtOGRjNDZjOTkzOTMxLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTIyYWMwM2YyNjY4N2VmMmUxOWFiYWI3YjQ2YzljZDY2YTA0NTM2N2U3YWVlNDRhM2NhMTFjNTZlMmEyNGJjZjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cwJOtytCHMuRpyAnYZDD7wqaeidoEM2Y-53_OyzYagI)
- 지출 내역을 등록하면 채팅 페이지의 채팅방으로 자동으로 메세지가 보내집니다. - 가계부 내역을 local에 저장하기 위해 room 라이브러리를 사용했습니다.
- 처음 채팅 페이지로 들어가면 채팅방 입장 코드를 입력해 채팅방에 들어갈 수 있습니다.
![](https://private-user-images.githubusercontent.com/96229091/347278825-a95e46f4-c87e-48d7-97c9-be4a1d8a0a80.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MjUtYTk1ZTQ2ZjQtYzg3ZS00OGQ3LTk3YzktYmU0YTFkOGEwYTgwLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5MjRiOGMyOTVlMDJjYTBhODE1M2IyZDJhY2NiYWIyMmIzYzViNTM4NjZjYmE2MDQzNmVjMTU5M2NmMTM3MmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.F5iDw_LVrwWs41-os5d-DhXqJcG291eZX0WoGyHUizM)
![](https://private-user-images.githubusercontent.com/96229091/347278826-8e7698e5-3e13-4be8-bf8d-c0ceb215ec70.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MjYtOGU3Njk4ZTUtM2UxMy00YmU4LWJmOGQtYzBjZWIyMTVlYzcwLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUzY2VmM2FkNmNkYjAxYmJkNDE4ZjRmMDhjYjY1MWYxNzFiNTkwMWZiZjgxNDBmMWE5ZTRlYjdmNzMzZDY0YmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.XdBzZZcWdaoYviRVVgxMmGC0kCkQgdcm1V9yCqAdLAU)
- 채팅방은 Socket.io를 사용해 실시간 채팅으로 구현했습니다: 이 메세지 수신은 앱이 꺼져도 지속됩니다.
- 친구들과 함께 가계부 내역을 공유해 보세요!
![](https://private-user-images.githubusercontent.com/96229091/347278832-8bc6fcd1-f841-4715-b440-303919eb6d03.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MzItOGJjNmZjZDEtZjg0MS00NzE1LWI0NDAtMzAzOTE5ZWI2ZDAzLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWJiOTA0NWUyODU2Nzg1ZGZmNDU1MjlmZDA2ODFhZTNmMmI2NjVlNjc0NzcwNGQwMDgzNWQ2OTBlMDMxMjMwYzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AMZKnxoqYIHNtwLLdIoV-WRst_yToKsYOhytcI6tbi8)
![](https://private-user-images.githubusercontent.com/96229091/347278837-fc80cde6-f657-472a-ac9d-931c311821a7.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4MzctZmM4MGNkZTYtZjY1Ny00NzJhLWFjOWQtOTMxYzMxMTgyMWE3LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTM0ZmRlYWVmOTFkMDFhZTJlY2VmOWM5M2MzYjNlYzRjNTEyNDVkYWI5ZjhhZmU0NmQyNmE0OWU3MTk3MzNlYzAmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.-Nld41JTEIAjtgqDpzdHo3pVbqgpe628JxeWUk7LiwQ)
- 가계부 페이지에서 입력한 소비 내역을 가져와 카테고리별로 구분해 원형 그래프로 보여줍니다.
- 가계부 분석 그래프는 PieChart 라이브러리를 사용해 구현했습니다.
![](https://private-user-images.githubusercontent.com/96229091/347278840-982e76ce-250d-4dfe-8bed-1ce1fdc5fa4f.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDcyNzg4NDAtOTgyZTc2Y2UtMjUwZC00ZGZlLThiZWQtMWNlMWZkYzVmYTRmLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRhNjBlNTFjNDk2MmVlMzQ1YjMzOTI0ZDMzZTU2YTEwMWRlMmQyZTVmNzJjNjhiNjk2MDQwY2YxZjEyNGFjMDYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.T21XHBJn0T0koIxCjGgNI98g4az796h1poOjiIWfFAs)
- 마이 페이지에서 회원 정보를 확인하고 튜토리얼을 확인할 수 있습니다.
![](https://private-user-images.githubusercontent.com/96229091/347340568-b9d58342-0466-47fb-b117-ec8892075dd5.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDczNDA1NjgtYjlkNTgzNDItMDQ2Ni00N2ZiLWIxMTctZWM4ODkyMDc1ZGQ1LmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQzYmZkYjkzOGJhZWZlYWRkZmQyMGE2NGIwY2JkYzExNGMyOWJmYzZhMjY2ZjY4MTJiODM0MGU2NDkzNGI1YmEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.x3YQTR1Sbr1t9J1xvCsKqrSOezHXdW4VGDng4ATbJzU)
![](https://private-user-images.githubusercontent.com/96229091/347341839-9fb474be-a788-4917-b565-2b3d056f0253.jpg?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk4MDkwMzEsIm5iZiI6MTczOTgwODczMSwicGF0aCI6Ii85NjIyOTA5MS8zNDczNDE4MzktOWZiNDc0YmUtYTc4OC00OTE3LWI1NjUtMmIzZDA1NmYwMjUzLmpwZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTclMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE3VDE2MTIxMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVkZmY5YTQxM2Q5NTQ5ZjVkNmI0NTk4ZjZiMDcxYWE2ZmYwNzQ3N2M4Mzc5MGY2MTAwMTI0YmI2YjQ0MGM1OTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8N5pNPi7KsGVCgnyhC4moGBD4iQVPk1F55FxIYn2xpo)
- 카카오 로그인 SDK를 이용해 카카오 계정으로 로그인 기능 구현
- 시간 순으로 배열
- 프론트엔드
- 핵심 기능
-
- jwt 토큰을 가지고 있는지 판별(새로 로그인 해야하는지 확인을 위해)
- jwt 토큰 가지고 있을 시 카카오 로그인 SDK 실행 없이 서버로 jwt 토큰을 보내게 됨
-
- 카카오 로그인 API 호출, 로그인 정보를 가지고 카카오 로그인 서버에 Access Token 요청
-
- Access Token을 받아와 백엔드 서버에 http 통신을 요청하며 authorization 헤더로 전달
-
- 로그인 성공!
-
- 핵심 기능
- 백엔드
- 핵심 기능
-
- 프론트엔드에서 Access Token을 전달받아 카카오 로그인 서버에 유저 정보 요청
-
- 카카오 로그인 서버에서 유저 정보를 받아와 DB에 저장
-
- 유저 로그인 정보를 jwt 토큰으로 암호화해 클라이언트에 json 형식으로 전달
- jwt 토큰을 DB에 추가
-
- jwt 토큰이 오면 jwt 토큰이 DB에있는지 확인
- 성공: 로그인
- 실패: 카카오 Access token이라고 생각하고 3번으로
-
- 핵심 기능
- 프론트엔드
- 시간 순으로 배열
- Socket.io를 이용해 채팅방 실시간 통신 구현
- 유저가 채팅방 코드를 입력 시 입력된 코드의 채팅방으로 접속
- 시스템 메세지로 접속 안내 채팅 전송
- 메세지를 자유롭게 주고받을 수 있다.
- 다른 사람의 채팅에 그 사람의 카카오 닉네임, 프로필 사진과 전송 시간을 포함해서 화면에 표시
- 유저가 메세지를 전송 시 서버로 메세지가 전송됨
- DB에 메세지 저장, 그 사람의 초대 코드를 통해 그 사람이 접속해 있는 채팅방으로 채팅 내용 전달
- 채팅방 내의 사람들이 모두 나갔을 때 유저 수를 판별해 유저 수가 0명일 시 채팅방의 메세지들을 DB에서 삭제
- 이때 채팅 fragment가 꺼져도 메세지를 전달받아 저장해 놓고 채팅 fragment가 켜졌을 때 로딩하는 로직 구현을 통해 앱이 백그라운드에서 돌아가고 있을 때 채팅 메세지 전달받기 가능
- 다른 사람의 채팅에 그 사람의 카카오 닉네임, 프로필 사진과 전송 시간을 포함해서 화면에 표시
https://drive.google.com/file/d/1z3UEZ8UwFID1DX6mZXFMZSoUv3HFD2j3/view?usp=drive_link