Search
🔧

사용 기술

사용할 기술 스택(BE)

Java 17
Spring boot 3가 java 17과 호환되기 때문
text block, record 등의 가독성을 위한 기능 사용할 수 있기 때문
Gradle
개발자 친화적 문서 (DSL) 반면에 maven은 컴퓨터 친화적인 문법(xml)을 사용하기 때문에 가독성이 떨어짐
Dependency Management
테스트 혹은 운영 환경에 따라 의존성을 다르게 설정하여 빌드할 수 있음
Spring Boot 3
팀 내 개발자들의 사용 경험에 기반함
레퍼런스가 많음
Spring Data JPA
쿼리문 작성에 드는 시간을 줄여 생산성이 증가함
엔티티 영속화를 통해 불필요한 데이터베이스 접근을 줄일 수 있음
추상화를 통해 DB 변경에 대해 유연하게 대응 가능함 (데이터베이스에 의존적이지 않은 설계)
MySQL
정형화된 데이터(타입 지정 가능) 저장에 최적화됨
데이터들의 관계를 한 눈에 파악이 가능하여 어플리케이션 도메인의 이해가 수월함
ACID(데이터베이스 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질) 제공함
RestAssured
mockMVC와 다르게 given, when, then 과 메서드 체이닝을 조합하여 테스트의 가독성이 용이함
실제 어플리케이션에 테스트를 수행하여 mockMVC보다 테스트 신뢰할 수 있음
JUnit5
Nested 제공
DynamicTest 제공
Swagger + RestDocs + OAS: RestDocs의 테스트 코드 결과를 OpenAPI3으로 변환하고 Swagger UI로 제공
Swagger - API를 직접 문서에서 테스트할 수 있음, 팀원들의 사용경험에 기반함
RestDocs - 테스트 코드 기반으로 문서를 작성하기 때문에 문서의 신뢰도가 보장됨, 테스트 코드의 변경에 유연하게 대처 가능
OpenAPI Specification - 손쉽게 API 클라이언트들로 렌더링할 수 있음
Lombok : 보일러 플레이트 코드(getter, setter)의 작성을 줄이기 위하여 생산성 향상을 도모함
백로그 + 학습로그