회의하세요? 미론하세요!
본 프로젝트는 수익형 앱 런칭 IT 동아리 CMC(9기, 2022.01 ~ 2022.04)에서 진행한 프로젝트입니다.
- 기존의 캘린더(일정) 앱과 프로젝트 협업 툴을 함께 사용하면서 회의를 관리하는데 한계가 있었음.
- 또한, 회의와 관련된 자료들이 흩어져 있어 불편하다는 의견이 많았음.
- 본인의 회의 일정을 쉽게 찾을 수 있도록 캘린더를 통해 보여줌.
- 회의를 원활하게 진행할 수 있도록 회의에 맞는 아젠다와 프리리딩 자료를 한 눈에 보여줌으로써 생산성 향상 기대.
- AOS 1명
- iOS 1명
- Server 1명
- Planner 1명
- Designer 1명
- Java, Spring Boot, Spring Data JPA, Querydsl
- MySQL, Redis
- AWS, Docker, Github Action
- 소셜 로그인 (카카오, 애플)
- 협업을 위한 워크스페이스, 팀 생성 기능
- 회의, 아젠다, 이슈 생성 / 삭제, 회의와 관련된 자료(파일) 업로드
- 워크스페이스 참가, 팀 참가, 회의 참가 기능
-
기존에는 하나의 EC2에 NGINX, Blue Green 배포를 위한 애플리케이션 2개가 Docker Container 위에 위치했습니다.
개선 전 프로젝트 아키텍처
-
한정적인 EC2 자원을 효율적으로 사용하기 위해 NGINX가 담당하던 로드 밸런싱, HTTPS 리다이렉트 기능을 AWS Elastic Load Balancer로 대체했고, 배포 시 Elastic Beanstalk으로 새 EC2를 먼저 띄운 후, 정상적으로 작동되면 기존의 애플리케이션을 종료하도록 구현했습니다.
-
촉박한 기간과 저의 실력 부족으로 인해 하나의 자원에 대한 필드들이 뒤섞인 응답 구조로 반환했었습니다.
개선 전 필드들이 그룹화 되지 않은 API 응답 구조 중 하나
-
클라이언트가 DTO를 재사용할 수 있도록 변경했으며, API 애매한 URI도 보다 직관적으로 변경했습니다. 자세한 사항은 문서에서 확인할 수 있습니다.
개선 후 API 응답 구조
- 처음으로 비개발자분들과 협업 경험이었습니다. 처음에는 '어느 정도의 깊이까지 설명드려야 되지?' 라는 고민과 소통에 대한 어려움이 많았는데, 책을 통해 저자처럼 비유적인 표현을 통해 개념을 설명하는 방식으로 소통을 진행했습니다.
- API에 대해 가독성과 하나의 자원 조회 시 일관성있게 반환해야 클라이언트가 더 편할 수 있다는 것을 알게 되었습니다. 이후에는 화면 기획서에 의존하지 않고 '자원 중심적인 사고를 해야겠다 '라는 점을 깨달았습니다.