-
Notifications
You must be signed in to change notification settings - Fork 1
백엔드 관련 언어 및 프레임워크 사용 버전 및 이유
SeongWonYoon edited this page Feb 2, 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDUxNjMsIm5iZiI6MTczOTUwNDg2MywicGF0aCI6Ii80ODYzODcwMC80MDAxMTc5OTUtYjZkODNjYTAtOWQ1My00ZWMwLWE3MDYtNzRhOWFmZTc4MDU5LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzNDc0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc0Nzk0NjgzZWViMmYxMWU4MjExNTNhMDBkZjY0NTJkNzgyZmU2MjE2NjYyYTBlMDM0MWNmMjhlOGVkN2U3ZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.8BoNqYBEXqtXjMxwkLfdK6OZenRXNPoYQ22P-0fRZf4)
#49번 PR에 따라 스웨거 버전이 호환 가능 하도록 스프링 버전을 3.3.8로 변경
스프링 부트 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDUxNjMsIm5iZiI6MTczOTUwNDg2MywicGF0aCI6Ii80ODYzODcwMC80MDAxMTgyNzktZGQ0NzYwMGItYTY2ZS00ZmVmLWFmOTEtMjc0MDM4NGExMWU0LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzNDc0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg5MjhmNDE1YjM3YmIyYjczMjVmNTI4NzgwMGMzMzI5M2MwOWVmYWM0YWQ4MGI0Nzk1Mjc1NjBkNWVhZWQyY2UmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.IKiloHN-0jYywyQUUnw58LMmVv2A9HpgnHMqZlH6LUo)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk1MDUxNjMsIm5iZiI6MTczOTUwNDg2MywicGF0aCI6Ii80ODYzODcwMC80MDAxMTg1NTYtNGU2M2M5MDAtMGY0OS00ODRmLWJiMjQtZWI2NjYwMGYyOWI2LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE0VDAzNDc0M1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRkNjMyZWU2OTg3OWE5M2Q3YzVmYTNlY2ZhMThhY2U4YmM5MGVhMTEyMzlmYjQyMmZiMDY4ZDBlZGNhNDkzN2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pZn9bYvcnBhk55ktaGqqRTmysZ--SDSBC90_rf2rZ4U)