Loading...
2020. 1. 17. 18:55

[Spring Cloud] - 4. Zuul Gateway๋ฅผ ์ด์šฉํ•œ Routing

์ง€๋‚œ MSA ํฌ์ŠคํŠธ์— ์ด์–ด, ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” Spring Cloud์—์„œ API Gateway๋ฅผ ๊ตฌํ˜„ํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. https://blog.neonkid.xyz/205 [MSA] - 2. API Gateway๊ฐ€ ํ•„์š”ํ•œ ์ด์œ  ์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ๊ธ€์€ MSA์— ๋Œ€ํ•œ ๊ธ€์„ ์ด์–ด์„œ API Gateway์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ง€๋‚œ MSA ๊ธ€์—์„œ๋Š” MSA๋ฅผ ์™œ ์จ์•ผํ•˜๋Š”์ง€, ์–ด๋–จ ๋•Œ ํ•„์š”ํ•˜๊ณ , ๋ฌด์Šจ ์žฅ๋‹จ์ ์ด ์žˆ๋Š”์ง€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ด๋ณด๋Š” ์•„์ฃผ ์‰ฌ์šด.. blog.neonkid.xyz ํ˜น์‹œ ์ง€๋‚œ ๊ธ€์„ ์ฝ์–ด๋ณด์‹œ์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด, ์œ„ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ API Gateway๊ฐ€ MSA์—์„œ ์™œ ํ•„์š”ํ•œ์ง€, ์•Œ์•„๋ณด์‹œ๊ณ  ๊ฐ€์‹ ๋‹ค๋ฉด, ์ด ํฌ์ŠคํŠธ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. Gateway for Spring Cloud Spr..

[Java] - Java Stream API

Java ์–ธ์–ด๊ฐ€ ๋ฒŒ์จ 11 ๋ฒ„์ „์ด ๋‚˜์˜ค๊ณ  ์žˆ๋„ค์š”. Java๋Š” ์—ญ์‚ฌ๊ฐ€ ๊นŠ๊ณ , ์˜ค๋ž˜๋œ ์–ธ์–ด์ด์ž ๋น„๋‚œ๋„ ๋งŽ์ด ๋ฐ›์€ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€๋งŒ ์•„์ง๋„ ๋งŽ์€ ๊ณณ์—์„œ ์‚ฌ์šฉ๋˜๊ณ  ์žˆ๊ณ , ๋Œ€์ฒดํ•˜๋Š” ๊ณณ๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Java 8์—์„œ ๋“ฑ์žฅํ•œ Stream์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Stream API Stream ? ํ˜น์‹œ ๊ทธ๊ฑฐ, Buffer ๋ณด๋‹ค ์†๋„๊ฐ€ ๊ฒ๋‚˜ ๋น ๋ฅธ ๊ทธ Stream ? ๋„ค, ๊ทธ๊ฑด ์•„๋‹™๋‹ˆ๋‹ค. Java์—์„œ Stream์€ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋กœ, Java 8์—์„œ ์ƒˆ๋กœ์ด ๋“ฑ์žฅํ•˜์˜€์Šต๋‹ˆ๋‹ค. Java 8 ์ด์ „์—๋Š” ๋ฐฐ์—ด์ด๋‚˜ Collections์˜ ์ž๋ฃŒ ๊ตฌ์กฐ ์ธ์Šคํ„ด์Šค๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด for ๋ฌธ์ด๋‚˜ foreach ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์š”์†Œ๋ฅผ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ด์—ˆ์ง€์š”. ๊ฐ„๋‹จํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ๋Š” ๊ฒƒ์ด๋ผ๋ฉด, ํฐ ์ƒ๊ด€์ด ์—†..

2020. 1. 8. 12:14

[MSA] - 2. API Gateway๊ฐ€ ํ•„์š”ํ•œ ์ด์œ 

