2023๋…„ 6์›” 19์ผยท2๋ถ„ ์ฝ๊ธฐ

Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

Go ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๊ณ  ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ ๊ธฐ์ˆ ๊ณผ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์‚ดํŽด๋ณด์„ธ์š”. AppMaster์—์„œ ์ƒ์„ฑํ•œ Golang ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์œ„ํ—˜ ๋ฐ ์ฒ˜๋ฆฌ ์˜ค๋ฅ˜์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด์„ธ์š”.

Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์˜ ์ค‘์š”์„ฑ ์ดํ•ด

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜๋ฅผ ์˜ˆ์ธกํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋ฏ€๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ์˜ ์ค‘์š”ํ•œ ์ธก๋ฉด์ž…๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•ˆ์ •์ ์ด๊ณ  ์‚ฌ์šฉ์ž ์นœํ™”์ ์ž„์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. Go ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ์˜ ํ•„์ˆ˜ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. Go๋Š” ๊ฐ„๋‹จํ•˜๊ณ  ์ตœ์†Œํ•œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜์—ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ค๋ฅ˜๋ฅผ ๋ช…์‹œ์ ์ด๊ณ  ๋ถ€์ง€๋Ÿฐํžˆ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์žฅ๋ คํ•˜์—ฌ ์ฝ”๋“œ ์œ ์ง€ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค. Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

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

Go์˜ ๊ธฐ๋ณธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค. ์˜ค๋ฅ˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋ฉ๋‹ˆ๋‹ค.

 ์œ ํ˜• ์˜ค๋ฅ˜ ์ธํ„ฐํŽ˜์ด์Šค {
    ์˜ค๋ฅ˜() ๋ฌธ์ž์—ด
}

Error() ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ชจ๋“  ํ˜•์‹์€ error ์ธํ„ฐํŽ˜์ด์Šค์˜ ๊ตฌํ˜„์œผ๋กœ ๊ฐ„์ฃผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Go์˜ ๊ธฐ๋ณธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์—๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ๋‹ค์Œ ๋‹จ๊ณ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

  1. ํ•จ์ˆ˜์—์„œ ์˜ค๋ฅ˜ ๋ฐ˜ํ™˜: Go์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋Š” error ๊ฐœ์ฒด๋ฅผ ๋‘ ๋ฒˆ์งธ ๋ฐ˜ํ™˜ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฒซ ๋ฒˆ์งธ ๊ฐ’์€ ์ผ๋ฐ˜์ ์œผ๋กœ ์„ฑ๊ณต์ ์ธ ๋ฐ˜ํ™˜ ๊ฐ’์ž…๋‹ˆ๋‹ค).
  2. ๋ฐ˜ํ™˜๋œ ์˜ค๋ฅ˜ ํ™•์ธ: ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋Š” ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ๋ฐ˜ํ™˜๋œ ์˜ค๋ฅ˜์— nil ๋˜๋Š” nil ์ด ์•„๋‹Œ ๊ฐ’์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. nil ์ด ์•„๋‹Œ ๊ฐ’์€ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Œ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
  3. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ: ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜ํ™˜๋˜๋ฉด ๊ธฐ๋กํ•˜๊ฑฐ๋‚˜ ํ˜ธ์ถœ์ž์—๊ฒŒ ๋ฐ˜ํ™˜ํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž์—๊ฒŒ ๊ด€๋ จ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์—ฌ์คŒ์œผ๋กœ์จ ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์€ Go์˜ ๊ธฐ๋ณธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์˜ˆ์ž…๋‹ˆ๋‹ค.

 ํŒจํ‚ค์ง€ ๋ฉ”์ธ

๊ฐ€์ ธ์˜ค๊ธฐ(
    "fmt"
    "strconv"
)

