狠狠撸

狠狠撸Share a Scribd company logo
Golang/Server
Week5
GDG on Campus KHU: Backend
旯霃勳榿,鞁犼贝鞖
Chapter15:
臧滊皽頇橁步 鞝曤箘頃橁赴
- 牍Μ 臧滊皽 頃 靾 鞛堦矊 霃勳檧欤缄碃, 鞏措敂靹滊摖 霃岇晞臧 靾 鞛堦矊 頃挫雼る姅 氇啝
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
Docker霝?
- 瓿缄卑 鞎犿攲毽紑鞚挫厴霌れ潃 頃 旎错摠韯 鞎堨棎靹 氇憪 鞖挫榿. 攴鸽煬雼る炒雼 頃 鞎犿攲毽紑鞚
靺橃棎靹 氍胳牅臧 氚滌儩頃橂┐ 雼るジ 鞎犿攲毽紑鞚挫厴旯岇霃 頂柬暣. OS毳 瓿奠湢頃橁碃 鞛堦赴 霑岆.
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
Docker臧 霌膘灔頃橁矊 霅 氚瓣步
- 旎厡鞚措剤 頂岆灚韽检澊 霌膘灔. 旎厡鞚措剤
電 斓滌唽頃滌潣 頃勳殧頃 頇橁步鞖旍唽毵 氍
鞏挫劀 旎厡鞚措剤搿 毵岆摛鞏 靹滊箘鞀る
鞝滉车. 霃呺靹彪弰 鞙犾鞁滍偆瓿 鞛戩潃 鞖
霟夓溂搿滊弰 鞙犾 臧電.
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
Docker臧 霌膘灔頃橁矊 霅 氚瓣步
Go 牍岆摐 -> 雼澕 氚旍澊雱堧Μ 韺岇澕搿 氚绊彫 臧電. 霐半澕靹 旎厡鞚措剤 鞛戩劚 鞁滌棎霃 牍岆摐霅
氚旍澊雱堧Μ毵 旎厡鞚措剤鞐 韽暔 鞁滍偆氅 霅
- 攵堩晞鞖旐暅 韺岇澕 鞝勳啞 氚╈, 牍岆摐 靻嶋弰 頄レ儊 鞙勴暣 ignore 觳橂Μ
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
.dockerignore
- 牍岆摐 鞝勳棎 靻岇姢 旖旊摐 霌膘澊 攵堩晞鞖旐晿氙搿 欷戧皠 牍岆摐 鞀ろ厡鞚挫鞐愳劀 牍岆摐頃橂姅 氅
韹 鞀ろ厡鞚挫 牍岆摐毳 鞁れ嫓
鈥 氅韹办姢韰岇澊歆 牍岆摐毳 靷毄頃橃棳 鞚挫爠 雼硠鞐愳劀 靸濎劚霅 鞚措歆鞕 旌愳嫓毳 頇滌毄.
氤瓴诫悳 攵攵勲 雼れ嫓 牍岆摐頃橁碃, 鞚挫爠 雼硠鞐愳劀 靸濎劚霅 鞚措歆鞕 旌愳嫓毳 鞛偓鞖
頃溂搿滌崹 欷戨车 鞛戩梾鞚 斓滌唽頇旐晿瓿 牍岆摐 靻嶋弰毳 頄レ儊.
鈥 牍岆摐 雼硠鞐愳劀 靸濎劚霅 瓴瓣臣氍 欷 霟绊儉鞛 頇橁步鞐愳劀 頃勳殧頃 斓滌唽頃滌潣 甑劚毵岇潉
靹犿儩頃橃棳 斓滌 鞚措歆搿 靸濎劚頃╇媹雼. 鞚措ゼ 韱淀暣 鞚措歆鞚 韥赴毳 欷勳棳 鞚措歆
雼れ毚搿滊摐 氚 氚绊彫 鞁滉皠鞚 雼稌
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
氅韹 鞀ろ厡鞚挫 牍岆摐霝?
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
Docker 韺岇澕 鞛戩劚 : stage1 -> 氚绊彫鞖 牍岆摐 雼硠
- 甑愳灛鞕 雼るジ 雮挫毄 : Go 氩勳爠 靾橃爼
- GO 鞏胳柎鞚 瓿奠嫕 Docker 鞚措歆毳
靷毄頃滊嫟電 鞚橂 -> 鞚戩毄 頂勲攴鸽灗瓿
攴戈矁鞚 鞁ろ枆頃橂姅雿 頃勳殧頃 氇摖 瓴
鞚 韽暔頃橂姅 霃呺鞝侅澑 韺偆歆 (Go 鞏
鞏, 旎错寣鞚茧煬, 旮半掣 臧滊皽霃勱惮, 頃勳殧頃
頇橁步 靹れ爼 霌膘澊 氇憪 氙鸽Μ 靹れ爼霅橃柎
鞛堧姅 旎厡鞚措剤 鞝勲嫭)
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
Docker 韺岇澕 鞛戩劚 : stage2 -> 斓滌 氚绊彫毳 鞙勴暅 雼硠
- 鞁れ牅 氚绊彫 頇橁步鞐愳劀 靷毄頃 斓滌唽
頃滌潣 鞚措歆 靸濎劚 雼硠
- 鞁ろ枆 韺岇澕毵 氤奠偓頃橂┌ 瓴诫焿頇
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
Docker 韺岇澕 鞛戩劚 : stage3 -> 臧滊皽 搿滌滑 頇橁步 靹れ爼
- 旖旊摐 氤瓴届偓頃潉 鞁れ嫓臧勳溂搿 氚橃榿
頃橃棳 靹滊矂毳 鞛嫓鞛戫暣欤茧姅 旮半姤鞚
鞝滉车頃橂姅 air 鞚措澕電 霃勱惮
- Go 1.23 氩勳爠鞐 毵烄栋 鞚 攵攵勲弰 氤
瓴巾暣欷橃暭頃
- 臧滊皽 頇橁步鞐愳劀 旖旊摐 氤瓴届潉 臧愳
頃橁碃 鞛愲彊鞙茧 鞎犿攲毽紑鞚挫厴鞚
鞛嫓鞛 鞙勴暅 靹れ爼
- 靹れ爼 韺岇澕鞐愳劀 臧愳嫓搿滊秬韯 鞝滌櫢
頃 霐旊爥韯半Μ, 鞚胳垬 歆鞝 臧電
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
鞛愲彊 靸堧瓿犾龚 頇橁步 : air.toml
- 搿滉犯 韺岇澕 瓴诫, 韺岇澕 氤瓴 頉 雽
旮 鞁滉皠, 鞓る 觳橂Μ, 搿滉犯 於滊牓 鞁
靷毄頃 靸夓儊, 頂勲攴鸽灗 膦呺 鞁
鞛勳嫓 霐旊爥韯半Μ 靷牅 鞐秬 霌膘潉
靹れ爼 臧電
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
鞛愲彊 靸堧瓿犾龚 頇橁步 : air.toml
搿滌滑 臧滊皽 頇橁步鞚 鞙勴暅 Docker Compose
靹れ爼 韺岇澕
- target=dev : 臧滊皽鞖
- Volumes 靹れ爼 霑岆鞐 旖旊摐 靾橃爼頃橂┐
氚旊 旎厡鞚措剤 氚橃榿霅
- 鞗 敫岆澕鞖办爛鞐愳劀 localhost:18000鞙茧
鞝戩啀頃橂┐ 旎厡鞚措剤鞚 80韽姼搿 鞐瓣舶
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
霃勳护 甑劚旮 靹れ爼 : docker-compose.yml
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
霃勳护 甑劚旮 頇橁步鞚 霃欖瀾 頇曥澑
鈼 霃勳护 靹れ箻 : https://www.docker.com/products/docker-desktop/
-> Window Home 氩勳爠鞚 靷毄頃滊嫟氅,
docker-desktop鞚 wsl2搿滊 臧電
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
霃勳护 甑劚旮 頇橁步鞚 霃欖瀾 頇曥澑
鈼 牍岆摐 氇呺牴鞏 : docker compose build 鈥-no-cache
鈼 旎厡鞚措剤 鞁ろ枆 氇呺牴鞏 : docker compose up
鈼 膦呺頃橂牑氅 docker compose up 氇呺牴欷勳棎靹 ctrl + c
霃勳护毳 靷毄頃 鞁ろ枆頇橁步
霃勳护 甑劚旮 頇橁步鞚 霃欖瀾 頇曥澑
鞛愳< 靷毄頃橂姅 氇呺牴鞚 make 氇呺牴鞙茧 毵岆摛鞏 霊愱碃 須湪鞝侅溂搿 氚橂车 鞁ろ枆
Ex. make up 氇呺牴鞚 鞁ろ枆頃橂┐ 氚标犯霛检毚霌滌棎靹 鞛愲彊 靸堧瓿犾龚 臧滊皽 頇橁步 鞁ろ枆霅
Makefile 於旉皜頃橁赴
Makefile 於旉皜
- 旯冺棃敫岆ゼ 鞚挫毄頃 頀 毽橃姢韸 旮半皹鞚 臧滊皽鞐愳劀電 於旉皜, 氤瓴 旖旊摐毳 靷瀸鞚
歆侅爲 毽钒 頃 頉 CI 頇橁步鞚 靹れ爼頃挫劀 韰岇姢韸 旖旊摐雮 鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆
- 旯冺棃敫 鞎§厴鞚 旯冺棃敫 霠堩彫歆韯半Μ鞐 .github/workflows/ 霐旊爥韯半Μ 鞎勲灅鞐
yaml 韺岇澕鞚 氚办箻頃橁赴毵 頃橂┐ 靷毄 臧電
旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步
旯冺棃敫 鞎§厴鞚 甓岉暅 靾橃爼
旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步
旯冺棃敫 鞎§厴鞚 甓岉暅 靾橃爼
旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步
韰岇姢韸胳檧 旖旊摐 旎る矂毽 鞛愲彊 鞁ろ枆
- .github/workflows/test.yml
- 韰岇姢韸鸽ゼ 鞛愲彊鞙茧 鞁ろ枆頃橁碃 旖旊摐 旎
氩勲Μ歆 氤搓碃靹滊ゼ 靸濎劚頃橁赴 鞙勴暅 靹れ爼
- 雼れ枒頃 鞝曥爜 攵勳劃 韴挫澊 臁挫灛. 臧侁皝 頃橂倶鞌 鞁ろ枆頃橂┐ 甏毽皜 頌橂摛旮 霑岆鞐 gola
ngci-lint 氇呺牴鞚 靷毄頃挫劀 鞐煬 臧滌潣 鞝曥爜 攵勳劃 韴挫潉 順胳稖
- reviewdog/actions-golangci-lint 靷毄頃橂┐ 鞝曥爜 攵勳劃鞐愳劀 鞓る 氤搓碃 鞁 PR鞚 頃
雼 旖旊摐鞐 旮半頃挫
旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步
鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆
- .github/workflows/golangci.yml
旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步
鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆
旯冺棃敫岇棎靹 旖旊摐 臧鞝胳槾
猫 golangci-lint搿 旖旊摐 頀堨 瓴靷
猫 -瓴靷 瓴瓣臣毳 PR鞐 旖旊韸鸽 雮箑
- .golangci.yml (root 霐旊爥韯半Μ)
旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步
鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆
Go 旖旊摐鞚 頀堨鞚 瓴靷晿電 golangci-
lint鞚 靹れ爼 韺岇澕.
臧 毽绊劙電 旖旊摐鞚 靹滊 雼るジ 旄‰┐鞚
瓴靷晿鞐 鞛犾灛鞝侅澑 氍胳牅雮 臧滌劆鞚 頃
鞖旐暅 攵攵勳潉 彀眷晞
Chapter16:
HTTP 靹滊矂毳 鞎巾暅 瓴绊暕
甑劚鞙茧 氤瓴巾晿旮
HTTP 靹滊矂毳 鞎巾暅 瓴绊暕鞙茧 氤瓴巾暅雼る姅 鞚橂電
靹滊矂鞕 雼るジ 甑劚 鞖旍唽 臧勳潣 鞚橃〈靹膘潉 斓滌唽頇旐晿鞐,
靹滊矂臧 雼るジ 鞁滌姢韰滌澊雮 靹滊箘鞀れ棎 雿 鞚橃〈頃橂弰搿 毵岆摐電 瓴冹潉 霚豁暅雼.
Beyond the Twelve-Factor App
- 鞝鞛: Kevin Hoffman
- 於滍寪靷: O鈥橰eilly Media
- 於滍寪鞚: 2016雲
斓滉芳 靻岉攧韸胳洦鞏措ゼ 靹滊箘鞀 順曧儨搿 鞝滉车頃
電 瓴 鞚茧皹頇旊悩氅挫劀, 鞗轨暠 順轨潃
SaaS(Software As A Service)霛缄碃 攵毳搓矊
霅橃棃雼. Twelve-Factor app鞚 鞎勲灅 韸轨鞚
臧歆 SaaS 鞎膘潉 毵岆摛旮 鞙勴暅 氚╇矔搿犾澊雼.
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.193
Configuration, credentials, and code
1. 甑劚 鞝曤炒鞕 鞛愱博 歃濍獏鞚 攵勲Μ
2. 氤挫晥 鞙犾
3. 鞚缄磤靹
臧滊皽鞚 歆勴枆頃橂嫟 氤措┐ 鞎犿攲毽紑鞚挫厴 旖旊摐臧 鞎勲媽 鞕鸽秬鞐愳劀 歆鞝曧晿
瓿 鞁鹅潃 鞝曤炒臧 鞝愳爯 電橃柎雮滊嫟!
-> 頇橁步 氤靾橂ゼ 靷毄頃橂弰搿 靾橃爼頃橃棳 頇橁步 氤靾橂攵韯 臧 鞝曤炒毳 攵
霟槫鞛!
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.193
Config 韺偆歆 甑槃頃橁赴
https://github.com/caarlos0/env
1. Go get鞙茧 env 韺偆歆毳 雼れ毚搿滊摐
(斓滌嫚 氩勳爠鞚 v11)
2. Config 霐旊爥韱犽Μ 靸濎劚
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.193
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.194
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.194
Config 甑“觳 靹犾柛
1. Env電 鞎犿攲毽紑鞚挫厴鞚 鞁
頄 頇橁步 臧
ex)
1. dev - 臧滊皽 頇橁步
2. test - 韰岇姢韸 頇橁步
3. staging - 鞀ろ厡鞚挫
(瓴歃) 頇橁步
4. prod - 頂勲雿曥厴(鞁
鞝 鞖挫榿) 頇橁步
2. Port電 韽姼 氩堩樃
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.194
New 頃垬 甑槃
1. Config 甑“觳挫潣 韽澑韯
靸濎劚
2. env.Prase(cfg)電 cfg 甑
臁办泊毳 鞚胳瀽搿 氚涭晞 頇
瓴 氤靾橃棎 歆鞝曤悳 臧掛潃
Config 甑“觳挫潣 頃勲摐鞐
毵ろ晳
3. 靹标车 鞁 齑堦赴頇 霅
Config甑“觳 cfg鞕 nil
鞓る臧 氚橅櫂 (鞓る臧 鞐
鞚岇潉 雮橅儉雰)
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.194
Config Test 旖旊摐 鞛戩劚
Chapter14 p.166~169鞐愳劀 test 旖旊摐 鞛戩劚鞐
雽頃 雼る鞐堧嫟!
1. 韰岇姢韸 頃垬 靹犾柛: TestNew(t
*testing.T)
2. wantPort 氤靾橃棎 3333鞚 靹れ爼
3. New 頃垬 順胳稖頃橃棳 Config 甑“觳
鞕 鞓る毳 氚橅櫂
4. New 頃垬 順胳稖 鞁 鞓る臧 氚滌儩頄堧姅
歆 瓴靷
5. if got.Port != wantPort 臁瓣贝鞐愳劀
got.Port臧 旮半寑頃 臧(wantPort)瓿
臧欖潃歆 頇曥澑
6. 頇橁步 臧 瓴歃: 旮半掣臧掛潉 dev搿 靹れ爼
頃橁碃 got.Env臧 wantEnv鞕 臧欖潃歆
頇曥澑
頇橁步 氤靾橂ゼ 靷毄頃挫劀 鞁ろ枆頃橁赴
-> config 韺偆歆毳 靷毄頃挫劀 鞁ろ枆頃橂弰搿 鞎犿攲毽紑鞚挫厴 main.go 靾橃爼
main 頃垬鞚 run 頃垬 鞎堨棎靹 config 韺偆歆毳 靷毄頃橂弰搿 靾橃爼!
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.195
run 頃垬 韺岆澕氙疙劙搿 雿 鞚挫儊
net.Listner毳 氚涭 鞎婋姅雼.
(Config 甑“觳挫棎靹 霃欖爜鞙茧
靹れ爼霅橂瘈搿, Listner 鞚胳姢韯挫姢
毳 鞕鸽秬鞐愳劀 氚涭潉 頃勳殧臧 鞐嗞赴
霑岆)
config.go鞐愳劀 甑槃頃 New 氅
靹滊摐 靷毄頃橃棳 Config 甑“觳
毳 靸濎劚頃滊嫟.
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.195
net.Listen鞚 靷毄頃橃棳 雱ろ姼鞗
韥 毽姢雱堧ゼ 靸濎劚頃橁碃, cfg.Port
臧掛棎 霐半澕 欤检唽 靹れ爼
Ex) cfg.Port臧 8080鞚措┐ ":8080鈥
搿 靹れ爼
url 氤靾橂姅 fmt.Sprintf毳 靷毄頃
靹滊矂 URL鞚 靸濎劚頃滊嫟.
l.Addr().String()鞚 順胳稖頃橃棳 毽
鞀る剤鞚 欤检唽(韽姼 韽暔)毳 氍胳瀽
鞐措 氤頇橅晿瓿, 鞚措ゼ "http://<欤
靻>" 順曥嫕鞙茧 毵岆摖雼.
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.195
main 頃垬電 run 頃垬毵 順胳稖頃橂弰搿 霅橂弻毽半嫟.
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.196
旮办〈 main 頃垬
韰岇姢韸 旖旊摐 鞙犾甏毽
Run 頃垬鞚 鞁滉犯雼堨矘毳 氤瓴巾枅鞙茧瘈搿
TestRun 韰岇姢韸胳棎靹 旎错寣鞚 鞓る臧 氚滌儩頃滊嫟.
霕愴暅, TestRun 雮挫棎靹 韽姼 氩堩樃毳 霃欖爜鞙茧
鞏浑姅瓴冹澊 鞏措牑鞗岇.
攴鸽灅靹 鞚茧嫧鞚 t.Skip 氅旍劀霌滊ゼ 順胳稖頃挫劀 韰岇姢
韸 鞁ろ枆鞚 瓯措剤霙办瀽!
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.196
霃勳护 甑劚旮 靹れ爼 氤瓴
docker-compose.yml 靾橃爼
鈼 environment 於旉皜
鈼 TODO_ENV 於旉皜
鈼 PORT 於旉皜
鈼 Ports鞐愳劀 18000:80鞐愳劀
18000:8080鞙茧 氤瓴
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.197
鞁ろ枆 頇曥澑
make up鞙茧 霃勳护 旎错彫歃 鞁ろ枆
(Makefile鞐 鞝曥潣)
make logs鞙茧 霃勳护 旎错彫歃 搿
攴 頇曥澑
start with: http://[::]:8080 臧
於滊牓霃 鞛堨溂氅 靹れ爼 鞛橂悳 瓴!
頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴
Section60 p.197
signal.NotifyContext毳 靷毄頃
鞁滉犯雱 旮半嫟毽赴
臧勳劖 鞁滉犯雱(SIGINT)鞕 膦呺 鞁滉犯雱
(SIGTERM)鞐 雽頃 觳橂Μ臧 頃勳殧頃橂嫟.
Why?
鞎犿攲毽紑鞚挫厴 鞁ろ枆 欷 Ctrl+c毳 雸勲ジ 瓴届毎
臧勳劖 鞁滉犯雱 氚滌儩 -> 旎厡鞚措剤 鞖挫榿 頇橁步
鞚措澕氅 鞕鸽秬搿滊秬韯 膦呺 鞁滉犯雱愳潉 氚涥矊 霅
鞁滉犯雱 觳橂Μ頃橁赴
Section61 p.198
Signal
Number
Signal Name Description
1 SIGHUP 韯半雱 鞐瓣舶 膦呺(Hang up). 韯半雱 鞐瓣舶鞚 雭婈布鞚 霑岆倶 靹れ爼鞚 雼れ嫓 搿滊摐頃 霑 靷毄霅╇媹雼.
2 SIGINT 鞚疙劙霟巾姼(Interrupt). 靷毄鞛愱皜 Ctrl+C毳 雸岆煬 頂勲靹胳姢毳 欷戨嫧頃 霑 氚滌儩頃╇媹雼.
3 SIGQUIT 膦呺(Quit). 靷毄鞛愱皜 Ctrl+毳 雸岆煬 頂勲靹胳姢毳 欷戨嫧頃 霑 氚滌儩頃橂┌, 旖旍柎 雿ろ攧毳 靸濎劚頃╇媹雼.
9 SIGKILL 臧曥牅 膦呺(Kill). 頂勲靹胳姢毳 歃夓嫓 膦呺頃橂┌, 氍挫嫓頃橁卑雮 觳橂Μ頃 靾 鞐嗢姷雼堧嫟.
11 SIGSEGV 靹戈犯氅橅厡鞚挫厴 鞓る(Segmentation Fault). 鞛橂霅 氅旊毽 鞝戧芳鞚 氚滌儩頃 霑 靷毄霅╇媹雼.
15 SIGTERM 膦呺 鞖旍箔(Terminate). 頂勲靹胳姢 膦呺 鞖旍箔鞙茧, 頂勲靹胳姢臧 鞚 鞁犿樃毳 觳橂Μ頃 靾 鞛堨姷雼堧嫟. 旮半掣鞝侅溂搿 `kill`
氇呺牴鞏挫棎靹 靷毄霅╇媹雼.
18 SIGCONT 瓿勳啀(Continue). 鞚检嫓 欷戩霅 頂勲靹胳姢毳 雼れ嫓 鞁ろ枆頃╇媹雼.
19 SIGSTOP 鞚检嫓 欷戩(Stop). 頂勲靹胳姢毳 鞚检嫓 欷戩頃橂┌, 氍挫嫓頃橁卑雮 觳橂Μ頃 靾 鞐嗢姷雼堧嫟.
20 SIGTSTP 韯半雱 鞚检嫓 欷戩(Terminal Stop). 靷毄鞛愱皜 Ctrl+Z毳 雸岆煬 頂勲靹胳姢毳 鞚检嫓 欷戩頃 霑 氚滌儩頃╇媹雼.
25 SIGCONT 欷戩霅 頂勲靹胳姢毳 雼れ嫓 瓿勳啀頃橂弰搿 鞖旍箔頃╇媹雼.
毽垍鞀 欤检殧 鞁滉犯雱
signal.NotifyContext毳 靷毄頃
鞁滉犯雱 旮半嫟毽赴
main.go 旖旊摐 靾橃爼
膦呺 鞁滉犯雱愳潉 旮半嫟毽姅 run 頃垬 甑槃
1. Signal.NotifyContext 頃垬毳 靷毄頃 鞁滉犯
雱愳潉 氚涭晞霌滊Μ電 靸堧鞖 旎厤鞀ろ姼毳 靸濎劚頃
雼.
2. defer鞚 靷毄頃橃棳 stop 頃垬毳 順胳稖頃滊嫟.
鞁滉犯雱 觳橂Μ頃橁赴
Section61 p.199
signal.NotifyContext電 Go 1.16 氩勳爠攵韯 霃勳瀰
霅 頃垬搿, 韸轨爼 鞁滉犯雱愳潉 氚涭晿鞚 霑 鞛愲彊鞙茧 旆唽
霅橂姅 Context毳 靸濎劚頃滊嫟.
鞓堨嫓 旖旊摐鞐愳劀電 os.Interrupt鞕 syscall.SIGTERM
鞁滉犯雱愳潉 臧愳嫓頃橁碃 鞛堧嫟. 歃, Ctrl+C (SIGINT)毳 鞛
霠ロ晿瓯半倶 SIGTERM 鞁滉犯雱愳潉 氚涭潉 霑 鞚 Context
臧 旆唽霅滊嫟.
氚橅櫂臧
1. ctx: 靸堧 靸濎劚霅 Context搿, 鞚 Context電 歆
鞝曧暅 鞁滉犯雱愳潉 氚涭溂氅 鞛愲彊鞙茧 旆唽霅╇媹雼.
2. stop: 鞚 頃垬電 Context毳 靾橂彊鞙茧 旆唽頃橁赴
鞙勴暣 順胳稖頃 靾 鞛堧姅 頃垬鞛呺媹雼. 鞁滉犯雱愳澊 霃
彀╉晿歆 鞎婋崝霛茧弰 stop()鞚 順胳稖頃橃棳 Context毳
旆唽頃 靾 鞛堨姷雼堧嫟.
鞁滉犯雱 觳橂Μ頃橁赴
Section61 p.199
鞁滉犯雱 觳橂Μ頃橁赴
Section61 p.199
signal.NotifyContext毳 靷毄頃
鞁滉犯雱 旮半嫟毽赴
氇呺牴欷勳棎靹 韰岇姢韸疙晿旮 鞙勴暅 搿滌 於旉皜
5齑 歆鞐办潃 氇呺牴欷勳棎靹 靹滊矂鞚 鞚戨嫷 歆鞐
鞚措倶 靹滊矂 膦呺 鞁 霃欖瀾鞚 韰岇姢韸疙晿旮 鞙
頃 於旉皜霅 瓴冹澊雼.
靹滊矂臧 欷戨嫧 鞁滉犯雱愳潉 氚涭晿鞚 霑 順勳灛 觳
毽 欷戩澑 鞖旍箔鞚 鞏措柣瓴 觳橂Μ頃橂姅歆 頇曥澑
頃 靾 鞛堧嫟!
鞁滉犯雱 觳橂Μ頃橁赴
Section61 p.200
氇呺牴欷勳棎靹 欷戨嫧鞁滌紲氤搓赴
1. 臧滊皽 頇橁步鞖 旎厡鞚措剤 鞚措歆電 air 氇
霠轨溂搿 鞁ろ枆頃橂瘈搿 make build 氇呺牴鞚 靷
鞖╉暣 氚绊彫鞖 旎厡鞚措剤毳 鞛戩劚頃滊嫟.
3. 頃鸽摛霟 觳橂Μ鞐 5齑 鞀鞚 雱l棃鞙茧瘈搿 雼るジ 氇呺牴欷 彀届棎靹 鞁
臧 旄§爼鞚 鞙勴暅 time 氇呺牴鞏 於旉皜
-> 鞎犿攲毽紑鞚挫厴鞚 鞚戨嫷鞚 氚橅櫂頃 頉 膦呺霅橂姅 瓴冹潉 氤 靾 鞛堧嫟!
鞁滉犯雱 觳橂Μ頃橁赴
Section61 p.200
氇呺牴欷勳棎靹 欷戨嫧鞁滌紲氤搓赴
2. 28000 韽姼搿 旎厡鞚措剤 鞁ろ枆
Server 甑“觳 鞝曥潣頃橁赴
Section62 p.202
Run 頃垬 雮措秬鞐愳劀 觳橂Μ頃挫暭頃 瓴 毵庫晞臁岆嫟.
Server 韮鞛呾潉 毵岆摛鞏 HTTP 靹滊矂 甏霠 攵攵勳潉 攵勴暊頃橃瀽.
http.Server 韮鞛呾潉 霝橅晳頃 鞛愳泊 鞝曥潣 Server 韮鞛呾潉 旖旊摐毳
server.go 韺岇澕鞐 甑槃頃滊嫟.
Server 甑“觳 鞝曥潣頃橁赴
Section62 p.202
Server 甑“觳 鞝曥潣
1. srv *http.Server: 鞁れ牅 HTTP 靹滊矂毳 雮橅儉雮措姅 頃勲摐
http.Server電 HTTP 鞖旍箔鞚 觳橂Μ頃橂姅 旮半姤鞚 鞝滉车頃滊嫟. 鞚 頃勲摐毳 韱淀暣 靹
氩勲ゼ 鞁滌瀾頃橁碃 鞝曥頃橂姅 霌膘潣 鞛戩梾鞚 靾橅枆頃 靾 鞛堧嫟.
2. l net.Listener: 雱ろ姼鞗岉伂 毽姢雱堧ゼ 雮橅儉雮措姅 頃勲摐
毽姢雱堧姅 歆鞝曤悳 韽姼鞐愳劀 霌れ柎鞓る姅 雱ろ姼鞗岉伂 鞐瓣舶鞚 靾橃嫚頃橂┌, 靹滊矂臧 鞖
觳潉 靾橂澖頃 靾 鞛堧弰搿 頃滊嫟.
Server 甑“觳 鞝曥潣頃橁赴
Section62 p.202
NewServer 頃垬
NewServer 頃垬電 Server 甑“觳挫潣 鞚胳姢韯挫姢毳 靸濎劚
頃橂姅 靸濎劚鞛 鞐暊鞚 頃滊嫟.
1. l net.Listener: 毽姢雱堧ゼ 毵り皽氤靾橂 氚涭晞 Server
甑“觳挫潣 l 頃勲摐鞐 頃犽嫻
2. mux http.Handler: HTTP 鞖旍箔鞚 觳橂Μ頃 頃鸽摛霟ゼ
毵り皽氤靾橂 氚涭晞, 鞚措ゼ http.Server鞚 Handler 頃勲摐鞐
靹れ爼
Server 甑“觳 鞝曥潣頃橁赴
Section62 p.203
server.go 韺岇澕鞐 Server 韮鞛呾潣 Run
氅旍劀霌滊弰 甑槃頃滊嫟. 旮办〈鞚 main 頃垬
鞐愳劀 甑槃頃 run 頃垬鞕 搿滌鞚 瓯办潣 臧
雼.
Server 甑“觳 鞝曥潣頃橁赴
Section62 p.203
旮办〈鞐 毵岆摛鞐堧崢 main_test.go鞚 TestRun 頃垬毳 鞛櫆鞖╉晿鞐
韰岇姢韸 旖旊摐毳 鞛戩劚頃滊嫟.
main_test.go 韺岇澕氇呾潉 server_test.go搿 氤瓴巾暅雼.
Server 甑“觳 鞝曥潣頃橁赴
Section62 p.204
main_test.go 韺岇澕鞚 Server.Run 氅旍劀霌
鞖 韰岇姢韸 旖旊摐搿 靾橃爼頃滊嫟.
1. TestServer_Run鞙茧 頃垬氇 氤瓴
2. HTTP 鞖旍箔鞚 觳橂Μ頃橂姅 頃鸽摛霟 mux毳
於旉皜
3. NewServer 氅旍劀霌滊ゼ 靷毄頃橃棳 靹滊矂
齑堦赴頇 氚 Run 氅旍劀霌滊ゼ 靷毄頃橃棳 靹
氩 鞁ろ枆
霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴
Section63 p.205
Server 韮鞛呾潣 run 頃垬鞐愳劀電 鞝勳泊 靹滊矂
毳 鞁ろ枆頃橁碃 甏毽晿歆毵, 臧滊硠 URL鞐 雽
頃 鞏措枻 鞛戩梾鞚 靾橅枆頃犾電 run 頃垬 雮措秬
臧 鞎勲媽 頃鸽摛霟棎靹 觳橂Μ頃滊嫟.
NewMux 頃垬毳 甑槃頃橃棳 臧 URL 瓴诫鞐
雽頃 頃鸽摛霟ゼ 靹れ爼頃滊嫟. 鞚措爣瓴 頃溂搿滌崹
URL 瓴诫鞐 霐半ジ 鞖旍箔 觳橂Μ毳 靿疥矊 甑劚
頃 靾 鞛堧嫟.
鞓堧ゼ 霌れ柎, /health霛茧姅 瓴诫搿 霌れ柎鞓る姅
鞖旍箔鞚 healthHandler霛茧姅 頃鸽摛霟皜 觳
毽晿霃勲 靹れ爼頃 靾 鞛堧嫟.
霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴
Section63 p.205
mux.go 靸濎劚
霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴
Section63 p.205
NewMux 頃垬鞐 HTTP 靹滊矂臧 鞁
頄 欷戩澑歆 頇曥澑頃橁赴 鞙勴暅 /health
鞐旊摐韽澑韸鸽ゼ 靹犾柛頃滊嫟.
霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴
Section63 p.206
httptest 韺偆歆毳 靷毄頃 韰岇姢韸
httptest 韺偆歆毳 韱淀暣 鞁れ牅 雱ろ姼鞗岉伂 鞖旍箔鞚 氤措偞歆 鞎婈碃霃 靹滊矂鞕 韥措澕鞚挫柛
韸胳潣 鞖旍箔瓿 鞚戨嫷鞚 氇潣(Mock)頃橃棳 韰岇姢韸疙暊 靾 鞛堧嫟.
ServeHTTP電 HTTP 靹滊矂臧 鞖旍箔鞚 氚涭潉 霑 鞁ろ枆霅橂姅 霃欖瀾鞚 鞝曥潣頃滊嫟.
httptest.NewRequest鞕 httptest.NewRecorder鞕 臧欖潃 頃垬毳 靷毄頃橃棳
ServeHTTP 頃垬鞐 鞝勲嫭頃 氇潣 臧濎泊(mock)毳 靸濎劚頃 靾 鞛堧嫟.
-> httptest 韺偆歆毳 靷毄頃橃棳 氇潣 臧濎泊毳 靸濎劚頃橁碃, ServeHTTP 頃垬搿 鞖旍箔
瓿 鞚戨嫷 氇潣毳 鞝勲嫭頃橃棳 韰岇姢韸疙暅雼.
霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴
Section63 p.206~207
httptest.NewRecorder 頃垬毳 靷毄
頃橂┐ ResponseWriter 鞚疙劙韼橃澊鞀るゼ
於╈”頃橂姅 *ResponseRecorder 韮鞛
鞚 臧掛潉 鞏混潉 靾 鞛堧嫟.
ServeHTTP 頃垬鞐 鞚 臧掛潉 鞝勲嫭頃 頉
鞐 Result 氅旍劀霌滊ゼ 鞁ろ枆頃橂┐ 韥措澕鞚
鞏疙姼臧 氚涭潃 鞚戨嫷 雮挫毄鞚 韽暔霅
http.Response 韮鞛呹皰鞚 鞏混潉 靾 鞛
雼.
httptest.NewRequest 頃垬霃 霃欖澕頃
瓴 *http.Request 韮鞛呹皰鞚 靸濎劚頃滊嫟.
run 頃垬毳 雼れ嫓 毽尒韯半頃橁赴
Section64 p.208
1. config.go鞚 New 氅旍劀霌滊ゼ
靷毄頃橃棳 靹れ爼鞚 齑堦赴頇
2. NewMux 氅旍劀霌滊ゼ 靷毄頃
鞐 HTTP 頃鸽摛霟 靸濎劚
3. NewServer 頃垬毳 靷毄頃
鞐 靹滊矂毳 靸濎劚
4. s.Run鞚 頃橃棳 靹滊矂 鞁ろ枆
-> 瓴绊暕霃勱皜 雮晞歆
run 頃垬毳 雼れ嫓 毽尒韯半頃橁赴
Section64 p.208
/health 鞐旊摐韽澑韸胳棎 鞖旍箔鞚 鞝勳啞頃橃棳 HTTP 靹滊矂臧 鞝曥儊鞝侅溂搿 鞁ろ枆霅橂姅歆 頇曥澑頃橃瀽.

