๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๐Ÿ“ ํšŒ๊ณ /๐Ÿ—“ ์ผ์ผ, ์ฃผ๊ฐ„ ํšŒ๊ณ 42

[์˜์‚ฌ๊ฒฐ์ •, ์ผ์ผํšŒ๊ณ ] 22.06.15 - "๋ฐฑ์—”๋“œ(Spring) ๋ฐฐํฌ์™€ ์•„ํ‚คํ…์ฒ˜" ๐Ÿ“š ๋ฐฐ์šด ๊ฒƒ ๋ฐฑ์—”๋“œ(Spring) ๋ฐฐํฌ ๋ฐฉ๋ฒ• ๊ณ ๋ฏผ ์–ด์ œ๋Š” FE ๋ฐฐํฌ๋ฅผ ํ•˜์˜€๋‹ค. ์˜ค๋Š˜์€ BE๋ฅผ ๋ฐฐํฌํ•œ๋‹ค. ์•„์ง ์ดˆ๊ธฐ ํ”„๋กœ์ ํŠธ ์„ธํŒ…๋งŒ ํ•˜๊ณ  ๊ตฌํ˜„ ์ฝ”๋“œ๋Š” ์—†์ง€๋งŒ CI/CD ์ž๋™ํ™” ๋ฐฐํฌ๋ฅผ ๊ตฌ์ถ•ํ•œ ๋’ค ํ”„๋กœ์ ํŠธ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ๋•Œ ๋งˆ๋‹ค ๋ฐฐํฌํ•˜๊ณ  ์‹ถ์–ด์„œ์˜€๋‹ค. ์ œ์•ฝ ์‚ฌํ•ญ - ๋น„์šฉ(aws ํ”„๋ฆฌํ‹ฐ์–ด) ๊ณ ๋ฏผํ•œ ๋ฐฐํฌ๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. Case 1 : Docker + Docker hub ๋„์ปค ์ด๋ฏธ์ง€๋ฅผ ๋„์ปค ํ—ˆ๋ธŒ์— ์˜ฌ๋ ค ์‚ฌ์šฉํ•œ๋‹ค. ์ด์ „ ํ”„๋กœ์ ํŠธ๋ฅผ ์ด ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฐฐํฌํ–ˆ๋‹ค. ์žฅ์  - ๊ฐ„๋‹จํ•˜๋‹ค - DockerFile๋งŒ ๋งŒ๋“ค๋ฉด ๋๋‚œ๋‹ค. - Docker ํ™˜๊ฒฝ์ด๋ผ ๋ฐฐํฌ๊ฐ€ ์ž์œ ๋กญ๋‹ค. - ์ด๋ฏธ์ง€ ์ €์žฅ์†Œ free ๋‹จ์  - ๋ฌด๋ฃŒ๋กœ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐฐํฌ ์ด๋ฏธ์ง€๊ฐ€ ๋…ธ์ถœ๋œ๋‹ค. - ๋‹จ์ˆœ EC2 ์˜คํ†  ์Šค์ผ€์ผ๋ง์„ ํ•œ๋‹ค๋ฉด ๋ชจ๋“  EC2์— ๋„์ปค๊ฐ€ ์„ค์น˜๋œ ๋’ค ๊ทธ ์œ„์— ์˜ฌ๋ผ๊ฐ€.. 2022. 6. 16.
[์˜์‚ฌ๊ฒฐ์ •, ์ผ์ผํšŒ๊ณ ] 22.06.14 - "ํ”„๋ก ํŠธ์—”๋“œ(React) ๋ฐฐํฌ์™€ ์•„ํ‚คํ…์ฒ˜" ๐Ÿ“š ๋ฐฐ์šด ๊ฒƒ ํ”„๋ก ํŠธ์—”๋“œ(React) ๋ฐฐํฌ ๋ฐฉ๋ฒ• ๊ณ ๋ฏผ (์–ด์ œ ๊ธ€์„ ๋‚จ๊ฒผ์ง€๋งŒ) ์ฝ”๋“œ์Šค์ฟผ๋“œ์—์„œ์˜ 3์ฃผ๊ฐ„์˜ ๋งˆ์ง€๋ง‰ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘ํ–ˆ๋‹ค. ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” FE(2๋ช…)/BE(1๋ช…)์œผ๋กœ BE๋ฅผ ๋‹ด๋‹นํ–ˆ๋‹ค. FE - react / BE - Spring๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. BE๊ฐ€ FE ์›น๊นŒ์ง€ ๋ฐฐํฌ๋ฅผ ๋‹ด๋‹นํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. React๋Š” SPA(Single Page Application), CSR(Client side rendering)์œผ๋กœ build ํ•˜๋ฉด ์ •์  ํŒŒ์ผ์ด ์ƒ๊ธด๋‹ค. ์ด๋ฅผ ๋ฐฐํฌํ•˜๋ฉด ๋˜๊ฒ ๋‹ค ์ƒ๊ฐํ–ˆ๊ณ  3๊ฐ€์ง€๊ฐ€ ๋– ์˜ฌ๋ž๋‹ค. Case 1 : Spring + react ๋ฌถ์–ด ๋ฐฐํฌํ•˜๊ธฐ react๋ฅผ ๋นŒ๋“œํ•˜๋ฉด /build ์ •์  ๋ฆฌ์†Œ์Šค ํŒŒ์ผ์„ spring์˜ src/main/resources/main/static ์— ๋„ฃ์–ด ๋ฐฐํฌํ•œ๋‹ค. ์žฅ์  ํ•œ .. 2022. 6. 15.
[์ผ์ผํšŒ๊ณ ] 22.06.13 - "AWS Auto Scaling, ์ฝ”๋“œ ์Šค์ฟผ๋“œ์—์„œ์˜ ๋งˆ์ง€๋ง‰ ํ”„๋กœ์ ํŠธ ์‹œ์ž‘" ๐Ÿ“š ๋ฐฐ์šด ๊ฒƒ AWS Auto Scaling ํ˜ธ๋ˆ…์Šค ๋งˆ์Šคํ„ฐ ํด๋ž˜์Šค์—์„œ AWS์˜ Auto Scaling์„ ๋ฐฐ์› ๋‹ค. ๊ธฐ์–ต์— ๋‚จ๋Š” ๋‚ด์šฉ์„ ์ •๋ฆฌํ•˜๊ณ ์ž ํ•œ๋‹ค. ์Šค์ผ€์ผ๋ง์˜ ์ข…๋ฅ˜ : ์ˆ˜ํ‰, ์ˆ˜์ง ํ™•์žฅ - ์ˆ˜ํ‰ ํ™•์žฅ : AWS๋Š” ์ˆ˜ํ‰ ํ™•์žฅ๋งŒ ์ œ๊ณตํ•œ๋‹ค. - ์ˆ˜์ง ํ™•์žฅ : AWS ๊ธฐ๋ณธ ์ œ๊ณต๋˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด ์ง์ ‘ ์ปค์Šคํ…€ํ•˜์—ฌ CloudWatch ๋ชจ๋‹ˆํ„ฐ๋ง ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ž‘์„ฑํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์™œ ์˜คํ†  ์Šค์ผ€์ผ๋ง์ด ์ค‘์š”ํ•˜๊ณ  ์‚ฌ์šฉํ• ๊นŒ? IT ํšŒ์‚ฌ์˜ ์„œ๋ฒ„ ์‚ฌ์šฉ์€ ์ผ์ •ํ•˜์ง€ ์•Š๋‹ค. ํšŒ์‚ฌ๋งˆ๋‹ค ์œ ํ˜•์ด ๋‹ค๋ฅด๋‹ค. ํด๋ผ์šฐ๋“œ ์ด์ „์—๋Š” ์ž์›์„ ํšจ๊ณผ์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ–ˆ๋‹ค. AWS ์˜คํ†  ์Šค์ผ€์ผ๋ง ์ดํ›„ ์‚ฌ์šฉ์ž๋Š” ์ž์œ ๋กญ๊ฒŒ ์„œ๋ฒ„๋ฅผ ๋Š˜๋ฆฌ๊ณ  ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. Auto Scaling ๊ตฌ์„ฑ ์š”์†Œ์™€ ์›๋ฆฌ Auto Scaling๋Š” ELB(ํƒ„๋ ฅ์  ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ) + C.. 2022. 6. 13.
[์ผ์ผํšŒ๊ณ ] 22.06.02 - "๊ฒ€์ฆ๋ฌธ ์‹คํŒจํ•ด๋„ ๊ณ„์†ํ•˜๊ธฐ, ํ†ตํ•ฉํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋”๋ฏธ๋ฐ์ดํ„ฐ ์„ธํŒ…, ์ฝ”๋“œ์Šค์ฟผ๋“œ ์„ ๋ฐฐ ๊ธฐ์ˆ˜์™€ ์˜จ๋ผ์ธ ๋งŒ๋‚จ" ๐Ÿ“š ๋ฐฐ์šด ๊ฒƒ AssertJ์˜ assertAll JUnit5๋‚˜ AssertJ์˜ ๊ฒ€์ฆ ๋ฉ”์„œ๋“œ(e.g. assertThat() ..)๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐœ ์žˆ์„ ๋•Œ ์•ž์˜ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•˜๋ฉด ๋’ค์˜ ๊ฒ€์ฆ๋ฌธ์„ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ฌถ์–ด์„œ ํ•œ ๋ฒˆ์— ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธ€์ž‘์„ฑ : 2022.06.02 - [โœ… ํ…Œ์ŠคํŠธ์ฝ”๋“œ] - JUnit5์—์„œ ๊ฒ€์ฆ๋ฌธ์ด ์ค‘๊ฐ„์— ์‹คํŒจํ•ด๋„ ๋ฉˆ์ถ”์ง€ ์•Š๊ณ  ๊ฒ€์ฆ๋ฌธ ๋ชจ๋‘ ์‹คํ–‰ํ•˜๊ธฐ(AssertAll, AssertJ, SoftAssertions) ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ…Œ์ŠคํŠธ, ๋”๋ฏธ๋ฐ์ดํ„ฐ ์„ธํŒ… ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๋ฅผ ์œ„ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ดˆ๊ธฐ๊ฐ’, ๋”๋ฏธ ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ์–ด์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์žˆ์—ˆ๋‹ค. ์ƒ๊ฐํ•ด๋ณธ ์„ธํŒ… ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. 1. java ์ฝ”๋“œ๋กœ ์ง์ ‘ data ๋„ฃ๊ธฐ (ํ•˜๋‚˜์”ฉ ๋„ฃ๊ฑฐ๋‚˜ initDB() ์™€ ๊ฐ™์€ ๋งˆ๋” ํด๋ž˜์Šค๋กœ .. 2022. 6. 2.
[์ผ์ผํšŒ๊ณ ] 22.05.31 - "Github Actions์„ ํ™œ์šฉํ•œ ๋ฐฐํฌ ์ž๋™ํ™”, ๋นŒ๋“œ(ํ…Œ์ŠคํŠธ ํ†ต๊ณผ)์— ๋ฌธ์ œ ์—†์—ˆ์ง€๋งŒ ๋Ÿฐํƒ€์ž„์—๋Š” ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๋ฌธ์ œ" ๐Ÿ“š ๋ฐฐ์šด ๊ฒƒ ๋ฐฐํฌ ์ž๋™ํ™”์™€ ์•„ํ‚คํ…์ฒ˜ Airbnb ํ”„๋กœ์ ํŠธ 15์ผ ์ค‘ 7์ผ ์ฐจ ์ง„ํ–‰ ์ค‘์ด๋‹ค. ์–ด์ œ, ์˜ค๋Š˜์€ Github Actions์„ ํ™œ์šฉํ•œ ๋ฐฐํฌ ์ž๋™ํ™”๋ฅผ ํ•˜์˜€๋‹ค. ์•„ํ‚คํ…์ฒ˜๋Š” ์•„๋ž˜์™€ ๊ฐ™๋‹ค. AWS๋ฅผ ํ™œ์šฉํ•˜์˜€๋‹ค. VPC์„ ์‚ฌ์šฉํ•˜์—ฌ public, private subnet์„ ๊ตฌ๋ถ„ํ•˜์—ฌ Web Server์™€ DB๋ฅผ ๊ตฌ๋ถ„ํ•˜์˜€๋‹ค. ํŠน๋ณ„ํ•œ ์ ์œผ๋ก  DB ec2 ๋„คํŠธ์›Œํฌ๋ฅผ private subnet์œผ๋กœ ์„ค์ •ํ•˜์—ฌ ์™ธ๋ถ€ User์—์„œ ๊ณง๋ฐ”๋กœ ์ ‘์†ํ•  ์ˆ˜ ์—†๋„๋ก ํ•˜์˜€๋‹ค. VPC NAT Gateway๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์•„์›ƒ๋ฐ”์šด๋“œ๋งŒ ํ—ˆ์šฉํ•˜์˜€๋Š”๋ฐ VPC NAT Gateway ๋น„์šฉ ๋ฌธ์ œ๋กœ ec2๋ฅผ ํ™œ์šฉํ•ด NAT์„ ์ง์ ‘ ๊ตฌํ˜„ํ•˜๊ฑฐ๋‚˜ ์ž ๊น ์™ธ๋ถ€ ์ ‘์†์ด ํ•„์š”ํ•  ๋•Œ Elastic IP๋ฅผ ์ธํ„ฐ๋„ท ๊ฒŒ์ดํŠธ์›จ์ด์— ์ž ๊น ๋ถ™์—ฌ ํ†ต์‹ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ž๋™ํ™”.. 2022. 6. 1.