0412 - 0418
# 0412 - 0418
# 0412 - ํ๋ก๊ทธ๋๋ฐ ์๋ฌ ์ข ๋ฅ
# 1. ์ปดํ์ผ ์๋ฌ(Compillation Error)
๋ฌธ๋ฒ ์ค๋ฅ๋ก ์ธํด ์ปดํ์ผ๋ฌ๊ฐ ์ดํดํ ์ ์๋ ์ฝ๋๊ฐ ์์ ๋ ๋ฐ์ํ๋ ์ค๋ฅ
- ์ปดํ์ผ๋ฌ๊ฐ ๋ฐ๊ฒฌ
- ์ปดํ์ผ ์์ ์ ๋ฐ๊ฒฌ
- ์ปดํ์ผ๋ฌ๊ฐ ์๋ฌ ๋ฉ์์ง ์ถ๋ ฅ
- ๋์ด๋ ๋ฎ์. ์์ ์ฌ์
- ๋ฌธ๋ฒ ํ๋ฆผ
# 2. ๋ฐํ์ ์๋ฌ(Runtime Error)
์ค๊ณ ๋ฏธ์์ด๋ ๊ธฐ๊ณ์ ๊ฒฐํจ์ผ๋ก ์ธํด ์คํ ์ค ์ํํ ์ ์๋ ์์ ์ ์๋ํ ๋ ๋ฐ์ํ๋ ์ค๋ฅ
- ํ๋ก๊ทธ๋จ ์คํ์ค
- ๋ฌธ๋ฒ์ ์ผ๋ก ์๋ฌ๊ฐ ์๋
- ์์ธ
- ๋ฐ์๋น๋ ๋์
- ๋ฐ๊ฒฌ ์ด๋ ต๋ค. ์์ ์ด๋ ค์
- JRE(VM) : ์๋ฌ ๋ฉ์์ง ์ถ๋ ฅ
- ๋ฒ ํํ ์คํธ๋ฅผ ํตํด์ ์ก๋ ๊ฒฝ์ฐ
# 3. ๋ ผ๋ฆฌ ์๋ฌ(Logic Error)
์ปดํ์ผ ๋ฐ ์คํ์ ๋์ง๋ง, ๊ฒฐ๊ณผ๊ฐ ์์๊ณผ ๋ฌ๋ผ ์ฌ์ฉ์๊ฐ ์๋ํ ์์ ์ ์ํํ์ง ๋ชปํ๋ ์ค๋ฅ ์๊ณ ๋ฆฌ์ฆ์ด ํ๋ฆฐ ๊ฒ์ด๋ฏ๋ก ์๋ฌ ๋ฉ์ธ์ง๊ฐ ๋์ค์ง ์์ ํด๊ฒฐ์ด ์ด๋ ค์
- ๋ฐ๊ฒฌ ๊ฐ์ฅ ์ด๋ ต๋ค
- ์๋ฌ ๋ฉ์์ง๊ฐ ์๋ค
# 0413 - val, let, const ์ฐจ์ด์
Javascript ๋ณ์ ์ ์ธ ๋ฐฉ์
# ๋ณ์ ์ ์ธ ๋ฐฉ์
- var : ๋ณ์ ์ฌ์ ์ธ ๊ฐ๋ฅ
- let : ๋ณ์ ์ฌ์ ์ธ ๋ถ๊ฐ๋ฅ
- const : ๋ณ์ ์ฌ์ ์ธ, ๋ณ์ ์ฌํ ๋น ๋ชจ๋ ๋ถ๊ฐ๋ฅ
# ํธ์ด์คํ
ํธ์ด์คํ (Hoisting)์ด๋, var ์ ์ธ๋ฌธ์ด๋ function ์ ์ธ๋ฌธ ๋ฑ์ ํด๋น ์ค์ฝํ์ ์ ๋๋ก ์ฎ๊ธด ๊ฒ์ฒ๋ผ ๋์ํ๋ ํน์ฑ
- ๋ณ์์ ์์ฑ
์ ์ธ ๋จ๊ณ
>์ด๊ธฐํ ๋จ๊ณ
>ํ ๋น ๋จ๊ณ
- var : ์ ์ธ ๋จ๊ณ + ์ด๊ธฐํ ๋จ๊ณ
- let : ์ ์ธ ๋จ๊ณ > ์ด๊ธฐํ ๋จ๊ณ
# ๊ฒฐ๊ณผ
# 0414 - ์๊ฐ๋ณต์ก๋ vs ๊ณต๊ฐ ๋ณต์ก๋
# ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋
์๊ณ ๋ฆฌ์ฆ์ ํ๊ฐํ๋๋ฐ ์์ด ์ํ์๊ฐ๊ณผ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํ๊ฐ ๊ธฐ์ค์ผ๋ก ๋๋๋ฐ ์ํ์๊ฐ์ ํด๋นํ๋ ๊ฒ์ด ์๊ฐ ๋ณต์ก๋, ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ํด๋นํ๋ ๊ฒ์ด ๊ณต๊ฐ ๋ณต์ก๋์ด๋ค.
- ์๊ฐ ๋ณต์ก๋(Time Complexity) : ์๊ณ ๋ฆฌ์ฆ์ ์ํ์๊ฐ ๋ถ์๊ฒฐ๊ณผ
- ๊ณต๊ฐ ๋ณต์ก๋(Space Complexity) : ์๊ณ ๋ฆฌ์ฆ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ํ ๋ถ์๊ฒฐ๊ณผ
๊ฐ๋จํ๊ฒ ๋งํ๋ฉด ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅํ๊ฐ๋ ์๊ฐ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ฅผ ๊ณ์ฐํ๊ณ ์ ๊ทผ์ ํ๊ธฐ๋ฒ์ผ๋ก ๋ํ๋ด๋ฉด ๋๋ค.
# ๋น ์ค ํ๊ธฐ๋ฒ
O(1) < O(log n) < O(n) < O(nlog n) < O(n^2) < O(n^3) < O(2^n) < O(n!)
- ๋ณดํต O(n^2)์ด์์ ๋ณต์ก๋๋ฅผ ๊ฐ์ง๋ ์๊ณ ๋ฆฌ์ฆ์ ์ข์ง ์๋ค.
# 0416 - OKKY ๋ฏธ๋์ธ๋ฏธ๋ <๋น์ ๊ณต ํ์์ถ์ SI๊ฐ๋ฐ์, ์ ๋ช ์คํํธ์ ๋ค์ด๊ฐ.ssul>
๋ฐฐ์ฐ๊ณ ์ถ์์ ์ด๋ ์ค์ฒํ๊ณ ์ถ์ ํ๋๋ค์ ์ฎ๊ฒจ ์ ๋๋ค.
# ๊ฐ์ ํ๊ธฐ ์ํ ๋ ธ๋ ฅ
- ํจ์จ์ ์ธ ์๊ฐ ํ์ฉ๊ด๋ฆฌ
- ๊ท์น์ ์ธ ์ํ (์ทจ์นจ์๊ฐ 10์ 30๋ถ)
- ๋ฐฅ๋จน์๋๋ ๋์์ ๊ฐ์๋ฅผ ๋ด
- ๊ณต๋ถ ๋ฐฉํฅ
- ์ผ์ ํ๋ฉด์ ๋ชจ๋ฅด๊ฑฐ๋, ๋ ์๊ณ ์ถ์ KEYWORD๋ฅผ ์ ๋ฆฌํ๊ณ ๋ฐ๋ ์ ์ฐพ์๋ด
- ๋ ์๋ฅผ ๋งค์ฐ ์ค์์ ํจ
- ๋
์๋ฐฉ๋ฒ
ํ๋ฃจ์ 3๊ฐ์ง ์ข
๋ฅ์ ์ฑ
์ ์กฐ๊ธ์ฉ ์ฝ๊ณ , ์์ฝ
- ์ง์์ : ๊ฐ ์ก๊ณ ์ฝ์๋งํ ๊ฒ
- ์งํ์ฒ ์์ : ์ฌ๋ฏธ์์ผ๋ฉฐ ์์ ์ฑ
- ํ์/ํ์ฌ์์ ํํ์ด : ํ์ฌ์ ๋ฌด์ ๋์์ด ๋ ๊ฒ ๊ฐ์ ํ์ง์ด๋ฉด์ ๋์๊ฒ ๋์์ด ๋๋์ฑ
- ๊ธฐํ
- ๊ฐ๋ฐ์๋ ๋ง์ธ๋๊ฐ ์ค์ํ๋ค. ๋ถ๋ฒ ์ํํธ์จ์ด ์ ๋ ์ฌ์ฉ๊ธ์ง
- ์ด๋์ ๊พธ์คํํ์
- ํญ์ ํ๋ B๋ฅผ ๊ณํํ์
- ์ผ์ ์ํ์์๋ ์ต์ ํ๋ฅผ ๊ณ ๋ฏผํ๋ค.
- ๋ชจ๋ ์ผ์ ๋ง๋ฌด๋ฆฌ๋ ์์ฝํ๊ณ ์ ๋ฆฌํ๋ ๊ฒ.
์๊ธ:OKKY ๋ฏธ๋์ธ๋ฏธ๋ (opens new window)
# 0417 - LocalDate, LocalDateTime, LocalDateTime
Java version 8์ด์
# Java ์๊ฐ API ์๋ ํ๋ฆ์
java.util.Date > java.util.Calendar > java.time(org.joda.time)
# LocalDate, LocalTime
LocalDate : ๋ ์ง์ ๋ณด
locaTime : ์๊ฐ ์ ๋ณด
# LocalDateTime
๋ ์ง์ ์๊ฐ ์ ๋ณด ๋๋ค
- ๋ฌธ๋ฒ
LocalDateTime now = LocalDateTime();
// ๊ฒฐ๊ณผ : 2021-04-17T16:34:30.388
LocalDateTime target = LocalDateTime.of(2021, 4, 17, 12, 32,22,3333);
// ๊ฒฐ๊ณผ : 2021-04-17T12:32:22.000003333
- ๋ณํ ์์
// LocalDateTime to String
LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
// String to LocalDateTime
LocalDateTime.parse("2021-04-17 12:33:00", DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
# 0418 - ์คํ๋ง๋ถํธ/MVC ์ ์ ๋ฆฌ์์ค
# ์ ์ ๋ฆฌ์์ค ์ค์ ์ปค์คํฐ๋ง์ด์ง WebConfigurer
WebMvcConfigurer๋ฅผ ๊ตฌํํ๋ ํด๋์ค์์ addResourceHandlers๋ฅผ overrideํ์ฌ ์ ์ ๋ฆฌ์์ค ํธ๋ค๋ฌ๋ฅผ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์๋ค.
์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ฉด ์คํ๋ง ๋ถํธ๊ฐ ์ ๊ณตํ๋ ์ ์ ๋ฆฌ์์ค ํธ๋ค๋ฌ๋ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฉด์ ์ปค์คํ ํธ๋ค๋ฌ๊ฐ ์ถ๊ฐ๋๋ค.
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/๊ฒฝ๋ก/**")
.addResourceLocations("classpath:/๊ฒฝ๋ก/")
// ์บ์ฑ ์ ๋ต ์ค์ (์ด ๋จ์)
.setCachePeriod(20)
;
}
}