컬쥐네 다락방
항해 99, 실전 프로젝트 - 오프라인 책 교환 서비스 개발 일지 - 최종 본문
항해 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에서 사용하는 모든 인코딩 종류를 가져다가 시도해보면서 대체 어떤 인코딩 형식으로 들어오고 우리가 어떤 형식으로 바꿔야하는지 무식하게 찾았어요..
4. 협력사 발표 준비
우리 팀의 팀장인 저는 마지막 발표를 준비해야 했어요 .
팀의 디자이너분이 발표 자료 준비를 정말 정말 많이 도와줘서 큰 도움이 됐습니다.
발표 자료를 만들고 발표를 준비하는 과정에서 어떤 식으로 이야기를 풀어나가야 더 좋을지 잘 그려지지 않아서 팀원들의 도움을 많이 받았어요.
전시회 당일에는 2시간동안 15분마다 8번의 발표를 해야했는데.... 했던 말을 또하고 또하다보니 앵무새가 된 기분..
기능 소개가 혹시나 궁금하시다면 이 동영상을 참고해주세요 ! 발표를 위한 자료라서 제 목소리가 들어가있지만. :)
-. 백엔드 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
'공부방 > 항해 99' 카테고리의 다른 글
항해 99, 실전 프로젝트 - 오프라인 책 교환 서비스 개발 일지 -3- (feat. 책과 콩나무) (0) | 2021.05.16 |
---|---|
항해 99, 실전 프로젝트 - 오프라인 책 교환 서비스 개발 일지 -2- (0) | 2021.05.04 |
AWS S3를 이용한 파일 업로드 (0) | 2021.05.04 |
2021.04.19 ~ 04.25 항해 99 - 8주차 회고록 (0) | 2021.04.26 |
항해 99, 실전 프로젝트 - 오프라인 책 교환 서비스 개발 일지 -1- (0) | 2021.04.26 |