2019.01.22 15:05

Spring boot application.properties 설명

# ===================================================================



# This sample file is provided as a guideline. Do NOT copy it in its

# entirety to your own application.               ^^^

# ===================================================================

# ----------------------------------------


# ----------------------------------------


banner.charset=UTF-8 # Banner file encoding.

(배너 인코딩 설정)

banner.location=classpath:banner.txt # Banner file location.

(배너 파일 위치)


logging.config= # Location of the logging configuration file. For instance `classpath:logback.xml` for Logback)

(로깅 파일 위치)

logging.exception-conversion-word=%wEx # Conversion word used when logging exceptions.

(로깅 exception 사용시 conversion word사용)

logging.file= # Log file name. For instance `myapp.log`

(로그 파일 이름)

logging.level.*= # Log levels severity mapping. For instance `logging.level.org.springframework=DEBUG`

(로그 찍을 레벨)

logging.path= # Location of the log file. For instance `/var/log`

(로깅 파일 위치)

logging.pattern.console= # Appender pattern for output to the console. Only supported with the default logback setup.

(콘솔 로깅에 붙일 패턴)

logging.pattern.file= # Appender pattern for output to the file. Only supported with the default logback setup.

(파일 로깅에 붙일 패턴)

logging.pattern.level= # Appender pattern for log level (default %5p). Only supported with the default logback setup.

(로그레벨에 붙일 패턴)

logging.register-shutdown-hook=false # Register a shutdown hook for the logging system when it is initialized.

(로깅시스템 shutdown hook 설정)


spring.aop.auto=true # Add @EnableAspectJAutoProxy.

(AOP 자동 사용 설정)

spring.aop.proxy-target-class=false # Whether subclass-based (CGLIB) proxies are to be created (true) as opposed to standard Java interface-based proxies (false).

(subclass-based aop 사용 여부)

# IDENTITY (ContextIdApplicationContextInitializer)

spring.application.index= # Application index.

(애플리케이션 인덱스)

spring.application.name= # Application name.

(애플리케이션 이름)

# ADMIN (SpringApplicationAdminJmxAutoConfiguration)

spring.application.admin.enabled=false # Enable admin features for the application.

(애플리케이션 관리자 활성화)

spring.application.admin.jmx-name=org.springframework.boot:type=Admin,name=SpringApplication # JMX name of the application admin MBean.

(애플리케이션 관리자 jmx이름 설정)

(JMX는 java management extension의 약자이다. 

JDK 1.5부터 기본적으로 탑재되어 제공되고 있다. 

Application 관리를 위한 다양한 기능을 제공할 목적으로 시작되었다. 

Non-Java resources와 하드웨어에 대해 wrapping한 인터페이스를 제공하며, 

API를 외부로 노출해 application 설정 및 통계데이터를 수집할수도 있다.)


spring.autoconfigure.exclude= # Auto-configuration classes to exclude.

(spring의 autoconfiguration 제외 여부)


spring.beaninfo.ignore=true # Skip search of BeanInfo classes.

(BeanInfo class 검색 무시)

# SPRING CACHE (CacheProperties)

spring.cache.cache-names= # Comma-separated list of cache names to create if supported by the underlying cache manager.

(스프링 캐쉬 이름 설정)

spring.cache.ehcache.config= # The location of the configuration file to use to initialize EhCache.

(스프링 캐쉬 설정 파일 위치)

spring.cache.guava.spec= # The spec to use to create caches. Check CacheBuilderSpec for more details on the spec format.

(캐쉬 guava 스펙)

spring.cache.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.

(캐쉬 hazelcast 설정 위치)

spring.cache.infinispan.config= # The location of the configuration file to use to initialize Infinispan.

(캐쉬 infinispan 설정 위치)

spring.cache.jcache.config= # The location of the configuration file to use to initialize the cache manager.

(jcash 설정 위치)

spring.cache.jcache.provider= # Fully qualified name of the CachingProvider implementation to use to retrieve the JSR-107 compliant cache manager. Only needed if more than one JSR-107 implementation is available on the classpath.

(캐쉬추가 이름)

spring.cache.type= # Cache type, auto-detected according to the environment by default.

(캐쉬 타입)

# SPRING CONFIG - using environment property only (ConfigFileApplicationListener)

spring.config.location= # Config file locations.

(스프링 설정 파일 위치)

spring.config.name=application # Config file name.

(스프링 설정 파일 이름)

# HAZELCAST (HazelcastProperties)

spring.hazelcast.config= # The location of the configuration file to use to initialize Hazelcast.

(스프링 hazelcast 설정 파일 위치)

(hazelcast : 프로그램들을 그룹화(clustering)해서 그룹 간에 데이터를 가변적으로 분산시켜주기 위한 것)


spring.jmx.default-domain= # JMX domain name.

(jmx 기본 도메인 이름)

spring.jmx.enabled=true # Expose management beans to the JMX domain.

(jmx 도메인 사용 여부)

spring.jmx.server=mbeanServer # MBeanServer bean name.

(jmx server 이름)

# Email (MailProperties)

spring.mail.default-encoding=UTF-8 # Default MimeMessage encoding.

(이메일 인코딩)

spring.mail.host= # SMTP server host. For instance `smtp.example.com`

(이메일 호스트 주소)

spring.mail.jndi-name= # Session JNDI name. When set, takes precedence to others mail settings.

(세션 JNDI 이름)

spring.mail.password= # Login password of the SMTP server.

(SMTP서버 패스워드)

spring.mail.port= # SMTP server port.

(SMTP서버 포트)

spring.mail.properties.*= # Additional JavaMail session properties.

(추가적인 javamail 세션 속성)

spring.mail.protocol=smtp # Protocol used by the SMTP server.

(SMTP서버 프로토콜)

spring.mail.test-connection=false # Test that the mail server is available on startup.

(시작시 mail server 테스트 여부)

spring.mail.username= # Login user of the SMTP server.

(mail server 로그인 유저 이름)

# APPLICATION SETTINGS (SpringApplication)

spring.main.banner-mode=console # Mode used to display the banner when the application runs.

(배너 모드 설정 - 어디에 display할건지)

spring.main.sources= # Sources (class name, package name or XML resource location) to include in the ApplicationContext.

(배너 위치)

spring.main.web-environment= # Run the application in a web environment (auto-detected by default).

(application을 web environment에서 시작 할 것인지 여부)

# FILE ENCODING (FileEncodingApplicationListener)

spring.mandatory-file-encoding= # Expected character encoding the application must use.

(file 인코딩 종류)

# INTERNATIONALIZATION (MessageSourceAutoConfiguration)

spring.messages.basename=messages # Comma-separated list of basenames, each following the ResourceBundle convention.

(스프링 메시지)

spring.messages.cache-seconds=-1 # Loaded resource bundle files cache expiration, in seconds. When set to -1, bundles are cached forever.

(스프링 캐쉬 관련)

spring.messages.encoding=UTF-8 # Message bundles encoding.

(메시지 인코딩)

spring.messages.fallback-to-system-locale=true # Set whether to fall back to the system Locale if no files for a specific Locale have been found.

(fallback 여부)


spring.output.ansi.enabled=detect # Configure the ANSI output (can be "detect", "always", "never").

(결과물 속성)

# PID FILE (ApplicationPidFileWriter)

spring.pid.fail-on-write-error= # Fail if ApplicationPidFileWriter is used but it cannot write the PID file.

(pid 파일 에러 여부)

spring.pid.file= # Location of the PID file to write (if ApplicationPidFileWriter is used).

(pid 파일 위치)


spring.profiles.active= # Comma-separated list of active profiles.

(스프링 프로파일 active)

spring.profiles.include= # Unconditionally activate the specified comma separated profiles.

(스프링 프로파일 추가)

# SENDGRID (SendGridAutoConfiguration)

spring.sendgrid.username= # SendGrid account username

(스프링 sendgrid 이름)

(SendGrid is a cloud-based SMTP provider that allows you to send email without having to maintain email servers.)

spring.sendgrid.password= # SendGrid account password

(snedgrid 패스워드)

spring.sendgrid.proxy.host= # SendGrid proxy host

(sendgrid 호스트 서버)

spring.sendgrid.proxy.port= # SendGrid proxy port

(sendgrid 호스트 포트)

# ----------------------------------------


# ----------------------------------------

# MULTIPART (MultipartProperties)

multipart.enabled=true # Enable support of multi-part uploads.

(multipart upload 사용 여부) - 파일 업로드 데이터 형식

multipart.file-size-threshold=0 # Threshold after which files will be written to disk. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.

(멀티파트 파일 사이즈 trheshold)

multipart.location= # Intermediate location of uploaded files.

(업로드된 파일의 파일 주소)

multipart.max-file-size=1Mb # Max file size. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.

(최대 파일 사이즈)

multipart.max-request-size=10Mb # Max request size. Values can use the suffixed "MB" or "KB" to indicate a Megabyte or Kilobyte size.

(최대 요청 사이즈)


server.address= # Network address to which the server should bind to.

(bind 될 서버 주소)

server.compression.enabled=false # If response compression is enabled.

(서버 compression 사용 여부)

server.compression.excluded-user-agents= # List of user-agents to exclude from compression.

(추가적인 useragents)

server.compression.mime-types= # Comma-separated list of MIME types that should be compressed. For instance `text/html,text/css,application/json`

(mime 타입설정)

server.compression.min-response-size= # Minimum response size that is required for compression to be performed. For instance 2048

(최소 response 사이즈)

server.context-parameters.*= # Servlet context init parameters. For instance `server.context-parameters.a=alpha`

(서버 파라미터)

server.context-path= # Context path of the application.

(서버 애플리케이션 context path)

server.display-name=application # Display name of the application.

(서버 애플리케이션 이름 보이기)

server.error.include-stacktrace=never # When to include a "stacktrace" attribute.

(서버에러시에 stacktrace할것인지 여부)

server.error.path=/error # Path of the error controller.

(서버 에러 위치)

server.error.whitelabel.enabled=true # Enable the default error page displayed in browsers in case of a server error.

(에러 whitelabel 사용 여부)

server.jsp-servlet.class-name=org.apache.jasper.servlet.JspServlet # The class name of the JSP servlet.

(jsp servlet 클래스이름)

server.jsp-servlet.init-parameters.*= # Init parameters used to configure the JSP servlet

(jsp servlet 초기화 파라미터 )

server.jsp-servlet.registered=true # Whether or not the JSP servlet is registered

(jsp servlet 등록)

server.port=8080 # Server HTTP port.

(서버 포트)

server.server-header= # The value sent in the server response header (uses servlet container default if empty)

(서버 헤더)

server.servlet-path=/ # Path of the main dispatcher servlet.

(서버 서플릿 path)

server.session.cookie.comment= # Comment for the session cookie.

(세션 쿠키 주석)

server.session.cookie.domain= # Domain for the session cookie.

(세션 쿠키 도메인 주소)

server.session.cookie.http-only= # "HttpOnly" flag for the session cookie.

(http only cookie 설정)

server.session.cookie.max-age= # Maximum age of the session cookie in seconds.

(세션 max-age seconds 속성)

server.session.cookie.name= # Session cookie name.

(세션 쿠키 이름)

server.session.cookie.path= # Path of the session cookie.

(세션 쿠키 path)

server.session.cookie.secure= # "Secure" flag for the session cookie.

(세션 쿠키 secure)

server.session.persistent=false # Persist session data between restarts.

(세션 쿠키 다시 시작 여부)

server.session.store-dir= # Directory used to store session data.

(세션 저장 위치)

server.session.timeout= # Session timeout in seconds.

(세션 timeout 시간 설정)

server.session.tracking-modes= # Session tracking modes (one or more of the following: "cookie", "url", "ssl").

(세션 tracking mode)

server.ssl.ciphers= # Supported SSL ciphers.

(ssl 관련 속성)

server.ssl.client-auth= # Whether client authentication is wanted ("want") or needed ("need"). Requires a trust store.

server.ssl.enabled= #

server.ssl.key-alias= #

server.ssl.key-password= #

server.ssl.key-store= #

server.ssl.key-store-password= #

server.ssl.key-store-provider= #

server.ssl.key-store-type= #

server.ssl.protocol= #

server.ssl.trust-store= #

server.ssl.trust-store-password= #

server.ssl.trust-store-provider= #

server.ssl.trust-store-type= #

server.tomcat.accesslog.directory=logs # Directory in which log files are created. Can be relative to the tomcat base dir or absolute.

(톰켓 accesslog 파일 위치)

server.tomcat.accesslog.enabled=false # Enable access log.

(톰켓 accesslog 여부)

server.tomcat.accesslog.pattern=common # Format pattern for access logs.

(톰캣 로그파일에 붙일 패턴)

server.tomcat.accesslog.prefix=access_log # Log file name prefix.

(톰캣 엑세스로그파일 앞에 붙일 이름)

server.tomcat.accesslog.suffix=.log # Log file name suffix.

(톰켓 엑세스로그파일 뒤에 붙일 이름)

server.tomcat.background-processor-delay=30 # Delay in seconds between the invocation of backgroundProcess methods.

(백그라운드 delay second 설정)

server.tomcat.basedir= # Tomcat base directory. If not specified a temporary directory will be used.

(톰켓 base directory 설정)







        172\\.3[0-1]{1}\\.\\d{1,3}\\.\\d{1,3} # regular expression matching trusted IP addresses.

(톰켓 internap ip adress 속성 설정)

server.tomcat.max-http-header-size=0 # Maximum size in bytes of the HTTP message header.

(max http header 사이즈 설정)

server.tomcat.max-threads=0 # Maximum amount of worker threads.

(최대 스레드 설정)

server.tomcat.port-header=X-Forwarded-Port # Name of the HTTP header used to override the original port value.

(톰켓 포트 헤더)

server.tomcat.protocol-header= # Header that holds the incoming protocol, usually named "X-Forwarded-Proto".

(톰켓 프로토콜 헤더)

server.tomcat.protocol-header-https-value=https # Value of the protocol header that indicates that the incoming request uses SSL.

(헤더 http value 설정)

server.tomcat.remote-ip-header= # Name of the http header from which the remote ip is extracted. For instance `X-FORWARDED-FOR`

(ip header 설정)

server.tomcat.uri-encoding=UTF-8 # Character encoding to use to decode the URI.

(uri 인코딩 설정)

server.undertow.accesslog.dir= # Undertow access log directory.

(undertow의 accesslog 파일 위치)

