-
Notifications
You must be signed in to change notification settings - Fork 1
백엔드 라이브러리 사용 및 이유
Spring 프레임워크의 웹 애플리케이션을 개발하기 위한 모듈. RESTful API를 만들거나, 웹 애플리케이션의 라우팅 및 요청 처리를 위해 필요하다. Spring MVC(Model-View-Controller) 패턴을 기반으로 웹 애플리케이션을 쉽게 구성할 수 있기에 선택하였다.
Spring Framework 기반의 애플리케이션에서 인증과 권한 부여를 제공하기 위한 보안 프레임워크로 모아동에선 동아리 지원자와 동아리 담당자(관리자)에 대한 인증 및 권한 부여가 필요하여 선택하게 되었다.
Java 환경에서 반복되는 코드를 줄여줘 애플리케이션 로직에 집중할 수 있게 도와주고 코드의 가독성 및 유지보수성을 올려준다는 점 때문에 선택하였다. 어노테이션을 통해 작동하는 것이 특징.
Java로 테스트 코드를 작성하기 위해 주로 사용하는 라이브러리이다. spring-boot-starter-test 의존성 주입시 자동으로 적용된다.
Java기반 개발시 가짜 객체를 주입하기 위한 라이브러리이다. Spring MVC기반 서버 개발시 발생하는 의존성에 대해 가짜 객체를 주입하여 모듈별로 독립적인 테스트를 수행하기 위해 적용한다. spring-boot-starter-test 의존성 주입시 자동으로 적용된다.
프론트엔드 팀원들의 요구로 넣게 된 라이브러리로, API 문서를 자동으로 생성 해주는 라이브러리이다. 브라우저 환경에서 API 테스트할 수 있고 설계 구조를 쉽게 파악할 수 있는 장점이 있다. 즉, 문서화와 코드 생성을 자동화하여 개발 속도를 향상하고 테스트의 용이성을 확보할 수 있다.
JWT는 JSON 형식으로 저장한 일종의 디지털 서명으로 인증 및 권한 부여에 사용하는 웹 표준이다. 가장 대표적인 특징으론 무상태성(Stateless)인데 기획 상 서버에서 상태를 저장할 필요가 없기 때문에 채택하게 된 가장 큰 이유였다. 즉, 서버에서 상태를 관리하지 않아 부하 적고 부하 분산이 쉽다는 근거로 자바 환경에서 작동하는 JJWT를 선택하게 되었다. 기존 엑세스 토큰의 보안적 결함을 보완하기 위해 리프레시 토큰까지 사용하여 보안성을 확보한다.
Spring Data JPA는 Java Persistence API (JPA)를 기반으로 한 스프링 프레임워크의 데이터 액세스 기술. JPA는 객체 지향적인 방식으로 관계형 데이터베이스에 접근할 수 있도록 도와주는 표준 API이다. Spring Data JPA는 이 JPA를 쉽게 사용할 수 있게 도와주는 라이브러리로, 복잡한 쿼리나 리포지토리 구현을 간소화하고, 반복적인 작업을 최소화할 수 있게 해준다.
MongoDB는 대표적인 NoSQL DBMS로 프로젝트 초기 기능 변경 가능성을 고려하여 빠른 테스트가 가능한 장점을 가져 선택하였다. MongoDB-driver는 MongoDB 연결에 필요한 라이브러리로 추가하였다.