분류 | 기술 스택 | 상세 바로가기 |
---|---|---|
Language | Java 21 | 선정 이유 상세 |
Framework | Spring framework 6.2.6 + Spring Boot 3.4.4 | 선정 이유 상세 |
Build | Gradle (Kotlin DSL) | 선정 이유 상세 |
Web Server | Spring MVC (+ Spring WebFlux) | 선정 이유 상세 |
**Database | ||
ORM | ||
DB Query 확장** | **MySQL | |
Spring Data JPA + MyBatis | ||
QueryDSL** | 선정 이유 상세 | |
Caching | Spring Cache + Redis | 선정 이유 상세 |
Messaging/Event | Kafka + Redis Pub/Sub, Stream | 선정 이유 상세 |
Auth & Security | Spring Security + JWT (jjwt) | 선정 이유 상세 |
Monitoring | Spring Boot Actuator + Prometheus + Grafana | 선정 이유 상세 |
search | Elasticsearch | 선정 이유 상세 |
Test | JUnit5 + Spring Boot Starter Test + Mockito + H2 | 선정 이유 상세 |
Library | 공통 사항 | 선정 이유 상세 |
id 'io.spring.dependency-management' version '1.1.7'
으로 버전을 자동 관리해주지만, 직접 버전을 찾아 작성하였습니다.
Spring Boot 3.4.5 기준 아래의 사이트를 참고하여 버전을 가져왔습니다.
https://docs.spring.io/spring-boot/appendix/dependency-versions/coordinates.html
🔥 (그림 이해 정리)
여러 Virtual Thread들이 하나의 Platform Thread를 "필요할 때만" 잠시 빌려 쓴다.
blocking 작업 중에는 OS Thread를 반납하고, 효율적으로 관리된다.