Skip to content

전시회 기록 서비스 '전시로그' 서버 레포지토리입니다.

Notifications You must be signed in to change notification settings

phonil/JeonsiLog

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

266 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

전시로그 - 전시를 기록하다: 전시회 정보 플랫폼




📌 목차


PlayStore

전시로그 - 전시를 기록하다: 전시회 정보 플랫폼


📝 프로젝트 소개

💡 전시회 정보 플랫폼 <전시로그>

전시로그를 통해 각 전시회의 세부 정보를 확인할 수 있고 별점과 감상평을 통해 자신의 생각과 경험을 나눌 수 있어요

전시로그를 통해 전시회 경험을 쌓아보세요!


⚙️ 기술 스택

메인

🧬 아키텍처

메인
  • Nginx를 리버스 프록시로 사용
  • 배포를 위한 jar 파일 및 이미지 저장을 위한 AWS S3 저장소
  • Github Actions와 AWS Code Deploy를 사용한 빌드, 테스트 및 배포 자동화 구축

📈 ERD

메인

📑 API Docs

팀 내 API 문서 공유를 위해 Swagger를 적용했습니다. 아래는 문서 내용 일부입니다.

메인

💎 기술 사용 이유

API 문서화

메인

Notion vs Spring REST docs vs Swagger

일정 관리부터 팀 내 정보 공유와 같은 대부분의 기록을 Notion으로 하고 있었기에 프로젝트 초기에는 Notion을 사용하여 API 문서화를 진행하는 것이 타 파트와의 소통 면에서 가장 효과적일 것이라고 생각했습니다. 하지만, 손수 작성해야 한다는 번거로움과 MVP 개발의 짧은 기간 때문에 Notion은 후보에서 제외하게 되었습니다.

코드 상에서 문서화 할 수 있도록 Swagger를 적용하여 개발을 하였으나, Swagger 코드가 섞여 코드의 가독성이 떨어진다는 불편함이 발생하여 Spring REST docs의 도입을 고민하게 되었습니다.

코드에 문서화를 위한 내용이 섞이지 않는 점과 높은 자유도가 강력하게 느껴졌습니다. 하지만, 짧은 기간에 빠르게 개발해야 하는 상황에서 테스트 코드가 강제된다는 점이 도입에 어려움을 주었고, Swagger를 사용하여 API 문서화를 이어가도록 결정했습니다.


Nginx

메인

HTTPS와 리버스 프록시 설정을 위해 Nginx를 사용했습니다. MVP 개발 시점에서는 서버가 큰 상황이 아니지만, 무중단 배포와 정적 이미지 캐싱, 압축을 비롯하여 확장성 면에서 가능성을 열어두고자 Nginx를 도입했습니다.


Github Actions

프로젝트를 진행하며 빠른 수정과 반영을 위해 빌드 및 배포 자동화가 필요했습니다. Jenkins와 Github Actions라는 두 후보가 있었는데, 아래와 같은 이유로 Github Actions를 선택했습니다.

젠킨스는 아이템 별 스크립트의 진행 상황을 별도 대시보드에서 확인할 수 있다는 점이 좋았습니다. 하지만, 메모리 소모가 큰 편이라 구축 시 스프링 서버와 별도로 추가적인 서버를 위한 비용이 필요하다는 점과 초기 구축에 번거로움이 있다는 점으로 인해 보류하게 되었습니다. 더욱이 젠킨스의 큰 장점인 여러 플러그인을 통한 호환성과 복잡한 경우에서의 커스터마이징이 해당 프로젝트에는 필요성이 떨어졌습니다.

GitHub Actions는 깃허브를 사용하고 있고, 깃허브에서 바로 확인할 수 있다는 점이 좋았습니다. 프로젝트 경험이 적은 팀원과 협업 시에도 한 눈에 확인할 수 있었고, 설정이 간편해 프로젝트 초기부터 빠르게 적용할 수 있었습니다. 복잡한 상황에서의 커스터마이징이 필요하지 않았고, 추가적인 비용이 필요하지 않다는 점이 팀의 기술 선택에 가장 큰 이유입니다.


🎁 ScreenShot

스플래시 로그인 약관동의 회원가입
상세정보 포스터 다운로드 감상평 작성 댓글 작성 전시장
검색 검색 결과 포토캘린더 포스터 불러오기 관리자 페이지 신고
내 별점 내 감상평 내 즐겨찾기 설정
타 유저 포토캘린더 팔로잉 & 팔로워 활동 알림 전시 리마인더 알림

About

전시회 기록 서비스 '전시로그' 서버 레포지토리입니다.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 99.8%
  • Shell 0.2%