[iOS] 사이드 프로젝트 - 채팅 구현 (1)

Chae-young Park·2025년 1월 13일

0. 프로젝트 선정 배경

2025년 취업 준비를 이어가게 되면서 본격적인 상반기에 돌입하기에 앞서 사이드 프로젝트를 진행하고자 하였고, 고민 끝에 채팅 구현에 도전해보기로 결심했다. 이전에 참여했던 프로젝트에서 채팅팀이 다루는 내용들이 흥미로웠고, 페이지네이션과 같은 경험을 해보면 좋겠다는 생각이 들어 결정했다.

또한, 프로젝트가 끝나면 항상 기억에 의존하거나 몇몇개 남겨둔 블로그 포스팅으로 회고해야 되는 것이 아쉬웠어서 이번에는 전체 과정을 (최대한) 담아보려고 한다.

1. UML 다이어그램

막상 개발을 하려고 보니 데이터 모델링 작업이 필요할 듯하여 UML 다이어그램을 떠올리게 되었다. 학부 시절, UML을 다루면서 이런 개론적인 부분을 개발 과정에서 정말 사용할까 싶었는데 막상 머릿속에 떠다니는 것들을 정리하려고 보니 가장 먼저 떠오른 방법이 UML 다이어그램이었다.

UML 다이어그램을 작성하는 데 어떤 프로그램을 사용할지 알아보던 중, 무료로 사용가능하면서 생성 개수에 제한이 없는 draw.io를 접하게 되어 이를 활용하였다.

1-1. 데이터 모델링 작업

UML을 그리는 방법에 대해 빠르게 훑어보면서 복습은 마쳤지만, 채팅 구현에 아주 복잡한 모델링 작업이 필요한 것은 아니기 때문에 어느 정도 야매로 구현에 필요한 요소들만 빠르게 작업했다. 따라서 내가 그린 다이어그램은 야매 다이어그램 ...

2. Firebase 연동

어떤 데이터베이스를 사용할지 고민됐는데 Realm을 사용해보고 싶었지만 기능 구현에 치중하자는 생각에 결국 또이어베이스를 선택했다.

Firebase를 사용하려면 GoogleService-Info 파일을 프로젝트 디렉토리에 넣어야 하는데 저번 프로젝트에서 이 파일 때문에 커밋하거나 풀할 때 애를 먹었던 기억이 있다. .gitignore 파일을 추가해서 GoogleService-Info 파일과 DS_Store 파일을 staging area에 들어가지 않도록 조치해주었다.

참고로 GoogleService-Info 파일은 프로젝트 개요 옆에 있는 톱니바퀴를 누르면 나오는 프로젝트 설정에서 언제든지 다시 다운받을 수 있다.

가이드대로 따라서 진행했는데 No such module 'FirebaseCore' 라는 오류가 발생했다. 프로젝트 파일에서 General 탭으로 들어간 뒤, Frameworks, Libraries, and Embedded Content에서 + 버튼을 눌러 필요한 프레임워크나 라이브러리를 추가해주면 된다.

3. 채팅창 그리기

오랜만에 Xcode를 켜서 간단한 화면을 그려보는데 정말 다 까먹었다. 하다 하다 TextField 쓰는 방법도 까먹어서 공식 문서를 보면서 따라했다 ... 공식 문서에서 TextField를 사용할 때, 자동으로 커서가 TextField에 포커싱이 되게끔 처리하는 코드도 예제로 다루고 있어서 참고했다.

오랜만에 공식 문서를 연 김에 Struct와 Class의 차이에 대해서도 다시 짚어보았다.

profile
iOS developer

0개의 댓글