๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
  • ์žฅ์›์ต ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ

๐Ÿคท๐Ÿผ‍โ™€๏ธ Etc...178

[๊ฐœ๋ฐœ์ž ์ฑ…์ฝ๊ธฐ] ํด๋ฆฐ ์ฝ”๋“œ-์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  (3์žฅ ํ•จ์ˆ˜) ํ•ด๋‹น ๊ธ€์€ Robert C.Martin ํด๋ฆฐ ์ฝ”๋“œ ๋ผ๋Š” ์ฑ…์„ ์ฝ๊ณ  ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌ ๋ฐ ํšŒ๊ณ ํ•˜๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ YES 24 ํด๋ฆฐ ์ฝ”๋“œ - ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ํด๋ฆฐ ์ฝ”๋“œ - ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  (Uncle Bob) ์œ„ํ‚ค๋ถ์Šค ์ง€์€์ด: Robert C.Martin (Uncle Bob) ์˜ฎ๊ธด์ด: ๋ฐ•์žฌํ˜ธ, ์ดํ•ด์˜ ์ด๋ฒˆ ์žฅ์—์„œ ์ด์•ผ๊ธฐํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ ์ด๋ฒˆ ์žฅ์—์„œ๋Š” ์ข‹์€ ํ•จ์ˆ˜์— ๋Œ€ํ•ด ์ด์•ผ๊ฐ€๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค. ํ•จ์ˆ˜๋Š” ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์–‘ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ ํ•œ ๊ฐ€์ง€๋งŒ์„ ํ•ด์•ผํ•œ๋‹ค. ์ž‘๊ฒŒ ๋งŒ๋“ค๊ณ  ํ•œ ๋ฒˆ์— ํ•œ ๊ฐ€์ง€๋งŒ ํ•ด๋ผ ํ•œ ํ•จ์ˆ˜๋Š” 6 ~ 7 ์ค„ ์ •๋„๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ์ค‘์ฒฉ๋œ if / while / for ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค. ๊ทธ๋ž˜์•ผ ์ฝ๊ธฐ ํŽธํ•ด์ง€๊ณ  .. 2022. 2. 13.
[๊ฐœ๋ฐœ์ž ์ฑ…์ฝ๊ธฐ] ํด๋ฆฐ ์ฝ”๋“œ-์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  (2์žฅ ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„) ํ•ด๋‹น ๊ธ€์€ Robert C.Martin ํด๋ฆฐ ์ฝ”๋“œ ๋ผ๋Š” ์ฑ…์„ ์ฝ๊ณ  ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌ ๋ฐ ํšŒ๊ณ ํ•˜๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ YES 24 ํด๋ฆฐ ์ฝ”๋“œ - ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ํด๋ฆฐ ์ฝ”๋“œ - ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  (Uncle Bob) ์œ„ํ‚ค๋ถ์Šค ์ง€์€์ด: Robert C.Martin (Uncle Bob) ์˜ฎ๊ธด์ด: ๋ฐ•์žฌํ˜ธ, ์ดํ•ด์˜ ์ด๋ฒˆ ์žฅ์—์„œ ์ด์•ผ๊ธฐํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ ์ด๋ฒˆ ์žฅ์—์„œ๋Š” ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์„ ์ž˜ ์ง“๋Š” ๋ช‡๊ฐ€์ง€ ๊ทœ์น™์„ ์ด์•ผ๊ธฐํ•œ๋‹ค. Naming ์€ ์˜๋ฏธ๋ฅผ ํ•ด์„ํ•  ์ฑ…์ž„์ด ๋…์ž์—๊ฒŒ ์žˆ๋Š” ๋…ผ๋ฌธ ๋ชจ๋ธ์ด ์•„๋‹ˆ๋ผ ์˜๋„๋ฅผ ๋ฐํž ์ฑ…์ž„์ด ์žˆ๋Š” ์žก์ง€ ๋ชจ๋ธ์ด ์ ํ•ฉํ•˜๋‹ค ์˜๋„๋ฅผ ๋ถ„๋ช…ํžˆ ๋ฐํ˜€๋ผ ์šฐ๋ฆฌ๊ฐ€ ํ•˜๋Š” naming ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์งˆ๋ฌธ์— ๋‹ตํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค. ๋ณ€์ˆ˜, ํ•จ์ˆ˜, ํด๋ž˜์Šค์˜ ์กด์žฌ ์ด์œ ๋Š”? ์‚ฌ์šฉ.. 2022. 2. 2.
[๊ฐœ๋ฐœ์ž ์ฑ…์ฝ๊ธฐ] ํด๋ฆฐ ์ฝ”๋“œ - ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  (1์žฅ ๊นจ๋—ํ•œ ์ฝ”๋“œ) ํ•ด๋‹น ๊ธ€์€ Robert C.Martin ํด๋ฆฐ ์ฝ”๋“œ ๋ผ๋Š” ์ฑ…์„ ์ฝ๊ณ  ํ•™์Šตํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌ ๋ฐ ํšŒ๊ณ ํ•˜๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. ์ž์„ธํ•œ ์‚ฌํ•ญ์€ YES 24 ํด๋ฆฐ ์ฝ”๋“œ ์—์„œ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ํด๋ฆฐ ์ฝ”๋“œ - ์• ์ž์ผ ์†Œํ”„ํŠธ์›จ์–ด ์žฅ์ธ ์ •์‹  (Uncle Bob) ์œ„ํ‚ค๋ถ์Šค ์ง€์€์ด: Robert C.Martin (Uncle Bob) ์˜ฎ๊ธด์ด: ๋ฐ•์žฌํ˜ธ, ์ดํ•ด์˜ ์ด๋ฒˆ ์žฅ์—์„œ ์ด์•ผ๊ธฐํ•˜๊ณ ์ž ํ•˜๋Š” ๊ฒƒ ์ฝ”๋“œ๋Š” ์š”๊ตฌ์‚ฌํ•ญ์„ ์ƒ์„ธํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ์ˆ˜๋‹จ. ์šฐ๋ฆฌ์˜ ์ฝ”๋“œ์—์„œ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋“œ๋Ÿฌ๋‚ด์•ผ ํ•œ๋‹ค. ๋‚˜์œ ์ฝ”๋“œ๋ž€? ๋‚˜์œ ์ฝ”๋“œ๊ฐ€ ๋‚˜์˜ค๋Š” ์ด์œ  ๋‹จ์ง€ ๋Œ์•„๊ฐ„๋‹ค๋Š” ์‚ฌ์‹ค์— ์•ˆ๋„ํ•จ ์“ฐ๋ ˆ๊ธฐ ์ฝ”๋“œ๊ฐ€ ๋ณด์ด๋ฉด ๋‚˜์˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ธ์ง€ํ•˜๊ณ  ์–ธ์  ๊ฐ„ ๊ณ ์น˜๋ฆฌ๋ผ ํ•˜๊ณ  ์ง€๋‚˜๊ฐ ๋‚˜์œ ์ฝ”๋“œ๋Š” ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•˜๊ฒŒ ๋จ ๋‚˜์œ ์ฝ”๋“œ๋Š” ์ผ์ •์„ ๋งž์ถ”๊ธฐ ์œ„ํ•ด ์ซ“๊ฒจ ๋‚˜์œ ์ฝ”๋“œ๋ฅผ ์–‘์‚ฐ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๋Š” ๋‚˜์œ ์ฝ”๋“œ๊ฐ€ ํ•ด.. 2022. 2. 2.
Github Action ๊ณผ Elastic Beanstalk ๋กœ ์„œ๋ฒ„ ๋ฐฐํฌํ•˜๊ธฐ - Github Actions ์ •์˜ํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” 3๊ฐœ์˜ ๊ธ€๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์˜ ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š” 1ํŽธ Spring Boot ์„œ๋ฒ„ ์ƒ์„ฑํ•˜๊ธฐ 2ํŽธ Elastic Beanstalk ์ƒ์„ฑํ•˜๊ธฐ 3ํŽธ Github Actions ์ •์˜ํ•˜๊ธฐ ํ•ด๋‹น ๊ธ€์˜ ์‹ค์Šต ์ฝ”๋“œ ๋ฐ github repository ์ง€๋‚œ ์‹œ๊ฐ„... ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” Spring Boot ๋ฅผ ์ด์šฉํ•ด์„œ Application ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ  Elastic Beanstalk ๋ฅผ ์ƒ์„ฑ ํ–ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Github Actions ๋ฅผ ์ด์šฉํ•˜์—ฌ Master branch ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์ด ์žˆ๋‹ค๋ฉด ์ž๋™์œผ๋กœ ๋ฐฐํฌํ•˜๋Š” ๋ฐฐํฌ ์ž๋™ํ™”์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. Github Actions ์— ๋Œ€ํ•ด์„œ ๋” ์ž์„ธํžˆ Github Actions ๋Š” ๊นƒํ—ˆ๋ธŒ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๋Š” workflow ์ž.. 2022. 1. 23.
Github Action ๊ณผ Elastic Beanstalk ๋กœ ์„œ๋ฒ„ ๋ฐฐํฌํ•˜๊ธฐ - EB ์ƒ์„ฑํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” 3๊ฐœ์˜ ๊ธ€๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์˜ ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š” 1ํŽธ Spring Boot ์„œ๋ฒ„ ์ƒ์„ฑํ•˜๊ธฐ 2ํŽธ Elastic Beanstalk ์ƒ์„ฑํ•˜๊ธฐ 3ํŽธ Github Actions ์ •์˜ํ•˜๊ธฐ ํ•ด๋‹น ๊ธ€์˜ ์‹ค์Šต ์ฝ”๋“œ ๋ฐ github repository ์ง€๋‚œ ์‹œ๊ฐ„... ์ง€๋‚œ ์‹œ๊ฐ„ ์šฐ๋ฆฌ๋Š” Spring Boot ๋ฅผ ์ด์šฉํ•ด์„œ Application ์„œ๋ฒ„๋ฅผ ์ƒ์„ฑํ–ˆ๊ณ  github ์— push ํ•˜๋Š” ์ž‘์—…๊นŒ์ง€ ๋งˆ์ณค๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Elastic Beanstalk ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ  ์‹ค์ œ๋กœ ์ƒ์„ฑ์„ ํ•ด๋ณด๋„๋ก ํ•˜์ž. Elastic Beanstalk ์— ๋Œ€ํ•ด์„œ ๋” ์ž์„ธํžˆ Elastic Beanstalk ์— ๋Œ€ํ•ด์„œ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ •์˜ํ•ด๋ณด์ž. Elastic Beanstalk ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋Š” .. 2022. 1. 23.
Github Action ๊ณผ Elastic Beanstalk ๋กœ ์„œ๋ฒ„ ๋ฐฐํฌํ•˜๊ธฐ - Spring Boot ์„œ๋ฒ„ ์ƒ์„ฑํ•˜๊ธฐ ํ•ด๋‹น ์‹œ๋ฆฌ์ฆˆ๋Š” 3๊ฐœ์˜ ๊ธ€๋กœ ๊ตฌ์„ฑ๋˜์–ด์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๋‹จ๊ณ„์˜ ์ž์„ธํ•œ ์‚ฌํ•ญ์€ ์•„๋ž˜ ๋งํฌ๋ฅผ ์ฐธ์กฐํ•ด์ฃผ์„ธ์š” 1ํŽธ Spring Boot ์„œ๋ฒ„ ์ƒ์„ฑํ•˜๊ธฐ 2ํŽธ Elastic Beanstalk ์ƒ์„ฑํ•˜๊ธฐ 3ํŽธ Github Actions ์ •์˜ํ•˜๊ธฐ ํ•ด๋‹น ๊ธ€์˜ ์‹ค์Šต ์ฝ”๋“œ ๋ฐ github repository ๋™๊ธฐ ์ตœ๊ทผ ์‚ฌ๋‚ด์—์„œ ์ƒˆ๋กญ๊ฒŒ ๊ฐœ๋ฐœํ•˜๋Š” ์„œ๋ฒ„๋ฅผ EB ์™€ Github Action ์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐํฌ ์ž๋™ํ™” ๊ตฌ์„ฑ์„ ํ•˜๋Š” ๊ธฐํšŒ๊ฐ€ ์ƒ๊ฒผ์—ˆ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ํ•ด๋ดค๋˜ CI/CD, ๋ฐฐํฌ ์ž๋™ํ™”๋Š” ๋‹ค์Œ 2๊ฐœ์ด๋‹ค. Travis CI + CodeDeploy EC2 + Jenkins ์ฒ˜์Œ ์ž๋™ํ™”์— ๋Œ€ํ•ด์„œ ํ•™์Šตํ•  ๋•Œ Elastic Beanstalk ์— ๋Œ€ํ•œ ํ›„๊ธฐ๋Š” ๊ฑฐ์˜ ๋ชป๋ณด๋‹ค ์‹ถ์ด ํ–ˆ์ง€๋งŒ ํ˜„์žฌ๋Š” EB ์™€ Github Action ์— ๋Œ€ํ•œ ์„ฑ๊ณต ์ผ€์ด์Šค๊ฐ€ ๋งŽ์•„.. 2022. 1. 23.