์•ˆ๋…•ํ•˜์„ธ์š”. ์ด๋ฒˆ ๊ธ€์€ MSA์— ๋Œ€ํ•œ ๊ธ€์„ ์ด์–ด์„œ API Gateway์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ์ง€๋‚œ MSA ๊ธ€์—์„œ๋Š” MSA๋ฅผ ์™œ ์จ์•ผํ•˜๋Š”์ง€, ์–ด๋–จ ๋•Œ ํ•„์š”ํ•˜๊ณ , ๋ฌด์Šจ ์žฅ๋‹จ์ ์ด ์žˆ๋Š”์ง€๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์„ค๋ช…ํ•ด๋ณด๋Š” ์•„์ฃผ ์‰ฌ์šด ์ด์•ผ๊ธฐ๋ฅผ ๋‹ค๋ค„๋ดค์Šต๋‹ˆ๋‹ค. ์‚ฌ์‹ค MSA์˜ ๊นŠ์ด๋Š” ๊ทธ๊ฒƒ๋ณด๋‹ค ๊นŠ๊ธฐ ๋•Œ๋ฌธ์— ์ œ๋Œ€๋กœ ์ด์•ผ๊ธฐ๋ฅผ ํ•˜๊ณ ์ž ํ•œ๋‹ค๋ฉด, ๋งŽ์€ ์ด์•ผ๊ธฐ๊ฐ€ ๋  ๊ฒƒ ๊ฐ™์•„ ์งง๊ฒŒ ํ•„์š”ํ•œ ๋ถ€๋ถ„์„ ์„ค๋ช…๋“œ๋ฆฐ ๊ฒƒ์ด๊ตฌ์š”. ํƒ€ ๊ธ€์—์„œ ์ข€ ๋” ์‹ฌ์ธต์ ์œผ๋กœ ๋‹ค๋ค„๋ณผ๊นŒ ํ•ฉ๋‹ˆ๋‹ค. Spring Cloud๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๊ฐ„๋‹จํžˆ API๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ์•Œ์•˜๊ณ , ์ด์™€ ๋น„์Šทํ•˜๊ฒŒ Python์˜ Django, Flask ๋“ฑ ํƒ€ ์–ธ์–ด, ํƒ€ ํ”„๋ ˆ์ž„์›Œํฌ์—์„œ๋„ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ๊ฐ์ด ์žกํ˜”์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ ์ด๋“ค API๋ฅผ ๊ทธ๋ฃนํ™” ์‹œ์ผœ์ฃผ๋Š” API Gateway..

2019. 12. 31. 15:05

Neon K.I.D์˜ 2019๋…„

์–ด๋Š ๋ง 2019๋…„๋„ ๋งˆ์ง€๋ง‰ ๋‚ ์ด ๋‹ค๊ฐ€์™”๋„ค์š”. ๋ญ ํ•ญ์ƒ ๋‚˜์˜ ๊ฐœ๋ฐœ์ผ์ง€๋ฅผ ์ ์œผ๋ฉด, ์˜ฌํ•ด๋“  ๋‚ด๋…„์ด๋“  ๋น„์Šทํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๋ผ๋Š” ๋ง‰์—ฐํ•œ ์ƒ๊ฐ ๋งŽ์ด ํ•˜๋Š”๋ฐ, ์˜ฌํ•ด๋Š” ์œ ๋‚œํžˆ ๋Š๋ผ๋Š” ์ ์ด ๋งŽ์ด ์žˆ์–ด์„œ ์กฐ๊ธˆ ์˜๋ฏธ ์žˆ๋Š” ํšŒ๊ณ ๋ก์ด ๋˜์ง€ ์•Š์„๊นŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์˜๋ฃŒ ๋ฐ์ดํ„ฐ์™€ ํ•จ๊ป˜ํ•œ ํ”„๋กœ์ ํŠธ 2019๋…„ 7์›”, ์ €๋Š” 1๋…„์˜ ๊ณ„์•ฝ์ง ์ƒํ™œ์„ ๋งˆ๋ฌด๋ฆฌํ•˜๊ณ , ํ‡ด์‚ฌํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ•œ ํ•ด ๋™์•ˆ ๋งŽ์€ ์ผ์„ ํ–ˆ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ ์—”์ง€๋‹ˆ์–ด๋ง๋ถ€ํ„ฐ ๋จธ์‹  ๋Ÿฌ๋‹๊นŒ์ง€.. ์˜๋ฃŒ ๋ฐ์ดํ„ฐ๋ผ๋Š” ์ˆ˜์ค€ ๋†’์€ ๋‚œ์ด๋„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ค„๋ณด๋ฉฐ ๋น„๋ก 1์ €์ž๊นŒ์ง€๋Š” ์•„๋‹ˆ์ง€๋งŒ ๋…ผ๋ฌธ์— ์ด๋ฆ„์ด ์˜ฌ๋ ค๊ฐ€๊ธฐ๋„ ํ•˜๊ณ , ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๋“ฑ์˜ ์„ฑ๊ณผ๊ฐ€ ์žˆ์—ˆ๋„ค์š”. NEONKID/RCDMViewer Radiology CDM Viewer. Contribute to NEONKID/RCDMVi..

