백엔드 개발 포트폴리오 | 봉사 활동 커뮤니티 플랫폼
내일배움캠프 4기 웹 개발 과정 Spring 트랙 수료생 최종 프로젝트 ‘VOLUNTEERING’을 소개합니다.
Aug 17, 2023
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을 선택했다.
Share article
Subscribe to our newsletter