이번 시리즈에서는 실시간 채팅 앱을 만들어보도록 하겠습니다. 저의 본업은 백엔드 개발이다보니, 서버가 있는 채팅 앱을 만들어보도록 하겠습니다. 참고로, 프론트엔드 코딩에는 Android Kotlin을, 백엔드 코딩에는 Java Spring을 사용할 것이며, 서버는 EC
이번 포스팅에서는 저번 포스팅에서 만든 회원가입 및 로그인 페이지에서 실제로 회원가입 및 로그인을 처리할 수 있도록 구현해보도록 하갰습니다. 1. 파이어베이스 연동하기 ① 파이어베이스 콘솔에서 Chatting이라는 이름의 프로젝트를 생성한다. ② 앱을 등록하고 go
이번 포스팅에서는 저번 포스팅에 이어서 회원가입 및 로그인 기능을 완성시켜보도록 하겠습니다.① user 패키지 하위로, profile 패키지를 생성하고 이 패키지 하위로, Profile, ProfileRepository, ProfileService과 dto > GetS
이번 포스팅에서는 먼저 회원가입 및 로그인 페이지에서 발생할 수 있는 예외를 처리하고, 유저의 정보를 저장해보도록 하겠습니다. 이 작업을 마치면, 로그인 및 회원가입 페이지에서 해주어야 할 모든 내용이 끝나기 때문에, 앞으로는 바로 메인 페이지로 이동할 수 있도록 자동
이번 포스팅에서는 저번 포스팅에서 만든 MyPageFragment를 완성시켜보도록 하겠습니다. 1. 레이아웃 구성하기 fragmentmypage.xml를 아래와 같이 수정한다. 2. 닉네임 변경하기 1) 백엔드 ① user > dto 패키지 하위로 GetUserRe
닉네임 변경에 이어 비밀번호 변경 기능도 추가해보도록 하겠습니다.① user > dto 패키지 하위로 PatchPasswordReq를 추가한다.② UserController에 아래의 API를 추가한다.③ UserService에 아래의 메서드를 추가한다.① mypage
이번 포스팅에서는 마이페이지에서 본인의 프로필 사진을 변경할 수 있는 기능을 추가해보도록 하겠습니다. 마이페이지의 기능 중 가장 어려운 부분면서도, 반드시 구현할 수 있어야 할 중요한 기능이 아닐까 싶습니다. 이번 포스팅의 내용을 제대로 이해하기 위해서는 AWS S3를
드디어 마이페이지 관련 기능을 마무리하는 단계까지 왔네요. 이번 포스팅에서는 로그아웃과 유저 탈퇴 기능을 추가해보도록 하겠습니다. 로그아웃과 회원 탈퇴에는 Redis 데이터베이스가 이용될 예정입니다. Redis에 대해 잘 모르시는 분이라면 아래의 링크를 참조해주세요.
이번 포스팅에서는 하단 내비게이션 바에서 Friend 탭을 클릭했을 때 유저들의 정보가 List View의 형태로 나타나도록 만들어보겠습니다.① UserController의 아래의 API를 추가한다.② UserService에 아래의 메서드를 추가한다.③ UserRepo
저번 포스팅에서는 리스트 뷰를 이용하여 친구 목록을 구성하였습니다. 이번 포스팅에서는 친구 목록에서 친구를 클릭했을 때의 이벤트 처리 작업을 진행해보도록 하겠습니다.① friend라는 패키지를 만들고, friend 패키지 하위로 UserDetailActivity를 생성
드디어 기본 틀을 완성하였습니다. 이제 본격적으로 채팅 기능을 구현해보도록 하겠습니다. 채팅을 구현하는 방법에는 여러가지 방법이 있지만, 어떤 방법을 사용해서 구현하든 구현 난이도가 매우 높은 편에 속합니다. 저는 Firebase의 Realtime Database를 사
이번 포스팅에서는 채팅방의 초대 버튼을 클릭해 유저를 초대할 수 있는 기능을 추가해보도록 하겠습니다. 또한 채팅방에 참여한 유저의 수와 목록을 확인할 수 있는 기능도 추가해보겠습니다.
채팅방도 생성했고, 채팅방에 유저도 초대했으니, 이제 마지막으로 메시지를 주고 받을 수 있는 기능을 추가해보도록 하겠습니다. 5. 메시지 주고 받기 ① FirebaseRef에 아래의 내용을 입력한다. ② 메시지 전송에 사용될 data class를 정의하자. chat
저번 포스팅에서 실시간으로 메시지를 주고 받는 기능까지 추가해보았습니다. 그러나 현재 상태로는 채팅방에 접속해있지 않는 한 메시지가 도착했는지 알 수가 없습니다. 그래서 이번 포스팅에서는 메시지 도착 알림 기능을 추가해보도록 하겠습니다. 1. 안 읽은 메시지 표시 각
지난 포스팅에 이어서 새로운 메시지를 사용자에게 알려주는 기능을 더 추가해보도록 하겠습니다. 채팅방 목록에서 각 채팅방의 마지막 메시지를 보여주고, 새로운 메시지가 도착했다는 푸시알림도 전송해보겠습니다. 1. 채팅방 목록에서 마지막 메시지 보여주기 1) 백엔드 ① C
이번 포스팅에서는 채팅방을 나갈 수 있는 기능을 추가해보겠습니다. 1. 채팅방 나가기 채팅방 목록에서 채팅방을 Long Click하면, 채팅방을 나갈 것인지 묻는 Dialog를 띄워주기로 하자. ① layout 디렉토리 하위로, exitroomdilag라는 리소스
이제는 웬만한 기능은 다 추가했기 때문에 마무리 작업만 해주면 앱이 완성될 거 같습니다. 1. 닉네임 & 프로필 동기화 지금의 코드는 닉네임 또는 프로필을 변경한 후, 새로운 메시지를 보낼 때에는 변경 사항이 잘 반영되지만, 닉네임 또는 프로필을 변경하기 전에 보낸
실시간 채팅을 위한 모든 기능을 추가하였지만, 부가적인 기능에 대해서는 아직도 해야 할 일이 많습니다. 물론, 모든 부가적인 기능을 다루기는 어렵겠으나, 몇몇 일반적인 기능 정도는 추가해보려 합니다. 즉, 심화 단계에서 다뤄볼 내용은 애플리케이션이 동작하기 위해 필수
소셜로그인은 앱 런칭에 있어서 필수적인 요소는 분명히 아니지만, 보안 및 편의성 등을 이유로, 거의 대부분에 프로젝트에서 소셜로그인을 구현하는 것으로 알고 있습니다. 소셜로그인에는 구글, 네이버, 카카오 등 다양한 방식이 존재하지만, 이번 포스팅에서는 카카오 소셜로그인
이전 포스팅에서 다룬 카카오 소셜로그인에 이어 네이버 소셜로그인을 적용해보는 법을 알아봅시다. 처음에는 카카오 로그인만 적용할 생각이었으나, 소셜로그인을 최소 2개 이상은 적용하는 것이 일반적인 것 같아 네이버 소셜 로그인도 적용해보기로 하였습니다. 네이버 로그인도
텍스트 메시지를 주고 받는 기능을 추가해보았으니, 이제 사진을 주고 받는 기능도 추가해보도록 하겠습니다. 채팅 구현이 어렵다는 인식이 많아 이미지 전송까지는 엄두도 못내는 경우가 많은 것 같은데, 사실 일반 텍스트 메시지 전송과 크게 다르지 않습니다. 물론, 이미지 전