2019. 12. 29. 13:47

[Spring Cloud] - 3. API ์„œ๋ฒ„๋กœ ์„ค์ • ๊ฐ’ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ๋Š” Configuration Server๋ฅผ ์„ค์ •ํ•˜๋Š” ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฒˆ์งธ ๋ฐฉ๋ฒ•์€ ๋กœ์ปฌ์˜ ์ €์žฅ๋˜์–ด ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ๊ณ , ๋‘ ๋ฒˆ์จฐ ๋ฐฉ๋ฒ•์€ Github ๋“ฑ์˜ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํŒŒ์ผ์„ ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์„œ๋ฒ„๊ฐ€ ์ œ๋Œ€๋กœ ๊ตฌ์ถ•๋˜์–ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด์„œ REST API๋ฅผ ์ง์ ‘ ํ˜ธ์ถœํ•˜์—ฌ ํ•ด๋‹น ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ํ…Œ์ŠคํŠธ๋ฅผ ํ–ˆ์—ˆ๋Š”๋ฐ์š”. ํ•˜์ง€๋งŒ ์ด๋Ÿฌํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ , ์–ด๋–ป๊ฒŒ API ์„œ๋ฒ„๊ฐ€ ์ด๋Ÿฌํ•œ ๊ฐ’์„ ๋ฐ›๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•„๋งˆ ๊ถ๊ธˆํ•ด ํ•˜์…จ์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ์ง์ ‘ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ๋งŒ๋“ค๊ณ , ํ•ด๋‹น ์„œ๋ฒ„์— ๋งž๋Š” ์„ค์ •๊ฐ’์„ ๋งŒ๋“ค์–ด, ๊ฐ€์ ธ์˜ค๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จผ์ € API ์„œ๋ฒ„๋ฅผ ๋งŒ๋“ค์–ด๋ณด๋„๋ก ํ•˜์ฃ . ์ƒˆ๋กœ์šด Spring Boot..

2019. 12. 26. 13:26

[Spring Cloud] - 2. Github and Configuration Server

์•ˆ๋…•ํ•˜์„ธ์š”. ์ง€๋‚œ ์‹œ๊ฐ„์—๋Š” Spring Cloud์˜ Configuration Server๋ฅผ ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ ์„ค์ • ํŒŒ์ผ์„ ํ†ตํ•˜์„œ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ๋กœ์ปฌ ๋‚ด์— ์žˆ๋Š” ์„ค์ • ํŒŒ์ผ์„ ์ง์ ‘ ์ž‘์„ฑํ•˜์—ฌ ์ด๋ฅผ Pull ๋ฐฉ์‹์œผ๋กœ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณ„๋„์˜ ๊ตฌ์„ฑ ์„œ๋ฒ„๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ํšจ์œจ์ ์œผ๋กœ ์„œ๋ฒ„์˜ ๊ตฌ์„ฑ ์„ค์ •์„ ๋ณ€๊ฒฝํ•˜๊ณ  ์ƒˆ๋กœ์ด ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์šฉ์ดํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์—ฌ๊ธฐ์— Git์„ ์ถ”๊ฐ€ํ•œ๋‹ค๋ฉด ์–ด๋–จ๊นŒ์š”? ๊ธฐ์กด์˜ ์„ค์ •์—์„œ ์ƒˆ๋กœ์šด ์„ค์ •์œผ๋กœ ๋ณ€๊ฒฝํ•œ ๋’ค, ์–ด๋– ํ•œ ๋ฌธ์ œ์ ์ด ์ƒ๊ฒผ๋‹ค๊ฑฐ๋‚˜ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค๋ฉด ๋กค๋ฐฑ์„ ํ•˜์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ํŒŒ์ผ ์‹œ์Šคํ…œ์—์„œ ๋กค๋ฐฑ์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์€ Volume Shadow Copy ์ •๋„๋‚˜ ํ˜น์€ RAID ๋ ˆ๋ฒจ์—์„œ ์ œ๊ณตํ•˜๋Š” Snapshot, BRTFS์—์„œ ์ œ๊ณตํ•˜๋Š” Snapshot์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ..

