IDE & Framework/Spring

[단축 URL 프로젝트 URLumberjack] - 기술 스택 정의

Greensky0026 2023. 4. 28. 22:30
반응형

0. 개요

 

1. 기술 스택 Overview

tech stack overview

1. Java 17버전 선택 이유

  • IT업계의 흐름을 따라가려면 높은 버전을 사용해야 한다
    버전이 높아진 다는것은 코드 작성 더 간편하게, 안정성과 성능을 향상시킬 수 있도록 변화하는 것입니다.
    굳이 잘 쓰고 있는데 바꿀 필요가 있나? 가 아니라, 적극적으로 학습하기 위해서 선택하였습니다.
  • Java17은 LTS버전으로, 지원기간이 상당히 길다
    java11은 26년까지 지원하며, java8은 30년까지 지원합니다.
    java17은 29년까지 지원으로 java8 급으로 안정적으로 사용할 수 있습니다.
  • JAVA 출시 주기가 고정되어 명확해졌다
    이제 JAVA의 출시 주기가 고정화 되어서 업데이트 지원이 필요한 시기를 안정적으로 예측할 수 있게 되었습니다.
    또한 안정적으로 최신 버전을 학습하고 유지할 수 있게 되었습니다.
  • OpenJDK는 무료로 재공된다
    JAVA8의 악몽은 다시 재현되지 않을 것입니다.
    OpenJDK는 계속 무료로 제공되므로 갑작스런 마이그레이션이나 비용지출은 없습니다.

2. Maven? Gradle?

  • 익숙함
    Gradle이 DSL을 사용하는 만큼 복잡해질수록 학습커브가 가팔라지지만,
    Android개발을 하면서 오래 사용해봤기 떄문에 충분히 학습이 가능할거라 생각했습니다.
  • 뛰어난 가독성과 유연성
    DSL은 POM파일보다 간결하고 가독성이 뛰어납니다.
    또한 Groovy를 사용해 조건문, 반복문, 변수선언 등을 간결하게 구현할 수 있어서 매우 유연합니다.
  • 빠른 빌드 속도
    일반적으로는 gradle의 빌드속도가 우수합니다.
    물론 빌드파일의 크기나 의존성의 복잡도, 빌드 환경에 따라 느릴 수도 있습니다.
  • 다양한 저장소 사용
    Gradle는 maven저장소뿐만 아니라 다른 저장소까지 사용할 수 있어 유연합니다.

https://docs.gradle.org/current/userguide/dependency_management.html#sec:module_substitution

3. JPA vs MyBatis

  • 직접 query를 작성할 수 있다
    직접 query를 작성한다는것은 쿼리 최적화가 가능하다는 것입니다.
    또한, 간단한 쿼리는 어노테이션으로 선언해 repo interface에 작성할수도 있어서 매우 유연합니다.
  • JDBC 트랙잭션 관리 지원
    트랜젝션을 쉽게 컨트롤 할 수 있습니다,
  • JPA의 학습 커브
    JPA를 충분히 학습하지 않았기 떄문에 비즈니스로직에 집중하는 1차 개발단계에서는 부담이 될 것으로 판단했습니다.
    떄문에, 2차 개발 단계에서는 mybatis -> JPA 마이그레이션을 시도해보려고 합니다.

4. 테스트 툴 선택 이유

테스트코드를 작성해 본 적이 없기에 많은 개발자들이 사용하고 있는 대표적인 프레임워크를 선택했습니다.

많은 문서와 개발기들을 통해서 빠르게 학습할 수 있을거라 기대합니다!

 

 

 

 

 


참고 문서

https://blogs.oracle.com/javakr/post/jdk-17

https://techblog.gccompany.co.kr/우리팀이-jdk-17을-도입한-이유-ced2b754cd7

https://velog.io/@riwonkim/Java-17로-전환을-고려해야-하는-이유

https://gradle.org/maven-vs-gradle/

https://dev-coco.tistory.com/65

 

 

 

반응형