(Undertow는 Java로 작성된 유연하면서 고성능의 웹서버이며 NIO기반의 blogcking / Non-blocking API를 제공한다. 

Undertow는 컴퍼지션 아키텍처를 제공하여 작은 단위의 용도를 갖는 핸들러들를 연결하여 웹서버를 구축 할 수 있다. 

컴포지션 아키텍처는 Full Java EE Servlet 3.1 컨테이너에서 부터 Low Level의 Non-blocking 핸들러 

또는 그 중간 수준의 기능을 선택을 할 수 있는 유연성을 제공해 준다.)

server.undertow.accesslog.enabled=false # Enable access log.

server.undertow.accesslog.pattern=common # Format pattern for access logs.

server.undertow.buffer-size= # Size of each buffer in bytes.

server.undertow.buffers-per-region= # Number of buffer per region.

server.undertow.direct-buffers= # Allocate buffers outside the Java heap.

server.undertow.io-threads= # Number of I/O threads to create for the worker.

server.undertow.worker-threads= # Number of worker threads.

server.use-forward-headers= # If X-Forwarded-* headers should be applied to the HttpRequest.

(foward header 사용)

# FREEMARKER (FreeMarkerAutoConfiguration)

(FreeMarker는 Velocity와 마찬가지로 templating 언어이다. 

우리가 Jsp를 코딩하다보면 날코딩으로 생산성이 떨어진다. 

그래서 우리는 좀더 편리하게 사용하기위해서 템플릿 엔진을 사용한다. 

그리고 가장 큰 장점은 매크로 기능으로 기능을 만들어서 사용할 수 있다는 점이다.)

spring.freemarker.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.

spring.freemarker.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.

spring.freemarker.cache=false # Enable template caching.

spring.freemarker.charset=UTF-8 # Template encoding.

spring.freemarker.check-template-location=true # Check that the templates location exists.

spring.freemarker.content-type=text/html # Content-Type value.

spring.freemarker.enabled=true # Enable MVC view resolution for this technology.

spring.freemarker.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.

spring.freemarker.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.

spring.freemarker.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".

spring.freemarker.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.

spring.freemarker.prefix= # Prefix that gets prepended to view names when building a URL.

spring.freemarker.request-context-attribute= # Name of the RequestContext attribute for all views.

spring.freemarker.settings.*= # Well-known FreeMarker keys which will be passed to FreeMarker's Configuration.

spring.freemarker.suffix= # Suffix that gets appended to view names when building a URL.

spring.freemarker.template-loader-path=classpath:/templates/ # Comma-separated list of template paths.

spring.freemarker.view-names= # White list of view names that can be resolved

# GROOVY TEMPLATES (GroovyTemplateAutoConfiguration)

(그루비 템플릿 - 타입아 유연하고 간결한 동적 객체지향 언어 관련 옵션)

spring.groovy.template.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.

spring.groovy.template.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.

spring.groovy.template.cache= # Enable template caching.

spring.groovy.template.charset=UTF-8 # Template encoding.

spring.groovy.template.check-template-location=true # Check that the templates location exists.

spring.groovy.template.configuration.*= # See GroovyMarkupConfigurer

spring.groovy.template.content-type=test/html # Content-Type value.

spring.groovy.template.enabled=true # Enable MVC view resolution for this technology.

spring.groovy.template.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.

spring.groovy.template.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.

spring.groovy.template.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".

spring.groovy.template.prefix= # Prefix that gets prepended to view names when building a URL.

spring.groovy.template.request-context-attribute= # Name of the RequestContext attribute for all views.

spring.groovy.template.resource-loader-path=classpath:/templates/ # Template path.

spring.groovy.template.suffix=.tpl # Suffix that gets appended to view names when building a URL.

spring.groovy.template.view-names= # White list of view names that can be resolved.

# SPRING HATEOAS (HateoasProperties)

spring.hateoas.use-hal-as-default-json-media-type=true # Specify if application/hal+json responses should be sent to requests that accept application/json.

(HATEOASHATEOAS는 RESTful API를 사용하는 클라이언트가 전적으로 서버에 의해 동적으로 상호작용을 할 수 있다. 쉽게 말하면 클라이언트가 서버에 요청시 서버는 요청에 의존되는 URI를 Response에 포함시켜 반환한다. 옵션)


# HTTP message conversion

spring.http.converters.preferred-json-mapper=jackson # Preferred JSON mapper to use for HTTP message conversion. Set to "gson" to force the use of Gson when both it and Jackson are on the classpath.

(http message 설정)

# HTTP encoding (HttpEncodingProperties)

spring.http.encoding.charset=UTF-8 # Charset of HTTP requests and responses. Added to the "Content-Type" header if not set explicitly.

(http encoding 설정)

spring.http.encoding.enabled=true # Enable http encoding support.

(http 인코딩 여부)

spring.http.encoding.force=true # Force the encoding to the configured charset on HTTP requests and responses.

(http 인코딩 강제 여부)

# JACKSON (JacksonProperties)

(스프링 json 자동 생성 관련 속성)

spring.jackson.date-format= # Date format string or a fully-qualified date format class name. For instance `yyyy-MM-dd HH:mm:ss`

spring.jackson.deserialization.*= # Jackson on/off features that affect the way Java objects are deserialized.

spring.jackson.generator.*= # Jackson on/off features for generators.

spring.jackson.joda-date-time-format= # Joda date time format string. If not configured, "date-format" will be used as a fallback if it is configured with a format string.

spring.jackson.locale= # Locale used for formatting.

spring.jackson.mapper.*= # Jackson general purpose on/off features.

spring.jackson.parser.*= # Jackson on/off features for parsers.

spring.jackson.property-naming-strategy= # One of the constants on Jackson's PropertyNamingStrategy. Can also be a fully-qualified class name of a PropertyNamingStrategy subclass.

spring.jackson.serialization.*= # Jackson on/off features that affect the way Java objects are serialized.

spring.jackson.serialization-inclusion= # Controls the inclusion of properties during serialization. Configured with one of the values in Jackson's JsonInclude.Include enumeration.

spring.jackson.time-zone= # Time zone used when formatting dates. For instance `America/Los_Angeles`

# JERSEY (JerseyProperties)

(스프링을 이용하여 RESTFul api를 만드는데 도와줌)

spring.jersey.application-path= # Path that serves as the base URI for the application. Overrides the value of "@ApplicationPath" if specified.

spring.jersey.filter.order=0 # Jersey filter chain order.

spring.jersey.init.*= # Init parameters to pass to Jersey via the servlet or filter.

spring.jersey.type=servlet # Jersey integration type. Can be either "servlet" or "filter".

# SPRING MOBILE DEVICE VIEWS (DeviceDelegatingViewResolverAutoConfiguration)

(스프링 모바일 디바이스 뷰 속성)

spring.mobile.devicedelegatingviewresolver.enable-fallback=false # Enable support for fallback resolution.

spring.mobile.devicedelegatingviewresolver.enabled=false # Enable device view resolver.

spring.mobile.devicedelegatingviewresolver.mobile-prefix=mobile/ # Prefix that gets prepended to view names for mobile devices.

spring.mobile.devicedelegatingviewresolver.mobile-suffix= # Suffix that gets appended to view names for mobile devices.

spring.mobile.devicedelegatingviewresolver.normal-prefix= # Prefix that gets prepended to view names for normal devices.

spring.mobile.devicedelegatingviewresolver.normal-suffix= # Suffix that gets appended to view names for normal devices.

spring.mobile.devicedelegatingviewresolver.tablet-prefix=tablet/ # Prefix that gets prepended to view names for tablet devices.

spring.mobile.devicedelegatingviewresolver.tablet-suffix= # Suffix that gets appended to view names for tablet devices.

# SPRING MOBILE SITE PREFERENCE (SitePreferenceAutoConfiguration)

spring.mobile.sitepreference.enabled=true # Enable SitePreferenceHandler.

(스프링 모바일 속성 사이트 여부)

# MUSTACHE TEMPLATES (MustacheAutoConfiguration)

(Mustache template 속성 선언)

(Mustache는 제어 구조를 갖춘 것 중 문법이 간단하고 가장 많은 언어로 포팅된 템플릿 엔진입니다. 

Mustache를 기반으로 이를 확장한 템플릿 엔진도 여럿 있는데 대표적으로는 헬퍼 개념을 추가한 

Handlebars와 트위터에서 만든 Hogan.js를 들 수 있다.)

spring.mustache.cache=false # Enable template caching.

spring.mustache.charset=UTF-8 # Template encoding.

spring.mustache.check-template-location=true # Check that the templates location exists.

spring.mustache.content-type=text/html # Content-Type value.

spring.mustache.enabled=true # Enable MVC view resolution for this technology.

spring.mustache.prefix=classpath:/templates/ # Prefix to apply to template names.

spring.mustache.suffix=.html # Suffix to apply to template names.

spring.mustache.view-names= # White list of view names that can be resolved.

# SPRING MVC (WebMvcProperties)

(스프링 mvc 관련 옵션들)

spring.mvc.async.request-timeout= # Amount of time (in milliseconds) before asynchronous request handling times out.

spring.mvc.date-format= # Date format to use. For instance `dd/MM/yyyy`.

spring.mvc.dispatch-trace-request=false # Dispatch TRACE requests to the FrameworkServlet doService method.

spring.mvc.dispatch-options-request=false # Dispatch OPTIONS requests to the FrameworkServlet doService method.

spring.mvc.favicon.enabled=true # Enable resolution of favicon.ico.

spring.mvc.ignore-default-model-on-redirect=true # If the content of the "default" model should be ignored during redirect scenarios.

spring.mvc.locale= # Locale to use.

spring.mvc.media-types.*= # Maps file extensions to media types for content negotiation.

spring.mvc.message-codes-resolver-format= # Formatting strategy for message codes. For instance `PREFIX_ERROR_CODE`.