2019. 12. 22. 12:39

[Spring Cloud] - 1. Configuration Server ๊ตฌ์„ฑ

์ง€๋‚œ ๊ธ€์—์„œ MSA(Micro Service Architecture)์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ดค์—ˆ๋Š”๋ฐ์š”. ํ˜น์‹œ๋ผ๋„ ์ด ๊ธ€์„ ์ฝ์–ด๋ณด์ง€ ๋ชปํ–ˆ๋‹ค๋ฉด, ์•„๋ž˜์˜ ๋งํฌ๋ฅผ ํ†ตํ•ด์„œ ์ง์ ‘ ์ฝ์–ด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. MSA (Micro Service Architecture) ๋ž€ ๋ฌด์—‡์ผ๊นŒ? ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Micro Service Architecture์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ•œ๋™์•ˆ MSA๊ฐ€ ๊ต‰์žฅํžˆ ํ™”๋‘์˜€๋Š”๋ฐ, ์š”์ฆ˜์€ ๋ถ„์œ„๊ธฐ๊ฐ€ ์‹์–ด์ง€๋Š” ๋“ฏํ•˜์—ฌ ์˜ค๋Š˜ ๋ธ”๋กœ๊ทธ์— ์ด ๊ธ€์„ ์ ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ.. blog.neonkid.xyz ์ด๋ฒˆ ํŒŒํŠธ์—์„œ๋Š” Java ์–ธ์–ด์˜ ์›น ๊ฐœ๋ฐœ ํ”„๋ ˆ์ž„์›Œํฌ์ธ Spring์„ ์ด์šฉํ•ด์„œ ์ด Micro Service Architecture๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ..

2019. 12. 5. 12:00

MSA (Micro Service Architecture) ๋ž€ ๋ฌด์—‡์ผ๊นŒ?

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

[GP] Spring boot์—์„œ REST API ๊ฐœ๋ฐœ ์‹œ์ž‘ํ•ด๋ณด๊ธฐ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. N.K Dev Lab์— ๊ธ€์„ ์•ˆ์“ด์ง€๊ฐ€ ์ •๋ง ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”. ์˜ฌํ•ด๋Š” ์ €์˜ ์ทจ์—… ์‹œ์ฆŒ์ธ ๋งŒํผ ๋ธ”๋กœ๊ทธ์— ๊ธ€์„ ์“ฐ๋Š” ๊ฒƒ์— ๋งŽ์ด ์†Œํ™€ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. ๋”์šฑ์ด Dev Lab ๋ฆฌ๋‰ด์–ผ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์—ฌ๋Ÿฌ ์ผ๋“ค์ด ์žˆ์—ˆ๋Š”๋ฐ, ์ €์˜ Dev Lab์ด ๋‹ค์‹œ Jekyll๋กœ ๋Œ์•„์˜ค๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ์ง€๋งŒ ์ด์ œ ์ œ๊ฐ€ ์ทจ์—…์„ ํ•˜๊ฒŒ ๋˜๋ฉด ํ˜„์žฌ ํ•˜๊ณ  ์žˆ๋Š” ์ผ๋“ค์„ ์กฐ๊ธˆ ๋ฏธ๋ฆฌ ๊ฐ„์†Œํ™” ํ•˜๋Š” ์ž‘์—…์ด๋ผ๊ณ  ๋ณด์‹œ๋ฉด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•œ ๊ฐ€์ง€ ์˜ˆ๋ฅผ ๋“ค์–ด, ์ด์ œ Dev Lab์— ์˜ฌ๋ฆฌ๋Š” ๊ธ€์€ ์ €์˜ ์†์— ์˜ํ•ด ์ˆ˜๋™์œผ๋กœ NKLAB(Tistory)์— ๊ฒŒ์‹œ๋˜์ง€ ์•Š๊ณ  ์ž๋™ํ™” ๋œ ์ฝ”๋“œ์— ์˜ํ•ด์„œ ์˜ฌ๋ผ๊ฐ€๊ฒŒ ๋˜๋Š” ์ž‘์—… ๋“ฑ Hugo ๋ณด๋‹ค๋Š” Jekyll์ด ์ข€ ๋” ํŽธํ•˜๋”๊ตฐ์š”. ๋ณธ๋ก ์œผ๋กœ ๋„˜์–ด๊ฐ€์„œ, ์˜ค๋Š˜์€ Sp..

