Skip to content

1. 기술 선택 이유!

HyeonKyu edited this page Dec 23, 2021 · 23 revisions

💡 Java/Spring boot

  • 쉽게 실행할 수 있는 스프링 기반의 애플리케이션을 만들기 위해 Spring boot를 사용했습니다.
  • Java/Spring을 사용한 이유는 좋은 객체지향 애플리케이션을 개발하기 위해서 사용했습니다.

💡 Spring Security + JWT

  • Spring boot를 쉽게 확장하여 인증/인가 기능을 사용하기 위해 사용했습니다.
  • 애플리케이션의 확장성 있는 설계를 위해 JWT를 사용했습니다.

💡 Spring Data JPA

  • 객체와 관계형 데이터베이스의 서로 다른 패러다임 불일치를 해결하고 객체 중심으로 개발하기 위해 ORM 기술을 사용했습니다.
  • JAVA ORM 기술 표준인 JPA(Hibernate)를 사용했습니다.
  • Spring이 자동으로 간단한 JPA의 구현을 제공하는 Spring Data JPA를 사용했습니다.

💡 Spring Rest Docs

  • API 검증하고 자동으로 문서화하기 위해 사용했습니다.

💡 MySQL

  • 오픈 소스 라이센스를 따르기 때문에 무료로 사용할 수 있어서 사용했습니다.
  • 정형화된 데이터 구조를 사용하기 위해 사용했습니다.

💡 Git

  • 프로젝트 형상 관리를 위해 선택했습니다.
  • branch, issue, PR를 사용하여 코드 리뷰, Merge를 진행했습니다.

💡 Github Actions

  • CI/CD 파이프라인을 구축하여 제대로 작동하는 소프트웨어를 자주 빠르게 배포하기 위해 사용했습니다.

💡 프론트엔드 서버 인프라

  • AWS S3(Simple Storage Service) - 정적 콘텐츠에 간단하고 유연하게 접근하기 위해 사용했습니다.
  • AWS CloudFront - CDN 서비스로 콘텐츠를 캐싱하여 콘텐츠를 빠르게 전송하고, S3 부하와 비용을 줄이기 위해 사용했습니다.

💡 백엔드 서버 인프라

  • AWS Elastic Beanstalk - 웹 애플리케이션을 실행하기 위해 사용했습니다.
  • AWS Secrets Manager - 애플리케이션, 서비스, IT 리소스에 액세스할 때 필요한 보안 정보를 쉽게 관리, 교체, 사용하기 위해 사용했습니다.
  • AWS ECR - AWS EB에 Docker 이미지를 배포하기 위해 사용했습니다.
  • Docker - 빠르고 가볍게 동일한 개발환경을 구축하기 위해 사용했습니다.

💡 공통 서버 인프라

  • AWS Route 53 - 도메인 주소로 요청 시, ELB로 라우팅하기 위해 사용했습니다.
  • AWS Certificate Manager - SSL 인증서를 받기 위해 사용했습니다.

💡 Kakao Map API & OAuth2

  • 다른 API들이 많았지만, 개발 문서가 가장 읽기 쉬웠고 편해서 선택했습니다.