More Related Content

Similar to 骋顿骋辞颁冲碍贬鲍冲骋辞厂别谤惫别谤冲飞别别办5冲酿夅叺釂剙衅メ啱酿嬦叜,酿赌衅滇喎酿冡叐酿嬦収釂.辫诲蹿 (20)

[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸
[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸
[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸
Ji-Woong Choi
Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖
Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖
Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖
歆鞗 鞚
[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌
[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌
[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌
Ji-Woong Choi
釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW
釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW
釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW
鞓侁磻 靻
Oracle History #8
Oracle History #8Oracle History #8
Oracle History #8
Kyung Sang Jang
[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參
[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參
[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參
NAVER D2
酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥
酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥
酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥
鞓侁磻 靻
Docker osc 0508
Docker osc 0508Docker osc 0508
Docker osc 0508
Open Source Consulting
Jenkins毳 頇滌毄頃 javascript 臧滊皽
Jenkins毳 頇滌毄頃 javascript 臧滊皽Jenkins毳 頇滌毄頃 javascript 臧滊皽
Jenkins毳 頇滌毄頃 javascript 臧滊皽
歆靾 鞙
2015 oce specification
2015 oce specification2015 oce specification
2015 oce specification
uEngine Solutions
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
I Goo Lee
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
wonyong hwang
旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷
旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷
旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷
if kakao
[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮
[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮
[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮
Chanwoong Kim
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
seungdon Choi
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
EunYoung Kim
釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁 釀釁滇剮釁
釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁   釀釁滇剮釁釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁   釀釁滇剮釁
釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁 釀釁滇剮釁
Kwangyoun Jung
Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Actual PoC guide for Virtual Desktop Infrastructure (Korean)Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Changhyun Lim
KAFKA 3.1.0.pdf
KAFKA 3.1.0.pdfKAFKA 3.1.0.pdf
KAFKA 3.1.0.pdf
wonyong hwang
01.臧滊皽頇橁步 甑愳湣甑愳灛
01.臧滊皽頇橁步 甑愳湣甑愳灛01.臧滊皽頇橁步 甑愳湣甑愳灛
01.臧滊皽頇橁步 甑愳湣甑愳灛
Hankyo
[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸
[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸
[鞓ろ攬靻岇姢旎劋韺匽 Docker毳 頇滌毄頃 Gitlab CI/CD 甑劚 韰岇姢韸
Ji-Woong Choi
Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖
Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖
Vert.x 靹鸽雮 鞚挫鞗恄氚绊彫鞖
歆鞗 鞚
[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌
[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌
[鞓ろ攬靻岇姢旎劋韺匽炜犽矂雱ろ嫲鞀るゼ 頇滌毄頃 臧滊皽頇橁步 甑稌
Ji-Woong Choi
釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW
釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW
釀掅叀釂剙釁翅啹釀夅叺釀釁ㄡ剫釁啫釀夅叄釂竉 SW
鞓侁磻 靻
[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參
[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參
[1A6]Docker釀呩叐 釀囜叐釀傖叧釂 釀夅叆釀囜叆 釀嬦叜釂剫釁п喖釀嬦叴 釀嗎叺釀呩參
NAVER D2
酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥
酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥
酿掅叀釂剙衅翅啹酿夅叺酿赌衅ㄡ剫衅啫酿夅叄釂竉厂奥
鞓侁磻 靻
Jenkins毳 頇滌毄頃 javascript 臧滊皽
Jenkins毳 頇滌毄頃 javascript 臧滊皽Jenkins毳 頇滌毄頃 javascript 臧滊皽
Jenkins毳 頇滌毄頃 javascript 臧滊皽
歆靾 鞙
Fluentd with MySQL
Fluentd with MySQLFluentd with MySQL
Fluentd with MySQL
I Goo Lee
Deploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptxDeploying Hyperledger Fabric on Kubernetes.pptx
Deploying Hyperledger Fabric on Kubernetes.pptx
wonyong hwang
旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷
旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷
旮搿滊矊 瓴岇瀯 頂岆灚韽检棎靹 氍挫爼歆, 氍挫爯瓴 靹滊矂 臧滊皽瓿 鞖挫榿 靷
if kakao
[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮
[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮
[NDC18] 毵岆摛瓿 攵撽碃 攵靾橁碃 - 銆堨暭靸濎潣 霑: 霌霝戧碃銆 靹滊矂 甏毽 氚绊彫 鞚挫暭旮
Chanwoong Kim
PCF Installation Guide
PCF Installation GuidePCF Installation Guide
PCF Installation Guide
seungdon Choi
Data-binding AngularJS
Data-binding AngularJSData-binding AngularJS
Data-binding AngularJS
EunYoung Kim
釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁 釀釁滇剮釁
釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁   釀釁滇剮釁釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁   釀釁滇剮釁
釀屷叀釂坚剙釁┽剠釁 釀嬦叞釂羔剦釁メ剣釁滇剦釁 釀嗎叀釂剝釁翅啹釀釁 釀釁滇剮釁
Kwangyoun Jung
Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Actual PoC guide for Virtual Desktop Infrastructure (Korean)Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Actual PoC guide for Virtual Desktop Infrastructure (Korean)
Changhyun Lim
01.臧滊皽頇橁步 甑愳湣甑愳灛
01.臧滊皽頇橁步 甑愳湣甑愳灛01.臧滊皽頇橁步 甑愳湣甑愳灛
01.臧滊皽頇橁步 甑愳湣甑愳灛
Hankyo

骋顿骋辞颁冲碍贬鲍冲骋辞厂别谤惫别谤冲飞别别办5冲酿夅叺釂剙衅メ啱酿嬦叜,酿赌衅滇喎酿冡叐酿嬦収釂.辫诲蹿

  • 1. Golang/Server Week5 GDG on Campus KHU: Backend 旯霃勳榿,鞁犼贝鞖
  • 3. - 牍Μ 臧滊皽 頃 靾 鞛堦矊 霃勳檧欤缄碃, 鞏措敂靹滊摖 霃岇晞臧 靾 鞛堦矊 頃挫雼る姅 氇啝 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 Docker霝?
  • 4. - 瓿缄卑 鞎犿攲毽紑鞚挫厴霌れ潃 頃 旎错摠韯 鞎堨棎靹 氇憪 鞖挫榿. 攴鸽煬雼る炒雼 頃 鞎犿攲毽紑鞚 靺橃棎靹 氍胳牅臧 氚滌儩頃橂┐ 雼るジ 鞎犿攲毽紑鞚挫厴旯岇霃 頂柬暣. OS毳 瓿奠湢頃橁碃 鞛堦赴 霑岆. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 Docker臧 霌膘灔頃橁矊 霅 氚瓣步
  • 5. - 旎厡鞚措剤 頂岆灚韽检澊 霌膘灔. 旎厡鞚措剤 電 斓滌唽頃滌潣 頃勳殧頃 頇橁步鞖旍唽毵 氍 鞏挫劀 旎厡鞚措剤搿 毵岆摛鞏 靹滊箘鞀る 鞝滉车. 霃呺靹彪弰 鞙犾鞁滍偆瓿 鞛戩潃 鞖 霟夓溂搿滊弰 鞙犾 臧電. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 Docker臧 霌膘灔頃橁矊 霅 氚瓣步
  • 6. Go 牍岆摐 -> 雼澕 氚旍澊雱堧Μ 韺岇澕搿 氚绊彫 臧電. 霐半澕靹 旎厡鞚措剤 鞛戩劚 鞁滌棎霃 牍岆摐霅 氚旍澊雱堧Μ毵 旎厡鞚措剤鞐 韽暔 鞁滍偆氅 霅 - 攵堩晞鞖旐暅 韺岇澕 鞝勳啞 氚╈, 牍岆摐 靻嶋弰 頄レ儊 鞙勴暣 ignore 觳橂Μ 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 .dockerignore
  • 7. - 牍岆摐 鞝勳棎 靻岇姢 旖旊摐 霌膘澊 攵堩晞鞖旐晿氙搿 欷戧皠 牍岆摐 鞀ろ厡鞚挫鞐愳劀 牍岆摐頃橂姅 氅 韹 鞀ろ厡鞚挫 牍岆摐毳 鞁れ嫓 鈥 氅韹办姢韰岇澊歆 牍岆摐毳 靷毄頃橃棳 鞚挫爠 雼硠鞐愳劀 靸濎劚霅 鞚措歆鞕 旌愳嫓毳 頇滌毄. 氤瓴诫悳 攵攵勲 雼れ嫓 牍岆摐頃橁碃, 鞚挫爠 雼硠鞐愳劀 靸濎劚霅 鞚措歆鞕 旌愳嫓毳 鞛偓鞖 頃溂搿滌崹 欷戨车 鞛戩梾鞚 斓滌唽頇旐晿瓿 牍岆摐 靻嶋弰毳 頄レ儊. 鈥 牍岆摐 雼硠鞐愳劀 靸濎劚霅 瓴瓣臣氍 欷 霟绊儉鞛 頇橁步鞐愳劀 頃勳殧頃 斓滌唽頃滌潣 甑劚毵岇潉 靹犿儩頃橃棳 斓滌 鞚措歆搿 靸濎劚頃╇媹雼. 鞚措ゼ 韱淀暣 鞚措歆鞚 韥赴毳 欷勳棳 鞚措歆 雼れ毚搿滊摐 氚 氚绊彫 鞁滉皠鞚 雼稌 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 氅韹 鞀ろ厡鞚挫 牍岆摐霝?
  • 8. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 Docker 韺岇澕 鞛戩劚 : stage1 -> 氚绊彫鞖 牍岆摐 雼硠 - 甑愳灛鞕 雼るジ 雮挫毄 : Go 氩勳爠 靾橃爼 - GO 鞏胳柎鞚 瓿奠嫕 Docker 鞚措歆毳 靷毄頃滊嫟電 鞚橂 -> 鞚戩毄 頂勲攴鸽灗瓿 攴戈矁鞚 鞁ろ枆頃橂姅雿 頃勳殧頃 氇摖 瓴 鞚 韽暔頃橂姅 霃呺鞝侅澑 韺偆歆 (Go 鞏 鞏, 旎错寣鞚茧煬, 旮半掣 臧滊皽霃勱惮, 頃勳殧頃 頇橁步 靹れ爼 霌膘澊 氇憪 氙鸽Μ 靹れ爼霅橃柎 鞛堧姅 旎厡鞚措剤 鞝勲嫭)
  • 9. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 Docker 韺岇澕 鞛戩劚 : stage2 -> 斓滌 氚绊彫毳 鞙勴暅 雼硠 - 鞁れ牅 氚绊彫 頇橁步鞐愳劀 靷毄頃 斓滌唽 頃滌潣 鞚措歆 靸濎劚 雼硠 - 鞁ろ枆 韺岇澕毵 氤奠偓頃橂┌ 瓴诫焿頇
  • 10. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 Docker 韺岇澕 鞛戩劚 : stage3 -> 臧滊皽 搿滌滑 頇橁步 靹れ爼 - 旖旊摐 氤瓴届偓頃潉 鞁れ嫓臧勳溂搿 氚橃榿 頃橃棳 靹滊矂毳 鞛嫓鞛戫暣欤茧姅 旮半姤鞚 鞝滉车頃橂姅 air 鞚措澕電 霃勱惮 - Go 1.23 氩勳爠鞐 毵烄栋 鞚 攵攵勲弰 氤 瓴巾暣欷橃暭頃
  • 11. - 臧滊皽 頇橁步鞐愳劀 旖旊摐 氤瓴届潉 臧愳 頃橁碃 鞛愲彊鞙茧 鞎犿攲毽紑鞚挫厴鞚 鞛嫓鞛 鞙勴暅 靹れ爼 - 靹れ爼 韺岇澕鞐愳劀 臧愳嫓搿滊秬韯 鞝滌櫢 頃 霐旊爥韯半Μ, 鞚胳垬 歆鞝 臧電 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 鞛愲彊 靸堧瓿犾龚 頇橁步 : air.toml
  • 12. - 搿滉犯 韺岇澕 瓴诫, 韺岇澕 氤瓴 頉 雽 旮 鞁滉皠, 鞓る 觳橂Μ, 搿滉犯 於滊牓 鞁 靷毄頃 靸夓儊, 頂勲攴鸽灗 膦呺 鞁 鞛勳嫓 霐旊爥韯半Μ 靷牅 鞐秬 霌膘潉 靹れ爼 臧電 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 鞛愲彊 靸堧瓿犾龚 頇橁步 : air.toml
  • 13. 搿滌滑 臧滊皽 頇橁步鞚 鞙勴暅 Docker Compose 靹れ爼 韺岇澕 - target=dev : 臧滊皽鞖 - Volumes 靹れ爼 霑岆鞐 旖旊摐 靾橃爼頃橂┐ 氚旊 旎厡鞚措剤 氚橃榿霅 - 鞗 敫岆澕鞖办爛鞐愳劀 localhost:18000鞙茧 鞝戩啀頃橂┐ 旎厡鞚措剤鞚 80韽姼搿 鞐瓣舶 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 霃勳护 甑劚旮 靹れ爼 : docker-compose.yml
  • 14. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 霃勳护 甑劚旮 頇橁步鞚 霃欖瀾 頇曥澑 鈼 霃勳护 靹れ箻 : https://www.docker.com/products/docker-desktop/ -> Window Home 氩勳爠鞚 靷毄頃滊嫟氅, docker-desktop鞚 wsl2搿滊 臧電
  • 15. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 霃勳护 甑劚旮 頇橁步鞚 霃欖瀾 頇曥澑 鈼 牍岆摐 氇呺牴鞏 : docker compose build 鈥-no-cache 鈼 旎厡鞚措剤 鞁ろ枆 氇呺牴鞏 : docker compose up 鈼 膦呺頃橂牑氅 docker compose up 氇呺牴欷勳棎靹 ctrl + c
  • 16. 霃勳护毳 靷毄頃 鞁ろ枆頇橁步 霃勳护 甑劚旮 頇橁步鞚 霃欖瀾 頇曥澑
  • 17. 鞛愳< 靷毄頃橂姅 氇呺牴鞚 make 氇呺牴鞙茧 毵岆摛鞏 霊愱碃 須湪鞝侅溂搿 氚橂车 鞁ろ枆 Ex. make up 氇呺牴鞚 鞁ろ枆頃橂┐ 氚标犯霛检毚霌滌棎靹 鞛愲彊 靸堧瓿犾龚 臧滊皽 頇橁步 鞁ろ枆霅 Makefile 於旉皜頃橁赴 Makefile 於旉皜
  • 18. - 旯冺棃敫岆ゼ 鞚挫毄頃 頀 毽橃姢韸 旮半皹鞚 臧滊皽鞐愳劀電 於旉皜, 氤瓴 旖旊摐毳 靷瀸鞚 歆侅爲 毽钒 頃 頉 CI 頇橁步鞚 靹れ爼頃挫劀 韰岇姢韸 旖旊摐雮 鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆 - 旯冺棃敫 鞎§厴鞚 旯冺棃敫 霠堩彫歆韯半Μ鞐 .github/workflows/ 霐旊爥韯半Μ 鞎勲灅鞐 yaml 韺岇澕鞚 氚办箻頃橁赴毵 頃橂┐ 靷毄 臧電 旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步 旯冺棃敫 鞎§厴鞚 甓岉暅 靾橃爼
  • 19. 旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步 旯冺棃敫 鞎§厴鞚 甓岉暅 靾橃爼
  • 20. 旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步 韰岇姢韸胳檧 旖旊摐 旎る矂毽 鞛愲彊 鞁ろ枆 - .github/workflows/test.yml - 韰岇姢韸鸽ゼ 鞛愲彊鞙茧 鞁ろ枆頃橁碃 旖旊摐 旎 氩勲Μ歆 氤搓碃靹滊ゼ 靸濎劚頃橁赴 鞙勴暅 靹れ爼
  • 21. - 雼れ枒頃 鞝曥爜 攵勳劃 韴挫澊 臁挫灛. 臧侁皝 頃橂倶鞌 鞁ろ枆頃橂┐ 甏毽皜 頌橂摛旮 霑岆鞐 gola ngci-lint 氇呺牴鞚 靷毄頃挫劀 鞐煬 臧滌潣 鞝曥爜 攵勳劃 韴挫潉 順胳稖 - reviewdog/actions-golangci-lint 靷毄頃橂┐ 鞝曥爜 攵勳劃鞐愳劀 鞓る 氤搓碃 鞁 PR鞚 頃 雼 旖旊摐鞐 旮半頃挫 旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步 鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆
  • 22. - .github/workflows/golangci.yml 旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步 鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆 旯冺棃敫岇棎靹 旖旊摐 臧鞝胳槾 猫 golangci-lint搿 旖旊摐 頀堨 瓴靷 猫 -瓴靷 瓴瓣臣毳 PR鞐 旖旊韸鸽 雮箑
  • 23. - .golangci.yml (root 霐旊爥韯半Μ) 旯冺棃敫 鞎§厴鞚 靷毄頃 歆靻嶌爜 韱淀暕頇橁步 鞝曥爜 攵勳劃鞚 鞛愲彊 鞁ろ枆 Go 旖旊摐鞚 頀堨鞚 瓴靷晿電 golangci- lint鞚 靹れ爼 韺岇澕. 臧 毽绊劙電 旖旊摐鞚 靹滊 雼るジ 旄‰┐鞚 瓴靷晿鞐 鞛犾灛鞝侅澑 氍胳牅雮 臧滌劆鞚 頃 鞖旐暅 攵攵勳潉 彀眷晞
  • 24. Chapter16: HTTP 靹滊矂毳 鞎巾暅 瓴绊暕 甑劚鞙茧 氤瓴巾晿旮
  • 25. HTTP 靹滊矂毳 鞎巾暅 瓴绊暕鞙茧 氤瓴巾暅雼る姅 鞚橂電 靹滊矂鞕 雼るジ 甑劚 鞖旍唽 臧勳潣 鞚橃〈靹膘潉 斓滌唽頇旐晿鞐, 靹滊矂臧 雼るジ 鞁滌姢韰滌澊雮 靹滊箘鞀れ棎 雿 鞚橃〈頃橂弰搿 毵岆摐電 瓴冹潉 霚豁暅雼.
  • 26. Beyond the Twelve-Factor App - 鞝鞛: Kevin Hoffman - 於滍寪靷: O鈥橰eilly Media - 於滍寪鞚: 2016雲 斓滉芳 靻岉攧韸胳洦鞏措ゼ 靹滊箘鞀 順曧儨搿 鞝滉车頃 電 瓴 鞚茧皹頇旊悩氅挫劀, 鞗轨暠 順轨潃 SaaS(Software As A Service)霛缄碃 攵毳搓矊 霅橃棃雼. Twelve-Factor app鞚 鞎勲灅 韸轨鞚 臧歆 SaaS 鞎膘潉 毵岆摛旮 鞙勴暅 氚╇矔搿犾澊雼. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.193
  • 27. Configuration, credentials, and code 1. 甑劚 鞝曤炒鞕 鞛愱博 歃濍獏鞚 攵勲Μ 2. 氤挫晥 鞙犾 3. 鞚缄磤靹 臧滊皽鞚 歆勴枆頃橂嫟 氤措┐ 鞎犿攲毽紑鞚挫厴 旖旊摐臧 鞎勲媽 鞕鸽秬鞐愳劀 歆鞝曧晿 瓿 鞁鹅潃 鞝曤炒臧 鞝愳爯 電橃柎雮滊嫟! -> 頇橁步 氤靾橂ゼ 靷毄頃橂弰搿 靾橃爼頃橃棳 頇橁步 氤靾橂攵韯 臧 鞝曤炒毳 攵 霟槫鞛! 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.193
  • 28. Config 韺偆歆 甑槃頃橁赴 https://github.com/caarlos0/env 1. Go get鞙茧 env 韺偆歆毳 雼れ毚搿滊摐 (斓滌嫚 氩勳爠鞚 v11) 2. Config 霐旊爥韱犽Μ 靸濎劚 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.193
  • 29. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.194
  • 30. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.194 Config 甑“觳 靹犾柛 1. Env電 鞎犿攲毽紑鞚挫厴鞚 鞁 頄 頇橁步 臧 ex) 1. dev - 臧滊皽 頇橁步 2. test - 韰岇姢韸 頇橁步 3. staging - 鞀ろ厡鞚挫 (瓴歃) 頇橁步 4. prod - 頂勲雿曥厴(鞁 鞝 鞖挫榿) 頇橁步 2. Port電 韽姼 氩堩樃
  • 31. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.194 New 頃垬 甑槃 1. Config 甑“觳挫潣 韽澑韯 靸濎劚 2. env.Prase(cfg)電 cfg 甑 臁办泊毳 鞚胳瀽搿 氚涭晞 頇 瓴 氤靾橃棎 歆鞝曤悳 臧掛潃 Config 甑“觳挫潣 頃勲摐鞐 毵ろ晳 3. 靹标车 鞁 齑堦赴頇 霅 Config甑“觳 cfg鞕 nil 鞓る臧 氚橅櫂 (鞓る臧 鞐 鞚岇潉 雮橅儉雰)
  • 32. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.194 Config Test 旖旊摐 鞛戩劚 Chapter14 p.166~169鞐愳劀 test 旖旊摐 鞛戩劚鞐 雽頃 雼る鞐堧嫟! 1. 韰岇姢韸 頃垬 靹犾柛: TestNew(t *testing.T) 2. wantPort 氤靾橃棎 3333鞚 靹れ爼 3. New 頃垬 順胳稖頃橃棳 Config 甑“觳 鞕 鞓る毳 氚橅櫂 4. New 頃垬 順胳稖 鞁 鞓る臧 氚滌儩頄堧姅 歆 瓴靷 5. if got.Port != wantPort 臁瓣贝鞐愳劀 got.Port臧 旮半寑頃 臧(wantPort)瓿 臧欖潃歆 頇曥澑 6. 頇橁步 臧 瓴歃: 旮半掣臧掛潉 dev搿 靹れ爼 頃橁碃 got.Env臧 wantEnv鞕 臧欖潃歆 頇曥澑
  • 33. 頇橁步 氤靾橂ゼ 靷毄頃挫劀 鞁ろ枆頃橁赴 -> config 韺偆歆毳 靷毄頃挫劀 鞁ろ枆頃橂弰搿 鞎犿攲毽紑鞚挫厴 main.go 靾橃爼 main 頃垬鞚 run 頃垬 鞎堨棎靹 config 韺偆歆毳 靷毄頃橂弰搿 靾橃爼! 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.195
  • 34. run 頃垬 韺岆澕氙疙劙搿 雿 鞚挫儊 net.Listner毳 氚涭 鞎婋姅雼. (Config 甑“觳挫棎靹 霃欖爜鞙茧 靹れ爼霅橂瘈搿, Listner 鞚胳姢韯挫姢 毳 鞕鸽秬鞐愳劀 氚涭潉 頃勳殧臧 鞐嗞赴 霑岆) config.go鞐愳劀 甑槃頃 New 氅 靹滊摐 靷毄頃橃棳 Config 甑“觳 毳 靸濎劚頃滊嫟. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.195
  • 35. net.Listen鞚 靷毄頃橃棳 雱ろ姼鞗 韥 毽姢雱堧ゼ 靸濎劚頃橁碃, cfg.Port 臧掛棎 霐半澕 欤检唽 靹れ爼 Ex) cfg.Port臧 8080鞚措┐ ":8080鈥 搿 靹れ爼 url 氤靾橂姅 fmt.Sprintf毳 靷毄頃 靹滊矂 URL鞚 靸濎劚頃滊嫟. l.Addr().String()鞚 順胳稖頃橃棳 毽 鞀る剤鞚 欤检唽(韽姼 韽暔)毳 氍胳瀽 鞐措 氤頇橅晿瓿, 鞚措ゼ "http://<欤 靻>" 順曥嫕鞙茧 毵岆摖雼. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.195
  • 36. main 頃垬電 run 頃垬毵 順胳稖頃橂弰搿 霅橂弻毽半嫟. 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.196 旮办〈 main 頃垬
  • 37. 韰岇姢韸 旖旊摐 鞙犾甏毽 Run 頃垬鞚 鞁滉犯雼堨矘毳 氤瓴巾枅鞙茧瘈搿 TestRun 韰岇姢韸胳棎靹 旎错寣鞚 鞓る臧 氚滌儩頃滊嫟. 霕愴暅, TestRun 雮挫棎靹 韽姼 氩堩樃毳 霃欖爜鞙茧 鞏浑姅瓴冹澊 鞏措牑鞗岇. 攴鸽灅靹 鞚茧嫧鞚 t.Skip 氅旍劀霌滊ゼ 順胳稖頃挫劀 韰岇姢 韸 鞁ろ枆鞚 瓯措剤霙办瀽! 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.196
  • 38. 霃勳护 甑劚旮 靹れ爼 氤瓴 docker-compose.yml 靾橃爼 鈼 environment 於旉皜 鈼 TODO_ENV 於旉皜 鈼 PORT 於旉皜 鈼 Ports鞐愳劀 18000:80鞐愳劀 18000:8080鞙茧 氤瓴 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.197
  • 39. 鞁ろ枆 頇曥澑 make up鞙茧 霃勳护 旎错彫歃 鞁ろ枆 (Makefile鞐 鞝曥潣) make logs鞙茧 霃勳护 旎错彫歃 搿 攴 頇曥澑 start with: http://[::]:8080 臧 於滊牓霃 鞛堨溂氅 靹れ爼 鞛橂悳 瓴! 頇橁步 氤靾橂攵韯 靹れ爼 攵堧煬鞓り赴 Section60 p.197
  • 40. signal.NotifyContext毳 靷毄頃 鞁滉犯雱 旮半嫟毽赴 臧勳劖 鞁滉犯雱(SIGINT)鞕 膦呺 鞁滉犯雱 (SIGTERM)鞐 雽頃 觳橂Μ臧 頃勳殧頃橂嫟. Why? 鞎犿攲毽紑鞚挫厴 鞁ろ枆 欷 Ctrl+c毳 雸勲ジ 瓴届毎 臧勳劖 鞁滉犯雱 氚滌儩 -> 旎厡鞚措剤 鞖挫榿 頇橁步 鞚措澕氅 鞕鸽秬搿滊秬韯 膦呺 鞁滉犯雱愳潉 氚涥矊 霅 鞁滉犯雱 觳橂Μ頃橁赴 Section61 p.198 Signal Number Signal Name Description 1 SIGHUP 韯半雱 鞐瓣舶 膦呺(Hang up). 韯半雱 鞐瓣舶鞚 雭婈布鞚 霑岆倶 靹れ爼鞚 雼れ嫓 搿滊摐頃 霑 靷毄霅╇媹雼. 2 SIGINT 鞚疙劙霟巾姼(Interrupt). 靷毄鞛愱皜 Ctrl+C毳 雸岆煬 頂勲靹胳姢毳 欷戨嫧頃 霑 氚滌儩頃╇媹雼. 3 SIGQUIT 膦呺(Quit). 靷毄鞛愱皜 Ctrl+毳 雸岆煬 頂勲靹胳姢毳 欷戨嫧頃 霑 氚滌儩頃橂┌, 旖旍柎 雿ろ攧毳 靸濎劚頃╇媹雼. 9 SIGKILL 臧曥牅 膦呺(Kill). 頂勲靹胳姢毳 歃夓嫓 膦呺頃橂┌, 氍挫嫓頃橁卑雮 觳橂Μ頃 靾 鞐嗢姷雼堧嫟. 11 SIGSEGV 靹戈犯氅橅厡鞚挫厴 鞓る(Segmentation Fault). 鞛橂霅 氅旊毽 鞝戧芳鞚 氚滌儩頃 霑 靷毄霅╇媹雼. 15 SIGTERM 膦呺 鞖旍箔(Terminate). 頂勲靹胳姢 膦呺 鞖旍箔鞙茧, 頂勲靹胳姢臧 鞚 鞁犿樃毳 觳橂Μ頃 靾 鞛堨姷雼堧嫟. 旮半掣鞝侅溂搿 `kill` 氇呺牴鞏挫棎靹 靷毄霅╇媹雼. 18 SIGCONT 瓿勳啀(Continue). 鞚检嫓 欷戩霅 頂勲靹胳姢毳 雼れ嫓 鞁ろ枆頃╇媹雼. 19 SIGSTOP 鞚检嫓 欷戩(Stop). 頂勲靹胳姢毳 鞚检嫓 欷戩頃橂┌, 氍挫嫓頃橁卑雮 觳橂Μ頃 靾 鞐嗢姷雼堧嫟. 20 SIGTSTP 韯半雱 鞚检嫓 欷戩(Terminal Stop). 靷毄鞛愱皜 Ctrl+Z毳 雸岆煬 頂勲靹胳姢毳 鞚检嫓 欷戩頃 霑 氚滌儩頃╇媹雼. 25 SIGCONT 欷戩霅 頂勲靹胳姢毳 雼れ嫓 瓿勳啀頃橂弰搿 鞖旍箔頃╇媹雼. 毽垍鞀 欤检殧 鞁滉犯雱
  • 41. signal.NotifyContext毳 靷毄頃 鞁滉犯雱 旮半嫟毽赴 main.go 旖旊摐 靾橃爼 膦呺 鞁滉犯雱愳潉 旮半嫟毽姅 run 頃垬 甑槃 1. Signal.NotifyContext 頃垬毳 靷毄頃 鞁滉犯 雱愳潉 氚涭晞霌滊Μ電 靸堧鞖 旎厤鞀ろ姼毳 靸濎劚頃 雼. 2. defer鞚 靷毄頃橃棳 stop 頃垬毳 順胳稖頃滊嫟. 鞁滉犯雱 觳橂Μ頃橁赴 Section61 p.199
  • 42. signal.NotifyContext電 Go 1.16 氩勳爠攵韯 霃勳瀰 霅 頃垬搿, 韸轨爼 鞁滉犯雱愳潉 氚涭晿鞚 霑 鞛愲彊鞙茧 旆唽 霅橂姅 Context毳 靸濎劚頃滊嫟. 鞓堨嫓 旖旊摐鞐愳劀電 os.Interrupt鞕 syscall.SIGTERM 鞁滉犯雱愳潉 臧愳嫓頃橁碃 鞛堧嫟. 歃, Ctrl+C (SIGINT)毳 鞛 霠ロ晿瓯半倶 SIGTERM 鞁滉犯雱愳潉 氚涭潉 霑 鞚 Context 臧 旆唽霅滊嫟. 氚橅櫂臧 1. ctx: 靸堧 靸濎劚霅 Context搿, 鞚 Context電 歆 鞝曧暅 鞁滉犯雱愳潉 氚涭溂氅 鞛愲彊鞙茧 旆唽霅╇媹雼. 2. stop: 鞚 頃垬電 Context毳 靾橂彊鞙茧 旆唽頃橁赴 鞙勴暣 順胳稖頃 靾 鞛堧姅 頃垬鞛呺媹雼. 鞁滉犯雱愳澊 霃 彀╉晿歆 鞎婋崝霛茧弰 stop()鞚 順胳稖頃橃棳 Context毳 旆唽頃 靾 鞛堨姷雼堧嫟. 鞁滉犯雱 觳橂Μ頃橁赴 Section61 p.199
  • 43. 鞁滉犯雱 觳橂Μ頃橁赴 Section61 p.199 signal.NotifyContext毳 靷毄頃 鞁滉犯雱 旮半嫟毽赴 氇呺牴欷勳棎靹 韰岇姢韸疙晿旮 鞙勴暅 搿滌 於旉皜 5齑 歆鞐办潃 氇呺牴欷勳棎靹 靹滊矂鞚 鞚戨嫷 歆鞐 鞚措倶 靹滊矂 膦呺 鞁 霃欖瀾鞚 韰岇姢韸疙晿旮 鞙 頃 於旉皜霅 瓴冹澊雼. 靹滊矂臧 欷戨嫧 鞁滉犯雱愳潉 氚涭晿鞚 霑 順勳灛 觳 毽 欷戩澑 鞖旍箔鞚 鞏措柣瓴 觳橂Μ頃橂姅歆 頇曥澑 頃 靾 鞛堧嫟!
  • 44. 鞁滉犯雱 觳橂Μ頃橁赴 Section61 p.200 氇呺牴欷勳棎靹 欷戨嫧鞁滌紲氤搓赴 1. 臧滊皽 頇橁步鞖 旎厡鞚措剤 鞚措歆電 air 氇 霠轨溂搿 鞁ろ枆頃橂瘈搿 make build 氇呺牴鞚 靷 鞖╉暣 氚绊彫鞖 旎厡鞚措剤毳 鞛戩劚頃滊嫟.
  • 45. 3. 頃鸽摛霟 觳橂Μ鞐 5齑 鞀鞚 雱l棃鞙茧瘈搿 雼るジ 氇呺牴欷 彀届棎靹 鞁 臧 旄§爼鞚 鞙勴暅 time 氇呺牴鞏 於旉皜 -> 鞎犿攲毽紑鞚挫厴鞚 鞚戨嫷鞚 氚橅櫂頃 頉 膦呺霅橂姅 瓴冹潉 氤 靾 鞛堧嫟! 鞁滉犯雱 觳橂Μ頃橁赴 Section61 p.200 氇呺牴欷勳棎靹 欷戨嫧鞁滌紲氤搓赴 2. 28000 韽姼搿 旎厡鞚措剤 鞁ろ枆
  • 46. Server 甑“觳 鞝曥潣頃橁赴 Section62 p.202 Run 頃垬 雮措秬鞐愳劀 觳橂Μ頃挫暭頃 瓴 毵庫晞臁岆嫟. Server 韮鞛呾潉 毵岆摛鞏 HTTP 靹滊矂 甏霠 攵攵勳潉 攵勴暊頃橃瀽. http.Server 韮鞛呾潉 霝橅晳頃 鞛愳泊 鞝曥潣 Server 韮鞛呾潉 旖旊摐毳 server.go 韺岇澕鞐 甑槃頃滊嫟.
  • 47. Server 甑“觳 鞝曥潣頃橁赴 Section62 p.202 Server 甑“觳 鞝曥潣 1. srv *http.Server: 鞁れ牅 HTTP 靹滊矂毳 雮橅儉雮措姅 頃勲摐 http.Server電 HTTP 鞖旍箔鞚 觳橂Μ頃橂姅 旮半姤鞚 鞝滉车頃滊嫟. 鞚 頃勲摐毳 韱淀暣 靹 氩勲ゼ 鞁滌瀾頃橁碃 鞝曥頃橂姅 霌膘潣 鞛戩梾鞚 靾橅枆頃 靾 鞛堧嫟. 2. l net.Listener: 雱ろ姼鞗岉伂 毽姢雱堧ゼ 雮橅儉雮措姅 頃勲摐 毽姢雱堧姅 歆鞝曤悳 韽姼鞐愳劀 霌れ柎鞓る姅 雱ろ姼鞗岉伂 鞐瓣舶鞚 靾橃嫚頃橂┌, 靹滊矂臧 鞖 觳潉 靾橂澖頃 靾 鞛堧弰搿 頃滊嫟.
  • 48. Server 甑“觳 鞝曥潣頃橁赴 Section62 p.202 NewServer 頃垬 NewServer 頃垬電 Server 甑“觳挫潣 鞚胳姢韯挫姢毳 靸濎劚 頃橂姅 靸濎劚鞛 鞐暊鞚 頃滊嫟. 1. l net.Listener: 毽姢雱堧ゼ 毵り皽氤靾橂 氚涭晞 Server 甑“觳挫潣 l 頃勲摐鞐 頃犽嫻 2. mux http.Handler: HTTP 鞖旍箔鞚 觳橂Μ頃 頃鸽摛霟ゼ 毵り皽氤靾橂 氚涭晞, 鞚措ゼ http.Server鞚 Handler 頃勲摐鞐 靹れ爼
  • 49. Server 甑“觳 鞝曥潣頃橁赴 Section62 p.203 server.go 韺岇澕鞐 Server 韮鞛呾潣 Run 氅旍劀霌滊弰 甑槃頃滊嫟. 旮办〈鞚 main 頃垬 鞐愳劀 甑槃頃 run 頃垬鞕 搿滌鞚 瓯办潣 臧 雼.
  • 50. Server 甑“觳 鞝曥潣頃橁赴 Section62 p.203 旮办〈鞐 毵岆摛鞐堧崢 main_test.go鞚 TestRun 頃垬毳 鞛櫆鞖╉晿鞐 韰岇姢韸 旖旊摐毳 鞛戩劚頃滊嫟. main_test.go 韺岇澕氇呾潉 server_test.go搿 氤瓴巾暅雼.
  • 51. Server 甑“觳 鞝曥潣頃橁赴 Section62 p.204 main_test.go 韺岇澕鞚 Server.Run 氅旍劀霌 鞖 韰岇姢韸 旖旊摐搿 靾橃爼頃滊嫟. 1. TestServer_Run鞙茧 頃垬氇 氤瓴 2. HTTP 鞖旍箔鞚 觳橂Μ頃橂姅 頃鸽摛霟 mux毳 於旉皜 3. NewServer 氅旍劀霌滊ゼ 靷毄頃橃棳 靹滊矂 齑堦赴頇 氚 Run 氅旍劀霌滊ゼ 靷毄頃橃棳 靹 氩 鞁ろ枆
  • 52. 霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴 Section63 p.205 Server 韮鞛呾潣 run 頃垬鞐愳劀電 鞝勳泊 靹滊矂 毳 鞁ろ枆頃橁碃 甏毽晿歆毵, 臧滊硠 URL鞐 雽 頃 鞏措枻 鞛戩梾鞚 靾橅枆頃犾電 run 頃垬 雮措秬 臧 鞎勲媽 頃鸽摛霟棎靹 觳橂Μ頃滊嫟. NewMux 頃垬毳 甑槃頃橃棳 臧 URL 瓴诫鞐 雽頃 頃鸽摛霟ゼ 靹れ爼頃滊嫟. 鞚措爣瓴 頃溂搿滌崹 URL 瓴诫鞐 霐半ジ 鞖旍箔 觳橂Μ毳 靿疥矊 甑劚 頃 靾 鞛堧嫟. 鞓堧ゼ 霌れ柎, /health霛茧姅 瓴诫搿 霌れ柎鞓る姅 鞖旍箔鞚 healthHandler霛茧姅 頃鸽摛霟皜 觳 毽晿霃勲 靹れ爼頃 靾 鞛堧嫟.
  • 53. 霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴 Section63 p.205 mux.go 靸濎劚
  • 54. 霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴 Section63 p.205 NewMux 頃垬鞐 HTTP 靹滊矂臧 鞁 頄 欷戩澑歆 頇曥澑頃橁赴 鞙勴暅 /health 鞐旊摐韽澑韸鸽ゼ 靹犾柛頃滊嫟.
  • 55. 霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴 Section63 p.206 httptest 韺偆歆毳 靷毄頃 韰岇姢韸 httptest 韺偆歆毳 韱淀暣 鞁れ牅 雱ろ姼鞗岉伂 鞖旍箔鞚 氤措偞歆 鞎婈碃霃 靹滊矂鞕 韥措澕鞚挫柛 韸胳潣 鞖旍箔瓿 鞚戨嫷鞚 氇潣(Mock)頃橃棳 韰岇姢韸疙暊 靾 鞛堧嫟. ServeHTTP電 HTTP 靹滊矂臧 鞖旍箔鞚 氚涭潉 霑 鞁ろ枆霅橂姅 霃欖瀾鞚 鞝曥潣頃滊嫟. httptest.NewRequest鞕 httptest.NewRecorder鞕 臧欖潃 頃垬毳 靷毄頃橃棳 ServeHTTP 頃垬鞐 鞝勲嫭頃 氇潣 臧濎泊(mock)毳 靸濎劚頃 靾 鞛堧嫟. -> httptest 韺偆歆毳 靷毄頃橃棳 氇潣 臧濎泊毳 靸濎劚頃橁碃, ServeHTTP 頃垬搿 鞖旍箔 瓿 鞚戨嫷 氇潣毳 鞝勲嫭頃橃棳 韰岇姢韸疙暅雼.
  • 56. 霛检毎韺 鞝曥潣毳 攵勴暊頃 NewMux 鞝曥潣頃橁赴 Section63 p.206~207 httptest.NewRecorder 頃垬毳 靷毄 頃橂┐ ResponseWriter 鞚疙劙韼橃澊鞀るゼ 於╈”頃橂姅 *ResponseRecorder 韮鞛 鞚 臧掛潉 鞏混潉 靾 鞛堧嫟. ServeHTTP 頃垬鞐 鞚 臧掛潉 鞝勲嫭頃 頉 鞐 Result 氅旍劀霌滊ゼ 鞁ろ枆頃橂┐ 韥措澕鞚 鞏疙姼臧 氚涭潃 鞚戨嫷 雮挫毄鞚 韽暔霅 http.Response 韮鞛呹皰鞚 鞏混潉 靾 鞛 雼. httptest.NewRequest 頃垬霃 霃欖澕頃 瓴 *http.Request 韮鞛呹皰鞚 靸濎劚頃滊嫟.
  • 57. run 頃垬毳 雼れ嫓 毽尒韯半頃橁赴 Section64 p.208 1. config.go鞚 New 氅旍劀霌滊ゼ 靷毄頃橃棳 靹れ爼鞚 齑堦赴頇 2. NewMux 氅旍劀霌滊ゼ 靷毄頃 鞐 HTTP 頃鸽摛霟 靸濎劚 3. NewServer 頃垬毳 靷毄頃 鞐 靹滊矂毳 靸濎劚 4. s.Run鞚 頃橃棳 靹滊矂 鞁ろ枆 -> 瓴绊暕霃勱皜 雮晞歆
  • 58. run 頃垬毳 雼れ嫓 毽尒韯半頃橁赴 Section64 p.208 /health 鞐旊摐韽澑韸胳棎 鞖旍箔鞚 鞝勳啞頃橃棳 HTTP 靹滊矂臧 鞝曥儊鞝侅溂搿 鞁ろ枆霅橂姅歆 頇曥澑頃橃瀽.