ํ•จ์ˆ˜ ๋ฉ”์ธ() {
    numStr := "123"
    numInt, ์˜ค๋ฅ˜ := strconv.Atoi(numStr)
    ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ != nil {
        fmt.Println("์˜ค๋ฅ˜ ๋ฐœ์ƒ:", ์˜ค๋ฅ˜)
        ๋ฐ˜ํ’ˆ
    }

    fmt.Println("๋ณ€ํ™˜๋œ ์ˆซ์ž:", numInt)
}

์ด ์˜ˆ์—์„œ strconv.Atoi() ํ•จ์ˆ˜๋Š” int ๊ฐ’๊ณผ error ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ•จ์ˆ˜๊ฐ€ ํ˜ธ์ถœ๋œ ํ›„ ์˜ค๋ฅ˜๊ฐ€ nil ์•„๋‹Œ ๊ฐ’์ธ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ธ์‡„๋˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์ด ๋ฐ˜ํ™˜๋ฉ๋‹ˆ๋‹ค.

Go์˜ ์˜ค๋ฅ˜ ๋ž˜ํ•‘ ๊ธฐ์ˆ 

์˜ค๋ฅ˜ ๋ž˜ํ•‘์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์›๋ž˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด์กดํ•˜๋ฉด์„œ ์˜ค๋ฅ˜์— ์ปจํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ์ค‘์— ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. Go 1.13์—์„œ๋Š” fmt.Errorf() ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด ์˜ค๋ฅ˜๋ฅผ ๋ž˜ํ•‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ ๋™์‚ฌ %w ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅ˜ ๋ž˜ํ•‘์„ ๋„์ž…ํ–ˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ๋ž˜ํ•‘ํ•  ๋•Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•œ ์ปจํ…์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์„ค๋ช… ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ Go์—์„œ ์˜ค๋ฅ˜ ๋ž˜ํ•‘์˜ ์˜ˆ์ž…๋‹ˆ๋‹ค.

 ํŒจํ‚ค์ง€ ๋ฉ”์ธ

๊ฐ€์ ธ์˜ค๊ธฐ(
    "์˜ค๋ฅ˜"
    "fmt"
    "os"
)

ํ•จ์ˆ˜ ๋ฉ”์ธ() {
    ์˜ค๋ฅ˜ := openFile("non_existent.txt")
    ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ != nil {
        fmt.Println("์˜ค๋ฅ˜ ๋ฐœ์ƒ:", ์˜ค๋ฅ˜)
    }
}

func openFile(ํŒŒ์ผ๋ช… ๋ฌธ์ž์—ด) ์˜ค๋ฅ˜ {
    _, ์˜ค๋ฅ˜ := os.Open(ํŒŒ์ผ๋ช…)
    ์˜ค๋ฅ˜๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ != nil {
        return fmt.Errorf("%s ํŒŒ์ผ ์—ด๊ธฐ ์‹คํŒจ: %w", ํŒŒ์ผ ์ด๋ฆ„, ์˜ค๋ฅ˜)
    }
    ๋ฐ˜ํ™˜ ์—†์Œ
}

์ด ์˜ˆ์ œ์—์„œ os.Open() ํ•จ์ˆ˜๋Š” ํŒŒ์ผ์ด ์—†์œผ๋ฉด ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ์ง์ ‘ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋Œ€์‹  fmt.Errorf() ์‚ฌ์šฉํ•˜์—ฌ ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๋กœ ๋ž˜ํ•‘๋ฉ๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ๋””๋ฒ„๊น…ํ•  ๋•Œ ์ด ์ถ”๊ฐ€ ์ปจํ…์ŠคํŠธ๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์„ ์‹ ์†ํ•˜๊ฒŒ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์œ„์˜ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์ถœ๋ ฅ์—๋Š” ์—ด์ง€ ๋ชปํ•œ ํŠน์ • ํŒŒ์ผ ์ด๋ฆ„์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

 ์˜ค๋ฅ˜ ๋ฐœ์ƒ: non_existent.txt ํŒŒ์ผ ์—ด๊ธฐ ์‹คํŒจ: non_existent.txt ์—ด๊ธฐ: ํ•ด๋‹น ํŒŒ์ผ ๋˜๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ์—†์Œ

