배경(Problem)
에브리타임 앱을 사용하던 중 흥미로운 글을 발견하여 팀원들과 함께 공유하고 싶었지만, 에브리타임은 같은 학교 학생들끼리만 소통이 가능하여 이를 공유할 수 없다는 점이 아쉬웠습니다. 이 경험을 통해 전국의 대학생들이 소속 학교와 관계없이 함께 모여 다양한 주제로 자유롭게 소통할 수 있는 커뮤니티가 있으면 좋겠다는 생각이 들었습니다. 이러한 필요성을 느껴, 전국 대학생들이 교류하고 정보를 공유할 수 있는 새로운 커뮤니티 프로젝트를 시작하게 되었습니다.
서비스 소개(Solution)
아키텍처 및 핵심 기능
채팅, 유저, 이미지, 게시글, 댓글, 모임, 알림 등으로 나누어 개발했습니다. REST API를 활용하여 프론트, 백엔드 간 통신을 진행하였습니다.
활용 라이브러리 및 개발 환경
Frontend
1.
Typescript
•
자바스크립트에 정적 타입을 추가하여 코드 안정성을 높이고, 타입 오류를 사전에 방지하기 위해 사용했습니다.
2.
TailwindCSS
•
CSS 유틸리티 클래스 기반으로 빠르고 직관적인 스타일링이 가능해 디자인 작업 속도를 높이기 위해 사용했습니다.
3.
Vite
•
빠른 빌드 속도와 개발 환경의 개선을 위해 선택했습니다.
4.
Recoil
•
전역 상태 관리를 간편하게 해주며, React Hooks와 유사한 방식으로 상태를 관리할 수 있어 러닝 커브가 낮고, 보일러플레이트 코드가 적어 코드 작성 시간을 절약할 수 있어 선택했습니다.
5.
React Query
•
서버 상태 관리를 위한 도구로, 데이터 fetching, caching, 그리고 업데이트를 효율적으로 처리하기 위해 채택했습니다.
Backend
1.
Spring Framework
•
대규모 애플리케이션 개발에 적합하며, 다양한 기능과 안정성을 제공하기 위해 사용했습니다.
•
강력한 DI(Dependency Injection)와 AOP 기능을 활용하여 유지보수성을 높일 수 있습니다.
2.
QueryDSL
•
동적 SQL 생성과 타입 안정성을 보장하는 쿼리 작성이 가능해, 복잡한 데이터베이스 쿼리 작업을 단순화하기 위해 채택했습니다.
3.
JPA
•
객체와 관계형 데이터베이스 간의 매핑을 자동화하여 생산성을 높이고, 코드의 일관성을 유지하기 위해 사용했습니다.
4.
MySQL
•
안정적이고 빠른 관계형 데이터베이스로, 대규모 데이터를 처리하는 데 적합하기 때문에 선택했습니다.
5.
JUnit5
•
테스트 코드 작성을 통해 코드 품질을 보장하고, 기능의 신뢰성을 확보하기 위해 채택했습니다.
DevOps / Deployment
1.
Nginx
•
리버스 프록시와 로드 밸런싱을 위해 사용하며, 서버의 성능과 안정성을 보장합니다.
•
HTTPS 환경을 지원하여 데이터 통신의 보안을 강화하고 사용자 신뢰성을 높입니다.
2.
AWS EC2
•
확장성과 안정성을 겸비한 클라우드 컴퓨팅 서비스를 사용하여 배포와 운영 환경을 구성했습니다.
3.
AWS S3
•
사용자가 업로드한 사진 데이터를 저장하기 위한 안정적이고 확장 가능한 스토리지로 사용했습니다.
4.
Docker
•
컨테이너 기반 기술로, 환경 독립성을 유지하며 개발, 테스트, 배포 환경을 일관되게 관리하기 위해 채택했습니다.
5.
Jenkins
•
CI/CD를 자동화하여 코드 배포와 테스트를 간편하게 처리하고, 개발 속도를 높이기 위해 사용했습니다.
Collaboration Tools
1.
GitHub
•
코드 버전 관리와 협업을 위한 플랫폼으로, 브랜치와 풀 리퀘스트를 활용해 코드 리뷰를 진행하며 협업 효율성을 높이기 위해 선택했습니다.
2.
Notion
•
작업 관리와 문서화를 위해 사용했습니다. 팀원 간 일정 공유와 효율적인 커뮤니케이션이 가능하도록 도와줍니다.
3.
ZEP
•
가상 오피스 공간으로 팀원 간 실시간 소통과 협업을 원활히 하기 위해 활용했습니다.
4.
Figma
•
UI/UX 디자인 작업과 프로토타이핑을 위한 도구로, 실시간 협업 기능을 통해 프론트엔드와 백엔드 개발자 간 소통을 효율화했습니다.
트러블 슈팅
팀 소개
이민형 | BE | sog0740@gmail.com
•
Jwt와 Oauth를 이용한 회원 관리, 웹소켓을 이용한 채팅 기능
천윤서 | FE | 10cys@naver.com
•
Oauth를 활용한 회원관리, 마이페이지, react-calendar를 이용한 캘린더 기능, 검색 기능
배지영 | FE | qowldud23@naver.com
•
카카오 API를 활용한 지도 기능 구현
•
채팅
•
게시판, 모임 글쓰기 기능 구현
김범수 | FE | kbsbmori3@gmail.com
•
모임글 목록, 게시판 목록, 게시글 목록, Home 페이지 구현
강민우 | BE | rkdalsdn94@gmail.com
•
GEO를 이용한 지도 기능, 모임 기능
이지영 | BE | alloy0035@gmail.com
•
EC2 서버 관리, S3를 이용한 사진 저장, 게시판 기능
추호성 | BE | hosung0610@gmail.com
•
Jenkins를 활용한 CI & CD 구축, 아키텍쳐 설계, 알림 기능