0705 - 0808


# 0705 - 0808

# 0706 - SpringBoot properties์™€ yaml

# YAML (YML Ain't Markup Language)

  • XML, C, ํŒŒ์ด์ฌ, ํŽ„, RFC2822์—์„œ ์ •์˜๋œ e-mail ์–‘์‹์—์„œ ๊ฐœ๋…์„ ์–ป์–ด ๋งŒ๋“ค์–ด์ง„ '์‚ฌ๋žŒ์ด ์‰ฝ๊ฒŒ ์ฝ์„ ์ˆ˜ ์žˆ๋Š”' ๋ฐ์ดํ„ฐ ์ง๋ ฌํ™” ์–‘์‹.

  • YAML์€ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฆฌ์ŠคํŠธ, ํ•ด์‰ฌ, ์Šค์นผ๋ผ ๋ฐ์ดํ„ฐ ์กฐํ•ฉ์œผ๋กœ ์ ์ ˆํžˆ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๋ฏฟ์Œ์„ ๊ฐ€์ง€๊ณ  ๋งŒ๋“ค์–ด์กŒ๋‹ค. ๋ฌธ๋ฒ•์€ ์ƒ๋Œ€์ ์œผ๋กœ ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ๊ฐ€๋…์„ฑ์ด ์ข‹๋„๋ก ๋””์ž์ธ๋˜์—ˆ์œผ๋ฉฐ, ๊ณ ๊ธ‰ ์ปดํ“จํ„ฐ ์–ธ์–ด์— ์ ํ•ฉํ•˜๋‹ค. ๋˜ํ•œ ๋“ค์—ฌ์“ฐ๊ธฐ ๋ฐ XML์˜ ํŠน์ˆ˜๊ธฐํ˜ธ๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์—, XML๊ณผ ๊ฑฐ์˜ ๋น„์Šท ํ•˜๋‹ค.

  • JSON์€ yaml์˜ ์ผ์ข…์ด๋‹ค.

# ์‚ฌ์šฉ๋ฐฉ๋ฒ• ๋ฐ Properties์™€ ๋น„๊ต์‹œ ์ด์ 

  • ์žฅ์ 

    1. ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค.
      • ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๊ฐ€๋…์„ฑ์ด ์ข‹๋‹ค. ๋˜ํ•œ ๋ถˆํ•„์š”ํ•œ ์†Œ์Šค์˜ ์ค‘๋ณต๋„ ์ œ๊ฑฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๋“ค์—ฌ์“ฐ๊ธฐ, ๋„์–ด์“ฐ๊ธฐ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๋ณด๊ธฐ ํŽธํ•˜๋‹ค.
    2. ๋ฆฌ์ŠคํŠธ ํ‘œํ˜„
      • ์—ฌ๋Ÿฌ ์ค„์— ์“ธ ๋•Œ์—๋Š” ํ•˜์ดํ”ˆ(-)์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ํ•œ ์ค„์— ํ•˜๋‚˜์˜ ์š”์†Œ๋ฅผ ํ‘œํ˜„ํ•œ๋‹ค.
      • ํ•œ ์ค„์— ๋ชจ์•„ ์“ธ ๋Œ€์—๋Š” ๋Œ€๊ด„ํ˜ธ([])๋ฅผ ์ด์šฉํ•˜์—ฌ ์‰ผํ‘œ๋กœ ๊ฐ ์š”์†Œ๋ฅผ ๊ตฌ๋ถ„ํ•œ๋‹ค.
    3. ์ฃผ์„
      • ์ฃผ์„์€ #์œผ๋กœ ํ‘œ์‹œํ•˜๋ฉฐ, ํ•œ ์ค„์ด ๋๋‚  ๋•Œ๊นŒ์ง€ ์œ ํšจํ•˜๋‹ค.
    4. SpringBoot Profile ์ ์šฉ์ด ์šฉ์ดํ•˜๋‹ค. (with "---" ๊ตฌ๋ถ„์ž)
      • ํ•œํŒŒ์ผ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ถ„๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
      • application.yml ํŒŒ์ผ ํ•˜๋‚˜๋กœ ์—ฌ๋Ÿฌ๊ฐœ์˜ yml์„ ์ƒ์„ฑ ํ•œ๊ฒƒ๊ณผ ๊ฐ™์ด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ
  • ๋‹จ์ 

    1. @PropertySource ์–ด๋…ธํ…Œ์ด์…˜์œผ๋กœ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ๋ถˆ๋Ÿฌ ์˜ฌ ์ˆ˜ ์—†๋‹ค.

