๐บ๏ธ Roadmap
Sprout์ ๊ฐ๋ฐ์ ํต์ฌ ํ๋ ์์ํฌ ๊ธฐ๋ฅ ์์ฑ๊ณผ ์์คํ ๋ด๋ถ ๋์ ์คํ์ ์ค์ ์ ๋๊ณ ์งํ๋ฉ๋๋ค.
Version Historyโ
Release | Status | Highlights | Notes |
---|---|---|---|
v0.2 | โ Released | AOP Core Delivered | @Before /@After /@Around , AspectJ pointcuts |
v0.3 | โ Released | Middleware & Global Interceptors | Filters + Interceptors chain |
v0.4 | โ Released | Data Access & Security Core | JdbcTemplate , @Transactional , AuthN/AuthZ |
v0.5 | โ Released | NIO & Hybrid Server, Async WebSocket | Selector loop, OP_WRITE management, graceful close |
Current Status: v1.0 ๐ฏโ
Goal: ์์ ์ ์ธ API์ ํ๋ ์์ํฌ ์ฑ์๋ ํ๋ณด โ ๋ช ํํ ๋ฌธ์ํ์ ๊ฐ๋ฐ์ ๊ฒฝํ ์ ๊ณต
v1.0 Features (In Progress)โ
Core Stabilityโ
- โ API Stabilization - ์ต์ข ๊ณต๊ฐ API ์ค๊ณ
- โ Comprehensive Documentation - ๊ฐ์ด๋์ ๋ ํผ๋ฐ์ค ์๋น
- ๐ Performance Optimization - ๋ฒค์น๋งํน๊ณผ ํ๋
- ๐ Error Handling Improvements - ๋๋ฒ๊น ๊ณผ ์ค๋ฅ ๋ฉ์์ง ๊ฐ์
Developer Experienceโ
- โ Clear Documentation - ์ํคํ ์ฒ ๊ฐ์ด๋ ๋ฐ ํํ ๋ฆฌ์ผ
- โ Quick Start Experience - ๋ช ๋ถ ๋ง์ ์์ ๊ฐ๋ฅ
- ๐ IDE Support - IDE ํตํฉ ๊ฐ์
Post v1.0 Roadmapโ
Lightweight ORM (v1.1-v1.2)โ
Status: ๐ Planned
Sprout๋ v1.0๊น์ง๋ ORM์ ๋ฐฐ์ ํ์ง๋ง, ์ดํ์๋ ํ์ต์ฉ/์คํ์ฉ ORM์ ๊ฐ๋ณ๊ฒ ์ถ๊ฐํฉ๋๋ค:
- Entity Mapping: JPA ์คํ์ผ ์ด๋ ธํ ์ด์
- Query DSL: ํ์ ์ธ์ดํ ์ฟผ๋ฆฌ ์์ฑ
- Relationship Mapping: ์ผ๋๋ค, ๋ค๋๋ค ๊ด๊ณ
- Migration Support: ์คํค๋ง ์งํ ์ง์
- Connection Pooling: ๊ธฐ๋ณธ์ ์ธ ์ปค๋ฅ์ ํ ๊ด๋ฆฌ
Thread Scheduling Tool (v1.3+)โ
Status: ๐ Planned
Sprout๋ ์๋ฒ ์ฑ๋ฅ๊ณผ ๋์์ฑ์ ํ๊ตฌํ๊ธฐ ์ํด ์ค๋ ๋ ์ค์ผ์ค๋ง ํด์ ์คํ์ ์ผ๋ก ๋์ ํฉ๋๋ค. ์ด๋ Netty์ ์ด๋ฒคํธ ๋ฃจํ ๋ชจ๋ธ์์ ์์ด๋์ด๋ฅผ ์ฐจ์ฉํ๋, ํ๋ซํผ ์ค๋ ๋ ๊ธฐ๋ฐ ์ค๋ ๋ํ์์ ๋์ํ๋๋ก ์ค๊ณํฉ๋๋ค.
- ํ๋ซํผ ์ค๋ ๋ ๋ชจ๋: ๊ธฐ์กด ๊ฐ์ ์ค๋ ๋๊ฐ ์๋, ์ ํต์ ์ธ ํ๋ซํผ ์ค๋ ๋ ๊ธฐ๋ฐ
- ์ด๋ฒคํธ ๋ฃจํ ์ ์ฌ ๊ตฌ์กฐ: Netty์ ์ด๋ฒคํธ ๋ฃจํ์ฒ๋ผ Task๋ฅผ ํ์ ๋ด๊ณ ์ ํ์ ์ผ๋ก ๋ถ๋ฐฐ
- ์ค์ผ์ค๋ง ์ ์ฑ : ๋ผ์ด๋ ๋ก๋น, ์ํฌ ์คํธ๋ง ๋ฑ ๋ค์ํ ์ ์ฑ ์คํ
- ์ถ์ํ API: ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ง์ ์ค์ผ์ค๋ง ์ ๋ต์ ์ ํ ๊ฐ๋ฅ
// Future scheduling tool example
SproutScheduler scheduler = SproutSchedulers.newEventLoopStyle(threads = 4);
scheduler.submit(() -> {
System.out.println("Task executed by " + Thread.currentThread().getName());
});
์ด ๊ธฐ๋ฅ์ ํ์ต ๋ชฉ์ ์ด ๊ฐํ๋ฉฐ, ์ด์์ฒด์ ์์ค์ ์ค์ผ์ค๋ง ์ดํด์ ์๋ฒ ์ด๋ฒคํธ ์ฒ๋ฆฌ ๋ฉ์ปค๋์ฆ์ ์ง์ ๋ค๋ค๋ณผ ์ ์๋ ๊ธฐํ๊ฐ ๋ฉ๋๋ค.
Design Principlesโ
Sprout์ ๋ก๋๋งต์ ๋ค์ ์์น์ ๋ฐ๋ฆ ๋๋ค:
๐ฏ Clarity Over Complexityโ
์ค๋ช ์ด ์ด๋ ค์ด ๊ธฐ๋ฅ์ ํฌํจํ์ง ์๋๋ค. ๋จ์ํ๊ณ ๋ช ํํ๊ฒ.
๐ง Hackabilityโ
ํ๋ ์์ํฌ์ ๋ชจ๋ ๋ถ๋ถ์ ํ์ฅ/์์ /๊ต์ฒด ๊ฐ๋ฅํด์ผ ํ๋ค.
๐ Extensibilityโ
์๋ก์ด ๊ธฐ๋ฅ์ ๊ธฐ์กด ๊ธฐ๋ฅ๊ณผ ์์ฐ์ค๋ฝ๊ฒ ์ฐ๊ฒฐ๋์ด์ผ ํ๋ค.
๐ Performanceโ
ํ๋ ์์ํฌ ์ค๋ฒํค๋๋ ์ต์ํ. ์ธก์ ํ๊ณ ํ์ํ ๋ถ๋ถ๋ง ์ต์ ํํ๋ค.
๐ก๏ธ Stabilityโ
๋ฉ์ด์ ๋ฒ์ ์์๋ง ํธํ์ฑ ๊นจ๋จ๋ฆผ. ๋ชจ๋ ๊ธฐ๋ฅ์ ํ ์คํธ๋ก ๋ท๋ฐ์นจํ๋ค.
Timelineโ
์ด ๋ก๋๋งต์ ๋ชฉํ ์งํฅ์ ์ด๋ฉฐ, ์ปค๋ฎค๋ํฐ ํผ๋๋ฐฑ๊ณผ ๊ธฐ์ ์ ๋์ , ๋ฆฌ์์ค ์ํฉ์ ๋ฐ๋ผ ๋ณ๊ฒฝ๋ ์ ์์ต๋๋ค.
2025 Q4: v1.0 ๋ฆด๋ฆฌ์ค โ ์์ ๋ API์ ๋ฌธ์ํ
2026 Q1-Q2: Lightweight ORM ๊ฐ๋ฐ (v1.1-v1.2)
2026 ์ดํ: Thread Scheduling Tool (v1.3+)