[GP] Spring boot์—์„œ DBMS๋ฅผ ์—ฐ๋™ํ•˜๋Š” ๋ฐฉ๋ฒ• JPA ๊ณ ๊ธ‰ํŽธ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. Spring ๊ด€๋ จ ๊ธ€์„ ์ •๋ง ์•ˆ์“ด์ง€๊ฐ€ ๋„ˆ๋ฌด ์˜ค๋ž˜๋˜์—ˆ๋„ค์š”โ€ฆใ… ใ…  ์š”์ฆ˜ ๋ฐ์ดํ„ฐ ๋ถ„์•ผ์—์„œ ์ผํ•˜๋‹ค๋ณด๋‹ˆ R์„ ๋‹ค๋ฃจ๋ฉด์„œ ๋ฐฑ์—”๋“œ์— ๋Œ€ํ•œ ํฌ์ŠคํŒ…์ด ๋งŽ์ด ๋ฐ€๋ ค์žˆ๋„ค์š”.. ์•ž์œผ๋กœ๋Š” Spring์„ ์ด์šฉํ•œ ์˜คํ”ˆ ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌ ์ค‘์ด๋‹ˆ ๋‹ค์‹œ ์žฌ๊ฑด์„ ์œ„ํ•ด์„œ๋ผ๋„ ์ฒœ์ฒœํžˆ ํ•˜๋‚˜์”ฉ ๊ธ€์„ ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.์ด๋ฒˆ์—๋Š” ์ง€๋‚œ ๊ธ€์— ์ด์–ด์„œ JPA ๊ณ ๊ธ‰ํŽธ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์›Œ๋‚™ ์˜ค๋ž˜๋์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ ๊ธ‰ํŽธ์— ๋ฌด์—‡์„ ์ ์–ด์•ผํ• ์ง€ ๋ช…์‹œ๊ฐ€ ๋˜์–ด ์žˆ๋„ค์š”. ์˜ค๋Š˜์€ ๊ทธ ๋ถ€๋ถ„์„ ๋‹ค๋ค„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. SQL๊ณผ HQLSQL์€ Structed Query Language์˜ ์•ฝ์ž๋กœ DBMS์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘/์ œ์–ดํ•˜๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด ์ค‘์— ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. SQL Server์—์„œ๋Š” T-SQL์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ..

2019. 11. 6. 11:09

