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>

๋ฐฐ์šฐ๊ณ  ์‹ถ์€์ ์ด๋‚˜ ์‹ค์ฒœํ•˜๊ณ  ์‹ถ์€ ํ–‰๋™๋“ค์„ ์˜ฎ๊ฒจ ์ ๋Š”๋‹ค.

# ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ๋…ธ๋ ฅ

  • ํšจ์œจ์ ์ธ ์‹œ๊ฐ„ ํ™œ์šฉ๊ด€๋ฆฌ
    1. ๊ทœ์น™์ ์ธ ์ƒํ™œ (์ทจ์นจ์‹œ๊ฐ„ 10์‹œ 30๋ถ„)
    2. ๋ฐฅ๋จน์„๋•Œ๋Š” ๋™์˜์ƒ ๊ฐ•์˜๋ฅผ ๋ด„
  • ๊ณต๋ถ€ ๋ฐฉํ–ฅ
    1. ์ผ์„ ํ•˜๋ฉด์„œ ๋ชจ๋ฅด๊ฑฐ๋‚˜, ๋” ์•Œ๊ณ  ์‹ถ์€ KEYWORD๋ฅผ ์ •๋ฆฌํ•˜๊ณ  ๋ฐ˜๋“œ ์‹œ ์ฐพ์•„๋ด„
    2. ๋…์„œ๋ฅผ ๋งค์šฐ ์ค‘์š”์‹œ ํ•จ
    • ๋…์„œ๋ฐฉ๋ฒ• ํ•˜๋ฃจ์— 3๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ์ฑ…์„ ์กฐ๊ธˆ์”ฉ ์ฝ๊ณ , ์š”์•ฝ
      • ์ง‘์—์„œ : ๊ฐ ์žก๊ณ  ์ฝ์„๋งŒํ•œ ๊ฒƒ
      • ์ง€ํ•˜์ฒ ์—์„œ : ์žฌ๋ฏธ์žˆ์œผ๋ฉฐ ์–‡์€ ์ฑ…
      • ํ•™์›/ํšŒ์‚ฌ์—์„œ ํ‹ˆํ‹ˆ์ด : ํšŒ์‚ฌ์—…๋ฌด์— ๋„์›€์ด ๋ ๊ฒƒ ๊ฐ™์€ ํ‘œ์ง€์ด๋ฉด์„œ ๋‚˜์—๊ฒŒ ๋„์›€์ด ๋˜๋Š”์ฑ…
  • ๊ธฐํƒ€
    1. ๊ฐœ๋ฐœ์ž๋Š” ๋งˆ์ธ๋“œ๊ฐ€ ์ค‘์š”ํ•˜๋‹ค. ๋ถˆ๋ฒ• ์†Œํ”„ํŠธ์›จ์–ด ์ ˆ๋Œ€ ์‚ฌ์šฉ๊ธˆ์ง€
    2. ์šด๋™์„ ๊พธ์ค€ํžˆํ•˜์ž
    3. ํ•ญ์ƒ ํ”Œ๋žœ B๋ฅผ ๊ณ„ํšํ•˜์ž
    4. ์ผ์ƒ ์ƒํ™œ์—์„œ๋„ ์ตœ์ ํ™”๋ฅผ ๊ณ ๋ฏผํ•œ๋‹ค.
    5. ๋ชจ๋“ ์ผ์˜ ๋งˆ๋ฌด๋ฆฌ๋Š” ์š”์•ฝํ•˜๊ณ  ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ.

์›๊ธ€: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)
                ;
    }
}
Last update: September 13, 2022 21:44
Contributors: ahnjs , jaesungahn91