Installation (Gradle/Maven)
Kosmos DSL을 프로젝트에 추가하고, 최소 설정으로 첫 페이지를 렌더하는 과정을 정리했습니다.
의존성 추가
Gradle (Groovy)
repositories { mavenCentral() }
dependencies {
implementation 'net.uneedsoft:kosmos-dsl:0.0.1'
implementation 'net.uneedsoft:kosmos-spring:0.0.1'
}
버전은 실제 배포 버전에 맞게 업데이트하세요.
Maven
<dependency>
<groupId>net.uneedsoft</groupId>
<artifactId>kosmos-dsl</artifactId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>net.uneedsoft</groupId>
<artifactId>kosmos-spring</artifactId>
<version>0.0.1</version>
</dependency>
Spring Boot 최소 설정
# application.yml (예시)
server:
port: 8080
spring:
mvc:
view:
suffix: .html # 필요 시
web:
resources:
cache:
period: 3600
logging:
level:
root: INFO
com.example: DEBUG
Tip: Kosmos DSL은 SSR 문자열을 직접 반환하므로, 템플릿 엔진이 필수는 아닙니다. 다만 정적 자원(CSS/JS) 제공과 캐시 정책은
spring.web.resources로 조율하세요.Controller + Kosmos Page 연결
@Controller
@RequestMapping("/hello")
public class HelloController {
@GetMapping
public ResponseEntity<String> hello(RenderContext ctx) {
return ResponseEntity.ok(new HelloKosmosPage().render(ctx));
}
}
public class HelloKosmosPage implements HtmlComponent {
@Override public String render(RenderContext ctx) {
return El.div().css("container py-5").children(
El.h1().text("Hello, Kosmos!"),
El.p().text("첫 페이지 성공"),
El.a().css("btn btn-primary mt-3")
.href("/docs/kosmos/foundation")
.text("Foundation 보기")
).render(ctx);
}
}
빌드 & 실행 프로필
| 명령 | 설명 | 비고 |
|---|---|---|
./gradlew bootRun |
개발 모드 실행 | 핫 리로드와 함께 사용 권장 |
./gradlew build |
패키징 | 테스트 포함 |
java -jar build/libs/app.jar |
실행 | 운영/스테이징에 적용 |
--spring.profiles.active=dev |
프로필 지정 | dev/stage/prod |
설치 파이프라인
Add Dependencies Boot Config Page + Controller Run & Verify
주의사항
버전 일치:
kosmos-dsl과 kosmos-spring 버전을 일치시켜 충돌을 방지하세요.템플릿 혼용: 다른 템플릿 엔진과 혼용 시 응답 헤더/인코딩이 충돌할 수 있습니다. 하나의 전략을 유지하세요.
Wrapper: CI/CD에서 Gradle Wrapper 사용을 표준으로 지정하세요.