Google Colaboratory๋ฅผ ์ด์šฉํ•œ ๋จธ์‹  ๋Ÿฌ๋‹

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ๋จธ์‹  ๋Ÿฌ๋‹ ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์ข€ ๋” ์‰ฝ๊ณ , ๋” ์ข‹์€ ํ™˜๊ฒฝ์„ ๋‹ค๋ฆ„ ์•„๋‹Œ ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋จธ์‹  ๋Ÿฌ๋‹์„ ๋‚ด PC์˜ ํ™˜๊ฒฝ์—์„œ ๊ตฌ์ถ•ํ•˜๋Š” ์ผ์ด๋ž€, ์‚ฌ์‹ค ์‰ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ œ๊ฐ€ ๊ฝค ์˜ค๋ž˜ ์ „์— TensorFlow๋ฅผ GPU ํ™˜๊ฒฝ์—์„œ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋„๋ก Python์˜ Virtualenv์—์„œ TensorFlow๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์˜ฌ๋ ธ์—ˆ๋Š”๋ฐ์š”. ๋ฆฌ๋ˆ…์Šค๋ฅผ ์„ค์น˜ํ•˜๊ณ , Python์„ ์„ค์น˜ํ•˜๊ณ , ๋˜ ๊ทธ์— ํ•„์š”ํ•œ TensorFlow, Virtualenv๋ฅผ ๊ตฌ์ถ•ํ•˜๊ณ  ๋‚˜๋ฉด ์ด์ œ๋Š” GPU ๋“œ๋ผ์ด๋ฒ„๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•˜๋Š”๋ฐ, ์˜ค๋ฅ˜๋„ ๋งŽ์ด ๋‚˜๊ณ , ์—ฌ๊ฐ„ ์‰ฝ์ง€ ์•Š์€ ๊ณผ์ •๋“ค์ด ๋ฒŒ์–ด์ง€๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ, ์—ฌ๋Ÿฌ๋ถ„๋“ค์ด ์ •๋ง๋กœ ๊ณ ๊ธ‰ ์žฅ๋น„๋ฅผ ๊ฐ€์ง€๊ณ , ์ด๋ฅผ ํ…Œ๋ฉด Tesla 8๊ฐœ๋ฅผ SLI๋กœ ๋ฌถ๋Š”๋‹ค๋˜์ง€, ์ด๋ ‡๊ฒŒ ํ•œ๋‹ค๋ฉด ์œ„ ๊ณผ์ •์„ ์ •๋ง๋กœ ..

2019. 11. 2. 15:42

[React.ts] React๋ฅผ Typescript๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ธฐ - Props, State

์ด๋ฒˆ ๊ธ€์—์„œ๋Š” Props, State๋ฅผ Typescript์—์„œ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Javascript์—์„œ๋Š” state๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•˜์˜€๊ณ , ํ•ด๋‹น ์ƒ์„ฑ์ž์˜ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ Props๋ฅผ ๋„ฃ์–ด์ฃผ์—ˆ์œผ๋ฉฐ Props๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด, ์ปดํฌ๋„ŒํŠธ ์ฝ”๋“œ ๋ฐ‘์— Props ํƒ€์ž…์„ ์ •์˜ํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. import React, { Component } from 'react'; class Header extends Component { constructor(props) { super(props); this.state = { ... }; } render() { return ( Practice App ); } } export default Header; ํ•˜์ง€๋งŒ Typescript์—์„œ ์œ„์™€ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ• ..

2019. 11. 2. 14:42

[React.ts] React๋ฅผ Typescript๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ธฐ - ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์„ฑ

