1.1. 시작하기

Studio One 플랫폼의 핵심 중 하나는 응용 프로그램 수준에서 제공하는 여러 기반(인프라) 서비스 제공이다. Back-End API 서비스 개발 과정에서 반복적으로 요구되는 웹 응답 표준 및 검증 처리, 예외 처리, I18n 메시지 처리, 보안/인가 핵심 규정, 타입 카탈로그, 공통 타입 및 유틸리티등을 제공한다. 이를 통하여 개발 팀은 기반(인프라) 서비스가 아닌 비즈니스 로직(업무규칙) 자체에 더 집중할 수 있다.

1.1.1 의존성 추가

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 파일에서 제공되는 기능을에 대한 설정이 필요하다.

1.2 설정

1.2.1 Repository

1.2.2 I18n

# 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

1.1.4 Persistence 표준화

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 모듈로 배포되어 동작하게 된다. 이속성은 각 모듈에서 어떤 방식으로 데이터베이스를 조작할 것인가에 대한 유연성을 제공한다.