-
Notifications
You must be signed in to change notification settings - Fork 3
[BE] 기술 스택
이충렬(트레) edited this page Jul 12, 2024
·
3 revisions
https://spring.io/projects/spring-boot#support
- Spring Boot 2.x 버전의 경우, 이미 지원 기간이 종료되었기 때문에 고려하지 않았다.
- Spring Boot 3.2.x 버전의 경우, 2024-11-23 일자로 지원이 종료되므로 지원 기간이 조금 더 넉넉한 3.3.x 버전을 선택했다.
- Spring Boot 3.x를 사용하려면 Java 17 이상의 버전을 사용해야 한다.
- LTS 버전인 Java 17과 Java 21를 후보로 고려했으나, 아래와 같은 이유로 Java 17을 선택했다.
- Java 21에 익숙하지 않기 때문에 특정 팀원이 Java 21에서 추가된 기능을 사용한다면, 팀원 간 지식 격차를 좁히기 위한 추가 학습이 필요할 수 있다. (→ 리소스)
- Java 21에서 추가될 기능을 당장 프로젝트에서 사용해야 할 필요성을 느끼지 못했다.
- 추후 Java 버전의 변경이 필요한 경우,
17 → 21
로의 마이그레이션이21 → 17
로의 다운그레이드 보다 용이할 것이라고 예상했다.
- 별도의 프로그램 없이 웹브라우저 기반으로 DB 콘솔에 접속할 수 있고 용량이 매우 가벼워서 손쉽게 테스트 DB 환경을 구축할 수 있다.
- 세부 기능 기획이 확정되고 베타 버전 배포 시, MySQL, MariaDB 등의 RDBMS 도입을 고려하고 있다.
- 가장 많이 사용되는 RDBMS 중 하나이기 때문에 레퍼런스가 많다.
- 용량 차지가 적어 손쉽게 사용할 수 있다.
- 읽기 성능이 최적화되어 있다.
- 백엔드 팀원 모두 사용 경험이 있다.
- 이미지 저장을 위해 사용
- DB에 저장해도 되지만 바이너리데이터로 변환하여 DB에 저장하는 것은 많은 용량 차지와 성능저하를 일으킬 것
- AWS 웹에서 쉽게 업로드, 관리 가능
- 부트 3.x 버전에서는 Logging 라이브러리로 Logback을 사용하고 있다.
- Logback은 구성이 필요 없고, 별다른 의존성 추가 없이 사용할 수 있다.
- 대체재로 Apache Log4j2가 있다. Lazy evaluation 등을 통해 멀티 스레드 환경에서 성능을 개선한 구현체이지만, 필요성을 크게 느끼지 못했다.
- 안드로이드 팀에서는 웹에서 API를 테스트할 수 있는 환경을 제공한다는 점에서 Swagger를 선호한다.
- Swagger만 사용하는 경우 프로덕션 코드가 지저분해질 수 있다는 문제점이 있다. 이를 해결하기 위해 Spring REST Docs와 함께 사용한다.
누누
채드
에디
- PR에 대한 단위 테스트 자동화
- 반갑개 OAuth 2.0 로그인을 해보아요
- 네트워크 통신 에러 핸들링
- Unauthorized 에러 분기 처리
- Firebase Analytics 및 Crashlytics 를 활용하여 앱 사용자 데이터 수집
- Google Play Store 배포 자동화
벼리
도도
- [문제해결]서버 스웨거 접속이 왜 안될까?
- (문제해결) AWS S3 KEY정보 없이 보안 챙기며 Spring에 연동하기
- (문제해결) MockAPI 적용해보기
- (성능개선) DB 마이그레이션 서비스 무중단으로 해보기
- (성능개선) 사용자가 많아지면, 서버 한대로 버틸 수 있을까?
- [공부] 서버 실행 중, JAR파일을 삭제하면!?
- [[공부] classPath란?
땡이
위브
트레