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 ์ค์ ๋ฐฉ๋ฒ
- /etc/crontab ๋ณ๊ฒฝ
- 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)