Go์—์„œ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํ•จ์ •

๋ฐฐํฌ ๋˜๋Š” ์†Œ์Šค ์ฝ”๋“œ ๋‚ด๋ณด๋‚ด๊ธฐ
์ƒ์„ฑ๋œ ์•ฑ์„ ํด๋ผ์šฐ๋“œ์— ๋ฐฐํฌํ•˜๊ฑฐ๋‚˜ ๋” ๋งŽ์€ ์ œ์–ด๊ฐ€ ํ•„์š”ํ•  ๋•Œ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‚ด๋ณด๋‚ด์„ธ์š”.
์ง€๊ธˆ ๋ฐฐํฌ

Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ž‘์—…์„ ํ•  ๋•Œ ๋ถˆ์•ˆ์ •ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ์–ด๋ ค์šด ๋””๋ฒ„๊น… ๋ฌธ์ œ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ์ผ๋ฐ˜์ ์ธ ํ•จ์ •์„ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ•จ์ • ์ค‘ ์ผ๋ถ€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ์˜ค๋ฅ˜ ๋ฌด์‹œ: ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์—์„œ ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ด๊ณ  ์น˜๋ช…์ ์ธ ์‹ค์ˆ˜ ์ค‘ ํ•˜๋‚˜๋Š” ์˜ค๋ฅ˜๋ฅผ ์™„์ „ํžˆ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Go ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์ง€ ๋ชปํ•˜๋ฉด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘, ๋ฐ์ดํ„ฐ ์†์ƒ ๋˜๋Š” ๋” ๋‚˜์œ ๊ฒฐ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ญ์ƒ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ์ ์ ˆํ•˜๊ฒŒ ์ฒ˜๋ฆฌํ•˜์‹ญ์‹œ์˜ค.
  • panic() ๋ฐ recover() ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉ: panic() ๋ฐ recover() ํŠน์ • ์ƒํ™ฉ์—์„œ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๊ณผ๋„ํ•˜๊ฒŒ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์œ ์ง€ ๊ด€๋ฆฌํ•˜๊ธฐ ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์— ํ•„์š”ํ•œ ์ „์ œ ์กฐ๊ฑด์ด ์ถฉ์กฑ๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ์ง„์ •์œผ๋กœ ์˜ˆ์™ธ์ ์ธ ์ƒํ™ฉ์„ ์œ„ํ•ด ์ด๋Ÿฌํ•œ ํ•จ์ˆ˜์˜ ์‚ฌ์šฉ์„ ์˜ˆ์•ฝํ•˜์‹ญ์‹œ์˜ค.
  • ๋ถˆ์™„์ „ํ•œ ์˜ค๋ฅ˜ ํ™•์ธ: ๋•Œ๋•Œ๋กœ ๊ฐœ๋ฐœ์ž๋Š” ํŠน์ • ์˜ค๋ฅ˜ ์œ ํ˜•๋งŒ ํ™•์ธํ•˜๊ณ  ๋‹ค๋ฅธ ์ž ์žฌ์  ์˜ค๋ฅ˜๋Š” ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‘ก๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ฑฐ๋‚˜ ํฌ๊ด„ ์ „๋žต์„ ์‚ฌ์šฉํ•˜์—ฌ ํ•จ์ˆ˜์—์„œ ๋ฐ˜ํ™˜๋  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ‘œ์ค€ error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š์Œ: Go๋Š” ์˜ค๋ฅ˜๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ๋ฐ˜ํ™˜ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์ œ๊ณต error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜์—ฌ ์ด ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ค€์ˆ˜ํ•˜๊ณ  ํ˜ผ๋ž€๊ณผ ๋””๋ฒ„๊น… ์–ด๋ ค์›€์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ๋Š” ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.
  • ๋ชจํ˜ธํ•˜๊ฑฐ๋‚˜ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ๋ฐ˜ํ™˜: ๋ช…ํ™•ํ•˜๊ณ  ์„ค๋ช…์ ์ธ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋Š” ์ฝ”๋“œ์˜ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค. ์˜ค๋ฅ˜์˜ ๊ทผ๋ณธ ์›์ธ์„ ์‹๋ณ„ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ์˜๋ฏธ ์žˆ๋Š” ์ •๋ณด๋ฅผ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์— ํ•ญ์ƒ ์ œ๊ณตํ•˜์‹ญ์‹œ์˜ค.

