๐๐ฅ๐ฅ ๋ผ์ผ๋ฆฌ์ ์ฝ๋ ๋ถ์ค๋ฌ๊ธฐ ๐๐ฅ๐ฅ
์ธํ๋ฐ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋๋ด๋ GO์ธ์ด ํ๋ก๊ทธ๋๋ฐ ํต์ฌ ๊ธฐ์ด ์
๋ฌธ ๊ณผ์ ๊ฐ์ ์ ๋ฆฌ
5.1 Bool boolean ํ์
: ์ฐธ, ๊ฑฐ์ง ์กฐ๊ฑด๋ถ ๋
ผ๋ฆฌ ์ฐ์ฐ์์ ์ฃผ๋ก ํจ๊ป ์ฌ์ฉํ๋ค. !, ||(or) &&(and) ์๋ฌต์ ์ธ ํ ๋ณํ์ ๋ถ๊ฐ๋ฅํ๋ค. 0, Nil โ false ๋ณํ ๋ถ๊ฐ๋ฅ ์์ 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 var b1 bool = true var b2 bool = false b3 := true // b4 := 1 // Error!
๊ฐ์ ํ์ผ๋นํธ๋ฅผ ์ฌ์ฉํ์ฌ ์น ์๋ฒ(nginx) ๋ก๊ทธ ํ์ผ์ ์์งํ๊ณ Elasticsearch Cloud์ ์ ์กํ๋ค. Cloud์์ ์์ฑํ Kibana ์ฌ์ดํธ์ ์ ์ํ๋ฉด ์ฌ๋ฌ ํ๋ซํผ์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ ์ ์๋ ์์ ํ์ผ์ ์ฐธ๊ณ ํ ์ ์๋ค.
ํ์ผ๋นํธ ์ค์น ํ์ผ๋นํธ๋ ์์งํ ๋ก๊ทธ๊ฐ ์์ด๋ ์๋ฒ์ ์ค์นํ๋ค.
1 2 3 4 cd /usr/local/src sudo curl -L -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.11.1-linux-x86_64.tar.gz tar xzvf filebeat-7.11.1-linux-x86_64.tar.gz cd filebeat-7.11.1-linux-x86_64 Elastic Cloud ์ธ์ฆ์ ๋ณด ์ค์ Elastic Cloud ์ ์์ ์ํ์ฌ filebeat.yml์ ๊ด๋ จํญ๋ชฉ์ ์ฃผ์์ ํด์ ํ๊ณ ์ธ์ฆ์ ๋ณด๋ฅผ ์ค์ ํ๋ค. ๊ทธ ์ธ ํ์ํ ์ค์ ์ ๋ณด๋ ์๋ ๋งํฌ๋ฅผ ์ฐธ์กฐํ๋ค.
์ธํ๋ฐ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋๋ด๋ GO์ธ์ด ํ๋ก๊ทธ๋๋ฐ ํต์ฌ ๊ธฐ์ด ์
๋ฌธ ๊ณผ์ ๊ฐ์ ์ ๋ฆฌ
4.1 Go ํจํค์ง Go์ ํจํค์ง๋ ์ฝ๋ ๊ตฌ์กฐํ(๋ชจ๋ํ) ๋ฐ ์ฌ์ฌ์ฉ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ์์ง๋, ๊ฒฐํฉ๋๋ฅผ ๋์จํ๊ฒ ํด์ผ ์ ์ง๋ณด์๊ฐ ์ฝ๊ณ ๊ฐ๋
์ฑ์ด ์ข์์ง๋ค. ํด๋ฆฐ์ฝ๋ Go๋ ํจํค์ง๋ฅผ ์ฌ์ฉํด์ ์์ ๋จ์์ ์ปดํฌ๋ํธ๋ฅผ ์์ฑํ๊ณ ์ด๋ฌํ ์์ ํจํค์ง๋ฅผ ๊ฒฐํฉํด์ ํ๋ก๊ทธ๋จ์ ์์ฑํ ๊ฒ์ ๊ถ๊ณ ํ๊ณ ์๋ค. ํจํค์ง์ด๋ฆ = ๋๋ ํ ๋ฆฌ ์ด๋ฆ ๊ฐ์ ํจํค์ง ๋ด ์์คํ์ผ๋ค์ ๋๋ ํ ๋ฆฌ๋ช
์ ํจํค์ง๋ช
์ผ๋ก ์ฌ์ฉํ๋ค. ๋ค์ด๋ฐ ๊ท์น : ์๋ฌธ์ private ๋๋ฌธ์ public Go์์ main ํจํค์ง๋ ํน๋ณํ๊ฒ ์ธ์๋๋ค โ ์ปดํ์ผ๋ฌ์์๋ ํ๋ก๊ทธ๋จ์ ์์์ start point๋ก ์ธ์ํ๋ค.
๊ฐ์ Elastic Cloud๋ก ๋ฐ์ดํฐ ๋ง์ด๊ทธ๋ ์ด์
ํ๊ธฐ A to Z
filebeat, logstash ๋ ๋ฐ์ดํฐ ์์ค๊ฐ ์๋ ์์คํ
์ ์ค์นํ๊ณ , Elasticsearch, Kinaba ๋ Elastic Cloud ๋ก ์ธํ
ํ์ฌ ์ฌ์ฉํ๋ค.
์๋ผ์คํฑ์์น ์ด์ ๋ชจ๋ํฐ๋ง ๊น์ง Elastic Cloud ์์ ๋ชจ๋ ์ง์ํ๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๊ตฌ์ฑํ์ง ์์๋ ๋๋ค.
Elastic Cloud ๊ตฌ์กฐ ์์
๋ชฉํ On-promise๋ก ๊ตฌ์ฑ๋์ด ์๋ ๊ฒ์์ด ํค์๋๋ฅผ Elastic Cloud ํ๊ฒฝ์ผ๋ก ์ด๊ดํ๋ค. ์ถํ์ ๋งต์ผ๋ก ์๊ฐํ ํ ์ ์๋๋ก ๊ธฐ์กด ๋ฐ์ดํฐ์ location(latitude, longitude)๋ฅผ ์ถ๊ฐํ๋ค. ํ์ฌ ์์คํ
๊ตฌ์ฑ ํ์ฌ ๊ตฌ์ฑ๋์ด ์๋ ๊ฒ์์ด ํค์๋ ์ธ๋ฑ์ค ๋ช
โ wini_srch_kwrd_hist-yyyymm ES_MASTER ์๋ฒ์์ ๋ก๊ทธ์คํ์๊ฐ ๋งค์ผ 09:00 ๋ง๋ค ํค์๋ ํ
์ด๋ธ์ ์กฐํํ์ฌ ์๋ผ์คํฑ์์น์ ์ ์ฅ์ํค๊ณ ์๋ค.
์ธํ๋ฐ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋๋ด๋ GO์ธ์ด ํ๋ก๊ทธ๋๋ฐ ํต์ฌ ๊ธฐ์ด ์
๋ฌธ ๊ณผ์ ๊ฐ์ ์ ๋ฆฌ
3.1 ์กฐ๊ฑด๋ฌธ 3.1.1 ์กฐ๊ฑด๋ฌธ IF if ๋ฌธ์ ๋ฐ๋์ Boolean ํ์ผ๋ก ๊ฒ์ฌํด์ผ ํ๋ค. ๋ค๋ฅธ ์ธ์ด์ฒ๋ผ 1, 0 ์ผ๋ก ์กฐ๊ฑด๋ฌธ์ ์ฌ์ฉํ ์ ์๋ค โ ์๋ ํ๋ณํ ๋ถ๊ฐ ์๊ดํธ๋ ์ฌ์ฉํ์ง ์๋๋ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 func main() { var a int = 20 b := 20 if a >= 15 { fmt.
์ธํ๋ฐ ์ฝ๊ณ ๋น ๋ฅด๊ฒ ๋๋ด๋ GO์ธ์ด ํ๋ก๊ทธ๋๋ฐ ํต์ฌ ๊ธฐ์ด ์
๋ฌธ ๊ณผ์ ๊ฐ์ ์ ๋ฆฌ
2.1 ๋ณ์ ๋ฐ ์์ ๋ณ์ ์ ์ธ GO ์ธ์ด๋ ์๋ฃํ์ ์ ์ ์ผ๋ก ๊ฒ์ฌํ๋ฏ๋ก ๋ณ์์ ์๋ฃํ์ด ์ ํด์ ธ ์๋ค. ์ ์ ์๋ฃํ์ ์ง์ํ์ง๋ง ์๋ฃํ ์ ์ธ ํ ๋นํ๋ ๋ฒ๊ฑฐ๋ก์์ ๋ฒ์ด๋๊ฒ ํด์ฃผ๋ ์๋ฃํ ์ถ๋ก ๊ธฐ๋ฅ์ด ์๋ค. ์ ์ ํ์
0, ์ค์ 0.0, ๋ฌธ์์ด “”, boolean (true, false) ๋ณ์ ๋ช
์ ์ฒซ ๊ธ์๋ ์ซ์๋ก ์์ํด์๋ ์๋๋ค. ๋์๋ฌธ์๋ ๊ตฌ๋ถํ๋ฉฐ ๋ฌธ์, ์ซ์, ๋ฐ์ค, ํน์๊ธฐํธ๋ก ๋ณ์๋ช
์ ์ธ์ด ๊ฐ๋ฅํ๋ค. 1 2 3 4 5 6 7 8 9 10 11 12 13 var a int var b string var c, d, e int var f, g, h int = 1, 2, 3 var i float32 = 11.