TIL - 2024.05.17 금요일

· 성취/개선/학습한 내용 🏆

 SwiftUI와 Socket IO 라이브러리를 사용해 간단하게 채팅 기능을 구현해 봤다. 보통 채팅 기능은 WebSocket을 통해 실시간으로 상대의 대화를 받아오고 내가 대화를 상대방에게 보낼 때는 API를 통해 보내는 형태로 구현된다고 한다. (물론 아닌 경우도 있다) 

 간단하게 채팅 프로세스를 채팅방에 진입시에는 DB에서 채팅 내역을 가져온 뒤, 가장 마지막 날짜에 전송된 채팅 날짜를 서버에 요청 후, 새로운 데이터가 있다면 DB에 저장한 뒤 테이블뷰를 갱신한다. 그리고 이 과정이 끝나면 소켓을 연결하는 방식이다. 

  • WebSocket
  • Socket IO
  • 채팅 기능 구현

· 궁금한 내용과 부족한 내용 ⁉️🤔

  • 그렇다면 카카오톡 같은 서비스는 어떻게 푸시를 보내는 걸까? FCM 같은 서비스를 활용해서 자체적으로 푸시를 보내주는 걸까?
  • 그 후 웹소켓은 앱이 실행되면 연결을 하는 걸까? 

· 느낀점 🌟

 채팅 기능을 구현하면서 느꼈던 놀라운 점은 우선 SwiftUI로 화면을 구현하는 게 정말 간단하고 빠르다는 것이다. UIKit으로 구현을 한다면 2시간 넘게 걸릴 수 있는 화면 구현이 SwiftUI로는 20분 만에 작업을 할 수 있었다. 또 하나의 놀라운 점은 채팅 기능을 제대로 구현하는 것이 정말 어렵다는 것이다. 고려할 점이 정말 많았고 여기에 카카오톡과 같은 서비스를 만들기 위해서는 푸시라든지 백그라운드 상태 고려하기 데이터베이스 등도 사용해야 해서 정말 어려운 기능이었구나 생각이 들었다.

 

 

'# TIL (Today I Learned)' 카테고리의 다른 글

TIL - 2024.05.21 화요일  (0) 2024.05.21
TIL - 2024.05.20 월요일  (0) 2024.05.20
TIL - 2024.05.16 목요일  (0) 2024.05.16
TIL - 2024.05.14 화요일  (0) 2024.05.14
TIL - 2024.05.13 월요일  (0) 2024.05.13