AppMaster์—์„œ ์ƒ์„ฑ๋œ Golang ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ

AppMaster ๋…ธ์ฝ”๋“œ ํ”Œ๋žซํผ์€ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๊ณ  ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๊ด€๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜๋ฉด์„œ ์ƒ์„ฑ๋œ Golang ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์ค‘์š”ํ•˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” AppMaster ํ”Œ๋žซํผ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒ์„ฑํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. AppMaster์—์„œ ์ƒ์„ฑ๋œ Golang ์ฝ”๋“œ์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๊ธฐ๋Šฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํŒจํ„ด

AppMaster ๋‚ด์žฅ๋œ error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์ƒ์„ฑ๋œ ์ฝ”๋“œ ์ „์ฒด์—์„œ ์ผ๊ด€๋˜๊ฒŒ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๋Š” Go์˜ ํ‘œ์ค€ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํŒจํ„ด์„ ์ค€์ˆ˜ํ•ฉ๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ๋ž˜ํ•‘

์ปจํ…์ŠคํŠธ๋ฅผ ์œ ์ง€ํ•˜๊ณ  ๋””๋ฒ„๊น…์„ ๋” ์‰ฝ๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด AppMaster์—์„œ ์ƒ์„ฑ๋œ ์ฝ”๋“œ๋Š” ์ ์ ˆํ•œ ๊ฒฝ์šฐ ์˜ค๋ฅ˜ ๋ž˜ํ•‘์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ์˜ค๋ฅ˜๋ฅผ ์ดˆ๋ž˜ํ•œ ์ผ๋ จ์˜ ์ด๋ฒคํŠธ๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜๋ฏธ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€

๋ช…ํ™•ํ•˜๊ณ  ์„ค๋ช…์ ์ธ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๊ฐ€ ์ƒ์„ฑ๋œ ์ฝ”๋“œ ์ „์ฒด์— ์‚ฌ์šฉ๋˜์–ด ๋ฌธ์ œ๋ฅผ ์‰ฝ๊ฒŒ ์‹๋ณ„ํ•˜๊ณ  ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ชจ๋ฒ” ์‚ฌ๋ก€

AppMaster์—์„œ ์ƒ์„ฑ๋œ Golang ์ฝ”๋“œ๋Š” ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๊ด€๋ฆฌ, panic() ๋ฐ recover() ์‚ฌ์šฉ ์ตœ์†Œํ™”, ํฌ๊ด„์ ์ธ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ๋ฅผ ํฌํ•จํ•˜์—ฌ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์›์น™์— ๋”ฐ๋ผ AppMaster ์ƒ์„ฑํ•˜๋Š” Golang ์ฝ”๋“œ์˜ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜์—ฌ ๋น„์ฆˆ๋‹ˆ์Šค๋ฅผ ์œ„ํ•œ ๊ณ ํ’ˆ์งˆ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€

ํ”ํ•œ Go ์‹ค์ˆ˜ ์˜ˆ๋ฐฉ
๊ตฌ์กฐํ™”๋œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ๊ฐ–์ถ˜ ์›Œํฌํ”Œ๋กœ๋กœ panic ์œ„์ฃผ์˜ ์ฝ”๋“œ ๊ฒฝ๋กœ๋ฅผ ํ”ผํ•˜์„ธ์š”.
ํ”„๋กœ์ ํŠธ ์‹œ์ž‘

