-
Notifications
You must be signed in to change notification settings - Fork 1
백엔드 관련 언어 및 프레임워크 사용 버전 및 이유
Due edited this page Jan 4, 2025
·
5 revisions
2.7.x 와 3.4.x 중 크게 고민하였다.
- 3.x를 사용했을때의 장단점
- 장점
- 성능 및 보안 측면에서 개선됨
- 앞으로 마이그레이션 하게 되어도 2.7버전에 비해 부담이 적다.
- Spring Boot에서 보다 오래 지원한다.
- 새롭게 추가된 기능을 이용할 수 있다.
- 단점
- 레퍼런스가 부족할 수 있다.
- 지원되지 않는 라이브러리나 의존성이 존재할 수 있다.
- 장점
- 우리팀이 3.x를 사용하는 이유
- 2.7과 3.4 모두 우리 서비스 요구사항 구현에 있어 문제가 없기에, 그렇다면 최신 버전을 쓰는 것이 좋을 것이라고 판단하고 결정.
3.x 버전 중에서 가장 Support 기간이 긴 버전이 3.4.x 이었기 때문에 25.01.04 기준으로 3.4.1 GS 버전을 사용하기로 결정했다.
스프링 부트 Support 기간 명시 자료(25.01.04 기준)
![](https://private-user-images.githubusercontent.com/48638700/400117995-b6d83ca0-9d53-4ec0-a706-74a9afe78059.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDU0NjgsIm5iZiI6MTczOTUwNTE2OCwicGF0aCI6Ii80ODYzODcwMC80MDAxMTc5OTUtYjZkODNjYTAtOWQ1My00ZWMwLWE3MDYtNzRhOWFmZTc4MDU5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzNTI0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU3MmFlYWEyM2QwYTU5ZjRkNmEyMjU1ZGY5MjNlODA1MjcwNzkzMTM3OTZhYWQ5YjY0MDc1MWM0OGU0MzM3Y2MmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YkFuEEBYT0PBlHNG3wUZUUmXhju_gk1P7Up_iEYAWsc)
스프링 부트 3.1 이상 사용 시 JDK 17이상 버전을 요구한다. 지속적인 유지 보수 및 실사용목적인 우리 서비스의 성격을 고려하여 LTS 중에 선택하였다. 17 이상 버전 중 LTS는 17, 21이 있는데, 통계상 점유율이 높고, 안정성을 검증 받은 17버전 최종 선택 하였다.
![](https://private-user-images.githubusercontent.com/48638700/400118279-dd47600b-a66e-4fef-af91-2740384a11e4.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDU0NjgsIm5iZiI6MTczOTUwNTE2OCwicGF0aCI6Ii80ODYzODcwMC80MDAxMTgyNzktZGQ0NzYwMGItYTY2ZS00ZmVmLWFmOTEtMjc0MDM4NGExMWU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzNTI0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTdkMjI3NGMwZTA5NzI1M2FlMGY3MjYzY2M4OWZhN2M4NmJhMDRkMTMyYTg3OGY3OTVjNzA1ZjRlYzMxM2QxYTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Vs6Mg3Q0neulm9XacHMDDN7r6Y59zpgas6Z8uowMXO4)
Maven과 Gradle 중에 고민하였다. Gradle은 Maven에 비해 간결한 구문, 최신 트렌드인 기술이라 Maven 대신 결정하게 되었다. 버전은 Spring Boot 3.4.1 System Requirements 문서란에 명시된 버전 중 최근 버전인 8.4를 선택하였다.
![](https://private-user-images.githubusercontent.com/48638700/400118556-4e63c900-0f49-484f-bb24-eb66600f29b6.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDU0NjgsIm5iZiI6MTczOTUwNTE2OCwicGF0aCI6Ii80ODYzODcwMC80MDAxMTg1NTYtNGU2M2M5MDAtMGY0OS00ODRmLWJiMjQtZWI2NjYwMGYyOWI2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzNTI0OFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzOTE1ODhkZDA5YjZlNGExYzJlOWMyZDIxYjE4ZjczOTVhNDlkMjYzYzlkNjE2ZWUxYzAxZjE1NWNlZjk3NWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.xm_JF1aN8dDIZwVRCsXunAQSKt3vzncHZIzE8DX3ouE)