Github 링크
프로젝트 소개
VOLUNTEERING의 목적
봉사 활동 모임 커뮤니티 플랫폼
•
프로젝트 소개
‘변화하는 패러다임에 발맞추는 자원봉사’
누구든지 자유롭게 봉사 활동을 하고 싶은 사람들의 모임
기술
백엔드
•
Spring Boot Version : 3.0.2
•
JDK Version : 17
•
DB : MySQL
프론트엔트
•
html, css, javascript
•
S3 + Cloudfront
서비스 아키텍쳐
팀원 소개
이름 | 깃허브 주소 | 블로그 | 이메일 |
조용연 | |||
이재원 | ljwon1203@gmail.com | ||
손혜은 | guswlsrkdmf@gmail.com | ||
장지예 | jjy2646@gmail.com | ||
장현재 |
기술적 의사결정 / 트러블 슈팅
이미지 저장/관리
•
이미지 저장/관리 방법에 대한 고민
◦
데이터 베이스 자체에 저장
▪
단점
- 크기가 큰 이미지를 저장하면 성능 저하, 서버 과부하 발생 가능
◦
이미지를 특정 클라우드 저장소에 업로드하고 그 링크 값을 데이터베이스에 저장 (S3)
▪
장점
- 저장 파일 수의 제한X / 무단 액세스를 방지 / 데이터 손실이 발생 → 자동 복원 가능
▪
단점
- 내부 복제에 일정한 시간이 소요
→ 내부 복제가 모두 완료되기 전에는 각기 다른 객체의 위치에서 응답하므로 사용자 별로 다른 응답 값을 받을 수 있음
→ S3의 경우 사용자 별로 다른 응답 값을 받을 수 있다는 단점이 있지만 이 작업이 수 초 내에 완료되기 때문에 큰 영향이 없을 것이고 S3가 가지고 있는 장점을 커버할 수 있다고 판단.
Database
•
기존에는 H2를 연습용으로 사용했는데 서버를 재실행시키거나 일정 시간이 지나면 데이터가 사라져서 배포용으로는 맞지 않고 배포용 데이터 베이스가 필요하다고 판단.
◦
Oracle
▪
장점
- Multiple databases 튜닝 가능 / 다수의 사용자가 동시에 접근이 가능
- 오류가 발생하면 설정되어 있는 계정 및 이메일로 연락
- DBMS 실행 컴퓨터 / 서버 역할 컴퓨터 / DB 응용 프로그램 실행 컴퓨터 다르게 분산처리
- 다른 데이터베이스보다 고성능의 트랜잭션을 처리
- Cost 비용을 최소화 하기 위해 테이블과 인덱스를 분석
▪
단점
- 비용적인 부담 증가
- 기능이 많아 초보자들은 어려움
- 높은 지원 하드웨어 사양이 필요함.
◦
MySQL
▪
장점
- 용량이 작다.
- 처리 속도가 빠르고 대용량 데이터 처리에 용이
- 다른 데이터 관리 툴에 비해 구조가 간단→ 사용하기가 매우 쉬움.
- 다양한 프로그래밍 언어와 통합할 수 있고 거의 모든 운영체제 사용 지원
- 유연하고 확장이 가능한 구조
- 무료라 비용적 부담이 적다.
▪
단점
- 복잡한 쿼리는 성능 저하되는 경우가 있다.
- 트랜잭션 지원이 완벽하지 않음.
- 사용자 정의 함수의 사용이 쉽지 않고 유연하지 않다.
→ 강의에서 관련 문법을 배워서 비교적 익숙하기도 했고 프로젝트의 규모가 엄청 큰 게 아니라 용량이 적고 비용적 부담이 없는 MySQL을 선택했다.