Go์—์„œ ์˜ค๋ฅ˜๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋ ค๋ฉด ํ™•๋ฆฝ๋œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ๋”ฐ๋ฅด๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. Go์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ฃผ์š” ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ํ•ญ์ƒ ์˜ค๋ฅ˜ ํ™•์ธ: Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์˜ ์ดˆ์„์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ์˜ ๋ชจ๋“  ๋‹จ๊ณ„์—์„œ ์˜ค๋ฅ˜๋ฅผ ํ™•์ธํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์ฒ˜๋ฆฌํ•˜์—ฌ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋™์ž‘๊ณผ ๋ฌธ์ œ๋ฅผ ๋ฐฉ์ง€ํ•˜์‹ญ์‹œ์˜ค.
  2. ์˜ค๋ฅ˜ ๋ž˜ํ•‘์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ ์ œ๊ณต: Go 1.13์— ๋„์ž…๋œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์˜ค๋ฅ˜ ๋ž˜ํ•‘ ๊ธฐ์ˆ ์„ ํ™œ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์ปจํ…์ŠคํŠธ๋ฅผ ๋ณด์กดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋ฌธ์ œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํ‘œ์ค€ error ์ธํ„ฐํŽ˜์ด์Šค ์ค€์ˆ˜: Go๋Š” ์˜ค๋ฅ˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ๋‚ด์žฅ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜ ์˜ค๋ฅ˜ ์œ ํ˜•์ด error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์šฉ์ž ์ •์˜ ๊ตฌ์กฐ ๋Œ€์‹  ๊ฐ’์œผ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.
  4. ์ตœ์†Œํ•œ์˜ ๋†€๋ผ์›€ ์›์น™์„ ๋”ฐ๋ฅด์‹ญ์‹œ์˜ค. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์ „๋žต์„ ์„ค๊ณ„ํ•  ๋•Œ ๊ฐ€๋Šฅํ•œ ํ•œ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์ง๊ด€์ ์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์—๋Š” ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€ ์‚ฌ์šฉ, ์ผ๊ด€๋œ ๋ฐฉ์‹์œผ๋กœ ์˜ค๋ฅ˜ ๋ฐ˜ํ™˜, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ฌ๋ฐ”๋ฅธ ์ˆ˜์ค€์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
  5. ์ ์ ˆํ•œ ์ˆ˜์ค€์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ: ์˜ค๋ฅ˜๋ฅผ ๊ธฐ๋กํ•˜๋“ , ์ž‘์—…์„ ๋‹ค์‹œ ์‹œ๋„ํ•˜๋“ , ์˜ค๋ฅ˜๋ฅผ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ฒ„๋ธ”๋งํ•˜๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์˜ฌ๋ฐ”๋ฅธ ์ˆ˜์ค€์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•  ์ฑ…์ž„์ด ์žˆ๋Š” ์‚ฌ๋žŒ ๋˜๋Š” ๋Œ€์ƒ์„ ๊ฒฐ์ •ํ•˜๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์˜ค๋ฅ˜๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Go์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์ด๋Ÿฌํ•œ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜๋ฉด ์˜ˆ๊ธฐ์น˜ ์•Š์€ ๋ฌธ์ œ๋ฅผ ๊ฒฌ๋”œ ์ˆ˜ ์žˆ๊ณ  ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ๋•Œ ์˜๋ฏธ ์žˆ๋Š” ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋Š” ๋ณด๋‹ค ํƒ„๋ ฅ์ ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์„ AppMaster ํ”Œ๋žซํผ์˜ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ๊ณผ ๊ฒฐํ•ฉํ•˜๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ •์„ฑ๊ณผ ์ „๋ฐ˜์ ์ธ ํ’ˆ์งˆ์ด ๋”์šฑ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ

Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Go์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋Š” Go ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜ค๋ฅ˜๋ฅผ ์‹๋ณ„, ์˜ˆ์ธก ๋ฐ ๊ด€๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์˜ ์•ˆ์ •์„ฑ๊ณผ ๊ฒฌ๊ณ ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ๋Ÿฐํƒ€์ž„ ์˜ค๋ฅ˜ ๊ฐ์ง€ ๋ฐ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์˜ ์ ์ ˆํ•œ ๊ด€๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Go์—์„œ ๋งž์ถค ์˜ค๋ฅ˜๋ฅผ ์–ด๋–ป๊ฒŒ ์ƒ์„ฑํ•˜๋‚˜์š”?

