컬쥐네 다락방

항해 99, 실전 프로젝트 - 오프라인 책 교환 서비스 개발 일지 - 최종 본문

공부방/항해 99

항해 99, 실전 프로젝트 - 오프라인 책 교환 서비스 개발 일지 - 최종

코딩하는 갱얼쥐 2021. 5. 31. 01:34

항해 99 마지막 5주간의 프로젝트 개발 일지입니다 :) 

길고 길었던 5주간의 프로젝트 개발을 무사히 마쳤습니다 ! 🎉

 

저와 우리 든든한 팀원들이 개발한 '책과 콩나무' 서비스는 현재 구글  Play Store에 등록되어있습니다 ! 

(https://play.google.com/store/apps/details?id=com.conner_kim.ybmb)

 

책과 콩나무 - Google Play 앱

중고책 거래 플랫폼

play.google.com

지난 개발 일지 이후로 정말 정말 바쁜 나날을 보냈어요.

1. 웹소켓과 Redis를 이용한 일대일 채팅 완성

 웹소켓과 Stomp, Redis의 pub, sub 기능을 이용해서 일대일 채팅을 구현했어요.

두 사람의 ID를 채팅방을 생성할 때 같이 넣어놓고, 유저 정보를 항상 최신화 시켜주기 위해서 User 정보를 Join 시켰어요. 그리고 채팅방 정보를 Redis에 저장해놓았습니다 :)

Stomp를 기초로 사용했기 때문에 메세지의 헤더에 토큰을 담아 메세지를 전송할 때 인증을 넣을 수 있어서 보안을 강화했어요. 

 

2. 전체적인 뷰 수정, 앱 업데이트, 설문조사

처음으로 실제 서비스를 런칭해본 우리였기에 큰 실수가 있었는데, 그건 업데이트가 바로 적용되지 않는다는 점을 몰랐다는 것. 우리가 코드를 수정하고, 새로운 로고와 사진으로 업데이트 후 유저들에게 업데이트 버전을 홍보하고, 설문조사를 진행하려고 했어요. 하지만 많은 것이 바뀐 업데이트였기에 구글의 심사가 필요했고, 업데이트 신청 당일날에는 적용되지 않았어요 (심사는 3일정도 걸린 것같네요) 

이 문제 때문에 업데이트 버전의 홍보를 SNS로 뿌리고, 대대적인 설문조사를 통해 인식 개선을 진행하려고 했는데 계획이 망가져 너무 슬펐습니다 😥 (이때라도 IOS 배포 심사를 신청했어야했다...)

그래도 설문조사를 진행하기위해 서둘러 APK를 뿌리고 지인들, 항해99 크루원들, 스파르타 코딩클럽에 홍보를 열심히했어요.. 하지만 안드로이드 APK 뿐이라서 참여율은 생각보단 많이 낮았습니다 . 

 

3. 불필요한 코드 정리, 개선

 불필요하게 Sout이 찍혀있거나, 필요없는 변수를 넣어놨나 쭉 살펴보고 코드를 전체적으로 정리했어요. 

특히나 메세지 기능을 테스트하기 위해서 넣어놓은 지저분한 것들을 다 지웠습니다.

*한번의 요청으로 파일 업로드와 게시글 등록 혹은 프로필 변경이 가능하도록 개선도 진행했어요.

개발 과정에서 프론트에서 폼데이터에 담아서 보내주는 데이터를 우리가 UTF-8로 인코딩해서 받았는데, 한글이 죄다 깨져서 들어오는 현상이 있었어요. 정말 오랫동안 다양한 방법으로 이 문제를 해결하려 했지만, 해결하지 못했고 S3를 이용한 파일 업로드와 POST 기능을 나눠놓고 한 번의 클릭에 두 번의 API 호출이 발생하도록 임시로 적용했었어요.(우린 ECU-KR로 인코딩된 파일이 들어온다고 생각하고 ECU-KR → UTF-8 인코딩 방식을 계속 시도했었는데 전~혀 아니었다)

이를 해결하기 위해서 JAVA에서 사용하는 모든 인코딩 종류를 가져다가 시도해보면서 대체 어떤 인코딩 형식으로 들어오고 우리가 어떤 형식으로 바꿔야하는지 무식하게 찾았어요.. 

이중에 ISO-8859-1 → UTF-8 방식이 정답이었다.

4. 협력사 발표 준비 

솔직히 우리 팀 발표자료가 제일 좋았다.. 

우리 팀의 팀장인 저는 마지막 발표를 준비해야 했어요 . 

팀의 디자이너분이 발표 자료 준비를 정말 정말 많이 도와줘서 큰 도움이 됐습니다. 

발표 자료를 만들고 발표를 준비하는 과정에서 어떤 식으로 이야기를 풀어나가야 더 좋을지 잘 그려지지 않아서 팀원들의 도움을 많이 받았어요. 

전시회 당일에는 2시간동안 15분마다 8번의 발표를 해야했는데.... 했던 말을 또하고 또하다보니 앵무새가 된 기분.. 

기능 소개가 혹시나 궁금하시다면 이 동영상을 참고해주세요 ! 발표를 위한 자료라서 제 목소리가 들어가있지만. :) 

https://youtu.be/5ARyzQe7ass

 

-. 백엔드 READ-ME

 -.팀원

나와 같이 정말 고생해준 멋진 팀원들..

  • Frontend: 문형원, 김지하
  • Backend: 강상구, 이정빈, 임다희, 천재승
  • Design: 최지예

 

-. 진행기간

  • 2021.04.23(금) ~ 2021.05.27(목)

 

-. 개발 도구 및 환경

주요 구현: Java&Spring Framework(Springboot, SpringSecurity, Spring Data JPA 등)

JWT 생성/활용: jjwt

코드 간소화: lombok

DB: AWS Amazon RDS

RDB 엔진: MySQL

서버 호스팅: EC2, NGINX

클라우드 스토리지: S3

-. ER Diagram




주효 구현 기능(APIs, DB 구축)

 

1. 로그인/회원가입

  • JWT(Json Web Token) 생성/확인/인증처리 등의 기능 구현

 




2. 동네 책장

  • 동네 책장 게시글 전체 조회 기능
  • 게시글 등록/수정/삭제 기능
  • 책 검색 기능
  • 댓글 등록/수정/삭제 기능
  • 관심 있는 게시글 스크랩 기능
  • 교환 완료 및 포인트 지급 기능
  • 상대방의 서재 조회 기능 구현

 




3. 마이페이지

  • 프로필 조회 기능
  • 내가 쓴 게시글 조회 기능
  • 프로필 수정/삭제 기능
  • 내가 쓴 댓글 조회 기능
  • 내가 스크랩한 게시글 조회 기능 구현

 




4. 채팅방/메시지

  • 채팅방 생성 기능
  • 채팅방 입장 기능
  • 채팅방 메시지 발행 처리 기능 구현

 

백엔드 깃헙 주소 :https://github.com/39world/urbookmybook-back

 

39world/urbookmybook-back

항해 99 - 실전 프로젝트 9조, 니책내책 백앤드 repository. Contribute to 39world/urbookmybook-back development by creating an account on GitHub.

github.com

 

 

 

Comments