커리큘럼
home
React
home

[Volunteering] 변화하는 패러다임에 발 맞추는 자원봉사

Section info
Section A
A8
커뮤니티
Specialty
Spring

Github 링크

volunteer-work-project
elicho91

프로젝트 소개

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을 선택했다.