# 0707 - docker ์ข…๋ฃŒ

# ์‹คํ–‰์ค‘์ธ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ •๋ณด ํ™•์ธ

docker ps

# ์‹คํ–‰์ค‘์ธ ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ค‘ spring-boot-cpu-bound ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํฌํ•จ๋œ ์ค„ ์ฐพ๊ธฐ

docker ps | grep spring-boot-cpu-bound

# ๋„์ปค ์ปจํ…Œ์ด๋„ˆ ์ข…๋ฃŒ์‹œํ‚ค๊ธฐ

docker container kill -s 15 {์ปจํ…Œ์ด๋„ˆ id}


# 0722 - jar, war ์ฐจ์ด์  ๋ฐ ํŠน์ง•

JAR(Java Archive) WAR(Web Application Archive) ๋ชจ๋‘ JAVAdml jar ํˆด์„ ์ด์šฉํ•˜์—ฌ ์ƒ์„ฑ๋œ ์••์ถ•(์•„์นด์ด๋ธŒ) ํŒŒ์ผ์ด๋ฉฐ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ๋™์ž‘์‹œํ‚ฌ ์ˆ˜ ์žˆ๋„๋ก ๊ด€๋ จ ํŒŒ์ผ(๋ฆฌ์†Œ์Šค, ์†์„ฑํŒŒ์ผ ๋“ฑ)๋“ค์„ ํŒจํ‚ค์ง•

# JAR

.jar ํ™•์žฅ์ž ํŒŒ์ผ์—๋Š” Class์™€ ๊ฐ™์€ Java ๋ฆฌ์†Œ์Šค์™€ ์†์„ฑ ํŒŒ์ผ, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์•ก์„ธ์„œ๋ฆฌ ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค.
์‰ฝ๊ฒŒ JAVA ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž๋ฐ” ํ”„๋กœ์ ํŠธ๋ฅผ ์••์ถ•ํ•œ ํŒŒ์ผ. ์‹ค์ œ๋กœ JAR ํŒŒ์ผ์€ ํ”Œ๋žซํผ์— ๊ท€์†๋˜๋Š” ์ ๋งŒ ์ œ์™ธํ•˜๋ฉด WIN ZIPํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๊ตฌ์กฐ.
JAR ํŒŒ์ผ์€ ์›ํ•˜๋Š” ๊ตฌ์กฐ๋กœ ๊ตฌ์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋ฉฐ JDK(Java Development Kit)์— ํฌํ•จํ•˜๊ณ  ์žˆ๋Š” JRE(Java Runtime Environment)๋งŒ ๊ฐ€์ง€๊ณ ๋„ ์‹คํ–‰์ด ๊ฐ€๋Šฅ.

# WAR

.war ํ™•์žฅ์ž ํŒŒ์ผ์€ servlet/jsp ์ปจํ…Œ์ด๋„ˆ์— ๋ฐฐ์น˜ ํ•  ์ˆ˜ ์žˆ๋Š” ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜(Web Application) ์••์ถ• ํŒŒ์ผ ํฌ๋งท. JSP, SERVLET, JAR, CLASS, XML, HTML, JAVASCRIPT ๋“ฑ Servlet Context ๊ด€๋ จ ํŒŒ์ผ๋“ค๋กœ ํŒจํ‚ค์ง• ๋˜์–ด์žˆ๋‹ค. WAR๋Š” ์›น ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ํฌ๋งท์ด๊ธฐ ๋•Œ๋ฌธ์— ์›น ๊ด€๋ จ ์ž์›๋งŒ ํฌํ•จํ•˜๊ณ  ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‰ฝ๊ฒŒ ๋ฐฐํฌํ•˜๊ณ  ํ…Œ์ŠคํŠธ ํ•  ์ˆ˜ ์žˆ๋‹ค.
์›ํ•˜๋Š” ๊ตฌ์„ฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” JAR ํฌ๋งท๊ณผ ๋‹ฌ๋ฆฌ WAR์€ WEB-INF ๋ฐ META-INF ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์‚ฌ์ „ ์ •์˜ ๋œ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ WARํŒŒ์ผ์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด Tomcat, Weblogic, Websphere ๋“ฑ์˜ ์›น ์„œ๋ฒ„ (WEB)๋˜๋Š” ์›น ์ปจํ…Œ์ด๋„ˆ(WAS)๊ฐ€ ํ•„์š”ํ•˜๋‹ค. WAR ํŒŒ์ผ๋„ JAVA์˜ JAR ์˜ต์…˜(java -jar)์„ ์ด์šฉํ•ด ์ƒ์„ฑํ•˜๋Š” JARํŒŒ์ผ์˜ ์ผ์ข…์œผ๋กœ ์›น์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ „์ฒด๋ฅผ ํŒจํ‚ค์ง•ํ•˜๊ธฐ ์œ„ํ•œ JARํŒŒ์ผ.


