0426 - 0502


# 0426 - 0502

# 0426 - @Value

properties ๋“ฑ๋ก ๊ฐ’์„ ์ฝ๋Š”๋ฐ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•˜๋‹ค.

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•

  • ์‚ฌ์šฉ/์ฃผ์ž…
@Value(" ${test.value} ")
private String testValue;
  • ๋””ํดํŠธ ๊ฐ’ ์„ค์ •
@Value(" ${test.value:defaultValue} ")
private String testValue;
  • properties ํŒŒ์ผ ์ง€์ •
@RestController
@PropertySource("classpath:test.properties") 
public class TestController {
    //...
}
  • ์—ฌ๋Ÿฌ properties ํŒŒ์ผ
@Configuration
@PropertySource("classpath:foo.properties")
@PropertySource("classpath:bar.properties")
public class PropertiesWithJavaConfig {
    //...
}

# ์ฃผ์˜์‚ฌํ•ญ

@Value๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ์ฒด๋ฅผ ๋ฐ˜๋“œ์‹œ Bean์œผ๋กœ ๋“ฑ๋กํ•ด์ค˜์•ผํ•œ๋‹ค.

Spring์ด ์ž๋™์œผ๋กœ ๊ฐ’์„ ๋„ฃ์–ด์ฃผ๊ฑฐ๋‚˜ ์˜์กด์„ฑ์„ ์ฃผ์ž…ํ•ด์ฃผ๋Š”๊ฒƒ์„ DI๋ผ๊ณ  ํ•œ๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž…์„ ์œ„ํ•ด์„œ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์•„๋‹Œ ๋…๋ฆฝ๋œ ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๊ฐ์ฒด์˜ ์ƒ์„ฑ, ์‚ฌ์šฉ, ์†Œ๋ฉธ์— ๋Œ€ํ•œ ์ œ์–ด๊ถŒ์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜๋„๋ก ํ•˜์—ฌํ– ํ•œ๋‹ค.
์ด๋ฅผ ์ œ์–ด์˜ ์—ญ์ „(IoC)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ํ•ด๋‹น ์ปจํ…Œ์ด๋„ˆ๋ฅผ IoC ์ปจํ…Œ์ด๋„ˆ๋ผ๊ณ  ํ•œ๋‹ค.  

IoC ์ปจํ…Œ์ด๋„ˆ ๋‚ด๋ถ€์— ๊ฐ์ฒด๋ฅผ ๋“ฑ๋กํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Bean์ด๋ผ๋Š” ๊ฐ์ฒด๋กœ ๋งŒ๋“ค์–ด ์ค˜์•ผ ํ•˜๊ธฐ๋•Œ๋ฌธ์—
stereotype์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ์–ด๋…ธํ…Œ์ด์…˜์„ ๊ฐ์ฒด ์œ„์— ๋ช…์‹œ ํ•ด์ค˜์•ผ ํ•œ๋‹ค.

// ์˜ˆ
@Component, @Controller, @Service, @Repository, @Bean, @Configuration ...

# 0427 - cron & crontab

์œ ๋‹‰์Šค/๋ฆฌ๋ˆ…์Šค ๊ณ„์—ด์—์„œ ํŠน์ • ์‹œ๊ฐ„์— ํŠน์ •์ž‘์—…์„ ํ•˜๋Š” ๋ฐ๋ชฌ์€ Cron(ํฌ๋ก )
Cron์ด ์–ธ์ œ ๋ฌด์Šจ ์ผ์„ ํ•˜๋„๋ก ์„ค์ •ํ•ด ํŠน์ • ํŒŒ์ผ์— ์ €์žฅํ•˜๋Š” Crontab(ํฌ๋ก ํƒญ)์ด๋ผ๊ณ  ํ•œ๋‹ค.

