ÀÌ·ÐÀûÀÎ ¼³¸í»Ó¸¸ ¾Æ´Ï¶ó ½ÇÁ¦ ÄÚµå ¿¹Á¦¿Í ½Ç½À ȯ°æ ±¸Ãà °¡À̵带 Á¦°øÇØ µ¶ÀÚ°¡ Go ¾ð¾î¸¦ »ç¿ëÇÑ ³×Æ®¿öÅ© ÀÚµ¿È ¼Ö·ç¼Ç °³¹ß ´É·ÂÀ» Çâ»ó½Ãų ¼ö ÀÖ´Â Áö½ÄÀ» Á¦°øÇÑ´Ù. ÀÌ Ã¥À» ÅëÇØ ³×Æ®¿öÅ© ÀÚµ¿ÈÀÇ °³³ä, Go ÇÁ·Î±×·¡¹Ö ±â¹ý, ´Ù¾çÇÑ ÀÚµ¿È µµ±¸ ¹× API È°¿ë ¹æ¹ý µîÀ» ¹è¿ì°í ½ÇÁ¦ ³×Æ®¿öÅ© ȯ°æ¿¡ Àû¿ëÇÒ ¼ö ÀÖ´Ù.
1ºÎ. Go ÇÁ·Î±×·¡¹Ö ¾ð¾î
1Àå. ¼Ò°³
±â¼ú ¿ä±¸»çÇ×
³×Æ®¿öÅ·°ú Go
¿Ö GoÀΰ¡?
ºñ±â¼úÀûÀÎ ÀÌÀ¯
GoÀÇ ¹Ì·¡
±â¼úÀûÀÎ ÀÌÀ¯
³×Æ®¿öÅ·À» À§ÇÑ Go
Go¿Í ÆÄÀ̽ã
ÄÚµå ½ÇÇà
ŸÀÔ ½Ã½ºÅÛ
¼º´É
»ç¿ë ÆíÀǼº
¸Þ¸ð¸® °ü¸®
±¸¹®
Àå¾Ö ó¸®
µ¿½Ã¼º
Ä¿¹Â´ÏƼ
Go ¼³Ä¡Çϱâ
À©µµ¿ìÁî
¸Æ
¸®´ª½º
¿ä¾à
Âü°í ¹®Çå
2Àå. GoÀÇ ±âÃÊ
±â¼ú ¿ä±¸»çÇ×
Go¶õ ¹«¾ùÀΰ¡?
GoÀÇ °Ý¾ð
Go ¼Ò½º ÄÚµå ÆÄÀÏ
ÆÐÅ°Áö
Go ¸ðµâ
ÆÐÅ°Áö ÀÓÆ÷Æ®Çϱâ
ÁÖ¼®
À̸§
Go ÄÚµå ½ÇÇàÇϱâ
¿Â¶óÀο¡¼ Go ÇÁ·Î±×·¥ ½ÇÇàÇϱâ
Go Playground
Go Play Space
¹Ì·¡ ¿³º¸±â
Go ¼Ò½º ÄÚµå °ü¸®¸¦ À§ÇÑ go µµ±¸
build
run
mod
get
install
fmt
test
env
¿ä¾à
Âü°í ¹®Çå
3Àå. Go ½ÃÀÛÇϱâ
±â¼ú ¿ä±¸»çÇ×
GoÀÇ Å¸ÀÔ ½Ã½ºÅÛ
±âº» ŸÀÔ
ÄÁÅ×À̳ÊÇü
»ç¿ëÀÚ Á¤ÀÇ Å¸ÀÔ
»ê¼ú, ºñ±³, ³í¸® ¿¬»êÀÚ
»ê¼ú ¿¬»êÀÚ
³í¸® ¿¬»êÀÚ
ºñ±³ ¿¬»êÀÚ
Á¦¾î È帧
for ·çÇÁ
Á¶°Ç¹®
goto ¹®
ÇÔ¼ö
ÇÔ¼ö Àμö
¿¡·¯ ó¸®
¸Þ¼µå
°¡º¯ Àμö ÇÔ¼ö
Ŭ·ÎÀú
µðÆÛ
ÀÎÅÍÆäÀ̽º
³×Æ®¿öÅ© ÀÚµ¿È ¿¹Á¦
Ç¥ÁØ ¶óÀ̺귯¸®ÀÇ ¿¹
°è¾àÀ¸·Î¼ÀÇ ÀÎÅÍÆäÀ̽º
I/O ¿¬»ê
io.Reader ÀÎÅÍÆäÀ̽º
io.Writer ÀÎÅÍÆäÀ̽º
io.Copy ÇÔ¼ö
ÇÕ¼º
µðÄÚµù°ú ÀÎÄÚµù
µðÄÚµù
ÀÎÄÚµù
µ¿½Ã¼º
°í·çƾ
ä³Î
ä³Î°ú ŸÀ̸Ó
°øÀ¯ µ¥ÀÌÅÍ ¾×¼¼½º
µ¿½Ã¼º ÁÖÀÇ»çÇ×
¿ä¾à
Âü°í ¹®Çå
4Àå. Go¸¦ »ç¿ëÇÏ´Â ³×Æ®¿öÅ·(TCP/IP)
±â¼ú ¿ä±¸»çÇ×
¸µÅ© °èÃþ
³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º
ÀÌ´õ³Ý
ÀÎÅÍ³Ý °èÃþ
net ÆÐÅ°Áö
»õ·Î¿î netip ÆÐÅ°Áö
IP ÁÖ¼Ò·Î ÀÛ¾÷Çϱâ
°æ·Î Á¶È¸
Àü¼Û °èÃþ
UDP ÇÎ ¾ÖÇø®ÄÉÀ̼Ç
ÀÀ¿ë °èÃþ
HTTP Ŭ¶óÀ̾ðÆ® ÀÛ¾÷
HTTP ¼¹ö ÀÛ¾÷
¿ä¾à
Âü°í ¹®Çå
2ºÎ. ÀϹÝÀûÀÎ µµ±¸¿Í ÇÁ·¹ÀÓ¿öÅ©
5Àå. ³×Æ®¿öÅ© ÀÚµ¿È
±â¼ú ¿ä±¸»çÇ×
³×Æ®¿öÅ© ÀÚµ¿È¶õ?
³×Æ®¿öÅ© ÀÚµ¿È°¡ ÇÊ¿äÇÑ ÀÌÀ¯
»óÇâ½Ä °üÁ¡
ÇÏÇâ½Ä °üÁ¡
³×Æ®¿öÅ© ¿î¿µ ÀÛ¾÷ ÀÚµ¿È
±¸¼º °ü¸®
³×Æ®¿öÅ© »óÅ ºÐ¼®
³×Æ®¿öÅ© °¨»ç ¹× º¸°í¼ ÀÛ¼º
½Ã½ºÅÛ Á¢±Ù ¹æ½Ä
Æó·çÇÁ ÀÚµ¿È
µ¥¸ð ¾ÖÇø®ÄÉÀ̼Ç
¿ä¾à
Âü°í ¹®Çå
6Àå. ±¸¼º °ü¸®
±â¼ú ¿ä±¸»çÇ×
ȯ°æ ¼³Á¤
ÅäÆú·ÎÁö ¸¸µé±â
SSH¸¦ ÅëÇØ ³×Æ®¿öÅ© ÀåÄ¡¿Í »óÈ£ÀÛ¿ëÇϱâ
³×Æ®¿öÅ© ÀåÄ¡ ±¸¼º ¼³¸íÇϱâ
GoÀÇ SSH ÆÐÅ°Áö¸¦ »ç¿ëÇØ ³×Æ®¿öÅ© ÀåÄ¡¿¡ ¾×¼¼½ºÇϱâ
ÀÏ»óÀûÀÎ SSH ÀÛ¾÷ ÀÚµ¿ÈÇϱâ
HTTP¸¦ ÅëÇØ ³×Æ®¿öÅ© ÀåÄ¡¿Í »óÈ£ÀÛ¿ëÇϱâ
GoÀÇ HTTP ÆÐÅ°Áö¸¦ »ç¿ëÇØ ³×Æ®¿öÅ© ÀåÄ¡¿¡ ¾×¼¼½ºÇϱâ
HTTP¸¦ ÅëÇØ ´Ù¸¥ ½Ã½ºÅÛ¿¡¼ ±¸¼º ÀÔ·Â °¡Á®¿À±â
»óÅ ȮÀÎ
¶ó¿ìÆà Á¤º¸ È®ÀÎÇϱâ
ÀåÄ¡ °£ µµ´Þ °¡´É¼º È®ÀÎÇϱâ
¿ä¾à
Âü°í ¹®Çå
7Àå. ÀÚµ¿È ÇÁ·¹ÀÓ¿öÅ©
±â¼ú ¿ä±¸»çÇ×
¾Ø¼ºí
¾Ø¼ºí ±¸¼º ¿ä¼Ò
¾Ø¼ºí ¸ðµâ·Î ÀÛ¾÷Çϱâ
¾Ø¼ºí ¸ðµâ °³¹ßÇϱâ
Ç÷¹ÀÌºÏ ½ÇÇàÇϱâ
Å׶óÆû
Å׶óÆûÀÇ ±¸¼º ¿ä¼Ò
Å׶óÆû »ç¿ëÇϱâ
Å׶óÆû Á¦°øÀÚ °³¹ßÇϱâ
³×Æ®¿öÅ· Á¦°øÀÚ
±âŸ ÀÚµ¿È ÇÁ·¹ÀÓ¿öÅ©
Gornir
Consul-Terraform-Sync
mgmt
¹Ì·¡ Àü¸Á
¿ä¾à
Âü°í ¹®Çå
3ºÎ. API È°¿ëÇϱâ
8Àå. ³×Æ®¿öÅ© API
±â¼ú ¿ä±¸»çÇ×
API µ¥ÀÌÅÍ ¸ðµ¨¸µ
OpenAPI
µ¥ÀÌÅÍ ¸ðµ¨¸µ
µ¥ÀÌÅÍ ÀÔ·Â
ÀåÄ¡ ±¸¼º
JSON-RPC
ÄÚµå »ý¼º
±¸¼º ºôµåÇϱâ
ÀåÄ¡ ±¸¼º
RESTCONF
ÄÚµå »ý¼º
±¸¼º ºôµåÇϱâ
ÀåÄ¡ ±¸¼º
»óÅ ȮÀÎ
ÀÛµ¿ »óÅ ¸ðµ¨¸µ
ÀÛµ¿ »óÅ ó¸®Çϱâ
gRPC
Protobuf
gRPC Àü¼Û
gRPC ¼ºñ½º Á¤ÀÇÇϱâ
gRPC·Î ³×Æ®¿öÅ© ÀåÄ¡ ±¸¼ºÇϱâ
gRPC·Î ³×Æ®¿öÅ© ÀåÄ¡¿¡¼ ¿ø°Ý ÃøÁ¤ ½ºÆ®¸®¹ÖÇϱâ
¿ä¾à
Âü°í ¹®Çå
9Àå. OpenConfig
±â¼ú ¿ä±¸»çÇ×
ÀåÄ¡ ÇÁ·ÎºñÀú´×
Set RPC
gNMI·Î ³×Æ®¿öÅ© ÀÎÅÍÆäÀ̽º ±¸¼ºÇϱâ
½ºÆ®¸®¹Ö ¿ø°Ý ÃøÁ¤
Subscribe RPC
gNMI¸¦ »ç¿ëÇÑ ½ºÆ®¸®¹Ö ¿ø°Ý ÃøÁ¤ ó¸® ÆÄÀÌÇÁ¶óÀÎ
À̺¥Æ® °ü¸®Áö »ùÇà ÇÁ·Î±×·¥
µ¥ÀÌÅÍ °¡½ÃÈÇϱâ
³×Æ®¿öÅ© ¿î¿µ
Traceroute RPC
°æ·Î °ËÁõ±â ¾ÖÇø®ÄÉÀ̼Ç
¿ä¾à
Âü°í ¹®Çå
10Àå. ³×Æ®¿öÅ© ¸ð´ÏÅ͸µ
±â¼ú ¿ä±¸»çÇ×
µ¥ÀÌÅÍ Æò¸é ¿ø°Ý ÃøÁ¤ ó¸®
ÆÐŶ ĸó
ÆÐŶ ÇÊÅ͸µ
ÆÐŶ ó¸®
Æ®·¡ÇÈ ¸¸µé±â
Go ÇÁ·Î±×·¥ µð¹ö±ë
IDE¿¡¼ µð¹ö±ëÇϱâ
µ¥ÀÌÅÍ Æò¸é ¿ø°Ý ÃøÁ¤ Áý°è
»óÀ§ ÅäÄ¿
Go ÇÁ·Î±×·¥ Å×½ºÆ®
Á¦¾î Æò¸é ¼º´É ÃøÁ¤
BGP ¾÷µ¥ÀÌÆ® ÀüÆÄ ½Ã°£ ÃøÁ¤
À̺¥Æ® ±â¹Ý BGP »óÅ ±â°è
BGP ¸Þ½ÃÁö ÀÎÄÚµù ¹× µðÄÚµù
ÃøÁ¤ ÁöÇ¥ ¼öÁý ¹× ³ëÃâ
ÃøÁ¤ ÁöÇ¥ ÀúÀå ¹× ½Ã°¢È
ºÐ»ê ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß
¿ä¾à
Âü°í ¹®Çå
11Àå. Àü¹®°¡ÀÇ ½Ä°ß
µ¥À̺ñµå ¹Ù·Î¼Ò
½ºÆ©¾îÆ® Ŭ¶ô
Ŭ¶ó¿ìµð¾Æ µå ·ç³ª
¾Ë·º½Ã½º µå Å»·ç¿§
Á¸ µµÅ©
·Î¸¸ µµµò
µ¥À̺ñµå Áö
´Ù´Ï¿¤ Ç츣Ã÷¹ö±×
¸¶Ä¿½º ÇÏÀÎÁî
½º³×ÇÏ Àα¸¹Ù
¾ÈÅä´Ï¿À ¿ÀÇì¾Æ
Ä® ¸óŸ³ª¸®
ºê·»Æ® ¼ÖÁ¸®
¸·½Ã¹Ð¸®¾È ºôÇ︧
¸ÅÆ® ¿À½º¿ÐÆ®
Âü°í ¹®Çå
12Àå. ºÎ·Ï: Å×½ºÆ® ȯ°æ ±¸Ãà
Å×½ºÆ® ȯ°æÀ̶õ?
1´Ü°è - Å×½ºÆ® ȯ°æ ±¸ÃàÇϱâ
2´Ü°è - ÄÁÅ×ÀÌ³Ê À̹ÌÁö ¾÷·ÎµåÇϱâ
3´Ü°è - Å×½ºÆ® ȯ°æ°ú »óÈ£ÀÛ¿ëÇϱâ
°¡»ó ³×Æ®¿öÅ© ÅäÆú·ÎÁö ½ÃÀÛÇϱâ
ÀåÄ¡¿¡ ¿¬°áÇϱâ
³×Æ®¿öÅ© ÅäÆú·ÎÁö »èÁ¦Çϱâ
4´Ü°è - Ŭ¶ó¿ìµå È£½ºÆà ȯ°æ Á¤¸®Çϱâ
Âü°í ¹®Çå