TY blog

여행일정 공유 APP 본문

개인 프로젝트

여행일정 공유 APP

주짓수하는 개발자 2024. 1. 23. 23:12

영화예매 시스템에 이어 두 번째로 진행한 

여행일정 공유 APP 프로젝트를 개발하면서 느낀 점에 대해 적어보려 합니다.  

 

1. 기능 구성

 

  • 로그인, 회원가입
  • 여행 그룹 관리
    • 그룹을 만든 사람이 그룹장이 된다. 
    • 그룹장은 가입 신청한 그룹원을 심사할 수 있다.
    • 그룹장만 여행계획을 수정할 수 있다. 
  • 그룹 채팅기능 
  • 일정계획

앱에 취지는 간단하게 여행을 같이할 그룹을 만들어 그룹과 일정을 소통하며 계획을 세우는 어플로 일정계획과 채팅이 핵심기능인 어플입니다.

 

2. 프로젝트 개발 언어 

 

  • Client : Android Studio 
  • Server : Java 8 Socket
  • DB : MYSQL 

Client는 Android로 개발하였고, 자바는 8 버전의 소켓으로 통신하는 서버를 하나 구축하여 개발을 진행했습니다. 

 

3. 그룹채팅

 

서버에 사용자 채팅요청이 오면 Thread를 생성해서 메시지를 받아 그룹별로 속해있는 클라이언트에게 메시지를 실시간으로 구별하여 출력할 수 있게 구현하였습니다.  

 

 4. 인/아웃바운드 정책

 

프로젝트를 개발하면서 클라이언트에서 서버로 데이터를 요청하는 부분에서 Connection timeout 오류를 자주 봤었고 클라이언트 - 서버에서 통신이 왜 안되고 있는지 고민을 많이 했던 경험이 있었는데 결론부터 얘기하면 서버 측에서 허용되지 않은 IP에 대한 방화벽 정책 문제였고 인바운드 IP를 허용하는 순간 문제가 해결되면서 이러한 경험을 통해 개발 이외에 방화벽 같은 보안적인 요소도 고려해야 한다는 생각을 가지게 되었습니다.

 

5. 완성

 

로그인, 회원가입

정보를 기입한 후 회원가입 완료 버튼을 누르면 소켓 서버로 요청하여 회원을 저장합니다.

첫 로그인 시 그룹을 생성하거나 요청(추천인 코드)할 수 있음

로그인 이후에 우측 상단에 메뉴바를 통해 추천인코드를 통한 요청이나 

그룹 생성, 로그아웃을 할 수 있습니다.

그룹은 이름만 지정하면 그룹코드가 같이 생성됩니다.

이 그룹 코드를 통해 다른 사용자는 그룹에 들어올 수 있습니다.

그룹요청하기

대기 중인 그룹은 빨간색 줄로 표시됩니다.

그룹 승인, 거절 일정계획 세우기

그룹원을 승인, 거절할 수 있으며 캘린더에 일정을 추가할 수 있습니다. 

그룹원과 채팅

채팅 시 그룹에 속해있는 모든 그룹원에게 메시지를 전송합니다. 

 

총 3개월 정도 진행했고, 카카오톡과 같은 채팅과 일정관리 기능을 구현하면서 

완벽하진 않더라도 클라이언트 - 서버에 대해 이해하는 계기가 되었고

내가 만든 앱을 핸드폰에 실행시키는 즐거움으로 개발에 진행한 것 같습니다.  

'개인 프로젝트' 카테고리의 다른 글

영화예매 시스템  (0) 2024.01.15
Comments