spring.mvc.static-path-pattern=/** # Path pattern used for static resources.

spring.mvc.throw-exception-if-no-handler-found=false # If a "NoHandlerFoundException" should be thrown if no Handler was found to process a request.

spring.mvc.view.prefix= # Spring MVC view prefix.

spring.mvc.view.suffix= # Spring MVC view suffix.


(스프링 리소스 핸들링 관련 속성)

spring.resources.add-mappings=true # Enable default resource handling.

(스프링 리소스 핸들링 enable)

spring.resources.cache-period= # Cache period for the resources served by the resource handler, in seconds.

(스프링 리소스 캐쉬 관련 속성)

spring.resources.chain.cache=true # Enable caching in the Resource chain.

(리소스 체인 캐쉬 활성화)

spring.resources.chain.enabled= # Enable the Spring Resource Handling chain. Disabled by default unless at least one strategy has been enabled.

(리소스 체인 활성화)

spring.resources.chain.html-application-cache=false # Enable HTML5 application cache manifest rewriting.

(html5 캐쉬 속성 활성화)

spring.resources.chain.strategy.content.enabled=false # Enable the content Version Strategy.

(strategy content 활성화)

spring.resources.chain.strategy.content.paths=/** # Comma-separated list of patterns to apply to the Version Strategy.

(strategy content path)

spring.resources.chain.strategy.fixed.enabled=false # Enable the fixed Version Strategy.

(version strategy 활성화)

spring.resources.chain.strategy.fixed.paths= # Comma-separated list of patterns to apply to the Version Strategy.

(version strategy path)

spring.resources.chain.strategy.fixed.version= # Version string to use for the Version Strategy.

(version strategy version)

spring.resources.static-locations=classpath:/META-INF/resources/,classpath:/resources/,classpath:/static/,classpath:/public/ # Locations of static resources.

(리소스 static location)

# SPRING SOCIAL (SocialWebAutoConfiguration)

spring.social.auto-connection-views=false # Enable the connection status view for supported providers.

(spring social 활성화)

# SPRING SOCIAL FACEBOOK (FacebookAutoConfiguration)

spring.social.facebook.app-id= # your application's Facebook App ID

(스프링 facebook 연동 id)

spring.social.facebook.app-secret= # your application's Facebook App Secret

(스프링 facebook app secret 속성)

# SPRING SOCIAL LINKEDIN (LinkedInAutoConfiguration)

spring.social.linkedin.app-id= # your application's LinkedIn App ID

(스프링 링크드인 app-id)

spring.social.linkedin.app-secret= # your application's LinkedIn App Secret

(스프링 링크드인 app secret 속성)

# SPRING SOCIAL TWITTER (TwitterAutoConfiguration)

(스프링 트위터 속성)

spring.social.twitter.app-id= # your application's Twitter App ID

spring.social.twitter.app-secret= # your application's Twitter App Secret

# THYMELEAF (ThymeleafAutoConfiguration)

(스프링 THYMELEAF 속성)

(Thymeleaf는 Tiles, FreeMarker, SiteMesh처럼 자바에서 사용할 수 있는 뷰 템플릿 엔진이다. 스프링소스에서 만든건지는 모르겠지만 스프링소스에서 열심히 밀고 있기는 하고 Spring MVC와 통합이 잘 되어 있다.)

spring.thymeleaf.cache=true # Enable template caching.

spring.thymeleaf.check-template-location=true # Check that the templates location exists.

spring.thymeleaf.content-type=text/html # Content-Type value.

spring.thymeleaf.enabled=true # Enable MVC Thymeleaf view resolution.

spring.thymeleaf.encoding=UTF-8 # Template encoding.

spring.thymeleaf.excluded-view-names= # Comma-separated list of view names that should be excluded from resolution.

spring.thymeleaf.mode=HTML5 # Template mode to be applied to templates. See also StandardTemplateModeHandlers.

spring.thymeleaf.prefix=classpath:/templates/ # Prefix that gets prepended to view names when building a URL.

spring.thymeleaf.suffix=.html # Suffix that gets appended to view names when building a URL.

spring.thymeleaf.template-resolver-order= # Order of the template resolver in the chain.

spring.thymeleaf.view-names= # Comma-separated list of view names that can be resolved.

# VELOCITY TEMPLATES (VelocityAutoConfiguration)


(Velocity Template Engine은 애플리케이션이나 서블릿 내에서 데이터를 표현하게 만들어 준다. 

주로 서블릿 기반의 웹사이트들과 같은 다이나믹한 개발에 사용되는데 Velocity의 템플릿과 자바 코드간의 

깔끔한 분리는 모델 2 스타일 Model-View-Controller(MVC) 웹 개발에 대하여 이상적으로 만들어 줄 수 있다. 

일반적인 템플릿 엔진들처럼 Velocity는 코드생성, XML 생성과 변환, 그리고 텍스트 스트림 프로세싱과 같은 많은 

다른 목적들에도 적합하다.)

spring.velocity.allow-request-override=false # Set whether HttpServletRequest attributes are allowed to override (hide) controller generated model attributes of the same name.

spring.velocity.allow-session-override=false # Set whether HttpSession attributes are allowed to override (hide) controller generated model attributes of the same name.

spring.velocity.cache= # Enable template caching.

spring.velocity.charset=UTF-8 # Template encoding.

spring.velocity.check-template-location=true # Check that the templates location exists.

spring.velocity.content-type=text/html # Content-Type value.

spring.velocity.date-tool-attribute= # Name of the DateTool helper object to expose in the Velocity context of the view.

spring.velocity.enabled=true # Enable MVC view resolution for this technology.

spring.velocity.expose-request-attributes=false # Set whether all request attributes should be added to the model prior to merging with the template.

spring.velocity.expose-session-attributes=false # Set whether all HttpSession attributes should be added to the model prior to merging with the template.

spring.velocity.expose-spring-macro-helpers=true # Set whether to expose a RequestContext for use by Spring's macro library, under the name "springMacroRequestContext".

spring.velocity.number-tool-attribute= # Name of the NumberTool helper object to expose in the Velocity context of the view.

spring.velocity.prefer-file-system-access=true # Prefer file system access for template loading. File system access enables hot detection of template changes.

spring.velocity.prefix= # Prefix that gets prepended to view names when building a URL.

spring.velocity.properties.*= # Additional velocity properties.

spring.velocity.request-context-attribute= # Name of the RequestContext attribute for all views.

spring.velocity.resource-loader-path=classpath:/templates/ # Template path.

spring.velocity.suffix=.vm # Suffix that gets appended to view names when building a URL.

spring.velocity.toolbox-config-location= # Velocity Toolbox config location. For instance `/WEB-INF/toolbox.xml`

spring.velocity.view-names= # White list of view names that can be resolved.

# ----------------------------------------


# ----------------------------------------

# SECURITY (SecurityProperties)

(스프링 보안 속성)

security.basic.authorize-mode=role # Security authorize mode to apply.

security.basic.enabled=true # Enable basic authentication.

security.basic.path=/** # Comma-separated list of paths to secure.

security.basic.realm=Spring # HTTP basic realm name.

security.enable-csrf=false # Enable Cross Site Request Forgery support.

security.filter-order=0 # Security filter chain order.

security.filter-dispatcher-types=ASYNC, FORWARD, INCLUDE, REQUEST # Security filter chain dispatcher types.

security.headers.cache=true # Enable cache control HTTP headers.

security.headers.content-type=true # Enable "X-Content-Type-Options" header.

security.headers.frame=true # Enable "X-Frame-Options" header.

security.headers.hsts= # HTTP Strict Transport Security (HSTS) mode (none, domain, all).

security.headers.xss=true # Enable cross site scripting (XSS) protection.

security.ignored= # Comma-separated list of paths to exclude from the default secured paths.

security.require-ssl=false # Enable secure channel for all requests.

security.sessions=stateless # Session creation policy (always, never, if_required, stateless).

security.user.name=user # Default user name.

security.user.password= # Password for the default user name. A random password is logged on startup by default.

security.user.role=USER # Granted roles for the default user name.

# SECURITY OAUTH2 CLIENT (OAuth2ClientProperties

(스프링 OAUTH2 클라이언트 속성)

(외부 사이트와 인증기반의 데이터를 연동할 때 ID, Password를 넘기는 방법은 매우 위험하다. 

ID, Password는 그 사용자의 모든 권한을 얻는 것이기 때문에 ID 도용 위험이 크다. 

그래서 ID, Password를 사용자 임시 인증을 위한 Token을 제공하는 방식을 사용한다. 

그러나 이 방법이 각 서비스마다 제각각이어서 개발자들은 인증 연동을 각 서비스별로 따로 해야 한다. 

그러다 보니 표준적인 방법이 필요했고, 그 표준 방법이 OAuth이다.)

security.oauth2.client.client-id= # OAuth2 client id.

security.oauth2.client.client-secret= # OAuth2 client secret. A random secret is generated by default

# SECURITY OAUTH2 RESOURCES (ResourceServerProperties

(스프링 OAUTH2 리소스 속성)

security.oauth2.resource.id= # Identifier of the resource.

security.oauth2.resource.jwt.key-uri= # The URI of the JWT token. Can be set if the value is not available and the key is public.

security.oauth2.resource.jwt.key-value= # The verification key of the JWT token. Can either be a symmetric secret or PEM-encoded RSA public key.

security.oauth2.resource.prefer-token-info=true # Use the token info, can be set to false to use the user info.

security.oauth2.resource.service-id=resource #

security.oauth2.resource.token-info-uri= # URI of the token decoding endpoint.

security.oauth2.resource.token-type= # The token type to send when using the userInfoUri.

security.oauth2.resource.user-info-uri= # URI of the user endpoint.

# SECURITY OAUTH2 SSO (OAuth2SsoProperties

(스프링 OAUTH2 SSO속성)

security.oauth2.sso.filter-order= # Filter order to apply if not providing an explicit WebSecurityConfigurerAdapter

security.oauth2.sso.login-path=/login # Path to the login page, i.e. the one that triggers the redirect to the OAuth2 Authorization Server

# ----------------------------------------


# ----------------------------------------

# FLYWAY (FlywayProperties)

(data flyaway관련 속성)

(데이터베이스 형상관리 툴. 

로컬에서 변경한 데이터베이스의 스키마나 데이터를 운영 데이터베이스에 반영하는 것을 누락하는것을 막기 위해 사용한다. 

또한 개발 DB와 운영 DB의 스키마를 비교하거나, 운영 DB에 수작업을 가하는 노가다와 위험성을 줄이기 위해 사용한다. 

생성한 형상을 새로운 DB에 적용하면 그게 마이그레이션이다.)

flyway.baseline-description= #

flyway.baseline-version=1 # version to start migration

flyway.baseline-on-migrate= #

flyway.check-location=false # Check that migration scripts location exists.

flyway.clean-on-validation-error= #

flyway.enabled=true # Enable flyway.

flyway.encoding= #

flyway.ignore-failed-future-migration= #

flyway.init-sqls= # SQL statements to execute to initialize a connection immediately after obtaining it.

flyway.locations=classpath:db/migration # locations of migrations scripts

flyway.out-of-order= #

flyway.password= # JDBC password if you want Flyway to create its own DataSource

flyway.placeholder-prefix= #

flyway.placeholder-replacement= #

flyway.placeholder-suffix= #

flyway.placeholders.*= #

flyway.schemas= # schemas to update

flyway.sql-migration-prefix=V #

flyway.sql-migration-separator= #

flyway.sql-migration-suffix=.sql #

flyway.table= #

flyway.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.

flyway.user= # Login user of the database to migrate.

flyway.validate-on-migrate= #

# LIQUIBASE (LiquibaseProperties)


(데이터베이스 변경 관리를 체계적으로 자동화해 주는 open source(LGPL)로 LiquiBase)

liquibase.change-log=classpath:/db/changelog/db.changelog-master.yaml # Change log configuration path.

liquibase.check-change-log-location=true # Check the change log location exists.

liquibase.contexts= # Comma-separated list of runtime contexts to use.

liquibase.default-schema= # Default database schema.

liquibase.drop-first=false # Drop the database schema first.

liquibase.enabled=true # Enable liquibase support.

liquibase.labels= # Comma-separated list of runtime labels to use.

liquibase.parameters.*= # Change log parameters.

liquibase.password= # Login password of the database to migrate.

liquibase.url= # JDBC url of the database to migrate. If not set, the primary configured data source is used.

liquibase.user= # Login user of the database to migrate.

# DAO (PersistenceExceptionTranslationAutoConfiguration)

(스프링 DAO관련 속성)

spring.dao.exceptiontranslation.enabled=true # Enable the PersistenceExceptionTranslationPostProcessor.

# CASSANDRA (CassandraProperties)


(카산드라는 구글의 BigTable 컬럼 기반의 데이타 모델과 FaceBook에서 만든 Dynamo의 분산 모델을 기반으로 하여 제작되어 Facebook에 의해 2008년에 아파치 오픈소스로 공개된 분산 데이타 베이스 입니다.)

spring.data.cassandra.cluster-name= # Name of the Cassandra cluster.

spring.data.cassandra.compression= # Compression supported by the Cassandra binary protocol.

spring.data.cassandra.connect-timeout-millis= # Socket option: connection time out.

spring.data.cassandra.consistency-level= # Queries consistency level.

spring.data.cassandra.contact-points=localhost # Comma-separated list of cluster node addresses.

spring.data.cassandra.fetch-size= # Queries default fetch size.

spring.data.cassandra.keyspace-name= # Keyspace name to use.

spring.data.cassandra.load-balancing-policy= # Class name of the load balancing policy.

spring.data.cassandra.port= # Port of the Cassandra server.

spring.data.cassandra.password= # Login password of the server.

spring.data.cassandra.read-timeout-millis= # Socket option: read time out.

spring.data.cassandra.reconnection-policy= # Reconnection policy class.

spring.data.cassandra.retry-policy= # Class name of the retry policy.

spring.data.cassandra.serial-consistency-level= # Queries serial consistency level.

spring.data.cassandra.ssl=false # Enable SSL support.

spring.data.cassandra.username= # Login user of the server.

# ELASTICSEARCH (ElasticsearchProperties)


(elasticsearch는 Shay Banon이 Lucene을 바탕으로 개발한 분산 검색엔진입니다. 

설치와 서버 확장이 매우 편리하기 때문에 개발하고 있는 시스템에 검색 기능이 필요하다면 elasticsearch를 적용하는 것을 권장하고 싶습니다. 

분산 시스템이기 때문에 검색 대상 용량이 증가했을 때 대응하기가 무척 수월하다는 것이 장점입니다.)

spring.data.elasticsearch.cluster-name=elasticsearch # Elasticsearch cluster name.

spring.data.elasticsearch.cluster-nodes= # Comma-separated list of cluster node addresses. If not specified, starts a client node.

spring.data.elasticsearch.properties.*= # Additional properties used to configure the client.

spring.data.elasticsearch.repositories.enabled=true # Enable Elasticsearch repositories.

# MONGODB (MongoProperties)

(스프링 데이터 mongodb속성)

spring.data.mongodb.authentication-database= # Authentication database name.

spring.data.mongodb.database=test # Database name.

spring.data.mongodb.field-naming-strategy= # Fully qualified name of the FieldNamingStrategy to use.

spring.data.mongodb.grid-fs-database= # GridFS database name.

spring.data.mongodb.host=localhost # Mongo server host.

spring.data.mongodb.password= # Login password of the mongo server.

spring.data.mongodb.port=27017 # Mongo server port.

spring.data.mongodb.repositories.enabled=true # Enable Mongo repositories.

spring.data.mongodb.uri=mongodb://localhost/test # Mongo database URI. When set, host and port are ignored.

spring.data.mongodb.username= # Login user of the mongo server.

# DATA REST (RepositoryRestProperties)

(DATA REST 관련 속성)

(Spring에서 REST 서비스를 만들 때 가장 빠르고 효율적으로 만들 수 있는 기술이다.)

spring.data.rest.base-path= # Base path to be used by Spring Data REST to expose repository resources.

spring.data.rest.default-page-size= # Default size of pages.

spring.data.rest.enable-enum-translation= # Enable enum value translation via the Spring Data REST default resource bundle.

spring.data.rest.limit-param-name= # Name of the URL query string parameter that indicates how many results to return at once.

spring.data.rest.max-page-size= # Maximum size of pages.

spring.data.rest.page-param-name= # Name of the URL query string parameter that indicates what page to return.

spring.data.rest.return-body-on-create= # Return a response body after creating an entity.

spring.data.rest.return-body-on-update= # Return a response body after updating an entity.

spring.data.rest.sort-param-name= # Name of the URL query string parameter that indicates what direction to sort results.

# SOLR (SolrProperties)

(SOLR관련 속성)

(Solr는 단독 애플리케이션 서버 형태로 작동하며, REST 형식의 API를 제공한다. 

문서들은 HTTP를 이용해서 XML, JSON, CSV 혹은 바이너리 형태등으로 색인요청을 할 수 있다. 

검색 역시 HTTP GET 으로 요청하며, 검색결과는 XML, JSON, CSV, 바이너리 형태로 가져올 수 있다.)

spring.data.solr.host= # Solr host. Ignored if "zk-host" is set.

spring.data.solr.repositories.enabled=true # Enable Solr repositories.

spring.data.solr.zk-host= # ZooKeeper host address in the form HOST:PORT.

# DATASOURCE (DataSourceAutoConfiguration & DataSourceProperties)


(jdbc를 사용하여 db에 접속하기 위해서는 드라이버를 로드하고 db에 접속하여 connection 객체를 받아와야 한다. 

이런식이면 db에 쿼리를 보낼때 마다 드라이버를 로드하고 커넥션을 생성하고 닫게되는데 커넥션을 생성하고 다는데 

시간이 소모되기에 동시접속자가 많은 사이트의 경우 전체의 성능을 낮추는 원인이 된다.

(드라이버도 한번만 로드하면 되는데 불필요하게 여러번 로드하게 된다) 

이런 문제를 해결하기 위해 "커넥션 풀"을 사용하는데 javax.sql.DataSource 를 사용하면 된다.)

spring.datasource.continue-on-error=false # Do not stop if an error occurs while initializing the database.

spring.datasource.data= # Data (DML) script resource reference.

spring.datasource.driver-class-name= # Fully qualified name of the JDBC driver. Auto-detected based on the URL by default.

spring.datasource.initialize=true # Populate the database using 'data.sql'.

spring.datasource.jmx-enabled=false # Enable JMX support (if provided by the underlying pool).

spring.datasource.jndi-name= # JNDI location of the datasource. Class, url, username & password are ignored when set.

spring.datasource.max-active= # For instance 100

spring.datasource.max-idle= # For instance 8




spring.datasource.name=testdb # Name of the datasource.

spring.datasource.password= # Login password of the database.

spring.datasource.platform=all # Platform to use in the schema resource (schema-${platform}.sql).

spring.datasource.schema= # Schema (DDL) script resource reference.

spring.datasource.separator=; # Statement separator in SQL initialization scripts.

spring.datasource.sql-script-encoding= # SQL scripts encoding.

spring.datasource.test-on-borrow= # For instance `false`

spring.datasource.test-on-return= # For instance `false`

spring.datasource.test-while-idle= #

spring.datasource.time-between-eviction-runs-millis= 1

spring.datasource.type= # Fully qualified name of the connection pool implementation to use. By default, it is auto-detected from the classpath.

spring.datasource.url= # JDBC url of the database.



# H2 Web Console (H2ConsoleProperties)

(H2 Web Console 관련 속성)

(H2 DBMS는 HSQLDB의 후속 버젼으로 많은 기능과 CONSOL을 제공하여 기존의 HSQLDB 보다 쉬게 이용 할수 있다.)

spring.h2.console.enabled=false # Enable the console.

spring.h2.console.path=/h2-console # Path at which the console will be available.

# JOOQ (JooqAutoConfiguration)

(JOOQ관련 속성)

spring.jooq.sql-dialect= # SQLDialect JOOQ used when communicating with the configured datasource. For instance `POSTGRES`

# JPA (JpaBaseConfiguration, HibernateJpaAutoConfiguration)

(JPA는 java persistence api로 데이터베이스를 객최화 하여 연동, 관리가 가능하다.)

spring.data.jpa.repositories.enabled=true # Enable JPA repositories.

(jpa 레포지토리 활성화)

spring.jpa.database= # Target database to operate on, auto-detected by default. Can be alternatively set using the "databasePlatform" property.

(사용할 jpa database 종류 선언)

spring.jpa.database-platform= # Name of the target database to operate on, auto-detected by default. Can be alternatively set using the "Database" enum.

(jpa 플랫폼 이름)

spring.jpa.generate-ddl=false # Initialize the schema on startup.

(시작시 스키마 초기화 여부)

spring.jpa.hibernate.ddl-auto= # DDL mode. This is actually a shortcut for the "hibernate.hbm2ddl.auto" property. Default to "create-drop" when using an embedded database, "none" otherwise.

(ddl mode 여부)

spring.jpa.hibernate.naming-strategy= # Naming strategy fully qualified name.

(Qualified name 이름)

spring.jpa.open-in-view=true # Register OpenEntityManagerInViewInterceptor. Binds a JPA EntityManager to the thread for the entire processing of the request.

(jpa 이름)

spring.jpa.properties.*= # Additional native properties to set on the JPA provider.

(jpa 속성)

spring.jpa.show-sql=false # Enable logging of SQL statements.

(로깅에 sql statement를 찍을 것인지 여부)

# JTA (JtaAutoConfiguration)

(JTA관련 속성)

(JTA(Java Transaction API)은 플랫폼마다 상이한 트랜잭션 매니저들과 어플리케이션들이 상호작용할 수 있는 인터페이스를 정의하고 있다.)

spring.jta.log-dir= # Transaction logs directory.



spring.jta.checkpoint-interval=500 # Interval between checkpoints.

spring.jta.console-file-count=1 # Number of debug logs files that can be created.

spring.jta.console-file-limit=-1 # How many bytes can be stored at most in debug logs files.

spring.jta.console-file-name=tm.out # Debug logs file name.

spring.jta.console-log-level= # Console log level.

spring.jta.default-jta-timeout=10000 # Default timeout for JTA transactions.

spring.jta.enable-logging=true # Enable disk logging.

spring.jta.force-shutdown-on-vm-exit=false # Specify if a VM shutdown should trigger forced shutdown of the transaction core.

spring.jta.log-base-dir= # Directory in which the log files should be stored.

spring.jta.log-base-name=tmlog # Transactions log file base name.

spring.jta.max-actives=50 # Maximum number of active transactions.

spring.jta.max-timeout=300000 # Maximum timeout (in milliseconds) that can be allowed for transactions.

spring.jta.output-dir= # Directory in which to store the debug log files.

spring.jta.serial-jta-transactions=true # Specify if sub-transactions should be joined when possible.

spring.jta.service= # Transaction manager implementation that should be started.

spring.jta.threaded-two-phase-commit=true # Use different (and concurrent) threads for two-phase commit on the participating resources.

spring.jta.transaction-manager-unique-name= # Transaction manager's unique name.

spring.jta.atomikos.connectionfactory.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.

spring.jta.atomikos.connectionfactory.ignore-session-transacted-flag=true # Whether or not to ignore the transacted flag when creating session.

spring.jta.atomikos.connectionfactory.local-transaction-mode=false # Whether or not local transactions are desired.

spring.jta.atomikos.connectionfactory.maintenance-interval=60 # The time, in seconds, between runs of the pool's maintenance thread.

spring.jta.atomikos.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.

spring.jta.atomikos.connectionfactory.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.

spring.jta.atomikos.connectionfactory.max-pool-size=1 # The maximum size of the pool.

spring.jta.atomikos.connectionfactory.min-pool-size=1 # The minimum size of the pool.

spring.jta.atomikos.connectionfactory.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.

spring.jta.atomikos.connectionfactory.unique-resource-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.

spring.jta.atomikos.datasource.borrow-connection-timeout=30 # Timeout, in seconds, for borrowing connections from the pool.

spring.jta.atomikos.datasource.default-isolation-level= # Default isolation level of connections provided by the pool.

spring.jta.atomikos.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.

spring.jta.atomikos.datasource.maintenance-interval=60 # The time, in seconds, between runs of the pool's maintenance thread.

spring.jta.atomikos.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.

spring.jta.atomikos.datasource.max-lifetime=0 # The time, in seconds, that a connection can be pooled for before being destroyed. 0 denotes no limit.

spring.jta.atomikos.datasource.max-pool-size=1 # The maximum size of the pool.

spring.jta.atomikos.datasource.min-pool-size=1 # The minimum size of the pool.

spring.jta.atomikos.datasource.reap-timeout=0 # The reap timeout, in seconds, for borrowed connections. 0 denotes no limit.

spring.jta.atomikos.datasource.test-query= # SQL query or statement used to validate a connection before returning it.

spring.jta.atomikos.datasource.unique-resource-name=dataSource # The unique name used to identify the resource during recovery.



spring.jta.allow-multiple-lrc=false # Allow multiple LRC resources to be enlisted into the same transaction.

spring.jta.asynchronous2-pc=false # Enable asynchronously execution of two phase commit.

spring.jta.background-recovery-interval-seconds=60 # Interval in seconds at which to run the recovery process in the background.

spring.jta.current-node-only-recovery=true # Recover only the current node.

spring.jta.debug-zero-resource-transaction=false # Log the creation and commit call stacks of transactions executed without a single enlisted resource.

spring.jta.default-transaction-timeout=60 # Default transaction timeout in seconds.

spring.jta.disable-jmx=false # Enable JMX support.

spring.jta.exception-analyzer= # Set the fully qualified name of the exception analyzer implementation to use.

spring.jta.filter-log-status=false # Enable filtering of logs so that only mandatory logs are written.

spring.jta.force-batching-enabled=true #  Set if disk forces are batched.

spring.jta.forced-write-enabled=true # Set if logs are forced to disk.

spring.jta.graceful-shutdown-interval=60 # Maximum amount of seconds the TM will wait for transactions to get done before aborting them at shutdown time.

spring.jta.jndi-transaction-synchronization-registry-name= # JNDI name of the TransactionSynchronizationRegistry.

spring.jta.jndi-user-transaction-name= # JNDI name of the UserTransaction.

spring.jta.journal=disk # Name of the journal. Can be 'disk', 'null' or a class name.

spring.jta.log-part1-filename=btm1.tlog # Name of the first fragment of the journal.

spring.jta.log-part2-filename=btm2.tlog # Name of the second fragment of the journal.

spring.jta.max-log-size-in-mb=2 # Maximum size in megabytes of the journal fragments.

spring.jta.resource-configuration-filename= # ResourceLoader configuration file name.

spring.jta.server-id= # ASCII ID that must uniquely identify this TM instance. Default to the machine's IP address.

spring.jta.skip-corrupted-logs=false # Skip corrupted transactions log entries.

spring.jta.warn-about-zero-resource-transaction=true # Log a warning for transactions executed without a single enlisted resource.

spring.jta.bitronix.connectionfactory.acquire-increment=1 # Number of connections to create when growing the pool.

spring.jta.bitronix.connectionfactory.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.

spring.jta.bitronix.connectionfactory.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.

spring.jta.bitronix.connectionfactory.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.

spring.jta.bitronix.connectionfactory.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.

spring.jta.bitronix.connectionfactory.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.

spring.jta.bitronix.connectionfactory.cache-producers-consumers=true # Whether or not produces and consumers should be cached.

spring.jta.bitronix.connectionfactory.defer-connection-release=true # Whether or not the provider can run many transactions on the same connection and supports transaction interleaving.

spring.jta.bitronix.connectionfactory.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.

spring.jta.bitronix.connectionfactory.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.

spring.jta.bitronix.connectionfactory.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.

spring.jta.bitronix.connectionfactory.min-pool-size=0 # The minimum size of the pool.

spring.jta.bitronix.connectionfactory.password= # The password to use to connect to the JMS provider.

spring.jta.bitronix.connectionfactory.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.

spring.jta.bitronix.connectionfactory.test-connections=true # Whether or not connections should be tested when acquired from the pool.

spring.jta.bitronix.connectionfactory.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).

spring.jta.bitronix.connectionfactory.unique-name=jmsConnectionFactory # The unique name used to identify the resource during recovery.

spring.jta.bitronix.connectionfactory.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.

spring.jta.bitronix.connectionfactory.user= # The user to use to connect to the JMS provider.

spring.jta.bitronix.datasource.acquire-increment=1 # Number of connections to create when growing the pool.

spring.jta.bitronix.datasource.acquisition-interval=1 # Time, in seconds, to wait before trying to acquire a connection again after an invalid connection was acquired.

spring.jta.bitronix.datasource.acquisition-timeout=30 # Timeout, in seconds, for acquiring connections from the pool.

spring.jta.bitronix.datasource.allow-local-transactions=true # Whether or not the transaction manager should allow mixing XA and non-XA transactions.

spring.jta.bitronix.datasource.apply-transaction-timeout=false # Whether or not the transaction timeout should be set on the XAResource when it is enlisted.

spring.jta.bitronix.datasource.automatic-enlisting-enabled=true # Whether or not resources should be enlisted and delisted automatically.

spring.jta.bitronix.datasource.cursor-holdability= # The default cursor holdability for connections.

spring.jta.bitronix.datasource.defer-connection-release=true # Whether or not the database can run many transactions on the same connection and supports transaction interleaving.

spring.jta.bitronix.datasource.enable-jdbc4-connection-test= # Whether or not Connection.isValid() is called when acquiring a connection from the pool.

spring.jta.bitronix.datasource.ignore-recovery-failures=false # Whether or not recovery failures should be ignored.

spring.jta.bitronix.datasource.isolation-level= # The default isolation level for connections.

spring.jta.bitronix.datasource.local-auto-commit= # The default auto-commit mode for local transactions.

spring.jta.bitronix.datasource.login-timeout= # Timeout, in seconds, for establishing a database connection.

spring.jta.bitronix.datasource.max-idle-time=60 # The time, in seconds, after which connections are cleaned up from the pool.

spring.jta.bitronix.datasource.max-pool-size=10 # The maximum size of the pool. 0 denotes no limit.

spring.jta.bitronix.datasource.min-pool-size=0 # The minimum size of the pool.

spring.jta.bitronix.datasource.prepared-statement-cache-size=0 # The target size of the prepared statement cache. 0 disables the cache.

spring.jta.bitronix.datasource.share-transaction-connections=false #  Whether or not connections in the ACCESSIBLE state can be shared within the context of a transaction.

spring.jta.bitronix.datasource.test-query= # SQL query or statement used to validate a connection before returning it.

spring.jta.bitronix.datasource.two-pc-ordering-position=1 # The position that this resource should take during two-phase commit (always first is Integer.MIN_VALUE, always last is Integer.MAX_VALUE).

spring.jta.bitronix.datasource.unique-name=dataSource # The unique name used to identify the resource during recovery.

spring.jta.bitronix.datasource.use-tm-join=true Whether or not TMJOIN should be used when starting XAResources.

# EMBEDDED MONGODB (EmbeddedMongoProperties)

(EMBEDDED mongodb 속성)

spring.mongodb.embedded.features=SYNC_DELAY # Comma-separated list of features to enable.

spring.mongodb.embedded.version=2.6.10 # Version of Mongo to use.

# REDIS (RedisProperties)

(REDIS 관련 속성)

(Redis는 "REmote DIctionary System"의 약자로 메모리 기반의 Key/Value Store 이다. 

Cassandra나 HBase와 같이 NoSQL DBMS로 분류되기도 하고, memcached와 같은 In memory 솔루션으로 분리되기도 한다.)

spring.redis.database=0 # Database index used by the connection factory.

spring.redis.host=localhost # Redis server host.

spring.redis.password= # Login password of the redis server.

spring.redis.pool.max-active=8 # Max number of connections that can be allocated by the pool at a given time. Use a negative value for no limit.

spring.redis.pool.max-idle=8 # Max number of "idle" connections in the pool. Use a negative value to indicate an unlimited number of idle connections.

spring.redis.pool.max-wait=-1 # Maximum amount of time (in milliseconds) a connection allocation should block before throwing an exception when the pool is exhausted. Use a negative value to block indefinitely.

spring.redis.pool.min-idle=0 # Target for the minimum number of idle connections to maintain in the pool. This setting only has an effect if it is positive.

spring.redis.port=6379 # Redis server port.

spring.redis.sentinel.master= # Name of Redis server.

spring.redis.sentinel.nodes= # Comma-separated list of host:port pairs.

spring.redis.timeout=0 # Connection timeout in milliseconds.

# ----------------------------------------


# ----------------------------------------

# ACTIVEMQ (ActiveMQProperties)


(Apache ActiveMQ는 가장 유명하고 강력한 오픈 소스 메시지 브로커입니다. Apache ActiveMQ는 빠르고, 다양한 언어 환경의 클라이언트들과 프로토콜을 지원하며, JMS 1.1과 J2EE 1.4를 지원하는 동시에 매우 고급 기능들을 지원하며 Apache 2.0 라이센스에 의해 릴리즈 됩니다.)

spring.activemq.broker-url= # URL of the ActiveMQ broker. Auto-generated by default. For instance `tcp://localhost:61616`

spring.activemq.in-memory=true # Specify if the default broker URL should be in memory. Ignored if an explicit broker has been specified.

spring.activemq.password= # Login password of the broker.

spring.activemq.pooled=false # Specify if a PooledConnectionFactory should be created instead of a regular ConnectionFactory.

spring.activemq.user= # Login user of the broker.

# ARTEMIS (ArtemisProperties)

(ARTEMIS관련 속성)

spring.artemis.embedded.cluster-password= # Cluster password. Randomly generated on startup by default.

spring.artemis.embedded.data-directory= # Journal file directory. Not necessary if persistence is turned off.

spring.artemis.embedded.enabled=true # Enable embedded mode if the Artemis server APIs are available.

spring.artemis.embedded.persistent=false # Enable persistent store.

spring.artemis.embedded.queues= # Comma-separated list of queues to create on startup.

spring.artemis.embedded.server-id= # Server id. By default, an auto-incremented counter is used.

spring.artemis.embedded.topics= # Comma-separated list of topics to create on startup.

spring.artemis.host=localhost # Artemis broker host.

spring.artemis.mode= # Artemis deployment mode, auto-detected by default. Can be explicitly set to "native" or "embedded".

spring.artemis.port=61616 # Artemis broker port.

# SPRING BATCH (BatchProperties)

(SPRING batch 관련 속성)

spring.batch.initializer.enabled=true # Create the required batch tables on startup if necessary.

(스프링 batch 초기화 활성화)

spring.batch.job.enabled=true # Execute all Spring Batch jobs in the context on startup.

(스프링 batch job 활성화)

spring.batch.job.names= # Comma-separated list of job names to execute on startup (For instance `job1,job2`). By default, all Jobs found in the context are executed.

(시작시에 수행할 스프링 batch job 이름들 입력)

spring.batch.schema=classpath:org/springframework/batch/core/schema-@@platform@@.sql # Path to the SQL file to use to initialize the database schema.

(spring batch schema)

spring.batch.table-prefix= # Table prefix for all the batch meta-data tables.

(spring batch table prefix)

# HORNETQ (HornetQProperties)

(HORNETQ 관련 속성)

spring.hornetq.embedded.cluster-password= # Cluster password. Randomly generated on startup by default.

spring.hornetq.embedded.data-directory= # Journal file directory. Not necessary if persistence is turned off.

spring.hornetq.embedded.enabled=true # Enable embedded mode if the HornetQ server APIs are available.

spring.hornetq.embedded.persistent=false # Enable persistent store.

spring.hornetq.embedded.queues= # Comma-separated list of queues to create on startup.

spring.hornetq.embedded.server-id= # Server id. By default, an auto-incremented counter is used.

spring.hornetq.embedded.topics= # Comma-separated list of topics to create on startup.

spring.hornetq.host=localhost # HornetQ broker host.

spring.hornetq.mode= # HornetQ deployment mode, auto-detected by default. Can be explicitly set to "native" or "embedded".

spring.hornetq.port=5445 # HornetQ broker port.

# JMS (JmsProperties)

(JMS 관련 속성)

(스프링은 JDBC API를 통합했듯이 JMS API도 사용하기 쉽게 JMS 통합 프레임워크를 제공한다. JMS는 기능적으로 대략 두 부분으로 나눌 수 있는데 메시지의 생산(production)과 소비(consumption)이다. JmsTemplate 클래스는 메시지 생산과 동기적인 메시지 수신에 사용한다. Java EE의 메시지주도 빈(bean) 방식과 유사한 비동기적인 수신에 대해서 스프링은 메시지주도 POJO(MDP, Message-Driven POJOs)를 생성하는데 사용하는 다수의 메시지 리스너 컨테이너를 제공한다.)

spring.jms.jndi-name= # Connection factory JNDI name. When set, takes precedence to others connection factory auto-configurations.

spring.jms.listener.acknowledge-mode= # Acknowledge mode of the container. By default, the listener is transacted with automatic acknowledgment.

spring.jms.listener.auto-startup=true # Start the container automatically on startup.

spring.jms.listener.concurrency= # Minimum number of concurrent consumers.

spring.jms.listener.max-concurrency= # Maximum number of concurrent consumers.

spring.jms.pub-sub-domain=false # Specify if the default destination type is topic.

# RABBIT (RabbitProperties)

(RABBIT관련 속성)

spring.rabbitmq.addresses= # Comma-separated list of addresses to which the client should connect to.

spring.rabbitmq.dynamic=true # Create an AmqpAdmin bean.

spring.rabbitmq.host=localhost # RabbitMQ host.

spring.rabbitmq.listener.acknowledge-mode= # Acknowledge mode of container.

spring.rabbitmq.listener.auto-startup=true # Start the container automatically on startup.

spring.rabbitmq.listener.concurrency= # Minimum number of consumers.

spring.rabbitmq.listener.max-concurrency= # Maximum number of consumers.

spring.rabbitmq.listener.prefetch= # Number of messages to be handled in a single request. It should be greater than or equal to the transaction size (if used).

spring.rabbitmq.listener.transaction-size= # Number of messages to be processed in a transaction. For best results it should be less than or equal to the prefetch count.

spring.rabbitmq.password= # Login to authenticate against the broker.

spring.rabbitmq.port=5672 # RabbitMQ port.

spring.rabbitmq.requested-heartbeat= # Requested heartbeat timeout, in seconds; zero for none.

spring.rabbitmq.ssl.enabled=false # Enable SSL support.

spring.rabbitmq.ssl.key-store= # Path to the key store that holds the SSL certificate.

spring.rabbitmq.ssl.key-store-password= # Password used to access the key store.

spring.rabbitmq.ssl.trust-store= # Trust store that holds SSL certificates.

spring.rabbitmq.ssl.trust-store-password= # Password used to access the trust store.

spring.rabbitmq.ssl.algorithm= # SSL algorithm to use. By default configure by the rabbit client library.

spring.rabbitmq.username= # Login user to authenticate to the broker.

spring.rabbitmq.virtual-host= # Virtual host to use when connecting to the broker.

# ----------------------------------------


# ----------------------------------------

# ENDPOINTS (AbstractEndpoint subclasses)


endpoints.enabled=true # Enable endpoints.

endpoints.sensitive= # Default endpoint sensitive setting.

endpoints.actuator.enabled=true # Enable the endpoint.

endpoints.actuator.path= # Endpoint URL path.

endpoints.actuator.sensitive=false # Enable security on the endpoint.

endpoints.autoconfig.enabled= # Enable the endpoint.

endpoints.autoconfig.id= # Endpoint identifier.

endpoints.autoconfig.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.beans.enabled= # Enable the endpoint.

endpoints.beans.id= # Endpoint identifier.

endpoints.beans.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.configprops.enabled= # Enable the endpoint.

endpoints.configprops.id= # Endpoint identifier.

endpoints.configprops.keys-to-sanitize=password,secret,key,.*credentials.*,vcap_services # Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.

endpoints.configprops.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.docs.curies.enabled=false # Enable the curie generation.

endpoints.docs.enabled=true # Enable actuator docs endpoint.

endpoints.docs.path=/docs #

endpoints.docs.sensitive=false #

endpoints.dump.enabled= # Enable the endpoint.

endpoints.dump.id= # Endpoint identifier.

endpoints.dump.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.env.enabled= # Enable the endpoint.

endpoints.env.id= # Endpoint identifier.

endpoints.env.keys-to-sanitize=password,secret,key,.*credentials.*,vcap_services # Keys that should be sanitized. Keys can be simple strings that the property ends with or regex expressions.

endpoints.env.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.flyway.enabled= # Enable the endpoint.

endpoints.flyway.id= # Endpoint identifier.

endpoints.flyway.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.health.enabled= # Enable the endpoint.

endpoints.health.id= # Endpoint identifier.

endpoints.health.mapping.*= # Mapping of health statuses to HttpStatus codes. By default, registered health statuses map to sensible defaults (i.e. UP maps to 200).

endpoints.health.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.health.time-to-live=1000 # Time to live for cached result, in milliseconds.

endpoints.info.enabled= # Enable the endpoint.

endpoints.info.id= # Endpoint identifier.

endpoints.info.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.jolokia.enabled=true # Enable Jolokia endpoint.

endpoints.jolokia.path=/jolokia # Endpoint URL path.

endpoints.jolokia.sensitive=true # Enable security on the endpoint.

endpoints.liquibase.enabled= # Enable the endpoint.

endpoints.liquibase.id= # Endpoint identifier.

endpoints.liquibase.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.logfile.enabled=true # Enable the endpoint.

endpoints.logfile.path=/logfile # Endpoint URL path.

endpoints.logfile.sensitive=true # Enable security on the endpoint.

endpoints.mappings.enabled= # Enable the endpoint.

endpoints.mappings.id= # Endpoint identifier.

endpoints.mappings.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.metrics.enabled= # Enable the endpoint.

endpoints.metrics.filter.enabled=true # Enable the metrics servlet filter.

endpoints.metrics.id= # Endpoint identifier.

endpoints.metrics.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.shutdown.enabled= # Enable the endpoint.

endpoints.shutdown.id= # Endpoint identifier.

endpoints.shutdown.sensitive= # Mark if the endpoint exposes sensitive information.

endpoints.trace.enabled= # Enable the endpoint.

endpoints.trace.id= # Endpoint identifier.

endpoints.trace.sensitive= # Mark if the endpoint exposes sensitive information.



endpoints.cors.allow-credentials= # Set whether credentials are supported. When not set, credentials are not supported.

endpoints.cors.allowed-headers= # Comma-separated list of headers to allow in a request. '*' allows all headers.

endpoints.cors.allowed-methods=GET # Comma-separated list of methods to allow. '*' allows all methods.

endpoints.cors.allowed-origins= # Comma-separated list of origins to allow. '*' allows all origins. When not set, CORS support is disabled.

endpoints.cors.exposed-headers= # Comma-separated list of headers to include in a response.

endpoints.cors.max-age=1800 # How long, in seconds, the response from a pre-flight request can be cached by clients.

# JMX ENDPOINT (EndpointMBeanExportProperties)

(JMX endpoint 관련 속성)

endpoints.jmx.domain= # JMX domain name. Initialized with the value of 'spring.jmx.default-domain' if set.

endpoints.jmx.enabled=true # Enable JMX export of all endpoints.

endpoints.jmx.static-names= # Additional static properties to append to all ObjectNames of MBeans representing Endpoints.

endpoints.jmx.unique-names=false # Ensure that ObjectNames are modified in case of conflict.

# JOLOKIA (JolokiaProperties)

(JOLOKIA 관련 속성)

jolokia.config.*= # See Jolokia manual

# MANAGEMENT HTTP SERVER (ManagementServerProperties)

(HTTP 서버 관련 management 속성)

management.add-application-context-header=true # Add the "X-Application-Context" HTTP header in each response.

management.address= # Network address that the management endpoints should bind to.

management.context-path= # Management endpoint context-path. For instance `/actuator`

management.port= # Management endpoint HTTP port. Use the same port as the application by default.

management.security.enabled=true # Enable security.

management.security.role=ADMIN # Role required to access the management endpoint.

management.security.sessions=stateless # Session creating policy to use (always, never, if_required, stateless).

# HEALTH INDICATORS (previously health.*)

(spring 상태 관련 속성 - )

management.health.db.enabled=true # Enable database health check.

(데이터베이스 상태 체크 활성화)

management.health.defaults.enabled=true # Enable default health indicators.

(상테 인디케이터 활성화)

management.health.diskspace.enabled=true # Enable disk space health check.

(디스크 공간 상태 활성화)

management.health.diskspace.path= # Path used to compute the available disk space.

(디스크 공간 관련 path)

management.health.diskspace.threshold=0 # Minimum disk space that should be available, in bytes.

(디스크 공간 minimum threshold)

management.health.elasticsearch.enabled=true # Enable elasticsearch health check.

(엘라스틱 서치 상태 체크 활성화)

management.health.elasticsearch.indices= # Comma-separated index names.

(엘라스틱 index name)

management.health.elasticsearch.response-timeout=100 # The time, in milliseconds, to wait for a response from the cluster.

(엘라스틱 response timeout설정)

management.health.jms.enabled=true # Enable JMS health check.

(java message service 상태 체크 활성화)

management.health.mail.enabled=true # Enable Mail health check.

(mail 상태 체크 활성화)

management.health.mongo.enabled=true # Enable MongoDB health check.

(mongodb 상태 체크 활성화)

management.health.rabbit.enabled=true # Enable RabbitMQ health check.

(rabbitMQ 상태 체크 활성화)

management.health.redis.enabled=true # Enable Redis health check.

(redis 상태 체크 활성화)

management.health.solr.enabled=true # Enable Solr health check.

(solr 상태 체크 활성화)

management.health.status.order=DOWN, OUT_OF_SERVICE, UNKNOWN, UP # Comma-separated list of health statuses in order of severity.

(health status 관련 속성)

# TRACING ((TraceProperties)

management.trace.include=request-headers,response-headers,errors # Items to be included in the trace.

(트레이스 관련 속성 선언)


(remote shell 관련 속성)

shell.auth=simple # Authentication type. Auto-detected according to the environment.

shell.auth.jaas.domain=my-domain # JAAS domain.

shell.auth.key.path= # Path to the authentication key. This should point to a valid ".pem" file.

shell.auth.simple.user.name=user # Login user.

shell.auth.simple.user.password= # Login password.

shell.auth.spring.roles=ADMIN # Comma-separated list of required roles to login to the CRaSH console.

shell.command-path-patterns=classpath*:/commands/**,classpath*:/crash/commands/** # Patterns to use to look for commands.

shell.command-refresh-interval=-1 # Scan for changes and update the command if necessary (in seconds).

shell.config-path-patterns=classpath*:/crash/* # Patterns to use to look for configurations.

shell.disabled-commands=jpa*,jdbc*,jndi* # Comma-separated list of commands to disable.

shell.disabled-plugins= # Comma-separated list of plugins to disable. Certain plugins are disabled by default based on the environment.

shell.ssh.auth-timeout = # Number of milliseconds after user will be prompted to login again.

shell.ssh.enabled=true # Enable CRaSH SSH support.

shell.ssh.idle-timeout = # Number of milliseconds after which unused connections are closed.

shell.ssh.key-path= # Path to the SSH server key.

shell.ssh.port=2000 # SSH port.

shell.telnet.enabled=false # Enable CRaSH telnet support. Enabled by default if the TelnetPlugin is  available.

shell.telnet.port=5000 # Telnet port.


spring.git.properties= # Resource reference to a generated git info properties file.

(git 속성)

# METRICS EXPORT (MetricExportProperties)

(metrics 추출)

spring.metrics.export.aggregate.key-pattern= # Pattern that tells the aggregator what to do with the keys from the source repository.

spring.metrics.export.aggregate.prefix= # Prefix for global repository if active.

spring.metrics.export.delay-millis=5000 # Delay in milliseconds between export ticks. Metrics are exported to external sources on a schedule with this delay.

spring.metrics.export.enabled=true # Flag to enable metric export (assuming a MetricWriter is available).

spring.metrics.export.excludes= # List of patterns for metric names to exclude. Applied after the includes.

spring.metrics.export.includes= # List of patterns for metric names to include.

spring.metrics.export.redis.key=keys.spring.metrics # Key for redis repository export (if active).

spring.metrics.export.redis.prefix=spring.metrics # Prefix for redis repository if active.

spring.metrics.export.send-latest= # Flag to switch off any available optimizations based on not exporting unchanged metric values.

spring.metrics.export.statsd.host= # Host of a statsd server to receive exported metrics.

spring.metrics.export.statsd.port=8125 # Port of a statsd server to receive exported metrics.

spring.metrics.export.statsd.prefix= # Prefix for statsd exported metrics.

spring.metrics.export.triggers.*= # Specific trigger properties per MetricWriter bean name.

# ----------------------------------------


# ----------------------------------------

# DEVTOOLS (DevToolsProperties)

(devtools 관련 속성)

spring.devtools.livereload.enabled=true # Enable a livereload.com compatible server.

spring.devtools.livereload.port=35729 # Server port.

spring.devtools.restart.additional-exclude= # Additional patterns that should be excluded from triggering a full restart.

spring.devtools.restart.additional-paths= # Additional paths to watch for changes.

spring.devtools.restart.enabled=true # Enable automatic restart.

spring.devtools.restart.exclude=META-INF/maven/**,META-INF/resources/**,resources/**,static/**,public/**,templates/**,**/*Test.class,**/*Tests.class,git.properties # Patterns that should be excluded from triggering a full restart.

spring.devtools.restart.poll-interval=1000 # Amount of time (in milliseconds) to wait between polling for classpath changes.

spring.devtools.restart.quiet-period=400 # Amount of quiet time (in milliseconds) required without any classpath changes before a restart is triggered.

spring.devtools.restart.trigger-file= # Name of a specific file that when changed will trigger the restart check. If not specified any classpath file change will trigger the restart.

# REMOTE DEVTOOLS (RemoteDevToolsProperties)

(remote devtools 관련 속성)

spring.devtools.remote.context-path=/.~~spring-boot!~ # Context path used to handle the remote connection.

spring.devtools.remote.debug.enabled=true # Enable remote debug support.

spring.devtools.remote.debug.local-port=8000 # Local remote debug server port.

spring.devtools.remote.proxy.host= # The host of the proxy to use to connect to the remote application.

spring.devtools.remote.proxy.port= # The port of the proxy to use to connect to the remote application.

spring.devtools.remote.restart.enabled=true # Enable remote restart.

spring.devtools.remote.secret= # A shared secret required to establish a connection (required to enable remote support).

spring.devtools.remote.secret-header-name=X-AUTH-TOKEN # HTTP header used to transfer the shared secret.

출처 : https://blog.voidmainvoid.net/40

Trackback 0 Comment 0
2015.07.27 09:05

앱스토어 리뷰가이드 라인

우리는 당신이 iOS를 위한 어플리케이션을 개발하려고 하는 것을 매우 기쁘게 생각합니다. iOS 앱 개발은 직업적, 금전적으로 수많은 개발자들에게 도움을 주고 있는 작업이며, 우리는 당신이 이 성공적인 개발자들의 대열에 합류하길 기원합니다. 우리가 앱스토어 리뷰 가이드라인을 작성한 것은 이번이 처음입니다. 우리는 이 리뷰가 당신이 앱을 개발하는데 발생할 수 있는 문제에 대해 명확한 지침을 제공해줄 수 있을거라고 기대하며, 그로 인해 앱 승인 절차를 빠르게 할 수 있을거라고 생각합니다.

우리는 앱을 책이나 노래 따위의 우리가 취급하지 않는 것들과는 다르게 보고 있습니다. 만약 당신이 종교를 비판하고 싶다면 책을 쓰십시오. 만약 당신이 섹스에 대해 묘사하고 싶다면 책을 쓰거나 노래를 만들거나, 혹은 의학적 서류를 만드십시오. 구분하기 다소 복잡할 수 있습니다만, 우리는 그런 류의 컨텐츠들을 앱스토어에 등록하지 못하도록 결정하였습니다. 하기의 지침들을 인지하는 것이 당신들의 앱 개발에 도움이 될 것입니다.

많은 아이들이 앱들을 다운받고 있으며, 부모들이 별도로 아이들을 위한 컨트롤 장치를 세팅하지 않는 한 아이들의 앱 다운로드를 제어할 수 있는 방법은 없습니다. (많은 부모들이 보통 그 장치를 세팅하지 않습니다.) 우리가 아이들에게 나쁜 영향을 주지 않도록 항상 주의하고 있음을 주지하십시오.

앱스토어에는 250,000개가 넘는 앱들이 있습니다. 더 이상의 의미없는 앱들은 필요없습니다. 당신이 만든 앱이 실용적으로 쓸모있거나 혹은 지속적인 즐거움을 제공할 수 없다면 우리는 그 앱을 승인하지 않을 수 있습니다.

만약 당신이 만든 앱이 고작 며칠 사이에 조잡하게 만들어졌다고 보이거나, 당신의 친구들에게 보여주기 위해 연습용으로 만든 앱을 스토어에 올릴 경우 해당 앱들은 승인 받지 못할 것입니다. 많은 전문 앱 개발자들은 자신들의 양질의 개발물이 아마추어들이 유희로 만든 것들과 같이 앱스토어에 전시되는 것을 원하지 않습니다.

 우리가 판단하기에 선을 넘었다고 보이는 컨텐츠나 행동을 다룬 앱은 승인을 거부당할 수 있습니다. 당신이 그 기준이 무엇이냐고 묻는다면, “보면 알것입니다.” 라고 대답하겠습니다. 우리는 당신들 역시 그 기준을 충분히 인식할 수 있을 거라고 생각합니다.

 만약 당신의 앱이 승인을 거부당했을 경우, 당신은 우리가 제공하는 Review Board를 통해서 이를 어필할 수 있습니다. 당신이 이런 프로세스를 따르지 않고 언론사에 우리를 비난한다고해서 그 문제를 해결하지는 못할 것입니다.

 이 가이드라인은 지속적으로 업데이트될 수 있습니다. 만약 새로이 개발된 앱이 새로운 문제점을 야기할 경우 우리는 새 룰을 언제든 추가할 수 있습니다.
어쩌면 당신이 만든 앱이 그것을 불러올지도 모릅니다.
마지막으로, 우리는 당신이 개발하는 앱을 매우 좋아하며 당신이 하는 일들에 존경심을 가지고 있습니다. 우리는 앱 개발에 있어서 당신의 능력을 최대한 발휘할 수 있는 최고의 플랫폼을 구축할 수 있도록 노력하고 있습니다. 어쩌면 당신이 보기에 우리의 통제가 지나치다고 생각할지도 모르지만, 만약 그렇다면 그건 우리가 고객의 입장에서 생각하고 그들이 우리의 제품을 통해 양질의 경험을 할 수 있도록 신경쓰기 때문 일 겁니다. 그런 생각은 당신들 대부분도 아마 마찬가지일겁니다. 
1. 약관
2. 기능성
3. 메타데이터, 등급, 순위
4. 지역
5. 알림서비스 (푸쉬 노티피케이션)
6. 게임센터
7. 전자광고
8. 상표, 상품외장
9. 미디어 컨텐츠
10. 유저 인터페이스
11. 구입, 통화
12. 긁어오기, 종합
13. 기기에 손상
14. 개인적인 공격
15. 폭력성
16. 거부감을 주는 컨텐츠
17. 사생활
18. 포르노그래피
19. 종교, 문화, 인종
20. 컨테스트, 경품, 복권, 추첨
21. 자선, 기부
22. 법적 요구사항 
1. 약관 
1.1     앱스토어의 어플리케이션을 개발하는 개발자로서 당신은 Program License Agreement (PLA), Human Interface Guidelines (HIG), 그 외에 다른 애플과 맺은 라이센스 혹은 계약들에 종속된다. 하기의 룰과 예시는 당신이 만드는 앱이 승인을 받는데 도움을 주기 위한 것이지 다른 협의문을 수정하거나 그에 종속된 조항을 무효화하기 위함이 아니다. 
2. 기능성 
2.1     (시스템을) 고장내는 앱은 승인하지 않는다.
2.2     버그가 발견되는 앱은 승인하지 않는다.
2.3     개발자가 명시한대로 작동하지 않는 앱은 승인하지 않는다.
2.4     문서 상의 설명과는 일치하지 않는 숨겨진 요소 혹은 불법적 요소를 포함한 앱은 승인하지 않는다.
2.5     공개되지 않은 API(어플리케이션 프로그래밍 인터페이스)를 사용한 앱은 승인하지 않는다.
2.6     할당된 공간 외의 곳에서 데이터를 읽거나 쓰는 앱은 승인하지 않는다.
2.7     어떤 방식이나 형태로든 코드를 다운받는 앱은 승인하지 않는다.
2.8     다른 실행 가능한 코드를 인스톨 혹은 실행시키는 앱은 승인하지 않는다.
2.9     “베타”, “데모”, “체험판” 혹은 “테스트” 버전인 앱들은 승인하지 않는다.
2.10   아이폰 앱은 별도의 조정없이 아이패드에서도 사용할 수 있어야한다. 해상도는 아이폰과 동일, 
         아이폰3GS의 2배 이다.
2.11   앱스토어에 이미 있는, 그중에서도 특히 유사한 종류 여럿이 존재하는 앱을 복제한 앱은 승인하지 
2.12   실용적으로 유용하지 않거나 지속적인 오락적 가치를 제공하지 못하는 앱은 승인하지 않는다.
2.13   마케팅이나 광고가 주목적으로 제작된 앱은 승인하지 않는다.
2.14   명확하게 명시되지 않은 속임 혹은 가짜 기능을 제공하기 위해 만들어진 앱은 승인하지 않는다.
2.15   20메가가 넘는 크기의 앱은 무선 네트워크를 통해서 다운로드할 수 없다. 
         (앱스토어에서 자동적으로 이를 방지함)
2.16   멀티태스킹 앱은 백그라운드 서비스를 그것들의 기본적인 목적에 맞게 사용해야한다. 
          (예: 인터넷전화, 오디오 플레이백, 지역, 과제수행, 지역 공지 등)
2.17   웹브라우징하는 앱은 IOS WebKit framework와 WebKit Javascript를 반드시 사용해야한다.
2.18   알코올 혹은 법적으로 금지된 물질의 과도한 소비를 조장하거나, 미성년자의 음주 및 흡연을 
         조장하는 앱은 승인하지 않는다.
2.19   잘못된 진단결과 혹은 기타 부정확한 기기 정보를 제공하는 앱은 승인하지 않는다.
2.20   앱스토어에 유사한 앱의 여러가지 버전을 올려서 “스팸질”을 하는 개발자는 iOS 개발자 프로그램
         에서 퇴출한다.
3. 메타데이터 (이름, 설명, 등급, 순위 등) 
3.1     다른 모바일 플랫폼의 이름을 명시한 메타데이터를 포함한 앱은 승인하지 않는다. 
3.2     플레이스홀더 텍스트를 포함한 앱은 승인하지 않는다. 
3.3     앱 설명에서 앱 컨텐츠, 기능과 상관없는 기술을 한 앱은 승인하지 않는다. 
3.4     아이튠스 커넥트 상에 표시되는 앱의 이름과 기기 상에 표시되는 앱의 이름은 서로 비슷해야한다. 
          이는 혼란을 피하기 위한 목적이다. 
3.5     앱의 큰 아이콘과 작은 아이콘은 혼란을 피하기 위해 서로 비슷해야한다. 
3.6     4세 이상 등급을 지키지 않은 앱 아이콘과 스크린샷을 포함한 앱은 승인하지 않는다. 
3.7     앱 컨텐츠에 맞지 않는 카테고리, 장르를 표기한 앱은 승인하지 않는다. 
3.8     개발자는 자신의 앱에 적합한 등급을 매길 책임이 있다. 부적합한 등급은 애플이 수정할 수 있다. 
3.9     개발자는 자신의 앱에 적합한 키워드를 부여할 책임이 있다. 부적합한 키워드는 애플이 수정하거나 
         삭제할 수 있다.
3.10   거짓 리뷰, 돈을 주고 작성한 리뷰, 혹은 기타 부적합한 방법으로 유저 리뷰 혹은 앱스토어 상의 
         차트 순위를 조작 하거나 부풀리려는 시도를 한 개발자는 iOS 개발자 프로그램에서 퇴출한다. 
4. 지역 
 4.1     지역 데이터를 수집, 전송, 혹은 사용하기 전에 해당사항에 관해 사용자의 합의를 공지하지 않거나 
          득하지 않은 앱은 승인하지 않는다.
4.2     지역 데이터에 근거한 API를 통해 자동차, 비행기 혹은 기타 기기들의 자동, 자주적인 조작을 하고
         자 하는 앱은  승인하지 않는다.
4.3     지역 데이터에 근거한 API를 통해 발송, 차량관리, 혹은 긴급 서비스를 하고자 하는 앱은 승인하
          지 않는다. 
5. 알림서비스 (푸쉬 노티피케이션) 
5.1     APN(애플 푸쉬 노티피케이션) API를 사용하지 않은 알림서비스를 제공하는 앱은 승인하지 않는다.
5.2     애플로부터 푸쉬 어플리케이션 ID를 득하지 않고 APN 서비스를 사용하는 앱은 승인하지 않는다.
5.3     사용자 합의를 먼저 득하지 않고 알림서비스를 보내는 앱은 승인하지 않는다.
5.4     알림서비스를 통해 민감한 개인정보, 혹은 비밀정보를 보내는 앱은 승인하지 않는다.
5.5     알림서비스를 통해 원하지 않는 메시지를 전하거나, 피싱 혹은 스팸의 목적으로 만들어진 앱은 승인하
           지 않는다.
5.6     앱의 알림서비스를 이용하여 광고, 프로모션, 혹은 어떠한 직접적 마케팅도 해서는 안된다.
5.7     앱의 알림서비스 사용료를 사용자들로 하여금 부담하게 해서는 안된다.
5.8     알림서비스를 통해 네트워크 용량 혹은 APN 서비스의 대역폭을 과도하게 사용하거나 기기에 지나친 
          부담을 주는 앱은 승인하지 않는다.
5.9     바이러스, 파일, 컴퓨터 코드, 혹은 APN 서비스의 정상적인 기동을 방해하거나 손상을 끼치는 프로그
         램을 전송하는 앱은 승인하지 않는다. 
6. 게임센터 
6.1     플레이어 ID를 최종사용자 혹은 제3자에게 보여주는 앱은 승인하지 않는다. 
6.2     어떠한 목적으로든 플레이어 ID를 사용하는 앱은 승인하지 않는다. 단, 그것이 게임센터 약관에 근거
          하였을 경우는  논외로 한다.
6.3     룩업, 트레이스, 릴레이트, 어소시에이트, 마인, 하베스트 등을 역추적하여 플레이어 ID, 가명 혹은 
          기타 게임센터를 통해 얻을 수 있는 정보를 이용하고자 하는 개발자는 iOS 개발자 프로그램에서 퇴출
6.4     순위권 점수 따위의 게임센터 정보는 게임센터의 승인을 받은 앱에서만 사용할 수 있다.
6.5     게임센터 서비스를 통해 원하지 않는 메시지를 전하거나, 피싱 혹은 스팸의 목적으로 만들어진 앱은 
         승인하지 않는다.
6.6     게임센터 서비스를 통해 네트워크 용량 혹은 APN 서비스의 대역폭을 과도하게 사용하는 앱은 승인하
         지 않는다.
6.7     바이러스, 파일, 컴퓨터 코드, 혹은 게임센터 서비스의 정상적인 기동을 방해하거나 손상을 끼치는 
         프로그램을 전송하는 앱은 승인하지 않는다. 
7. 전자광고 
7.1     인위적으로 광고의 시청수나 조회수를 올리고자 하는 앱은 승인하지 않는다.
7.2     아무 내용이 없는 전자광고 배너를 달고 있는 앱은 승인하지 않는다.
7.3     광고를 보여주는 것이 주목적인 앱은 승인하지 않는다.
8. 상표, 상품외장 
8.1     개발자들은 애플 상표 및 저작권 사용에 관한 가이드라인과 애플 상표 리스트에 명시된 모든 약관에 
          근거하여 앱을 제작해야 한다.
8.2     애플이 앱의 소스나 공급자라고 주장하거나 애플이 앱의 품질이나 기능을 보증한다는 내용을 주장 
         혹은 암시하는 앱은 승인하지 않는다.
8.3     애플 제품이나 광고 주제와 혼동할 수 있을 정도로 유사한 앱은 승인하지 않는다.
8.4     앱 이름 상에 애플 제품 이름의 철자를 잘못 적었을 경우 (예, GPS for Iphone, iTuz) 해당 앱은 승인
         하지 않는다.
8.5     법적으로 보장되는 제3자의 권리(상표, 저작권, 기업비밀, 기타 등록된 컨텐츠)를 사용할 경우 요청 시 
         서류화된 사용권을 제출해야한다.
8.6     오리지널 컨텐츠의 기능에 변화가 없고 해당 브랜드에 관해 모든 것을 명확히 확인할 수 있다는 전제 
         하에서 구글 맵스 API를 통해 습득한 구글 맵스 및 구글 어스 이미지는 어플리케이션 내에서 사용할 
         수 있다. 
9. 미디어 컨텐츠 
9.1     음악 라이브러리에 접속 시 MediaPlayer framework를 사용하지 않는 앱은 승인하지 않는다.
9.2     아이팟 인터페이스를 흉내낸 사용자 인터페이스를 가진 앱은 승인하지 않는다.
9.3     무선 네트워크를 통한 오디오 스트리밍 컨텐츠는 5분 간 5메가 이상 사용하지 않도록 한다.
9.4     무선 네트워크를 통한 비디오 스트리밍 컨텐츠는 10분을 초과하는 경우 HTTP 라이브 스트리밍을 
         사용해야하며, 기본 64kbps 오디오만 사용한 HTTP 라이브 스트림을 포함해야한다. 
10. 사용자 인터페이스 
10.1   모든 앱은 애플 아이폰 Human Interface Guidelines과 애플 아이패드 Human Interface Guidelines에
         맞춰 제작해야 한다.
10.2   앱스토어, 아이튠스스토어, 아이북스토어를 포함한 아이폰 상에 기본으로 제공되는 번들 앱과 유사한 
         앱은 승인하지 않는다.
10.3   애플 아이폰 Human Interface Guidelines과 애플 아이패드 Human Interface Guidelines에 명시된대로 
         버튼이나 아이콘 등을 제대로 제공하는 시스템이 없는 앱은 승인하지 않는다.
10.4   변경된 데스크탑/홈 스크린 환경을 만들거나 멀티앱 위젯 환경을 시뮬레이션하는 앱은 승인하지 
10.5   볼륨 업/다운 및 벨소리/진동 스위치 같은 기본적인 스위치 기능을 변경하는 앱은 승인하지 않는다.
10.6   애플과 애플의 고객들은 심플하고 세련되며 창의적이고 좋은 아이디어에서 나온 인터페이스를 높이 
          이러한 인터페이스를 만들기 위해서는 더 많은 노력이 필요하지만, 그럴만한 가치가 있는 일이다. 
          인터페이스에 관한 애플의 기준치는 높다. 
          만약 당신의 사용자 인터페이스가 복잡하거나 좋지 않을 경우 해당 앱을 승인하지 않을 것이다. 
11. 구입, 통화 
11.1   락을 풀어서 앱스토어 이외의 메커니즘에서 추가적인 기능을 사용할 수 있도록 하는 앱은 승인하지 
11.2   앱 상의 구매 API (IAP) 이외의 시스템을 통해 앱 상의 컨텐츠, 기능, 혹은 서비스를 구매할 수 있도록
        하는 앱은 승인하지 않는다.
11.3   IAP를 통해 어플리케이션 외에서 쓰이는 상품이나 서비스를 구입할 수 있도록 하는 앱은 승인하지 
11.4   IAP를 통해 신용이나 다른 통화를 구입하는 앱의 경우 해당 신용을 어플리케이션 내에서 소비해야
11.5   IAP를 통해 만료된 신용이나 다른 통화를 구입하는 앱은 승인하지 않는다.
11.6   IAP를 통한 컨텐츠 가입은 최소 30일 동안 유지되어야하며, iOS를 사용하는 기기를 가진 모든 사용자
        들에게 공개 되어야한다.
11.7   IAP를 통해 물품을 구입하는 앱의 경우 정확한 구입기능이 있어야한다.
11.8   IAP를 통해 카메라나 자이로스코프 따위의 iOS에 내장된 기능에 접속할 수 있는 권한을 구매할 수 
        있도록 하는 앱은 승인하지 않는다.
11.9   “렌탈” 컨텐츠나 일정 기간이 지나면 만료되는 서비스를 포함한 앱은 승인하지 않는다.
11.10   보험 어플리케이션은 무료여야하며, 배포되는 지역의 법을 준수해야한다. 또한, 해당 앱은 IAP를 
         사용할 수 없다.
11.11   전반적으로, 당신이 만든 앱이 비쌀수록 우리는 더 철저하게 리뷰를 할 것이다. 
12. 긁어오기, 종합 
12.1   애플 사이트(예: apple.com, 아이튠스스토어, 앱스토어, 아이튠스커넥트, 애플 개발자 프로그램 등)로
          부터 정보를 긁어오거나 애플 사이트와 서비스의 컨텐츠를 이용해서 순위를 만드는 앱은 승인하지 
12.2   어플리케이션은 아이튠스스토어 RSS feed 따위의 승인받은 애플 RSS feeds를 사용해야 한다.
12.3   웹상의 자료를 잘라온 것이나 컨텐츠 모음, 혹은 링크모음 따위의 앱은 승인하지 않는다. 
13. 기기에 손상 
13.1   사용자들로 하여금 애플 기기를 기기를 손상시키는 방향으로 사용하게 유도하는 앱은 승인하지 
13.2   기기의 배터리를 급격히 소모시키거나 과도한 열을 발생시키는 앱은 승인하지 않는다.
14. 개인적인 공격 
14.1   명예훼손, 공격적, 비열한 내용을 포함하거나 혹은 특정인이나 집단에게 해를 끼칠 수 있는 앱은 
         승인하지 않는다.
14.2   직업적 정치 풍자가나 유머작가는 공격적, 비열한 코멘트로 인한 금지 항목에서 제외한다. 
15. 폭력성 
15.1   사람이나 짐승이 살해당하는 모습, 불구가 되는 모습, 총에 맞는 모습, 칼에 찔리는 모습, 고문당하거
          나 다치는 모습의 실제 이미지를 표현한 앱은 승인하지 않는다.
15.2   폭력이나 아동학대를 묘사한 앱은 승인하지 않는다.
15.3   게임 상의 “적”은 특정인종, 문화, 실존하는 정부나 회사, 혹은 그 어떤 실제적 존재를 단독으로 지목
          하여 만들어서는 안된다.
15.4   무기를 통한 폭력을 현실적으로 보여줘서 무기의 불법적, 난폭한 사용을 독려하는 앱은 승인하지 
15.5   러시안 룰렛을 포함한 앱은 승인하지 않는다. 
16. 거부감을 주는 컨텐츠 
16.1   과도하게 거부감을 주거나 상스러운 컨텐츠를 보여주는 앱은 승인하지 않는다.
16.2   주로 사용자를 기분나쁘게 하거나 역겹게 하기 위한 목적으로 제작된 앱은 승인하지 않는다. 
17. 사생활 
17.1   모든 앱은 사용자 정보 사용에 관해 사전에 사용자의 허락없이, 그리고 사용자로 하여금 해당 정보가 
         어디서 어떻게 사용될 것인지에 관해 알려주지 않은 채 사용자 정보를 전송할 수 없다.
17.2   구동을 위해서 이메일 주소나 생년월일 따위의 사용자 개인정보의 공유를 필요로 하는 앱은 승인하지 
17.3   미성년자를 대상으로 정보수집을 하는 앱은 승인하지 않는다. 
18. 포르노그래피 
18.1   웹스터 사전에서 정의한 “생식기관의 노골적 묘사, 그리고 미적이나 감성적인 느낌이 아닌 에로틱한 
          느낌을 유발하기 위한 목적의 노골적 행위를 표현한 것”에 해당하는 포르노물을 포함한 앱은 승인하
          지 않는다.
18.2   수시로 포르노물에 해당하는 내용이 등장하는 사용자 제작 컨텐츠를 포함하는 앱(예: “채트 룰렛” 앱)
          은 승인하지 않는다. 
19. 종교, 문화, 인종 
19.1   특정 종교, 문화, 혹은 인종에 대해 명예훼손, 공격적, 비열한 태도를 취하고 있거나 해당 그룹에게 
          피해를 끼칠 수 있는 코멘트 혹은 문헌을 포함한 앱은 승인하지 않는다.
19.2   앱이 종교적인 텍스트를 포함할 경우, 텍스트 상의 멘트나 번역은 정확해야한다. 코멘트는 선동적이라
          기보다는 교육적이거나 정보전달 차원에서 그쳐야한다. 
20. 컨테스트, 경품, 복권, 추첨 
20.1   경품 및 컨테스트는 앱의 개발자/회사가 후원하여 제공해야한다.
20.2   경품 및 컨테스트에 관한 공식적인 룰이 앱 상에 표기되어야하며, 해당 행위에 관해 애플이 관련이 
          없다는 점을 명확히 해야한다.
20.3   복권 앱을 만들기 위해서는 개발자가 법적 허가를 득해야하며, 복권 앱은 해당 3가지 특성을 모두 
          갖추고 있어야 한다: 배려, 기회, 상금
20.4   사용자로 하여금 직접적으로 복권이나 추첨티켓을 살 수 있도록 하는 앱은 승인하지 않는다. 
21. 자선, 기부 
21.1   자선단체에 기부할 수 있는 기능을 포함한 앱은 무료여야한다.
21.2   기부금의 모금은 사파리 상의 웹사이트나 SMS를 통해 이뤄져야한다. 
22. 법적 요구사항 
22.1   앱은 사용자에게 공개되는 지역의 법적 요구사항을 충족시켜야한다. 모든 지역법을 이해하고 따르는 
          것은 개발자들의 의무사항이다.
22.2   허위사실, 사기, 호도된 정보를 포함한 앱은 승인하지 않는다.
22.3   범죄 혹은 난폭한 행위를 요청, 촉진, 장려하는 앱은 승인하지 않는다.
22.4   불법적 파일 공유를 가능케하는 앱은 승인하지 않는다.
22.5   카드 카운터를 포함한 불법적 도박을 조장하기 위해 만들어진 앱은 승인하지 않는다.
22.6   익명 혹은 장난스러운 전화나 SMS/MMS 메시지 전송이 가능한 앱은 승인하지 않는다.
22.7   부정한 방법으로 사용자의 패스워드나 기타 개인정보를 알아내고자 하는 목적으로 앱을 만든 개발자
          는 iOS 개발자 프로그램에서 퇴출한다. 
이 문서는 지속적으로 업데이트되는 문서임 
이 문서는 개발자들이 앱스토어에 제출하는 앱을 우리가 어떻게 리뷰하는지 알려줍니다. 또한 우리는 이 가이드가 당신이 앱을 개발하고 제출하는데에 있어 도움이 될 수 있기를 바랍니다. 이 가이드는 새로운 앱과 상황이 발생함에 따라 지속적으로 업데이트되는 문서이며, 변경사항이 있을 경우 주기적으로 이를 반영할 계획입니다.

iOS의 앱 개발에 참여해주셔서 감사합니다. 비록 이 문서가 당신이 하지 말아야할 것들로 가득하긴 하지만, 그보다 훨씬 짧더라도 당신이 꼭 해야하는 것들의 리스트를 꼭 기억해두시길 바랍니다. 무엇보다도, 사용자들을 놀라게 하고 기쁘게 하는 것에 동참 해주시길 바랍니다. 그들에게 창조적인 길을 보여주고, 이전에는 볼 수 없었던 방법으로 소통할 수 있도록 해주십시오. 우리의 경험에 의하면 사용자들은 기능적으로나 사용자 인터페이스적으로 세련된 것에 적극적으로 반응합니다. 조금 더 노력하셔서 그들에게 그들이 기대하는 이상을 보여주십시오. 그들이 이전까지 본 적이 없는 세계를 보여주시기 바랍니다. 우리는 당신을 도울 준비가 되어있습니다.

참조사이트 : iPhone 개발의 모든 것- AppsNext.com


We're thrilled that you want to invest your talents and time to develop applications for iOS. It has been a rewarding experience - both professionally and financially - for tens of thousands of developers and we want to help you join this successful group. This is the first time we have published our App Store Review Guidelines. We hope they will help you steer clear of issues as you develop your app, so that it speeds through the approval process when you submit it.

We view Apps different than books or songs, which we do not curate. If you want to criticize a religion, write a book. If you want to describe sex, write a book or a song, or create a medical app. It can get complicated, but we have decided to not allow certain kinds of content in the App Store. It may help to keep some of our broader themes in mind:

■ We have lots of kids downloading lots of apps, and parental controls don't work unless the parents set them up (many don't). So know that we're keeping an eye out for the kids.
■ We have over 250,000 apps in the App Store. We don't need any more Fart apps. If your app doesn't do something useful or provide some form of lasting entertainment, it may not be accepted.
■ If your App looks like it was cobbled together in a few days, or you're trying to get your first practice App into the store to impress your friends, please brace yourself for rejection. We have lots of serious developers who don't want their quality Apps to be surrounded by amateur hour.
■ We will reject Apps for any content or behavior that we believe is over the line. What line, you ask? Well, as a Supreme Court Justice once said, "I'll know it when I see it". And we think that you will also know it when you cross it.
■ If your app is rejected, we have a Review Board that you can appeal to. If you run to the press and trash us, it never helps.
■ This is a living document, and new apps presenting new questions may result in new rules at any time. Perhaps your app will trigger this.
Lastly, we love this stuff too, and honor what you do. We're really trying our best to create the best platform in the world for you to express your talents and make a living too. If it sounds like we're control freaks, well, maybe it's because we're so committed to our users and making sure they have a quality experience with our products. Just like almost all of you are too.

Table of Contents
1.Terms and conditions
3.Metadata, ratings and rankings
5.Push notifications
6.Game Center
8.Trademarks and trade dress
9.Media content
10.User interface
11.Purchasing and currencies
12.Scraping and aggregation
13.Damage to device
14.Personal attacks
16.Objectionable content
19.Religion, culture, and ethnicity
20.Contests, sweepstakes, lotteries, and raffles
21.Charities and contributions
22.Legal requirements

1. Terms and conditions
1.1 As a developer of applications for the App Store you are bound by the terms of the Program License Agreement (PLA), Human Interface Guidelines (HIG), and any other licenses or contracts between you and Apple. The following rules and examples are intended to assist you in gaining acceptance for your app in the App Store, not to amend or remove provisions from any other agreement.

2. Functionality
2.1 Apps that crash will be rejected

2.2 Apps that exhibit bugs will be rejected

2.3 Apps that do not perform as advertised by the developer will be rejected

2.4 Apps that include undocumented or hidden features inconsistent with the description of the app will be rejected

2.5 Apps that use non-public APIs will be rejected

2.6 Apps that read or write data outside its designated container area will be rejected

2.7 Apps that download code in any way or form will be rejected

2.8 Apps that install or launch other executable code will be rejected

2.9 Apps that are "beta", "demo", "trial", or "test" versions will be rejected

2.10 iPhone apps must also run on iPad without modification, at iPhone resolution, and at 2X iPhone 3GS resolution

2.11 Apps that duplicate apps already in the App Store may be rejected, particularly if there are many of them

2.12 Apps that are not very useful or do not provide any lasting entertainment value may be rejected

2.13 Apps that are primarily marketing materials or advertisements will be rejected

2.14 Apps that are intended to provide trick or fake functionality that are not clearly marked as such will be rejected

2.15 Apps larger than 20MB in size will not download over cellular networks (this is automatically prohibited by the App Store)

2.16 Multitasking apps may only use background services for their intended purposes: VoIP, audio playback, location, task completion, local notifications, etc

2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript

2.18 Apps that encourage excessive consumption of alcohol or illegal substances, or encourage minors to consume alcohol or smoke cigarettes, will be rejected

2.19 Apps that provide incorrect diagnostic or other inaccurate device data will be rejected

2.20 Developers "spamming" the App Store with many versions of similar apps will be removed from the iOS Developer Program

3. Metadata (name, descriptions, ratings, rankings, etc)
3.1 Apps with metadata that mentions the name of any other mobile platform will be rejected

3.2 Apps with placeholder text will be rejected

3.3 Apps with descriptions not relevant to the application content and functionality will be rejected

3.4 App names in iTunes Connect and as displayed on a device should be similar, so as not to cause confusion

3.5 Small and large app icons should be similar, so as to not to cause confusion

3.6 Apps with app icons and screenshots that do not adhere to the 4+ age rating will be rejected

3.7 Apps with Category and Genre selections that are not appropriate for the app content will be rejected

3.8 Developers are responsible for assigning appropriate ratings to their apps. Inappropriate ratings may be changed by Apple

3.9 Developers are responsible for assigning appropriate keywords for their apps. Inappropriate keywords may be changed/deleted by Apple

3.10 Developers who attempt to manipulate or cheat the user reviews or chart ranking in the App Store with fake or paid reviews, or any other inappropriate methods will be removed from the iOS Developer Program

4. Location
4.1 Apps that do not notify and obtain user consent before collecting, transmitting, or using location data will be rejected

4.2 Apps that use location-based APIs for automatic or autonomous control of vehicles, aircraft, or other devices will be rejected

4.3 Apps that use location-based APIs for dispatch, fleet management, or emergency services will be rejected

5. Push notifications
5.1 Apps that provide Push Notifications without using the Apple Push Notification (APN) API will be rejected

5.2 Apps that use the APN service without obtaining a Push Application ID from Apple will be rejected

5.3 Apps that send Push Notifications without first obtaining user consent will be rejected

5.4 Apps that send sensitive personal or confidential information using Push Notifications will be rejected

5.5 Apps that use Push Notifications to send unsolicited messages, or for the purpose of phishing or spamming will be rejected

5.6 Apps cannot use Push Notifications to send advertising, promotions, or direct marketing of any kind

5.7 Apps cannot charge users for use of Push Notifications

5.8 Apps that excessively use the network capacity or bandwidth of the APN service or unduly burden a device with Push Notifications will be rejected

5.9 Apps that transmit viruses, files, computer code, or programs that may harm or disrupt the normal operation of the APN service will be rejected

6. Game Center
6.1 Apps that display any Player ID to end users or any third party will be rejected

6.2 Apps that use Player IDs for any use other than as approved by the Game Center terms will be rejected

6.3 Developers that attempt to reverse lookup, trace, relate, associate, mine, harvest, or otherwise exploit Player IDs, alias, or other information obtained through the Game Center will be removed from the iOS Developer Program

6.4 Game Center information, such as Leaderboard scores, may only be used in apps approved for use with the Game Center

6.5 Apps that use Game Center service to send unsolicited messages, or for the purpose of phishing or spamming will be rejected

6.6 Apps that excessively use the network capacity or bandwidth of the Game Center will be rejected

6.7 Apps that transmit viruses, files, computer code, or programs that may harm or disrupt the normal operation of the Game Center service will be rejected

7. iAds
7.1 Apps that artificially increase the number of impressions or click-throughs of ads will be rejected

7.2 Apps that contain empty iAd banners will be rejected

7.3 Apps that are designed predominantly for the display of ads will be rejected

8. Trademarks and trade dress
8.1 Apps must comply with all terms and conditions explained in the Guidelines for using Apple Trademark and Copyrights and the Apple Trademark List

8.2 Apps that suggest or infer that Apple is a source or supplier of the app, or that Apple endorses any particular representation regarding quality or functionality will be rejected

8.3 Apps which appear confusingly similar to an existing Apple product or advertising theme will be rejected

8.4 Apps that misspell Apple product names in their app name (i.e., GPS for Iphone, iTunz) will be rejected

8.5 Use of protected 3rd party material (trademarks, copyrights, trade secrets, otherwise proprietary content) requires a documented rights check which must be provided upon request

8.6 Google Maps and Google Earth images obtained via the Google Maps API can be used within an application if all brand features of the original content remain unaltered and fully visible. Apps that cover up or modify the Google logo or copyright holders identification will be rejected

9. Media content
9.1 Apps that do not use the MediaPlayer framework to access media in the Music Library will be rejected

9.2 App user interfaces that mimic any iPod interface will be rejected

9.3 Audio streaming content over a cellular network may not use more than 5MB over 5 minutes

9.4 Video streaming content over a cellular network longer than 10 minutes must use HTTP Live Streaming and include a baseline 64 kbps audio-only HTTP Live stream

10. User interface
10.1 Apps must comply with all terms and conditions explained in the Apple iPhone Human Interface Guidelines and the Apple iPad Human Interface Guidelines

10.2 Apps that look similar to apps bundled on the iPhone, including the App Store, iTunes Store, and iBookstore, will be rejected

10.3 Apps that do not use system provided items, such as buttons and icons, correctly and as described in the Apple iPhone Human Interface Guidelines and the Apple iPad Human Interface Guidelines may be rejected

10.4 Apps that create alternate desktop/home screen environments or simulate multi-app widget experiences will be rejected

10.5 Apps that alter the functions of standard switches, such as the Volume Up/Down and Ring/Silent switches, will be rejected

10.6 Apple and our customers place a high value on simple, refined, creative, well thought through interfaces. They take more work but are worth it. Apple sets a high bar. If your user interface is complex or less than very good it may be rejected

11. Purchasing and currencies
11.1 Apps that unlock or enable additional features or functionality with mechanisms other than the App Store will be rejected

11.2 Apps utilizing a system other than the In App Purchase API (IAP) to purchase content, functionality, or services in an app will be rejected

11.3 Apps using IAP to purchase physical goods or goods and services used outside of the application will be rejected

11.4 Apps that use IAP to purchase credits or other currencies must consume those credits within the application

11.5 Apps that use IAP to purchase credits or other currencies that expire will be rejected

11.6 Content subscriptions using IAP must last a minimum of 30 days and be available to the user from all of their iOS devices

11.7 Apps that use IAP to purchase items must assign the correct Purchasability type

11.8 Apps that use IAP to purchase access to built-in capabilities provided by iOS, such as the camera or the gyroscope, will be rejected

11.9 Apps containing "rental" content or services that expire after a limited time will be rejected

11.10 Insurance applications must be free, in legal-compliance in the regions distributed, and cannot use IAP

11.11 In general, the more expensive your app, the more thoroughly we will review it

12. Scraping and aggregation
12.1 Applications that scrape any information from Apple sites (for example from apple.com, iTunes Store, App Store, iTunes Connect, Apple Developer Programs, etc) or create rankings using content from Apple sites and services will be rejected

12.2 Applications may use approved Apple RSS feeds such as the iTunes Store RSS feed

12.3 Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected

13. Damage to device
13.1 Apps that encourage users to use an Apple Device in a way that may cause damage to the device will be rejected

13.2 Apps that rapidly drain the device's battery or generate excessive heat will be rejected

14. Personal attacks
14.1 Any app that is defamatory, offensive, mean-spirited, or likely to place the targeted individual or group in harms way will be rejected

14.2 Professional political satirists and humorists are exempt from the ban on offensive or mean-spirited commentary

15. Violence
15.1 Apps portraying realistic images of people or animals being killed or maimed, shot, stabbed, tortured or injured will be rejected

15.2 Apps that depict violence or abuse of children will be rejected

15.3 "Enemies" within the context of a game cannot solely target a specific race, culture, a real government or corporation, or any other real entity

15.4 Apps involving realistic depictions of weapons in such a way as to encourage illegal or reckless use of such weapons will be rejected

15.5 Apps that include games of Russian roulette will be rejected

16. Objectionable content
16.1 Apps that present excessively objectionable or crude content will be rejected

16.2 Apps that are primarily designed to upset or disgust users will be rejected

17. Privacy
17.1 Apps cannot transmit data about a user without obtaining the user's prior permission and providing the user with access to information about how and where the data will be used

17.2 Apps that require users to share personal information, such as email address and date of birth, in order to function will be rejected

17.3 Apps that target minors for data collection will be rejected

18. Pornography
18.1 Apps containing pornographic material, defined by Webster's Dictionary as "explicit descriptions or displays of sexual organs or activities intended to stimulate erotic rather than aesthetic or emotional feelings", will be rejected

18.2 Apps that contain user generated content that is frequently pornographic (ex "Chat Roulette" apps) will be rejected

19. Religion, culture, and ethnicity
19.1 Apps containing references or commentary about a religious, cultural or ethnic group that are defamatory, offensive, mean-spirited or likely to expose the targeted group to harm or violence will be rejected

19.2 Apps may contain or quote religious text provided the quotes or translations are accurate and not misleading. Commentary should be educational or informative rather than inflammatory

20. Contests, sweepstakes, lotteries, and raffles
20.1 Sweepstakes and contests must be sponsored by the developer/company of the app

20.2 Official rules for sweepstakes and contests, must be presented in the app and make it clear that Apple is not a sponsor or involved in the activity in any manner

20.3 It must be permissible by law for the developer to run a lottery app, and a lottery app must have all of the following characteristics: consideration, chance, and a prize

20.4 Apps that allow a user to directly purchase a lottery or raffle ticket in the app will be rejected

21. Charities and contributions
21.1 Apps that include the ability to make donations to recognized charitable organizations must be free

21.2 The collection of donations must be done via a web site in Safari or an SMS

22. Legal requirements
22.1 Apps must comply with all legal requirements in any location where they are made available to users. It is the developer's obligation to understand and conform to all local laws

22.2 Apps that contain false, fraudulent or misleading representations will be rejected

22.3 Apps that solicit, promote, or encourage criminal or clearly reckless behavior will be rejected

22.4 Apps that enable illegal file sharing will be rejected

22.5 Apps that are designed for use as illegal gambling aids, including card counters, will be rejected

22.6 Apps that enable anonymous or prank phone calls or SMS/MMS messaging will be rejected

22.7 Developers who create apps that surreptitiously attempt to discover user passwords or other private user data will be removed from the iOS Developer Program

Living document
This document represents our best efforts to share how we review apps submitted to the App Store, and we hope it is a helpful guide as you develop and submit your apps. It is a living document that will evolve as we are presented with new apps and situations, and we'll update it periodically to reflect these changes.

Thank you for developing for iOS. Even though this document is a formidable list of what not to do, please also keep in mind the much shorter list of what you must do. Above all else, join us in trying to surprise and delight users. Show them their world in innovative ways, and let them interact with it like never before. In our experience, users really respond to polish, both in functionality and user interface. Go the extra mile. Give them more than they expect. And take them places where they have never been before. We are ready to help.

ⓒ Apple, 2010

참조 :http://developer.apple.com/appstore/guidelines.html

출처 http://eliot100.tistory.com/4

(한글)앱스토어 리뷰가이드 라인 제공: iPhone 개발의 모듞 것- AppsNext.com

Trackback 3 Comment 0
2015.01.13 12:32

전세관련 특약사항

Trackback 0 Comment 1
  1. 2017.05.03 21:36 address edit & del reply