Skip to content

백엔드 기술 스택

Eunsol Kim edited this page Aug 14, 2023 · 3 revisions

Spring Boot 3.1.X

  • Spring 2.X, 3.0 모두 지원기간이 2023.11월까지이다.

https://spring.io/projects/spring-boot#support

  • 본 프로젝트를 우테코 기간이 끝난 이후에도 운영하기 위해 지원기간이 긴 최신버전을 선택했다.

JAVA 17

  • Spring 3.1.X의 경우 JAVA 17이상을 지원한다.
  • 현재 java 17버전 이상 중 LTE 버전은 17이 유일하다.

https://www.oracle.com/java/technologies/java-se-support-roadmap.html

Spring Data JPA

ORM 프레임워크 사용하는 이유는?

  • DB 주도 설계와 객체 지향 설계 패러다임 사이의 간극을 줄임으로써 객체지향 설계 집중할 수 있다.
  • 코드가 DB에 의존되기 때문에 변경사항이 모든 쿼리에 영향을 미칠 수 있다.
  • 세부적인 구현 내용을 파악하기 위해서 쿼리를 보지 않아도 된다.
  • 데이터베이스 벤더사의 변경에 유연하다.

Lombok

  • 코드의 가독성이 올라간다.
  • 변경사항에 따른 코드 변경에 소비되는 리소스가 줄어든다. ( ex. 필드에 따른 생성자 변경 )

H2 DB(로컬 테스트 용도)

  • 메모리 사용량이 적어 소규모 애플리케이션 및 테스트 용도로 적합하다.
  • 가벼운 설정과 빠른 구동 속도로 사용에 용이하다.
    • 인메모리로 사용하면 별도의 설치가 필요없다.

MySQL(서비스 운영 용도)

  • 이번 서비스에서 NoSQL DB를 이용하지 않은 이유는 비정형 데이터를 많이 다루지 않는 서비스이기 때문이다.
  • 팀원들 모두 MySQL에 익숙하며 트러블 슈팅이 가능하다.

RestAssured

  • BDD(Behavior Driven Development) 스타일로 작성되어 있어서 가독성이 MockMvc에 비해 좋다.
  • json data를 보다 쉽게 검증이 가능하며 json data를 다루는 많은 메소드를 제공한다.
Clone this wiki locally