์ด ๊ธฐ์ฌ๋ ์ด์ ์ ๊ฒ์๋ ๊ธ์ ๋ํ ๋ต๋ณ์ผ๋ก ์์ฑ๋์์ต๋๋ค.
์ง๋ XNUMX๋ ๋๊ฒ ์ ๋ Go๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ๋ ์ฒญ๊ตฌ ์์คํ ์ ๊ฐ์ถ ํน์ RADIUS ์๋ฒ๋ฅผ ๊ตฌํํด ์์ต๋๋ค. ๊ทธ ๊ณผ์ ์์ ๋๋ ์ธ์ด ์์ฒด์ ๋ณต์ก์ฑ์ ๋ฐฐ์ฐ๊ณ ์์ต๋๋ค. ํ๋ก๊ทธ๋จ ์์ฒด๋ ๋งค์ฐ ๊ฐ๋จํ๋ฉฐ ์ด ๊ธฐ์ฌ์ ๋ชฉ์ ์ ์๋์ง๋ง Go ์์ฒด๋ฅผ ์ฌ์ฉํ ๊ฒฝํ์ ์ด๋ฅผ ์นํธํ๋ ๋ฐ ๋ช ๋ง๋ ๋งํ ๋งํ ๊ฐ์น๊ฐ ์์ต๋๋ค. Go๋ ์ฌ๊ฐํ๊ณ ํ์ฅ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์ํ ์ ์ ๋ ์ฃผ๋ฅ ์ธ์ด๊ฐ ๋์ด๊ฐ๊ณ ์์ต๋๋ค. ์ด ์ธ์ด๋ Google์์ ๋ง๋ค์ด์ก์ผ๋ฉฐ ์ ๊ทน์ ์ผ๋ก ์ฌ์ฉ๋ฉ๋๋ค. ๊ฒฐ๋ก ์ ์ผ๋ก ์ ๋ ์์งํ Go ์ธ์ด์ ๋์์ธ์ด UNintelligent ํ๋ก๊ทธ๋๋จธ์๊ฒ ์ข์ง ์๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ฝํ ํ๋ก๊ทธ๋๋จธ๋ฅผ ์ํด ์ค๊ณ ๋์์ต๋๊น?
์ฝํ ์ฌ๋์ ๋ฌธ์ ๋ฅผ ๋งํฉ๋๋ค. ์์ด๋์ด์ ๊ฟ์ ๋ํ ๊ฐ๋ ฌํ ์ด์ผ๊ธฐ..
Go๋ ๋ฐฐ์ฐ๊ธฐ๊ฐ ๋งค์ฐ ์ฌ์ฐ๋ฏ๋ก ์ค์ ๋ก ์ ํ ๊ต์ก์ ๋ฐ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ์ฝ์ ์ ์์ต๋๋ค. ์ด ์ธ์ด ๊ธฐ๋ฅ์ ๋ง์ ๊ธ๋ก๋ฒ ๊ธฐ์
์์ ๋นํต์ฌ ์ ๋ฌธ๊ฐ(๊ด๋ฆฌ์, ๊ณ ๊ฐ ๋ฑ)์ ํจ๊ป ์ฝ๋๋ฅผ ์ฝ์ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ ๋์์ธ ์ค์ฌ ๊ฐ๋ฐ๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ก ์ ๋งค์ฐ ํธ๋ฆฌํฉ๋๋ค.
์ด๋ณด ํ๋ก๊ทธ๋๋จธ๋ผ๋ XNUMX~XNUMX์ฃผ ํ์๋ ๊ฝค ๊ด์ฐฎ์ ์ฝ๋๋ฅผ ์์ฑํ๊ธฐ ์์ํฉ๋๋ค. ์ ๊ฐ ๊ณต๋ถํ ์ฑ
์ "Go ํ๋ก๊ทธ๋๋ฐ"(๋งํฌ ์๋จธํ๋ ์ง์)์
๋๋ค. ์ด ์ฑ
์ ๋งค์ฐ ํ๋ฅญํ๋ฉฐ ์ธ์ด์ ๋ง์ ๋์์ค๋ฅผ ๋ค๋ฃน๋๋ค. Java, PHP ๋ฑ ๋ถํ์ํ๊ฒ ๋ณต์กํ ์ธ์ด์ ์ด์ด ๋ง๋ฒ์ ๋ถ์กฑํจ์ด ์์พํฉ๋๋ค. ๊ทธ๋ฌ๋ ์กฐ๋ง๊ฐ ๋ง์ ์ ํ๋ ํ๋ก๊ทธ๋๋จธ๋ค์ ์๋ก์ด ๋ถ์ผ์์ ์ค๋๋ ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๋ ค๋ ์์ด๋์ด๋ฅผ ๊ฐ๊ฒ ๋ฉ๋๋ค. ์ด๊ฒ์ด ์ ๋ง๋ก ํ์ํ๊ฐ?
์ธ์ด์ ์ฃผ์ ์ฌ์๊ฐ์ธ Rob Pike๋ Go ์ธ์ด๋ฅผ ์ดํดํ๊ธฐ ์ฝ๊ณ ์ฌ์ฉํ๊ธฐ ํจ๊ณผ์ ์ธ ์ฐ์ ์ธ์ด๋ก ๋ง๋ค์์ต๋๋ค. ์ด ์ธ์ด๋ ๋๊ท๋ชจ ํ์ ์์ฐ์ฑ์ ๊ทน๋ํํ๋๋ก ์ค๊ณ๋์์ผ๋ฉฐ ์ด์ ๋ํด์๋ ์์ฌ์ ์ฌ์ง๊ฐ ์์ต๋๋ค. ๋ง์ ์ด๋ณด ํ๋ก๊ทธ๋๋จธ๋ค์ ๋๋ฝ๋ ๊ธฐ๋ฅ์ด ๋ง๋ค๊ณ ๋ถํํฉ๋๋ค. ๋จ์์ฑ์ ๋ํ ์ด๋ฌํ ์ด๋ง์ ์ธ์ด ๋์์ด๋์ ์์์ ์ธ ๊ฒฐ์ ์ด์๊ณ , ๊ทธ๊ฒ์ด ์ ํ์ํ์ง ์์ ํ ์ดํดํ๋ ค๋ฉด ๊ฐ๋ฐ์์ ๋๊ธฐ์ ๊ทธ๋ค์ด Go์์ ๋ฌ์ฑํ๋ ค๊ณ ํ๋ ๊ฒ์ด ๋ฌด์์ธ์ง ์ดํดํด์ผ ํฉ๋๋ค.
๊ทธ๋ ๋ค๋ฉด ์ ๊ทธ๋ ๊ฒ ๊ฐ๋จํ๊ฒ ๋ง๋ค์ด์ก๋๊ฐ? ๋ค์์ Rob Pike์ ๋ช ๊ฐ์ง ์ธ์ฉ๋ฌธ์ ๋๋ค.
์ฌ๊ธฐ์ ์ค์ํ ์ ์ ์ฐ๋ฆฌ ํ๋ก๊ทธ๋๋จธ๋ ์ฐ๊ตฌ์๊ฐ ์๋๋ผ๋ ์ ์ ๋๋ค. ๊ทธ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ์์ฃผ ์ด๋ ค์ ๊ณต๋ถ๋ฅผ ๋ง์น๊ณ ์ฐ๋ฆฌ์๊ฒ ์์ต๋๋ค. ์๋ง๋ Java, C/C++ ๋๋ Python์ ๊ณต๋ถํ์ ๊ฒ์ ๋๋ค. ๊ทธ๋ค์ ํ๋ฅญํ ์ธ์ด๋ฅผ ์ดํดํ ์ ์์ง๋ง ๋์์ ์ฐ๋ฆฌ๋ ๊ทธ๋ค์ด ์ข์ ์ํํธ์จ์ด๋ฅผ ๋ง๋ค๊ธฐ๋ฅผ ์ํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ธ์ด๋ ์ดํดํ๊ธฐ ์ฝ๊ณ ๋ฐฐ์ฐ๊ธฐ ์ฌ์์ผ ํฉ๋๋ค.
๊ทธ๋ ๋๋ต์ ์ผ๋ก C์ ๋น์ทํ ์ ๋๋ก ์น์ํ ๊ฒ์ ๋๋ค. Google์์ ์ผํ๋ ํ๋ก๊ทธ๋๋จธ๋ ์ผ์ฐ ๊ฒฝ๋ ฅ์ ์์ํ๋ฉฐ ๋๋ถ๋ถ ์ ์ฐจ์ ์ธ์ด, ํนํ C ๊ณ์ด ์ธ์ด์ ์ต์ํฉ๋๋ค. ์๋ก์ด ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ๋น ๋ฅธ ์์ฐ์ฑ์ ๋ํ ์๊ตฌ ์ฌํญ์ ์ธ์ด๊ฐ ๋๋ฌด ๊ธ์ง์ ์ด์ง ์์์ผ ํจ์ ์๋ฏธํฉ๋๋ค.
ํ๋ช ํ ๋ง์ด์ง, ๊ทธ๋ ์ง?
๋จ์ํจ์ ์ ๋ฌผ
๋จ์ํจ์ ์๋ฆ๋ค์์ ํ์ ์กฐ๊ฑด์ ๋๋ค. ๋ ํ ํจ์คํ ์ด.
๋จ์ํจ์ ์ ์งํ๋ ๊ฒ์ ๋ชจ๋ ๋์์ธ์์ ๊ฐ์ฅ ์ค์ํ ๋ชฉํ ์ค ํ๋์ ๋๋ค. ์์๋ค์ํผ ์๋ฒฝํ ํ๋ก์ ํธ๋ ์ถ๊ฐํ ๊ฒ์ด ์๋ ํ๋ก์ ํธ๊ฐ ์๋๋ผ ์ ๊ฑฐํ ๊ฒ์ด ์๋ ํ๋ก์ ํธ์ ๋๋ค. ๋ง์ ์ฌ๋๋ค์ ๋ณต์กํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐ(๋๋ ํํ)ํ๋ ค๋ฉด ๋ณต์กํ ๋๊ตฌ๊ฐ ํ์ํ๋ค๊ณ ๋ฏฟ์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋ ์ง ์์ต๋๋ค. PERL ์ธ์ด๋ฅผ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์ธ์ด ์ด๋ฐ์ฌ๋ก๊ธฐ๋ ํ๋ก๊ทธ๋๋จธ๊ฐ ํ๋์ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ์ ์ด๋ ์ธ ๊ฐ์ง ๋ค๋ฅธ ๋ฐฉ๋ฒ์ ๊ฐ์ง๊ณ ์์ด์ผ ํ๋ค๊ณ ๋ฏฟ์์ต๋๋ค. Go ์ธ์ด์ ์ด๋ฐ์ฌ๋ก๊ธฐ๋ ๋ค๋ฅธ ๊ธธ์ ํํ์ต๋๋ค. ๊ทธ๋ค์ ํ ๊ฐ์ง ๋ฐฉ๋ฒ์ด์ง๋ง ์ ๋ง ์ข์ ๋ฐฉ๋ฒ์ด๋ฉด ๋ชฉํ๋ฅผ ๋ฌ์ฑํ๊ธฐ์ ์ถฉ๋ถํ๋ค๊ณ ๊ฒฐ์ ํ์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์๋ ์ฌ๊ฐํ ๊ธฐ๋ฐ์ด ์์ต๋๋ค. ์ ์ผํ ๋ฐฉ๋ฒ์ ๋ฐฐ์ฐ๊ธฐ ์ฝ๊ณ ์์ด๋ฒ๋ฆฌ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
๋ง์ ์ด๋ฏผ์๋ค์ ์ธ์ด์ ์ฐ์ํ ์ถ์ํ๊ฐ ํฌํจ๋์ด ์์ง ์๋ค๊ณ ๋ถํํฉ๋๋ค. ์, ์ด๊ฒ์ ์ฌ์ค์ ๋๋ค. ๊ทธ๋ฌ๋ ์ด๊ฒ์ด ์ธ์ด์ ์ฃผ์ ์ฅ์ ์ค ํ๋์ ๋๋ค. ์ธ์ด์๋ ์ต์ํ์ ๋ง๋ฒ์ด ํฌํจ๋์ด ์์ผ๋ฏ๋ก ํ๋ก๊ทธ๋จ์ ์ฝ๋ ๋ฐ ๊น์ ์ง์์ด ํ์ํ์ง ์์ต๋๋ค. ์ฝ๋์ ์ฅํฉํจ์ ๊ดํด์๋ ์ด๊ฒ์ ์ ํ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. ์ ์์ฑ๋ Golang ํ๋ก๊ทธ๋จ์ ๊ตฌ์กฐ๊ฐ ๊ฑฐ์ ๋๋ ์ ํ ์์ด ์ธ๋ก๋ก ์ฝํ๋๋ค. ๋ํ ํ๋ก๊ทธ๋จ์ ์ฝ๋ ์๋๋ ์ ์ด๋ ์์ฑ ์๋๋ณด๋ค ํจ์ฌ ๋น ๋ฆ ๋๋ค. ๋ชจ๋ ์ฝ๋๊ฐ ๊ท ์ผํ ํ์(๋ด์ฅ gofmt ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ์ํ๋จ)์ ๊ฐ์ง๊ณ ์๋ค๊ณ ์๊ฐํ๋ฉด ๋ช ์ค์ ์ถ๊ฐ๋ก ์ฝ๋ ๊ฒ์ ์ ํ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค.
ํํ๋ ฅ์ด ๋ณ๋ก ์ข์ง ์์
์์ ์ ์์ ๊ฐ ์ ํ๋๋ ๊ฒ์ ์ฉ๋ฉํ์ง ์์ต๋๋ค. ์ ํ์ฑ์ ๊ทธ์ ์ฑ ์์ด ์๋๋๋ค.
๋จ์์ฑ์ ๋ํ ์๊ตฌ๋ก ์ธํด Go์๋ ๋ค๋ฅธ ์ธ์ด์ ์ต์ํ ์ฌ๋๋ค์ด ์์ฐ์ค๋ฌ์ด ๊ฒ์ผ๋ก ์ธ์ํ๋ ๊ตฌ์ฑ์ด ๋ถ์กฑํฉ๋๋ค. ์ฒ์์๋ ๋ค์ ๋ถํธํ ์๋ ์์ง๋ง ๋์ค์๋ ํ๋ก๊ทธ๋จ์ด ์ฝ๊ธฐ๊ฐ ํจ์ฌ ์ฝ๊ณ ๋ช ํํ๋ค๋ ๊ฒ์ ์๊ฒ ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋ช ๋ น์ค ์ธ์์์ stdin ๋๋ ํ์ผ์ ์ฝ๋ ์ฝ์ ์ ํธ๋ฆฌํฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
package main
import (
"bufio"
"flag"
"fmt"
"log"
"os"
)
func main() {
flag.Parse()
scanner := newScanner(flag.Args())
var text string
for scanner.Scan() {
text += scanner.Text()
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
fmt.Println(text)
}
func newScanner(flags []string) *bufio.Scanner {
if len(flags) == 0 {
return bufio.NewScanner(os.Stdin)
}
file, err := os.Open(flags[0])
if err != nil {
log.Fatal(err)
}
return bufio.NewScanner(file)
}
D์ ๋์ผํ ๋ฌธ์ ์ ๋ํ ํด๊ฒฐ์ฑ ์ ๋ค์ ์งง์ ๋ณด์ด์ง๋ง ์ฝ๊ธฐ๊ฐ ์ฝ์ง ์์ต๋๋ค.
import std.stdio, std.array, std.conv;
void main(string[] args)
{
try
{
auto source = args.length > 1 ? File(args[1], "r") : stdin;
auto text = source.byLine.join.to!(string);
writeln(text);
}
catch (Exception ex)
{
writeln(ex.msg);
}
}
๋ณต์ฌ์ ์ง์ฅ
์ธ๊ฐ์ ์์ ์์ ์ง์ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๋งํด ๋ฃจํฐ.
์ด๋ณด์๋ค์ ์ ๋ค๋ฆญ์ด ๋ถ์กฑํ๋ค๋ ์ ์์ Go์ ๋ํด ๋์์์ด ๋ถํํฉ๋๋ค. ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋๋ถ๋ถ์ ์ง์ ์ฝ๋ ๋ณต์ฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ ์ ๋ชฉ๋ก์ ํฉ์ฐํ๋ ํจ์๋ ๊ฐ ๋ฐ์ดํฐ ์ ํ์ ๋ํด ๊ฐ๋จํ ๋ณต์ฌ-๋ถ์ฌ๋ฃ๊ธฐ ์ธ์ ๋ค๋ฅธ ๋ฐฉ๋ฒ์ผ๋ก๋ ์ด ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋ค๊ณ ์๋น ์ ๋ฌธ๊ฐ๋ค์ด ๋ฏฟ๊ณ ์์ต๋๋ค.
package main
import "fmt"
func int64Sum(list []int64) (uint64) {
var result int64 = 0
for x := 0; x < len(list); x++ {
result += list[x]
}
return uint64(result)
}
func int32Sum(list []int32) (uint64) {
var result int32 = 0
for x := 0; x < len(list); x++ {
result += list[x]
}
return uint64(result)
}
func main() {
list32 := []int32{1, 2, 3, 4, 5}
list64 := []int64{1, 2, 3, 4, 5}
fmt.Println(int32Sum(list32))
fmt.Println(int64Sum(list64))
}
์ธ์ด์๋ ๊ทธ๋ฌํ ๊ตฌ์ฑ์ ๊ตฌํํ๋ ๋ฐ ์ถฉ๋ถํ ์๋จ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์ผ๋ฐ ํ๋ก๊ทธ๋๋ฐ์ ๊ด์ฐฎ์ต๋๋ค.
package main
import "fmt"
func Eval32(list []int32, fn func(a, b int32)int32) int32 {
var res int32
for _, val := range list {
res = fn(res, val)
}
return res
}
func int32Add(a, b int32) int32 {
return a + b
}
func int32Sub(a, b int32) int32 {
return a + b
}
func Eval64(list []int64, fn func(a, b int64)int64) int64 {
var res int64
for _, val := range list {
res = fn(res, val)
}
return res
}
func int64Add(a, b int64) int64 {
return a + b
}
func int64Sub(a, b int64) int64 {
return a - b
}
func main() {
list32 := []int32{1, 2, 3, 4, 5}
list64 := []int64{1, 2, 3, 4, 5}
fmt.Println(Eval32(list32, int32Add))
fmt.Println(Eval64(list64, int64Add))
fmt.Println(Eval64(list64, int64Sub))
}
๊ทธ๋ฆฌ๊ณ ์ฐ๋ฆฌ์ ์ฝ๋๋ ์ด์ ์ฌ๋ก์ ๋นํด ๋ค์ ๊ธธ์ด์ก์ง๋ง ์ผ๋ฐํ๋์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชจ๋ ์ฐ์ ์ฐ์ฐ์ ๊ตฌํํ๋ ๊ฒ์ด ์ด๋ ต์ง ์์ต๋๋ค.
๋ง์ ์ฌ๋๋ค์ด D ํ๋ก๊ทธ๋จ์ด ํจ์ฌ ๋ ์งง์ ๋ณด์ธ๋ค๊ณ ๋งํ ๊ฒ์ด๋ฉฐ, ๊ทธ ๋ง์ด ์ณ์ ๊ฒ์ ๋๋ค.
import std.stdio;
import std.algorithm;
void main(string[] args)
{
[1, 2, 3, 4, 5].reduce!((a, b) => a + b).writeln;
}
๊ทธ๋ฌ๋ D ๊ตฌํ์ ์ค๋ฅ ์ฒ๋ฆฌ ๋ฌธ์ ๋ฅผ ์์ ํ ๋ฌด์ํ๋ฏ๋ก ๋ ์งง์ ๋ฟ ๋ ์ ํํ์ง๋ ์์ต๋๋ค.
์ค์ ์ํ์์๋ ๋ ผ๋ฆฌ์ ๋ณต์ก์ฑ์ด ์ฆ๊ฐํ ์๋ก ๊ทธ ๊ฒฉ์ฐจ๊ฐ ๊ธ๊ฒฉํ ์ข์์ง๋๋ค. ํ์ค ์ธ์ด ์ฐ์ฐ์๋ฅผ ์ฌ์ฉํ์ฌ ์ํํ ์ ์๋ ์์ ์ ์ํํด์ผ ํ๋ ๊ฒฝ์ฐ ๊ฒฉ์ฐจ๊ฐ ๋์ฑ ๋น ๋ฅด๊ฒ ์ค์ด๋ญ๋๋ค.
์ ์ง๋ณด์์ฑ, ํ์ฅ์ฑ, ๊ฐ๋ ์ฑ ์ธก๋ฉด์์ ๋ณด๋ฉด Go ์ธ์ด๊ฐ ๋น๋ก ์ฅํฉํจ์์๋ ๋จ์ด์ง์ง๋ง ์น๋ฆฌํ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์ด๋ค ๊ฒฝ์ฐ์๋ ์ผ๋ฐํ๋ ํ๋ก๊ทธ๋๋ฐ์ด ์ฐ๋ฆฌ์๊ฒ ๋ถ์ธํ ์ ์๋ ์ด์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ sort ํจํค์ง์ ๋ช ํํ๊ฒ ์ค๋ช ๋์ด ์์ต๋๋ค. ๋ฐ๋ผ์ ๋ชฉ๋ก์ ์ ๋ ฌํ๋ ค๋ฉด sort.Interface ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ๋ฉด ๋ฉ๋๋ค.
import "sort"
type Names []string
func (ns Names) Len() int {
return len(ns)
}
func (ns Names) Less(i, j int) bool {
return ns[i] < ns[j]
}
func (ns Names) Swap(i, j int) {
ns[i], ns[j] = ns[j], ns[i]
}
func main() {
names := Names{"London", "Berlin", "Rim"}
sort.Sort(names)
}
์คํ ์์ค ํ๋ก์ ํธ๋ฅผ ์ ํํ๊ณ grep "interface{}" -R ๋ช ๋ น์ ์คํํ๋ฉด ํผ๋์ค๋ฌ์ด ์ธํฐํ์ด์ค๊ฐ ์ผ๋ง๋ ์์ฃผ ์ฌ์ฉ๋๋์ง ์ ์ ์์ต๋๋ค. ๋ง์์ด ๊ฐ๊น์ด ๋์ง๋ค์ ์ด ๋ชจ๋ ๊ฒ์ด ์ ๋ค๋ฆญ์ด ๋ถ์กฑํ๊ธฐ ๋๋ฌธ์ด๋ผ๊ณ ์ฆ์ ๋งํ ๊ฒ์ ๋๋ค. ๊ทธ๋ฌ๋ ํญ์ ๊ทธ๋ฐ ๊ฒ์ ์๋๋๋ค. DELPHI๋ฅผ ์๋ก ๋ค์ด๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฌํ ๋์ผํ ์ ๋ค๋ฆญ์ด ์์์๋ ๋ถ๊ตฌํ๊ณ ์์์ ๋ฐ์ดํฐ ์ ํ์ ์ฌ์ฉํ๋ ์์ ์ ์ํ ํน์ VARIANT ์ ํ์ด ํฌํจ๋์ด ์์ต๋๋ค. Go ์ธ์ด๋ ๋ง์ฐฌ๊ฐ์ง์ ๋๋ค.
์ฐธ์ ์ด์์
๊ทธ๋ฆฌ๊ณ ๊ตฌ์๋ณต์ ๊ด๊ธฐ์ ํฌ๊ธฐ์ ๋ง์์ผํฉ๋๋ค. ์คํ๋์ฌ๋ผํ ๋ ํฌ.
๋ง์ ๊ทน๋จ์ ์ธ ํฌ๋ค์ Go์ ์ ๋ค๋ฆญ์ ์์ฑํ๋ ๋ ๋ค๋ฅธ ๋ฉ์ปค๋์ฆ์ธ ๋ฆฌํ๋ ์ ์ด ์๋ค๊ณ ์ฃผ์ฅํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ๊ทธ๋ค์ ๋ง์ด ์ณ์ ๊ฒ์ ๋๋ค... ํ์ง๋ง ์์ฃผ ๋๋ฌธ ๊ฒฝ์ฐ์ผ ๋ฟ์ ๋๋ค.
Rob Pike๋ ์ฐ๋ฆฌ์๊ฒ ์ด๋ ๊ฒ ๊ฒฝ๊ณ ํฉ๋๋ค.
์ด๋ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํ๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค. ๊ผญ ํ์ํ ๊ฒฝ์ฐ๊ฐ ์๋๋ฉด ํผํด์ผ ํฉ๋๋ค.
Wikipedia๋ ๋ค์๊ณผ ๊ฐ์ด ์๋ ค์ค๋๋ค.
๋ฆฌํ๋ ์ ์ ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ ์์ฒด ๊ตฌ์กฐ์ ๋์์ ๋ชจ๋ํฐ๋งํ๊ณ ์์ ํ ์ ์๋ ํ๋ก์ธ์ค๋ฅผ ๋ํ๋ ๋๋ค. ๋ฐ์ฌ์ ๊ธฐ๋ณธ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋ฐ์ฌ ํ๋ก๊ทธ๋๋ฐ์ด๋ผ๊ณ ํฉ๋๋ค. ์ด๊ฒ์ ์ผ์ข ์ ๋ฉํํ๋ก๊ทธ๋๋ฐ์ ๋๋ค.
๊ทธ๋ฌ๋ ์์๋ค์ํผ ๋ชจ๋ ๋น์ฉ์ ๊ทํ๊ฐ ์ง๋ถํด์ผ ํฉ๋๋ค. ์ด ๊ฒฝ์ฐ๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ํ๋ก๊ทธ๋จ ์์ฑ์ ์ด๋ ค์
- ํ๋ก๊ทธ๋จ ์คํ ์๋
๋ฐ๋ผ์ ๋ฐ์ฌ๋ ๋๊ตฌ๊ฒฝ ๋ฌด๊ธฐ์ฒ๋ผ ์ฃผ์ํด์ ์ฌ์ฉํด์ผ ํฉ๋๋ค. ๋ฆฌํ๋ ์ ์ ๋ฌด๋ถ๋ณํ๊ฒ ์ฌ์ฉํ๋ฉด ํ๋ก๊ทธ๋จ์ ์ฝ์ ์ ์๊ณ ์ง์์ ์ธ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ฉฐ ์๋๊ฐ ๋๋ ค์ง๋๋ค. ์๋ฌผ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ข ๋ ์ค์ฉ์ ์ด๊ณ ๊ฒธ์ํ ๋ค๋ฅธ ๋๋ฃ๋ค ์์์ ์์ ์ ์ฝ๋๋ฅผ ๊ณผ์ํ ์ ์๋ ๊ฒ์ ๋๋ค.
์์งํ์ ๋ฌธํ์ ์ํ๋ฌผ? ์๋์, ๋ค์ํ ์ธ์ด๋ก ์ ๊ณต๋ฉ๋๋ค!
์ฌ์ฐ๊ณผ ํจ๊ป ๋น๋ ์์์ธ์๊ฒ ๋จ์ต๋๋ค.
๋ง์ ์ฌ๋๋ค์ด ์ธ์ด๊ฐ ์ ์ ์ผ๋ก C ์ ์ฐ์ ๊ธฐ๋ฐ์ ๋๊ณ ์๋ค๊ณ ๋ฏฟ๊ณ ์์ง๋ง ์ฌ์ค์ ๊ทธ๋ ์ง ์์ต๋๋ค. ์ด ์ธ์ด๋ ์ต๊ณ ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ฌ๋ฌ ์ธก๋ฉด์ ํตํฉํฉ๋๋ค.
๊ตฌ๋ฌธ
์ฐ์ , ๋ฌธ๋ฒ ๊ตฌ์กฐ์ ๊ตฌ๋ฌธ์ C ์ธ์ด์ ๊ตฌ๋ฌธ์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค. ๊ทธ๋ฌ๋ DELPHI ์ธ์ด๋ ์๋นํ ์ํฅ์ ๋ฏธ์ณค์ต๋๋ค. ๋ฐ๋ผ์ ํ๋ก๊ทธ๋จ์ ๊ฐ๋ ์ฑ์ ํฌ๊ฒ ์ ํ์ํค๋ ์ค๋ณต๋ ๊ดํธ๊ฐ ์์ ํ ์ ๊ฑฐ๋์์์ ์ ์ ์์ต๋๋ค. ์ด ์ธ์ด์๋ DELPHI ์ธ์ด ๊ณ ์ ์ ":=" ์ฐ์ฐ์๋ ํฌํจ๋์ด ์์ต๋๋ค. ํจํค์ง์ ๊ฐ๋ ์ ADA์ ๊ฐ์ ์ธ์ด์์ ์ฐจ์ฉ๋์์ต๋๋ค. ์ฌ์ฉ๋์ง ์์ ์ํฐํฐ์ ์ ์ธ์ PROLOG ์ธ์ด์์ ์ฐจ์ฉ๋์์ต๋๋ค.
์๋ฏธ๋ก
ํจํค์ง๋ DELPHI ์ธ์ด์ ์๋ฏธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ์ต๋๋ค. ๊ฐ ํจํค์ง๋ ๋ฐ์ดํฐ์ ์ฝ๋๋ฅผ ์บก์ํํ๊ณ ๊ฐ์ธ ๋ฐ ๊ณต์ฉ ์ํฐํฐ๋ฅผ ํฌํจํฉ๋๋ค. ์ด๋ฅผ ํตํด ํจํค์ง ์ธํฐํ์ด์ค๋ฅผ ์ต์ํ์ผ๋ก ์ค์ผ ์ ์์ต๋๋ค.
์์ ๋ฐฉ์์ ๋ฐ๋ฅธ ๊ตฌํ ์์ ์ DELPHI ์ธ์ด๋ฅผ ์ฐจ์ฉํ์ต๋๋ค.
ํธ์ง
๋๋ด์ด ์๋ ๊ฒ์ ๋น์ฐํฉ๋๋ค. Go๋ C ํ๋ก๊ทธ๋จ์ด ์ปดํ์ผ๋๋ ๋์ ๊ฐ๋ฐ๋์์ต๋๋ค. ์ด ์ธ์ด์ ๊ฐ์ ์ค ํ๋๋ ์ด๊ณ ์ ์ปดํ์ผ์ ๋๋ค. ์์ด๋์ด๋ DELPHI ์ธ์ด์์ ์ฐจ์ฉ๋์์ต๋๋ค. ๊ฐ Go ํจํค์ง๋ DELPHI ๋ชจ๋์ ํด๋นํฉ๋๋ค. ์ด๋ฌํ ํจํค์ง๋ ์ค์ ๋ก ํ์ํ ๊ฒฝ์ฐ์๋ง ๋ค์ ์ปดํ์ผ๋ฉ๋๋ค. ๋ฐ๋ผ์ ๋ค์ ํธ์ง ํ์๋ ์ ์ฒด ํ๋ก๊ทธ๋จ์ ์ปดํ์ผํ ํ์๊ฐ ์์ผ๋ฉฐ ๋ณ๊ฒฝ๋ ํจํค์ง์ ์ด๋ฌํ ๋ณ๊ฒฝ๋ ํจํค์ง์ ์์กดํ๋ ํจํค์ง๋ง ๋ค์ ์ปดํ์ผํด์ผ ํฉ๋๋ค(์ด ๊ฒฝ์ฐ์๋ ํจํค์ง ์ธํฐํ์ด์ค๊ฐ ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ์๋ง).
์์ ์์ค ๊ตฌ์ฑ
์ด ์ธ์ด์๋ C์ ๊ฐ์ ์ ์์ค ์ธ์ด์ ์ ํ ๊ด๋ จ์ด ์๋ ๋ค์ํ ๊ณ ๊ธ ๊ตฌ์กฐ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค.
- ๋ผ์ธ
- ํด์ ํ ์ด๋ธ
- ์กฐ๊ฐ
- ๋ ํ์ดํ์ RUBY(๋ถํํ๋ ๋ง์ ์ฌ๋๋ค์ด ๊ทธ ์ ์ฌ๋ ฅ์ ์ต๋ํ ์ดํดํ์ง ๋ชปํ๊ฑฐ๋ ์ฌ์ฉํ์ง ์์)์ ๊ฐ์ ์ธ์ด์์ ์ฐจ์ฉ๋์์ต๋๋ค.
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ
๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ ์ผ๋ฐ์ ์ผ๋ก ๋ณ๋์ ๊ธฐ์ฌ๊ฐ ํ์ํฉ๋๋ค. C++์ ๊ฐ์ ์ธ์ด์์๋ ์ ์ด๊ฐ ์ ์ ์ผ๋ก ๊ฐ๋ฐ์์๊ฒ ๋งก๊ฒจ์ ธ ์์ง๋ง DELPHI์ ๊ฐ์ ์ดํ ์ธ์ด์์๋ ์ฐธ์กฐ ๊ณ์ฐ ๋ชจ๋ธ์ด ์ฌ์ฉ๋์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๊ณ ์ ํด๋ฌ์คํฐ๊ฐ ํ์ฑ๋์๊ธฐ ๋๋ฌธ์ ์ํ ์ฐธ์กฐ๊ฐ ํ์ฉ๋์ง ์์ผ๋ฉฐ Go์๋ ์ด๋ฌํ ํด๋ฌ์คํฐ(์: C#)์ ๋ํ ๊ฐ์ง ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. ๋ํ ๊ฐ๋น์ง ์์ง๊ธฐ๋ ํ์ฌ ์๋ ค์ง ๋๋ถ๋ถ์ ๊ตฌํ๋ณด๋ค ๋ ํจ์จ์ ์ด๋ฉฐ ์ด๋ฏธ ๋ง์ ์ค์๊ฐ ์์ ์ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ์ธ์ด ์์ฒด๋ ๋ณ์๋ฅผ ์ ์ฅํ ๊ฐ์ด ์คํ์ ํ ๋น๋ ์ ์๋ ์ํฉ์ ์ธ์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ์์ ๋ก๋๊ฐ ์ค์ด๋ค๊ณ ํ๋ก๊ทธ๋จ ์๋๊ฐ ํฅ์๋ฉ๋๋ค.
๋์์ฑ๊ณผ ๋์์ฑ
์ธ์ด์ ๋ณ๋ ฌ์ฑ๊ณผ ๊ฒฝ์๋ ฅ์ ์นญ์ฐฌํ ์ ์์ต๋๋ค. ์ ์์ค ์ธ์ด๋ Go์ ์๊ฒฉ์ผ๋ก ๊ฒฝ์ํ ์๋ ์์ต๋๋ค. ๊ณตํํ๊ฒ ๋งํ๋ฉด, ์ด ๋ชจ๋ธ์ ์ธ์ด ์์ฑ์๊ฐ ๋ฐ๋ช ํ ๊ฒ์ด ์๋๋ผ ๋จ์ํ ์ค๋๋ ADA ์ธ์ด์์ ์ฐจ์ฉํ๋ค๋ ์ ์ ์ฃผ๋ชฉํ ๊ฐ์น๊ฐ ์์ต๋๋ค. ์ด ์ธ์ด๋ ๋ชจ๋ CPU๋ฅผ ์ฌ์ฉํ์ฌ ์๋ฐฑ๋ง ๊ฐ์ ๋ณ๋ ฌ ์ฐ๊ฒฐ์ ์ฒ๋ฆฌํ ์ ์์ผ๋ฉฐ ๋ค์ค ์ค๋ ๋ ์ฝ๋์์ ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ํ๋ ๊ต์ฐฉ ์ํ ๋ฐ ๊ฒฝ์ ์กฐ๊ฑด๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ๋ฅผ ํจ์ฌ ๋ ๋ณต์กํ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
์ถ๊ฐ ํํ
์ด์ต์ด ๋๋ค๋ฉด ๋ชจ๋๊ฐ ์ดํ์ ์ด ๋ ๊ฒ์ ๋๋ค.
์ธ์ด๋ ๋ํ ์ฐ๋ฆฌ์๊ฒ ๋ค์๊ณผ ๊ฐ์ ์์ฌํ ์ฌ์ง ์๋ ์ด์ ์ ์ ๊ณตํฉ๋๋ค.
- ํ๋ก์ ํธ๋ฅผ ๋น๋ํ ํ ๋จ์ผ ์คํ ํ์ผ์ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ๋ฐฐํฌ๊ฐ ํฌ๊ฒ ๋จ์ํ๋ฉ๋๋ค.
- ์ ์ ์ ํ ์ง์ ๋ฐ ์ ํ ์ถ๋ก ์ ์ฌ์ฉํ๋ฉด ํ ์คํธ๋ฅผ ์์ฑํ์ง ์๊ณ ๋ ์ฝ๋์ ์ค๋ฅ ์๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ๋๋ ํ ์คํธ๋ฅผ ์ ํ ์์ฑํ์ง ์๊ณ ์ฝ๋ ํ์ง์ ํฌ๊ฒ ์ ํ์ํค์ง ์๋ ์ผ๋ถ ํ๋ก๊ทธ๋๋จธ๋ฅผ ์๊ณ ์์ต๋๋ค.
- ๋งค์ฐ ๊ฐ๋จํ ํฌ๋ก์ค ์ปดํ์ผ๊ณผ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ฐ์ด๋ ์ด์์ฑ์ ํตํด ํฌ๋ก์ค ํ๋ซํผ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํฌ๊ฒ ๋จ์ํํฉ๋๋ค.
- RE2 ์ ๊ท์์ ์ค๋ ๋๋ก๋ถํฐ ์์ ํ๋ฉฐ ์คํ ์๊ฐ์ ์์ธกํ ์ ์์ต๋๋ค.
- ๋๋ถ๋ถ์ ํ๋ก์ ํธ๋ฅผ ํ์ฌ ํ๋ ์์ํฌ ์์ด ์ํํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ฅํ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค.
- ์ธ์ด๋ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ๋ณด๋ค๋ ๋ฌธ์ ์ ์ง์คํ ๋งํผ ๊ฐ๋ ฅํ์ง๋ง, ๋ฌธ์ ๋ฅผ ํจ์จ์ ์ผ๋ก ํด๊ฒฐํ ์ ์์ ๋งํผ ๋ฎ์ ์์ค์ ๋๋ค.
- Go ์์ฝ ์์คํ ์๋ ํ ์คํธ, ๋ฌธ์ํ, ํจํค์ง ๊ด๋ฆฌ, ๊ฐ๋ ฅํ ๋ฆฐํฐ, ์ฝ๋ ์์ฑ, ๊ฒฝ์ ์กฐ๊ฑด ๊ฐ์ง๊ธฐ ๋ฑ ๋ชจ๋ ์ํฉ์ ๋ง๊ฒ ๊ฐ๋ฐ๋ ๋๊ตฌ๊ฐ ์ด๋ฏธ ํฌํจ๋์ด ์์ต๋๋ค.
- Go ๋ฒ์ 1.11์๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ VCS ํธ์คํ ์ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ ์๋ฏธ๋ก ์ ์ข ์์ฑ ๊ด๋ฆฌ ๊ธฐ๋ฅ์ด ๋ด์ฅ๋์ด ์์ต๋๋ค. Go ์ํ๊ณ๋ฅผ ๊ตฌ์ฑํ๋ ๋ชจ๋ ๋๊ตฌ๋ ์ด๋ฌํ ์๋น์ค๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ํ ๋ฒ์ ๋ค์ด๋ก๋, ๋น๋ ๋ฐ ์ค์นํฉ๋๋ค. ์ ๋ง ํ๋ฅญํด์. ๋ฒ์ 1.11์ด ์ถ์๋๋ฉด์ ํจํค์ง ๋ฒ์ ๊ด๋ฆฌ ๋ฌธ์ ๋ ์์ ํ ํด๊ฒฐ๋์์ต๋๋ค.
- ์ธ์ด์ ํต์ฌ ์์ด๋์ด๋ ๋ง์ ์ ์ค์ด๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์ธ์ด๋ ๊ฐ๋ฐ์๊ฐ ๋ช ์์ ์ผ๋ก ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ํํ๋๋ก ์ฅ๋ คํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ ์ ํํฉ๋๋ค. ๊ทธ๋ ์ง ์์ผ๋ฉด ๋จ์ํ ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์์ ํ ์์ด๋ฒ๋ฆด ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋๋ค. ๋ ๋ค๋ฅธ ์ ์ ๋๋ถ๋ถ์ ๊ฐ๋ฐ์๊ฐ ์๋์ ์ผ๋ก ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ๋ฌด์ํ๊ณ ๋จ์ํ ์ค๋ฅ๋ฅผ ์๋ก ์ ๋ฌํ๋ ๋ฐฉ์์ ์ ํธํ๋ค๋ ๊ฒ์ ๋๋ค.
- ์ธ์ด๋ ์์ํ ํํ์ Go์๋ ๊ฐ์์ด ์๊ธฐ ๋๋ฌธ์ ๊ณ ์ ์ ์ธ OOP ๋ฐฉ๋ฒ๋ก ์ ๊ตฌํํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ด๋ ๋ฌธ์ ๊ฐ ๋์ง ์์ต๋๋ค. OOP๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ณด์์ ์ง์ ์ฅ๋ฒฝ์ด ํฌ๊ฒ ์ค์ด๋ญ๋๋ค.
์ง์ญ์ฌํ ์ด์ต์ ์ํ ๋จ์์ฑ
๋ณต์กํ๊ธฐ๋ ์ฝ๊ณ ๋จ์ํํ๊ธฐ๋ ์ด๋ ต์ต๋๋ค.
Go๋ ๋จ์ํ๊ฒ ์ค๊ณ๋์์ผ๋ฉฐ ๊ทธ ๋ชฉํ๋ฅผ ์ฑ๊ณต์ ์ผ๋ก ๋ฌ์ฑํ์ต๋๋ค. ํ์ํฌ์ ์ด์ ์ ์ดํดํ๊ณ ์ํฐํ๋ผ์ด์ฆ ์์ค ์ธ์ด์ ๋์๋ ๊ฐ๋ณ์ฑ์ ์ง์น ๋๋ํ ํ๋ก๊ทธ๋๋จธ๋ฅผ ์ํด ์์ฑ๋์์ต๋๋ค. ๋ฌด๊ธฐ๊ณ ์ ์๋์ ์ผ๋ก ์์ ๊ตฌ๋ฌธ ๊ตฌ์กฐ ์ธํธ๊ฐ ์์ผ๋ฏ๋ก ์๊ฐ์ด ์ง๋๋ ์ค์ ๋ก ๋ณ๊ฒฝ๋์ง ์์ผ๋ฏ๋ก ๊ฐ๋ฐ์๋ ์ธ์ด ํ์ ์ ๋์์ด ์ฐ๊ตฌํ๋ ๊ฒ์ด ์๋๋ผ ๊ฐ๋ฐ์ ๋ง์ ์๊ฐ์ ํ ์ ํ ์ ์์ต๋๋ค.
๊ธฐ์ ์ ๋ํ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ ์ป์ต๋๋ค. ์ง์ ์ฅ๋ฒฝ์ด ๋ฎ์ ์ ๋ฌธ๊ฐ๋ฅผ ๋น ๋ฅด๊ฒ ์ฐพ์ ์ ์๊ณ , ์ธ์ด์ ๋ถ๋ณ์ฑ์ผ๋ก ์ธํด 10๋ ํ์๋ ๋์ผํ ์ฝ๋๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
๋๊ฐ ํฌ๋ค๊ณ ํด์ ์ด๋ค ์ฝ๋ผ๋ฆฌ๋ ๋ ธ๋ฒจ์ ์์์๊ฐ ๋ ์ ์ ์์ต๋๋ค.
๊ฐ์ธ ์์กด์ฌ์ด ํ ์ ์ ๋ณด๋ค ์ฐ์ ํ๋ ํ๋ก๊ทธ๋๋จธ๋ค๊ณผ ํ๋ฌธ์ ๋์ ๊ณผ ๋์๋ "์๊ธฐ ๊ฐ์ "์ ์ข์ํ๋ ์ด๋ก ๊ฐ๋ค์๊ฒ ์ด ์ธ์ด๋ ์ ๋ง ๋์ฉ๋๋ค. ์์ ๊ฒฐ๊ณผ์์ ๋ฏธ์ ์ฆ๊ฑฐ์์ ์ป๊ณ ๋๋ฃ๋ค ์์์ ์์ ์ ์ ๋ฌธ์ฑ์ ๋ณด์ฌ์ฃผ์ธ์(IQ๊ฐ ์๋ ์ด๋ฌํ ๊ธฐ์ค์ผ๋ก ์ง๋ฅ์ ์ธก์ ํ๋ ๊ฒฝ์ฐ). ์ธ์์ ๋ชจ๋ ๊ฒ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก, ๊ทธ๊ฒ์ ๊ฐ์ธ์ ์ธ ์ฐ์ ์์์ ๋ฌธ์ ์ ๋๋ค. ๋ชจ๋ ๊ฐ์น ์๋ ํ์ ๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์ธ์ด๋ ์ด๋ฏธ ๋ณดํธ์ ๊ฑฐ๋ถ์์ ๋์ค ์์ฉ์ ์ด๋ฅด๊ธฐ๊น์ง ๋จผ ๊ธธ์ ๊ฑธ์ด์์ต๋๋ค. ์ธ์ด๋ ๋จ์ํจ์ด ๋ ์ฐฝ์ ์ด๋ฉฐ, ์์๋ค์ํผ ๋ชจ๋ ๋ ์ฐฝ์ ์ธ ๊ฒ์ ๊ฐ๋จํฉ๋๋ค!
์ถ์ฒ : habr.com