Skip to content

Latest commit

ย 

History

History
96 lines (76 loc) ยท 4.4 KB

File metadata and controls

96 lines (76 loc) ยท 4.4 KB

Spring Boot 2.4์—์„œ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋“ค

๋ฒ„์ „๋ช…

2.3.7.RELEASE ํ˜•ํƒœ๋กœ ์ œ๊ณต๋˜๋˜ ๋ฒ„์ „์˜ ํ˜•ํƒœ๊ฐ€ 2.4.0์œผ๋กœ ์‹ฌํ”Œํ•˜๊ฒŒ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Spring Boot 2.4.0 ์ด์ƒ์˜ ๋ฒ„์ „๋ถ€ํ„ฐ ์ ‘๋ฏธ์‚ฌ๋ฅผ ์‚ญ์ œํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

Spring Cloud์ด ๊ธฐ์กด์— ์ œ๊ณตํ•˜์˜€๋˜ Greenwich, Hoxton ๋ฐฉ์‹์˜ ๋ฒ„์ „๋ช…์„ ์ œ๊ฑฐํ•˜๊ณ  Calander ํ˜•์‹์œผ๋กœ ์ œ๊ณตํ•˜์—ฌ 2020.0.0 ํ˜•ํƒœ์˜ ๋ฒ„์ „๋ช…์œผ๋กœ ์ œ๊ณต๋ฉ๋‹ˆ๋‹ค.

JUnit Vintage ์‚ญ์ œ

JUnit์ด 5๋ฒ„์ „๋งŒ ์ œ๊ณต๋˜๋ฉฐ ๊ธฐ์กด์— JUnit4๋ฅผ ์‚ฌ์šฉ ํ•  ์ˆ˜ ์žˆ๋˜ ์˜ต์…˜์ธ Vintage๊ฐ€ ์ œ๊ฑฐ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ JUnit4๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜์‹ค ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ถ”๊ฐ€์ ์ธ ๋””ํŽœ๋˜์‹œ๋ฅผ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

<!-- maven -->
<dependency>
    <groupId>org.junit.vintage</groupId>
    <artifactId>junit-vintage-engine</artifactId>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>
// Gradle
testImplementation("org.junit.vintage:junit-vintage-engine") {
    exclude group: "org.hamcrest", module: "hamcrest-core"
}

application.properties, application.yml

์ƒ๋‹นํžˆ ๋งŽ์ด ๋ณ€๊ฒฝ๋˜์–ด ์ด ์ฑ•ํ„ฐ๊ฐ€ ์•„๋‹Œ ๋‹ค๋ฅธ ์ฑ•ํ„ฐ์— ๋‹ด์„ ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. ์ด์ „์˜ ์„ค์ •์„ ๊ทธ๋Œ€๋กœ ์‚ฌ์šฉํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์„ค์ •ํŒŒ์ผ์— ๋ช…์‹œํ•ด์ฃผ๋ฉด ์ด์ „ ๋ฒ„์ „๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

spring-config.use-legacy-processing=true

spring.cloud.location

์™ธ๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์„ค์ •์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” spring.cloud.location๋ฅผ ๋ช…์‹œํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Optional์ด ์•„๋‹Œ Mandantory๋กœ ์„ค์ •์ด ๋˜์–ด์žˆ์–ด์„œ ์ƒ๊ธฐ๋Š” ์˜ค๋ฅ˜์ธ๋ฐ Optional๋กœ ๋ณ€๊ฒฝ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” spring.cloud.location:optional:{url} ์ฒ˜๋Ÿผ Optionalํ•˜๊ฒŒ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

H2, HSQL, Derby

์›๋ž˜๋Š” ์Šคํ”„๋ง๋ถ€ํŠธ์—์„œ ์‚ฌ์šฉํ•  DB๋‚˜ Datasource๋ฅผ ์ž…๋ ฅํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ ๋””๋น„๋กœ ๋งŒ๋“ค์–ด ์ฃผ์—ˆ๋Š”๋ฐ ์ด์ œ๋Š” ์ง์ ‘ ์ž…๋ ฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

datasource๋ฅผ ๋งŒ๋“ค๋•Œ ํ•ด์ฃผ๋˜ sa๋Š” ์ด์ œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์ƒ์„ฑํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉฐ spring.datasource.username=sa ์ฒ˜๋Ÿผ ๋ช…์‹œ๋ฅผ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„๋ž˜์™€ ๊ฐ™์ด ๋ช…์‹œํ•˜์—ฌ ์ด์ „ ์„ค์ •์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

spring.datasource.initialization-mode=always

Logback ์†์„ฑ๋ช… ๋ณ€๊ฒฝ

๋‹ค์Œ Spring Boot ์†์„ฑ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  • logging.pattern.rolling-file-name โ†’ logging.logback.rollingpolicy.file-name-pattern
  • logging.file.clean-history-on-start โ†’ logging.logback.rollingpolicy.clean-history-on-start
  • logging.file.max-size โ†’ logging.logback.rollingpolicy.max-file-size
  • logging.file.total-size-cap โ†’ logging.logback.rollingpolicy.total-size-cap
  • logging.file.max-history โ†’ logging.logback.rollingpolicy.max-history

๋งคํ•‘๋˜๋Š” ์‹œ์Šคํ…œ ํ™˜๊ฒฝ ์†์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ROLLING_FILE_NAME_PATTERN โ†’ LOGBACK_ROLLINGPOLICY_FILE_NAME_PATTERN
  • LOG_FILE_CLEAN_HISTORY_ON_START โ†’ LOGBACK_ROLLINGPOLICY_CLEAN_HISTORY_ON_START
  • LOG_FILE_MAX_SIZE โ†’ LOGBACK_ROLLINGPOLICY_MAX_FILE_SIZE
  • LOG_FILE_TOTAL_SIZE_CAP โ†’ LOGBACK_ROLLINGPOLICY_TOTAL_SIZE_CAP
  • LOG_FILE_MAX_HISTORY โ†’ LOGBACK_ROLLINGPOLICY_MAX_HISTORY

Default Servlet

๊ธฐ๋ณธ์œผ๋กœ ์ œ๊ณต๋˜๋Š” Setvlet์€ DispatcherServlet๋งŒ ์‚ฌ์šฉ์ด๋˜๋ฉฐ DefaultServlet์„ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ถ”๊ฐ€๋กœ ์„ค์ •์„ ํ•ด์ฃผ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

server.servlet.register-default-servlet=true

Flyway ์ตœ์†Œ ๋ฒ„์ „

Flyway 5๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•œ ์Šคํ‚ค๋งˆ ์—…๊ทธ๋ ˆ์ด๋“œ ๋งŒ ์ง€์›๋˜๋ฉฐ Spring Boot 2.4๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” Flyway 6์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ConfigurationProperties

@ConstructorBinding๋ฅผ ์ด์šฉํ•˜์—ฌ ๊ธฐ์กด์— ํ•„์ˆ˜์˜€์—ˆ๋˜ Setter๋ฅผ ๋ช…์‹œ ์•ˆํ•ด๋„ ๋ฉ๋‹ˆ๋‹ค.

Properties Migration

gradle์— spring-boot-properties-migrator๋ฅผ ์ถ”๊ฐ€ํ•˜๊ณ  ์‹คํ–‰ํ•˜๋ฉด ์—†์—์•ผํ•  ์„ค์ •๋“ค์„ ์•Œ๋ ค์ฃผ๊ฑฐ๋‚˜ ๋Œ€์ฒดํ•  ํ•ญ๋ชฉ์„ ์•ˆ๋‚ดํ•ด์ค€๋‹ค.

Properties Duration

properties์— ์žˆ๋Š” ๊ฐ’์„ ๋ฐ”๋กœ Durationd์œผ๋กœ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 1s, 1h, 1m ๊ณผ ๊ฐ™์€ ๋‹จ์œ„๋ฅผ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ 1์ด๋ผ๊ณ  ์ง€์ •์„ ํ•ด๋†“๊ณ  @DurationUnit(CronoUnit.SECONDS) ํ˜•ํƒœ๋กœ ์ง€์ •์ด ๊ฐ€๋Šฅ

properties์—์„œ ๊ฐ€์ ธ์˜ฌ key๊ฐ’์ด ์˜ˆ์•ฝ์–ด์ผ ๊ฒฝ์šฐ @Name ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.