# Crontab ์„ค์ • ๋ฐฉ๋ฒ•

  1. /etc/crontab ๋ณ€๊ฒฝ
  2. crontab -e
    • ์˜ต์…˜
    crontab -e : ๋ช…๋ น์„ ๋“ฑ๋ก, ํŽธ์ง‘
    crontab -d : ๋“ฑ๋ก๋œ ๋ช…๋ น์„ ์‚ญ์ œ
    crontab -l : ํ˜„์žฌ ๋“ฑ๋ก๋œ ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ
    crontab -l -u otheruser : otheruser ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ crontab ๋ฆฌ์ŠคํŠธ ์ถœ๋ ฅ
    crontab -r : ํ˜„์žฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋“ฑ๋กํ•œ crontab ์ „์ฒด ์‚ญ์ œ
    

# ํ˜•์‹

* * * * *  ์ˆ˜ํ–‰ํ•  ๋ช…๋ น์–ด
โ”ฌ โ”ฌ โ”ฌ โ”ฌ โ”ฌ
โ”‚ โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ โ”‚ โ”‚
โ”‚ โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์š”์ผ (0 - 6) (0:์ผ์š”์ผ, 1:์›”์š”์ผ, 2:ํ™”์š”์ผ, โ€ฆ, 6:ํ† ์š”์ผ)
โ”‚ โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์›” (1 - 12)
โ”‚ โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์ผ (1 - 31)
โ”‚ โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ์‹œ (0 - 23)
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๋ถ„ (0 - 59)

# ์„œ๋น„์Šค

service cron status
service cron start
service cron stop
service cron restart

# 0428 - ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ด€๋ จ

# ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜

แ„‹แ…ฐแ†ธ แ„€แ…ขแ„‡แ…กแ†ฏ

# ์ •๋ ฌ

๋ฒ„๋ธ” ์ •๋ ฌ - ๊ฐ€์žฅ ์‰ฝ์ง€๋งŒ, ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๋†’์•„ ํšจ์œจ์ ์ด์ง€๋Š” ์•Š๋‹ค.
์„ ํƒ ์ •๋ ฌ - ๋ฒ„๋ธ” ์ •๋ ฌ๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์œ ์‚ฌํ•˜๋‹ค. ๊ฐ€์žฅ ํฐ ์ˆ˜๋ฅผ ์ฐพ์•„ ๋ฐฐ์—ด์˜ ๋งˆ์ง€๋ง‰ ์œ„์น˜๊ณผ ๊ตํ™˜ํ•œ๋‹ค.
์‚ฝ์ž… ์ •๋ ฌ - ์ธ๋ฑ์Šค๋ฅผ ์„ค์ •ํ•˜์—ฌ ํ˜„์žฌ ์œ„์น˜์˜ ๊ฐ’์„ ์•„๋ž˜์ชฝ์œผ๋กœ ์ˆœํšŒํ•˜๋ฉฐ ์•Œ๋งž์€ ๊ณณ์— ๋„ฃ์–ด์ค€๋‹ค.
๋ณ‘ํ•ฉ ์ •๋ ฌ - ์ •๋ ฌํ•œ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฐ˜์œผ๋กœ ์ชผ๊ฐœ๋ฉฐ ์ขŒ์šฐ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ถ„ํ• ํ•ด ์ •๋ ฌ ํ›„ ๋ณ‘ํ•ฉํ•œ๋‹ค. ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ์ •๋ ฌ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
ํž™ ์ •๋ ฌ - ํž™์ด๋ผ๋Š” ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ํ†ตํ•ด ๋‚ด๋ฆผ์ฐจ์ˆœ์œผ๋กœ ์ˆซ์ž๋ฅผ ๋„ฃ์€ํ›„, ์—ญ์ˆœ์œผ๋กœ ๊บผ๋‚ด์–ด ์ •๋ ฌํ•œ๋‹ค.
ํ€ต ์ •๋ ฌ - pivot๊ธฐ์ค€์œผ๋กœ ์ขŒ์ธก๊ณผ ์šฐ์ธก์˜ ์ž‘์€ ๊ฐ’๊ณผ ํฐ ๊ฐ’์„ ์žฌ๋ฐฐ์น˜ํ•˜๊ณ  ๋ถ„ํ• ํ•˜์—ฌ ์ •๋ ฌํ•œ๋‹ค.

# ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์‚ฌ์ดํŠธ

  • ๊ตญ๋‚ด ์‚ฌ์ดํŠธ

    • ๋ฐฑ์ค€(BOJ)
    • ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    • ์•Œ๊ณ ์ŠคํŒŸ
    • ์ฝ”๋”ฉ๋„์žฅ
  • ํ•ด์™ธ ์‚ฌ์ดํŠธ

    • Hackerearth
    • Hackerrank
    • Codeforces

# 0430 - 99์ฝ˜ ์ด๋ ฅ์„œํ›„๊ธฐ

์•ž์œผ๋กœ ๋‚˜์˜ ์ด๋ ฅ์„ ์–ด๋–ป๊ฒŒ ๊ด€๋ฆฌํ•˜๊ณ  ์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ ์ข‹์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ• ์ง€!

# ์•ž์œผ๋กœ ํ•ด์•ผํ• ์ผ

  • ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ์Œ“์„ ์ˆ˜ ์žˆ๋Š” ์ผ์„ ๋งŽ์ด ํ•  ๊ฒƒ
  • ๊นƒํ—ˆ๋ธŒ ๊ด€๋ฆฌ์™€ ๋ธ”๋กœ๊ทธ ๊ด€๋ฆฌํ•˜๊ธฐ
  • ํ† ์ด ํ”„๋กœ์ ํŠธ ๊พธ์ค€ํžˆ ์ง„ํ–‰ํ•˜๊ธฐ
  • ๊ธ€์“ฐ๊ธฐ์— ๋…ธ๋ ฅ์„ ํˆฌ์žํ•˜๊ธฐ

# ์ง€ํ–ฅํ•ด์•ผ ํ•  ์ ๊ณผ ์ง€์–‘ํ•ด์•ผ ํ•  ์ 

  • ๊ธ์ •
    • ๊ฒฝํ—˜์˜ ํญ์ด ์ข์•„๋„ ์ƒ๊ฐ์˜ ํญ์€ ๋„“ํžˆ์ž
    • ํ•ญ์ƒ ํƒ๊ตฌํ•˜๊ณ  ๊นŠ์ด ํŒŒ๊ณ ๋“ค์ž
    • ์œ ์—ฐํ•œ ์‚ฌ๊ณ ์™€ ํŒ€์›์„ ๋ฐฐ๋ คํ•˜์ž
    • ๋˜‘๋˜‘ํ•œ ์ง€์›์ž
    • ํ˜ธ๊ธฐ์‹ฌ์ด ๋งŽ์€ ์ง€์›์ž
    • ๋งŽ์ด, ๋น ๋ฅด๊ฒŒ ํ•™์Šตํ•˜๋ ค ๋…ธ๋ ฅํ•˜๊ธฐ
    • ํฌ๊ธฐํ•˜์ง€ ์•Š๊ณ  ๋๊นŒ์ง€ ์ƒ๊ฐํ•ด๋ณด๊ณ  ์ด์•ผ๊ธฐํ•˜๊ธฐ
    • ๋นˆ ๊ณณ์„ ์ฃผ๋„์ ์œผ๋กœ ์ฑ„์šฐ๊ธฐ
    • ๊ธ€์“ฐ๊ธฐ, ๋ฌธ์„œํ™”๋ฅผ ์œ„ํ•ด ๋…ธ๋ ฅํ•˜๊ธฐ
  • ๋ถ€์ •
    • ์ž์‹ ์ด ํ•œ ์ผ์„ ์ž˜ ์„ค๋ช… ๋ชปํ•˜๋Š” ์‚ฌ๋žŒ
    • ๋‚˜์˜ ๊ธฐ์—ฌ๋„๋ฅผ ๋ถ€ํ’€๋ฆฌ๋Š” ๊ฒฝ์šฐ

๊ฐœ๋ฐœ์ž ์ด๋ ฅ์„œ ์ž‘์„ฑ ๋ฐฉ๋ฒ• - 99์ฝ˜ ์ด๋ ฅ์„œ ํ›„๊ธฐ (opens new window)

Last update: September 13, 2022 21:44
Contributors: ahnjs , jaesungahn91