Studio One 플랫폼의 핵심 중 하나는 응용 프로그램 수준에서 제공하는 여러 기반(인프라) 서비스 제공이다. Back-End API 서비스 개발 과정에서 반복적으로 요구되는 웹 응답 표준 및 검증 처리, 예외 처리, I18n 메시지 처리, 보안/인가 핵심 규정, 타입 카탈로그, 공통 타입 및 유틸리티등을 제공한다. 이를 통하여 개발 팀은 기반(인프라) 서비스가 아닌 비즈니스 로직(업무규칙) 자체에 더 집중할 수 있다.
studio-platform-starter (studio-platform, studio-platform-data) 를 추가하면 자동으로 관련 서비스 및 의존성이 제공된다. 다만 스프링 부트를 기반으로 하고 있어 web, aop, validation 의존성을 별도로 추가 해주어야 한다.
// build.gradle.kts
dependencies {
**implementation("studio.one.starter:studio-platform-starter")**
implementation("org.springframework.boot:spring-boot-starter-validation")
implementation("org.springframework.boot:spring-boot-starter-aop")
implementation("org.springframework.boot:spring-boot-starter-web")
}
의존성을 추가한 이후에는 application.yml 파일에서 제공되는 기능을에 대한 설정이 필요하다.
ConfigRoot), 임의 파일 접근, YAML/DB 기반의 프로퍼티 (ApplicationProperties) , 그리고 업타임 정보를 제공한다.I18n은 Spring MessageSourceAccessor를 기반으로 코드 기반의 메시지 처리를 구현하고, 예외 응답등의 상세 메시지 처리에 사용되고 있다.# aplication.yml
studio:
i18n:
resources: # ← 비워두면 자동 스캔
**- classpath*:i18n/*/messages*.properties # 기본 메시지 패턴
- classpath*:META-INF/i18n/*/messages*.properties # 기본 메시지 패턴**
encoding: UTF-8
cache-seconds: -1
use-code-as-default-message: true
fallback-to-system-locale: false
Studio One 플랫폼에서 제공되는 모듈들은 DB 접근 방식(jpa, jdbc)을 개별 또는 공통으로 지정할 수 있다. 각 모듈들은 별도의 persistence 지정이 없는 경우 공통 지정 방식을 따른다. 주의할 것은 persistence 값을 jpa 또는 jdbc 로 지정하더라도 관련 설정(데이터소스 포함) 및 의존성이 없다면 활성화 되지 않는다. jpa 경우에는 아래와 같이 설정하였더라도 의존성과 spring 에 jpa 설정을 하지 않으면 정상 동작하지 않는다.
studio:
**persistence:
type: jpa**
features:
application-properties:
enabled: true
**persistence: jdbc** # jdbc or jpa, 지정하지 않으면 전역 설정을 따른다.
위 예의 경우 전역 설정이 jpa 로 되어 있지만 모듈 자체 설정은 jdbc 로 설정되어 최종적으로는 jdbc 모듈로 배포되어 동작하게 된다. 이속성은 각 모듈에서 어떤 방식으로 데이터베이스를 조작할 것인가에 대한 유연성을 제공한다. 위 예의 경우 전역 설정이 jpa 로 되어 있지만 모듈 자체 설정은 jdbc 로 설정되어 최종적으로는 jdbc 모듈로 배포되어 동작하게 된다. 이속성은 각 모듈에서 어떤 방식으로 데이터베이스를 조작할 것인가에 대한 유연성을 제공한다.