-
Notifications
You must be signed in to change notification settings - Fork 3
사용 라이브러리 및 사용 이유
Spring 프레임워크의 웹 애플리케이션을 개발하기 위한 모듈. RESTful API를 만들거나, 웹 애플리케이션의 라우팅 및 요청 처리를 위해 필요하다. Spring MVC(Model-View-Controller) 패턴을 기반으로 웹 애플리케이션을 쉽게 구성할 수 있다.
MySQL Driver는 애플리케이션이 MySQL 데이터베이스와 통신할 수 있게 해주는 JDBC(Java Database Connectivity) 드라이버이다. Spring Data JPA와 함께 사용되어 MySQL 데이터베이스와 연결하고, 쿼리를 실행하며, 데이터를 주고받는 역할을 한다.
Jackson은 JSON을 직렬화 및 역직렬화하는 데 사용되는 라이브러리이다. Jackson Kotlin은 Jackson이 Kotlin 데이터 클래스를 효과적으로 처리할 수 있도록 지원하는 확장 모듈이다. 이를 통해 JSON 데이터를 Kotlin 객체로 쉽게 변환하거나, Kotlin 객체를 JSON 형식으로 변환하기 위해 사용하였다.
Kotlin Reflect는 런타임 시점에서 Kotlin의 리플렉션(reflection)을 사용할 수 있게 해주는 라이브러리이다. 리플렉션이란 클래스의 구조(프로퍼티, 메서드 등)에 대해 런타임에 접근할 수 있는 기능으로, 주로 프레임워크나 라이브러리에서 동적 객체 생성, 메서드 호출, 프로퍼티 접근 등이 필요할 때 사용한다. Spring 프레임워크는 리플렉션을 많이 사용하므로, Kotlin Reflect가 필수적이다.
프론트엔드 팀원들의 요구로 넣게 된 라이브러리로, API 문서를 자동으로 생성 해주는 라이브러리이다. 브라우저 환경에서 API 테스트할 수 있고 설계 구조를 쉽게 파악할 수 있는 장점이 있다. 즉, 문서화와 코드 생성을 자동화하여 개발 속도를 향상하고 테스트의 용이성을 확보할 수 있다.
JWT는 JSON 형식으로 저장한 일종의 디지털 서명으로 인증 및 권한 부여에 사용하는 웹 표준이다. 가장 대표적인 특징으론 무상태성(Stateless)인데 기획 상 서버에서 상태를 저장할 필요가 없기 때문에 채택하게 된 가장 큰 이유였다. 즉, 서버에서 상태를 관리하지 않아 부하 적고 부하 분산이 쉽다는 근거로 자바 환경에서 작동하는 JJWT를 선택하게 되었다. 와비에선 기존 엑세스 토큰의 보안적 결함을 보완하기 위해 리프레시 토큰까지 사용하여 보안성을 확보하였다.