현재 채팅을 위한 서버 구축이 완료 되었고, 안드로이드와 연동도 끝냈습니다. 처음엔 Spring boot 로 서버 개발을 진행했었는데 http 요청 처리는 잘 되었지만, 소켓 통신을 하는 부분에서 좀 어려움이 있어서 node.js 로 개발하는 방향으로 바꿨습니다.
주고받은 메시지는 SQLite 데이터베이스에 저장했습니다! (Room 사용)
서버에도 메시지가 잘 전달되는 모습입니다.
채팅, 친구추가, 프로필 정보 변경, 채팅방 조회
- 채팅방에 입장해야만 채팅을 주고받을 수 있음
- 프로필 사진 변경 기능을 구현할 때 URI를 DB 에 저장했기 때문에 다른 핸드폰에서 봤때 이 미지가 안보이는 문제가 있음
1번 문제는 백그라운드 상태에서도 채팅이 와야하는 것인데,,, 어떻게 해야하는건지는 좀 찾아봐야 할 것 같습니다.
workManager 라는 것을 이용하면 될지도...?(이 부분은 공부가 필요할 것 같습니다)
https://developer.android.com/topic/libraries/architecture/workmanager?hl=ko
2번 문제는 찾아보니까 DB에 이미지를 직접 저장하는 것은 꽤 무거운 작업이라 보통 DB 에 이미지 파일을 직접 저장하지 않는다고 합니다. 그래서 서버에 이미지를 저장하고, DB에는 이미지 파일 경로를 저장하는 방식으로 한다고 합니다.
이미지 파일을 서버에 전달하는 방법에 대해서 공부해야할 것 같습니다.
서버 개발은 너무 어렵다.... 백엔드는 내 길이 아닌가보다...
안드로이드 개발 열심히 해야겠다...
앱
https://github.com/EJLee1209/CocoaTalk
서버
https://github.com/EJLee1209/CocoaTalkServer_nodeJS