# 0808 - Maven์˜ groupId, artifactId, version

# groupId

  • groupId๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ ์‚ฌ์ด์—์„œ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„๋˜๋Š” ID

  • ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋„ค์ด๋ฐ ์Šคํ‚ค๋งˆ ์ ์šฉ

    • package ๋ช…๋ช… ๊ทœ์น™์„ ๋”ฐ๋ฅด๋„๋ก ํ•œ๋‹ค.
    • ์ตœ์†Œํ•œ ๋‹น์‹ ์ด ์ปจํŠธ๋กค ํ•˜๋Š” ๋„๋ฉ”์ธ ๋„ค์ž„์ด์–ด์•ผ ํ•œ๋‹ค.
    • ํ•˜์œ„ ๊ทธ๋ฃน์€ ์–ผ๋งˆ๋“ ์ง€ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์˜ˆ) org.apache.maven, org.apache.commons
  • ํ”„๋กœ์ ํŠธ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž˜ ๊ตฌ๋ถ„๋˜๋Š” groupId๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

    • ํ˜„์žฌ ํ”„๋กœ์ ใ…Œ์œผ๊ฐ€ ๋‹ค์ค‘ ๋ชจ๋“ˆ ํ”„๋กœ์ ํŠธ๋ผ๋ฉด, ๋ถ€๋ชจ groupId์— ํ˜„์žฌ ํ”„๋กœ์ ํŠธ์˜ ์‹๋ณ„์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๋ฐฉ์‹.
    • ์˜ˆ) org.apache.maven, org.apache.maven.plugins, org.apache.maven.reporting

# artifactId

  • artifactId๋Š” ๋ฒ„์ „ ์ •๋ณด๋ฅผ ์ƒ๋žตํ•œ jar ํŒŒ์ผ์˜ ์ด๋ฆ„์ด๋‹ค.
    • ์ด๋ฅธ์€ ์›ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์•„๋ฌด๊ฑฐ๋‚˜ ์ •ํ•ด๋„ ๊ดœ์ฐฎ๋‹ค.
    • ๋‹จ, ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ž‘์„ฑํ•˜๋„๋ก ํ•œ๋‹ค.
    • ๋‹จ, ํŠน์ˆ˜๋ฌธ์ž๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.
  • ๋งŒ์•ฝ ์จ๋“œ ํŒŒํ‹ฐ jar ํŒŒ์ผ์ด๋ผ๋ฉด, ํ• ๋‹น๋œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
    • ์˜ˆ) maven, commons-math

# version

  • ์ˆซ์ž์™€ ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์ผ๋ฐ˜์ ์ธ ๋ฒ„์ „ ํ˜•ํƒœ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.(1.0. 1.1, 1.0.1)
  • SNAPSHOT(nightly) ๋นŒ๋“œ ๋‚ ์งœ๋ฅผ ๋ฒ„์ „์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ํ•œ๋‹ค.
  • ์จ๋“œ ํŒŒํ‹ฐ ์•„ํ‹ฐํŒฉํŠธ๋ผ๋ฉด, ๋ฒ„์ „ ๋„˜๋ฒ„๋ฅผ ์ด์–ด๋ฐ›์•„ ์‚ฌ์šฉํ•˜๋„๋ก ํ•œ๋‹ค.
Last update: September 2, 2021 22:00
Contributors: jaesungahn91