Go์—์„œ๋Š” ์˜ค๋ฅ˜๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฌธ์ž์—ด์„ ๋ฐ˜ํ™˜ํ•˜๋Š” Error() ๋ฉ”์„œ๋“œ๋ฅผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์ƒˆ ์œ ํ˜•์„ ์ •์˜ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ์˜ค๋ฅ˜๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Go์—์„œ ์˜ค๋ฅ˜ ๋ž˜ํ•‘์˜ ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Go์—์„œ ์˜ค๋ฅ˜ ๋ž˜ํ•‘์„ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๊ฐ€ ์›๋ž˜ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ ์˜ค๋ฅ˜์— ์ปจํ…์ŠคํŠธ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜ค๋ฅ˜๋ฅผ ๋” ์ž˜ ์ดํ•ดํ•˜๊ณ  ๋””๋ฒ„๊น…ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋ฏ€๋กœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ฝ”๋“œ์—์„œ ๋ฌธ์ œ์˜ ๊ทผ๋ณธ ์›์ธ์„ ๋” ์‰ฝ๊ฒŒ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Go์—์„œ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํ•จ์ •์€ ๋ฌด์—‡์ธ๊ฐ€์š”?

Go์—์„œ ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ํ•จ์ •์—๋Š” ์˜ค๋ฅ˜ ๋ฌด์‹œ, panic() ๋ฐ recover() ๊ณผ๋„ ์‚ฌ์šฉ, ๋ถˆ์™„์ „ํ•œ ์˜ค๋ฅ˜ ๊ฒ€์‚ฌ ๋ฐ ํ‘œ์ค€ error ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๋”ฐ๋ฅด์ง€ ์•Š๋Š” ๊ฒƒ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

AppMaster๋Š” ์ƒ์„ฑ๋œ Golang ์ฝ”๋“œ์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์–ด๋–ป๊ฒŒ ์ง€์›ํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

AppMaster์—์„œ ์ƒ์„ฑ๋œ Golang ์ฝ”๋“œ๋Š” ๊ฐ•๋ ฅํ•œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ์›์น™์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ƒ์„ฑ๋œ ๋ฐฑ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์ ์ ˆํ•œ ์˜ค๋ฅ˜ ๊ด€๋ฆฌ๋ฅผ ๋ณด์žฅํ•˜๊ณ  Go์˜ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ชจ๋ฒ” ์‚ฌ๋ก€๋ฅผ ์ค€์ˆ˜ํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•ˆ์ •์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.

Go์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋ฒ” ์‚ฌ๋ก€๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?

Go์—์„œ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ๋ชจ๋ฒ” ์‚ฌ๋ก€์—๋Š” ํ•ญ์ƒ ์˜ค๋ฅ˜ ํ™•์ธ, ์˜ค๋ฅ˜ ๋ž˜ํ•‘์„ ์‚ฌ์šฉํ•˜์—ฌ ์ปจํ…์ŠคํŠธ ์ œ๊ณต, ํ‘œ์ค€ error ์ธํ„ฐํŽ˜์ด์Šค ์ค€์ˆ˜, ์ตœ์†Œํ•œ์˜ ๋†€๋ผ์›€ ์›์น™ ์ค€์ˆ˜ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ ์ ˆํ•œ ์ˆ˜์ค€์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์‰ฌ์šด ์‹œ์ž‘
๋ฉ‹์ง„๋งŒ๋“ค๊ธฐ

๋ฌด๋ฃŒ ์š”๊ธˆ์ œ๋กœ AppMaster๋ฅผ ์‚ฌ์šฉํ•ด ๋ณด์„ธ์š”.
์ค€๋น„๊ฐ€ ๋˜๋ฉด ์ ์ ˆํ•œ ๊ตฌ๋…์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์ž‘ํ•˜๋‹ค
Go์—์„œ ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ | AppMaster