Skip to content

사용 라이브러리 및 사용 이유

SeongWonYoon edited this page Dec 8, 2024 · 4 revisions

Spring Web

Spring 프레임워크의 웹 애플리케이션을 개발하기 위한 모듈. RESTful API를 만들거나, 웹 애플리케이션의 라우팅 및 요청 처리를 위해 필요하다. Spring MVC(Model-View-Controller) 패턴을 기반으로 웹 애플리케이션을 쉽게 구성할 수 있다.

MySQL Driver

MySQL Driver는 애플리케이션이 MySQL 데이터베이스와 통신할 수 있게 해주는 JDBC(Java Database Connectivity) 드라이버이다. Spring Data JPA와 함께 사용되어 MySQL 데이터베이스와 연결하고, 쿼리를 실행하며, 데이터를 주고받는 역할을 한다.

Jackson Kotlin

Jackson은 JSON을 직렬화 및 역직렬화하는 데 사용되는 라이브러리이다. Jackson Kotlin은 Jackson이 Kotlin 데이터 클래스를 효과적으로 처리할 수 있도록 지원하는 확장 모듈이다. 이를 통해 JSON 데이터를 Kotlin 객체로 쉽게 변환하거나, Kotlin 객체를 JSON 형식으로 변환하기 위해 사용하였다.

Kotlin Reflect

Kotlin Reflect는 런타임 시점에서 Kotlin의 리플렉션(reflection)을 사용할 수 있게 해주는 라이브러리이다. 리플렉션이란 클래스의 구조(프로퍼티, 메서드 등)에 대해 런타임에 접근할 수 있는 기능으로, 주로 프레임워크나 라이브러리에서 동적 객체 생성, 메서드 호출, 프로퍼티 접근 등이 필요할 때 사용한다. Spring 프레임워크는 리플렉션을 많이 사용하므로, Kotlin Reflect가 필수적이다.

Swagger

프론트엔드 팀원들의 요구로 넣게 된 라이브러리로, API 문서를 자동으로 생성 해주는 라이브러리이다. 브라우저 환경에서 API 테스트할 수 있고 설계 구조를 쉽게 파악할 수 있는 장점이 있다. 즉, 문서화와 코드 생성을 자동화하여 개발 속도를 향상하고 테스트의 용이성을 확보할 수 있다.

JJWT(Java JSON Web Token)

JWT는 JSON 형식으로 저장한 일종의 디지털 서명으로 인증 및 권한 부여에 사용하는 웹 표준이다. 가장 대표적인 특징으론 무상태성(Stateless)인데 기획 상 서버에서 상태를 저장할 필요가 없기 때문에 채택하게 된 가장 큰 이유였다. 즉, 서버에서 상태를 관리하지 않아 부하 적고 부하 분산이 쉽다는 근거로 자바 환경에서 작동하는 JJWT를 선택하게 되었다. 와비에선 기존 엑세스 토큰의 보안적 결함을 보완하기 위해 리프레시 토큰까지 사용하여 보안성을 확보하였다.

Clone this wiki locally