커리큘럼
home
React
home

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

Section info
Section A
A8
커뮤니티
Specialty
Spring

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