8000 GitHub - kobeomseok95/meeron_backend
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

kobeomseok95/meeron_backend

 
 

Repository files navigation

Meeron

회의하세요? 미론하세요!

앱 스토어, 구글 플레이 스토어, 홈페이지

본 프로젝트는 수익형 앱 런칭 IT 동아리 CMC(9기, 2022.01 ~ 2022.04)에서 진행한 프로젝트입니다.

목차

  1. 개요
  2. 팀 구성
  3. 기술 스택
  4. 주요 담당 기능
  5. API 문서
  6. 아키텍처
  7. ERD
  8. 개선 사항
    1. Elastic Beanstalk
    2. API의 가독성과 응답 구조 개선
  9. 소감 및 느낀점

개요

  • 기존의 캘린더(일정) 앱과 프로젝트 협업 툴을 함께 사용하면서 회의를 관리하는데 한계가 있었음.
  • 또한, 회의와 관련된 자료들이 흩어져 있어 불편하다는 의견이 많았음.
  • 본인의 회의 일정을 쉽게 찾을 수 있도록 캘린더를 통해 보여줌.
  • 회의를 원활하게 진행할 수 있도록 회의에 맞는 아젠다와 프리리딩 자료를 한 눈에 보여줌으로써 생산성 향상 기대.

팀 구성

  • AOS 1명
  • iOS 1명
  • Server 1명
  • Planner 1명
  • Designer 1명

기술 스택

  • Java, Spring Boot, Spring Data JPA, Querydsl
  • MySQL, Redis
  • AWS, Docker, Github Action

주요 담당 기능

  • 소셜 로그인 (카카오, 애플)
  • 협업을 위한 워크스페이스, 팀 생성 기능
  • 회의, 아젠다, 이슈 생성 / 삭제, 회의와 관련된 자료(파일) 업로드
  • 워크스페이스 참가, 팀 참가, 회의 참가 기능

API 문서

아키텍처

image

ERD

image

개선 사항

Elastic Beanstalk

  • 기존에는 하나의 EC2에 NGINX, Blue Green 배포를 위한 애플리케이션 2개가 Docker Container 위에 위치했습니다.

    개선 전 프로젝트 아키텍처

  • 한정적인 EC2 자원을 효율적으로 사용하기 위해 NGINX가 담당하던 로드 밸런싱, HTTPS 리다이렉트 기능을 AWS Elastic Load Balancer로 대체했고, 배포 시 Elastic Beanstalk으로 새 EC2를 먼저 띄운 후, 정상적으로 작동되면 기존의 애플리케이션을 종료하도록 구현했습니다.

API의 가독성과 응답 구조 개선

  • 촉박한 기간과 저의 실력 부족으로 인해 하나의 자원에 대한 필드들이 뒤섞인 응답 구조로 반환했었습니다.

    개선 전 필드들이 그룹화 되지 않은 API 응답 구조 중 하나

  • 클라이언트가 DTO를 재사용할 수 있도록 변경했으며, API 애매한 URI도 보다 직관적으로 변경했습니다. 자세한 사항은 문서에서 확인할 수 있습니다.

    개선 후 API 응답 구조

소감 및 느낀점

  • 처음으로 비개발자분들과 협업 경험이었습니다. 처음에는 '어느 정도의 깊이까지 설명드려야 되지?' 라는 고민과 소통에 대한 어려움이 많았는데, 을 통해 저자처럼 비유적인 표현을 통해 개념을 설명하는 방식으로 소통을 진행했습니다.
  • API에 대해 가독성과 하나의 자원 조회 시 일관성있게 반환해야 클라이언트가 더 편할 수 있다는 것을 알게 되었습니다. 이후에는 화면 기획서에 의존하지 않고 '자원 중심적인 사고를 해야겠다 '라는 점을 깨달았습니다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.8%
  • Other 0.2%
1558
0