์•ˆ๋…•ํ•˜์„ธ์š”. Typescript๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ฒซ ๊ธ€์ž…๋‹ˆ๋‹ค. Typescript์˜ ์ฒซ ์‹œ์ž‘์„ React ํ”„๋กœ์ ํŠธ๋กœ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š” ์ œ๊ฐ€ ์ด๋ฒˆ์— ๋ฉ”์ธ ํ™ˆํŽ˜์ด์ง€๋ฅผ ๋‹ค์‹œ ๋ฆฌ๋‰ด์–ผ ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์ง€๋‚œ 2๋…„ ๋™์•ˆ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•˜๋˜ React๋ฅผ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜์—ˆ๋Š”๋ฐ์š”. ๋น„๋ก ๋งŒ๋“œ๋Š” ์ž ๊น ๋™์•ˆ์ด์—ˆ์ง€๋งŒ ๋ฐฐ์›€๊ณผ ๊ฐ™์ด ๋”๋ถˆ์–ด ์ง„ํ–‰ํ•˜๊ฒŒ ๋˜์—ˆ๊ธฐ ๋•Œ๋ฌธ์— React์˜ ๋ณ€๊ฒฝ์ ๋„ ๊ฐ™์ด ์‚ดํŽด๋ด„๊ณผ ๋”๋ถˆ์–ด์„œ ์ด๋ฒˆ์—๋Š” Typescript๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐœ๋ฐœํ•˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Create react app React๋ฅผ ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ create-react-app์„ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. Typescript๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋„ ์—ญ์‹œ ์ด ๋ช…๋ น์–ด๋กœ ์‰ฝ๊ณ  ํ•œ ๋ฒˆ์— ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. $ create-react-app [app..

2019. 9. 29. 10:09

[GP] Junit5๋ฅผ ์‚ฌ์šฉํ•œ Java ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ์ž‘์„ฑ

์ด ๊ธ€์€ N.K Dev Lab์—์„œ ์ž‘์„ฑ๋œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ ์œ ๋‹› ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๋ฅผ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํ•˜๋‹ค๋ณด๋ฉด ์ž์‹ ์ด ์ž‘์„ฑํ•œ ์ฝ”๋“œ๊ฐ€ ์›ํ•˜๋Š” ํ˜•ํƒœ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋Š”์ง€ ์•ˆ๋˜์—ˆ๋Š”์ง€๋ฅผ ํ…Œ์ŠคํŠธํ•ด๋ณด๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ์ฒ˜์Œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ GUI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ–ˆ๋‹ค๋ณด๋‹ˆ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณดํ†ต ๋ˆˆ์œผ๋กœ ํ™•์ธํ•˜๊ณค ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ CLI ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ํ•˜๋‹ค๋ณด๋ฉด ์›ํ•˜๋Š” ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š”์ง€ ์•ˆ๋‚˜์˜ค๋Š”์ง€ ์ผ์ผ์ด ์†์œผ๋กœ ์ž…๋ ฅํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณธ๋‹ค๋Š” ๊ฒƒ์ด ์‰ฝ์ง€๋งŒ์€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿด ๋•Œ ์œ ๋‹› ํ…Œ์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด์„ธ์š”. What is Unit Test ?๊ทธ๋ ‡๋‹ค๋ฉด ์œ ๋‹› ํ…Œ์ŠคํŠธ๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”? ์œ ๋‹› ํ…Œ์ŠคํŠธ๋Š” ์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์†Œ์Šค ์ฝ”๋“œ์˜ ํŠน์ • ๋ชจ๋“ˆ์ด ์˜๋„๋Œ€๋กœ ์ •ํ™•ํžˆ ์ž‘๋™ํ•˜๋Š”์ง€ ๊ฒ€์ฆํ•˜๋Š” ์ผ๋ จ์˜ ์ ˆ์ฐจ ๊ณผ์ •์ž…๋‹ˆ๋‹ค. ์ข€ ๋” ์ž์„ธํ•œ ์„ค๋ช…์„ ..

2019. 8. 27. 17:19

Github Actions - React ํ”„๋กœ์ ํŠธ๋ฅผ Firebase์— Deploy ํ•˜๊ธฐ

Actions ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŠธ๋กœ React ํ”„๋กœ์ ํŠธ๋ฅผ Firebase์— Deploy ํ•˜๋Š” ๊ธ€์„ ์จ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ YAML ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ๊ฐ„๋‹จํ•œ Workflow์™€ Matrix์™€ Secrets ๋“ฑ์˜ ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊นŒ์ง€๋ฅผ ๋‹ค๋ค„๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Google Firebase์— ๋Œ€ํ•œ ๊ธฐ๋ณธ์ ์ธ ์ง€์‹์ด ์žˆ๋Š” ์ƒํƒœ์—์„œ ์ง„ํ–‰์„ ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Firebase์˜ ์ฒ˜์Œ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด ๊ธ€์ด ๊ธธ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, ๊ฐ„๋‹จํ•˜๊ฒŒ ์š”์ ๋งŒ ์งš๊ณ  ๋„˜์–ด๊ฐ€๊ธฐ ์œ„ํ•ด์„œ Firebase์˜ ๊ธฐ๋ณธ ํ™˜๊ฒฝ์ด ์ด๋ฏธ ๊ตฌ์ถ•๋œ ์ƒํƒœ์—์„œ ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Generate and Register Firebase Token ๋ฐฐํฌ ๋„๊ตฌ๋กœ Google Firebase์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” firebase-tools๋ฅผ ํ•œ ๋ฒˆ ..

2019. 8. 26. 14:10

Github Actions - Matrix & Secrets

์ด๋ฒˆ์—๋Š” Matrix๋ฅผ ํ™œ์šฉํ•˜์—ฌ ๋‹ค์ค‘ OS ํ™˜๊ฒฝ, ๋‹ค์–‘ํ•œ ๋ฒ„์ „์˜ ์–ธ์–ด, ํ”„๋ ˆ์ž„์›Œํฌ ๋“ฑ์„ ํ™œ์„ฑํ™” ์‹œํ‚ค๋Š” ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž‘์„ฑํ•ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Matrix Matrix๋Š” Array์™€ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค. YAML์—์„œ๋Š” ํŠน์ • ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋ฅผ ๋ณต์ˆ˜๊ฐœ๋กœ ์„ ์–ธํ•˜๊ณ  ์‹ถ์„ ๊ฒฝ์šฐ์—๋Š” Matrix๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋งˆ ๊ธฐ์กด์˜ Travis CI๋ฅผ ์จ๋ณด์‹  ๋ถ„๋“ค์ด๋ผ๋ฉด ์ต์ˆ™ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. name: Practice actions on: push: branches: - master pull_request: branches: - master jobs: build: runs-on: ubuntu-latest strategy: max-parallel: 4 matrix: python-version: [2.7, 3.5, 3.6, 3.7..

2019. 8. 24. 17:23

Github Actions - ๊ฐ„๋‹จํ•œ ์›Œํฌํ”Œ๋กœ์šฐ ์ƒ์„ฑํ•ด๋ณด๊ธฐ

์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ Github Actions์— ๋Œ€ํ•œ ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๊ณผ ๊ธฐ๋Šฅ์„ ์†Œ๊ฐœํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ์—ˆ๋Š”๋ฐ์š”. ์ด๋ฒˆ์—๋Š” ์ง์ ‘ Github Actions๋ฅผ ์‚ฌ์šฉํ•ด ์›Œํฌํ”Œ๋กœ์šฐ๋ฅผ ์ž๋™ํ™”ํ•˜๋Š” ๊ฒƒ์„ ํ•ด๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Start ๋จผ์ € ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ๋ฅผ Actions๋ฅผ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ clone ํ•˜๋„๋ก ํ•˜์ฃ . $ git clone [Repository] ํด๋ก ํ•œ ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์— ์•„๋ž˜์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ํ•œ ๊ฐœ ๋งŒ๋“ค์–ด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. $ mkdir -p .github/workflows Actions๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € Workflow๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ๋กœ๊ฐ€ ํ•„์š”ํ•œ๋ฐ, ์ด ๊ฒฝ๋กœ๊ฐ€ ๋ฐ”๋กœ .github ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. $ touch main.yml ๊ทธ๋ฆฌ๊ณ  main.yml ๋ผ๋Š” ์ด๋ฆ„์˜ ํŒŒ์ผ์„ ํ•œ ๊ฐœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ด ๋ ˆํฌ์ง€ํ„ฐ๋ฆฌ์—์„œ Mai..

2019. 8. 24. 11:38

Github Actions ๋“œ๋””์–ด ํ™œ์„ฑํ™” ๋˜๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š”. ์˜ค๋Š˜์€ Github Actions์— ๋Œ€ํ•ด ์†Œ๊ฐœํ•˜๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Github Actions๋Š” Github์—์„œ ์ œ๊ณตํ•˜๋Š” ์›Œํฌํ”Œ๋กœ์šฐ ์ž๋™ํ™” ์‹œ์Šคํ…œ์œผ๋กœ ๊ธฐ์กด์—๋Š” ์ด๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด Travis CI, Circle CI ๋“ฑ์˜ 3rd Party ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉํ–ˆ์—ˆ์Šต๋‹ˆ๋‹ค. Github Actions Features โ€ข GitHub Actions Easily build, package, release, update, and deploy your project in any languageโ€”on GitHub or any external systemโ€”without having to run code yourself. github.com ํ˜„์žฌ Github Actions๋Š” Beta ๊ธฐ๋Šฅ์œผ๋กœ ์ œ๊ณต๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ..