โœ”๏ธProject 39

[์ดˆ๊ธฐ ์„ธํŒ… ๋ฐ ๋ฐฐํฌ] Heroku ์„œ๋ฒ„, DB ๋ฐฐํฌ

์ง์ ‘ ๋ฐฐํฌ๋ฅผ ํ•˜๊ธฐ ์ „์— Heroku์— ๋Œ€ํ•ด ๊ฐ„๋‹จํ•œ ์‚ฌ์šฉ๋ฐฉ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๊ณ  ์ •๋ฆฌํ•ด๋‘์—ˆ์—ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์—ญ์‹œ๋‚˜.. ์ง์ ‘ ํ•ด๋ณด๊ธฐ ์ „๊นŒ์ง€๋Š” ์ ˆ๋Œ€ ๋ชจ๋ฅธ๋‹ค ใ…Žใ…Žใ…Ž HJ๋‹˜์ด ๋„์™€์ฃผ์‹œ์ง€ ์•Š์œผ์…จ๋‹ค๋ฉด ์†์ด ํ„ฐ์ ธ ์—‰์—‰ ์šธ์–ด๋ฒ„๋ ธ์„ ๊ฒƒ์ด๋‹ค. ์„œ๋ฒ„ ๋ฐฐํฌ์™€ RDS ์‚ฌ์šฉ์„ ํ•ด๋ณธ ๊ฒƒ์„ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค. 1. ์ค€๋น„ Heroku CLI์„ค์น˜ (Mac์šฉ) #ํ„ฐ๋ฏธ๋„ brew install heroku/brew/heroku ์ฝ”๋“œ์ƒ์—์„œ ๋ฐฐํฌํ™˜๊ฒฝ์œผ๋กœ ๋ณ€๊ฒฝํ•ด์ฃผ์–ด์•ผ ํ•  ๊ฒƒ์€ ๋ณ€๊ฒฝํ•˜๊ธฐ ์˜ˆ๋ฅผ ๋“ค์–ด app = create_app(os.getenv('BOILERPLATE_ENV') or 'prod') #'dev'๋ฅผ 'prod'๋กœ 2. ์„œ๋ฒ„ ๋ฐฐํฌ - Flask๋กœ ๊ตฌํ˜„๋œ ์‚ฌ์ดํŠธ๋ฅผ Heroku๋ฅผ ํ†ตํ•ด ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•œ ์ค€๋น„๋‹จ๊ณ„ โ‘  ์›๋ž˜ ์‚ฌ์šฉํ•˜๋˜ ๊ฐ€์ƒํ™˜๊ฒฝ์ด๋‚˜ ์•„๋‹ˆ๋ฉด ๋ฐฐํฌ๋งŒ์„ ..

[์ดˆ๊ธฐ ์„ธํŒ… ๋ฐ ๋ฐฐํฌ] Flask-RESTX: MVC ํด๋” ๊ตฌ์„ฑ ๋ฐ Flask REST API ๊ตฌํ˜„ํ•˜๊ธฐ

๋”ฅ๋Ÿฌ๋‹์„ ํ™œ์šฉํ•œ ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ์•ฑ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœํ•˜๊ธฐ๋กœ ํ•˜๊ณ , DB์Šคํ‚ค๋งˆ์™€ API๋“ค์„ ๊ตฌ์„ฑํ•˜๋‹ˆ ์šฐ๋ฆฌ ํŒ€์ด flask๋กœ ๊ตฌํ˜„ํ•ด์•ผํ•  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ์€ ์•ฝ 5-6๊ฐœ, API๋Š” 27๊ฐœ ์ด๋‹ค.. ์ด๋ ‡๊ฒŒ ๋งŽ์€ API๋ฅผ ๋งŒ๋“ค์–ด์•ผํ•˜๊ณ  ๋ชจ๋ธ๋„ ํŒŒ์ผ์„ ๋ถ„๋ฆฌํ•˜์—ฌ ๊ตฌํ˜„ํ•ด์•ผ๊ฒ ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋‹ˆ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ์„ ํ•œ ํŒŒ์ผ์ด ์•„๋‹Œ ์—ฌ๋Ÿฌ ํŒŒ์ผ์— ๋‚˜๋ˆ„์–ด์„œ ์งœ๋˜ ๋‹ค๋ฅธ migrate = Migrate(app, db)์‹œ์—๋Š” db์— ๋ชจ๋‘ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ฒƒ ์ตœ๋Œ€ํ•œ mvc ํด๋” ๊ตฌ์„ฑ์„ ๋”ฐ๋ผ๋ณด๋ ค๊ณ  ํ•œ ๊ฒƒ ์„ ๋ชฉํ‘œ๋กœ ๋‘๊ณ  ๋ฐฉ๋ฒ•์„ ์ฐพ์•„๋ณด์•˜๋‹ค. ๋‚˜๋Š” ์ผ๋‹จ MVC ํŒจํ„ด์„ ์ตœ๋Œ€ํ•œ ๊ตฌํ˜„ํ•˜์—ฌ ๊ฐ ์š”์ฒญ์— ๋Œ€ํ•œ ์‘๋‹ต๊นŒ์ง€ ๋ฐ›์•„์„œ ์ž˜ ์ž‘๋™ํ•˜๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณต์žกํ•œ ์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ ์Šคํ‚ค๋งˆ ์ „์— ๊ณ„์† ์˜ˆ์‹œ(14. Python ORM - Flas..

[์ดˆ๊ธฐ ์„ธํŒ… ๋ฐ ๋ฐฐํฌ] DB Setting

์šฐ๋ฆฌ ํ”„๋กœ์ ํŠธ์˜ DB์Šคํ‚ค๋งˆ๋Š” ์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™๋‹ค. (โ€ป ํ˜„์žฌ 2020/12/13์ผ, ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ DB๊ตฌ์กฐ๊ฐ€ ์•ฝ๊ฐ„ ์ˆ˜์ •๋˜์—ˆ๋‹ค. ์ˆ˜์ •๋œ DB ์Šคํ‚ค๋งˆ๋Š” ์•„๋ž˜ ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ) ๋”๋ณด๊ธฐ 1. ๊ฐ ํ…Œ์ด๋ธ” ์„ค๋ช… schedules_date: ๊ฐ ์•Œ๋žŒ ํ•˜๋‚˜ํ•˜๋‚˜์˜ ์ •๋ณด๋ฅผ ๋‹ด๊ณ ์žˆ๋Š” ํ…Œ์ด๋ธ” scedules_common: ํ•œ ์ฃผ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ์•Œ๋žŒ ์ •๋ณด ํ…Œ์ด๋ธ” users: ์‚ฌ์šฉ์ž ์ •๋ณด ํ…Œ์ด๋ธ” (login ํ•„๋“œ๋Š” 'social'์ด๋ฉด ์†Œ์…œํšŒ์›๊ฐ€์ž…์„ ํ•œ ๊ฒƒ, 'basic'์€ ์ผ๋ฐ˜ ํšŒ์›๊ฐ€์ž…์œผ๋กœ ๊ฐ€์ž…ํ•œ ๊ฒƒ์„๊ฐ€ ๋‹ค ๋‚˜ํƒ€๋‚ธ๋‹ค.) medicines: ์•ฝ ์ •๋ณด๊ฐ€ ๋‹ด๊ธด ํ…Œ์ด๋ธ” 2. Relationship user 1 - schedule_date n (schedules_udate) user 1 - schedule_common..

[ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] ๋งˆ์ผ์Šคํ†ค ์ •ํ•˜๊ธฐ, UX/UI ๋””์ž์ธ, ์ปดํฌ๋„ŒํŠธ ๋ฆฌ์ŠคํŠธ์—…

์ด๋ฒˆ ํ”„๋กœ์ ํŠธ ์—ญ์‹œ ํ”„๋กœ์ ํŠธ ์ง„์ฒ™๋„ ๊ด€๋ฆฌ, ์ด์Šˆ ๊ด€๋ฆฌ, ์ฝ”๋“œ ์ž‘์—…, ์ฝ”๋“œ ๋ฆฌ๋ทฐ ๋ชจ๋‘ Github์„ ํ†ตํ•ด ์ด๋ฃจ์–ด์ง„๋‹ค. ๊ทธ๋ž˜์„œ ์ „์ฒด์ ์ธ ๋ฐฉ์‹์€ ์ฒซ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์™€ ๋™์ผํ•˜๋ฉฐ, ์ด์— Github ํ™œ์šฉ๊ณผ Gitflow์— ๋Œ€ํ•œ ๋‚ด์šฉ์€ 1. [Basic] ํ”„๋กœ์ ํŠธ Intro, ์ฒซ ๋ฒˆ์งธ ๋ฏธํŒ… 2. [Basic] ํ”„๋กœ์ ํŠธ ์ค€๋น„ - ํ”„๋กœ์ ํŠธ ํ˜‘์—…์„ ์œ„ํ•œ Gitflow ์— ์ •๋ฆฌํ•ด ๋‘” ๋ฐ” ์žˆ๋‹ค. 1. Project๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ Issue์นด๋“œ ์ƒ์„ฑ ๋ฐ ๋งˆ์ผ์Šคํ†ค ์ •ํ•˜๊ธฐ ๋‹ค๋งŒ ์ด๋ฒˆ์—๋Š” ๋งˆ์ผ์Šคํ†ค์„ ๋” ์ด˜์ด˜ํ•˜๊ฒŒ ์งœ๊ณ , ์ตœ๋Œ€ํ•œ ๋งˆ์ผ์Šคํ†ค ๋งˆ๊ฐ๊ธฐํ•œ์„ ๋งž์ถœ ๊ฒƒ์„ ํŒ€ ๋‚ด ์•ฝ์†์œผ๋กœ ์ •ํ•˜์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด๋ฒˆ์— SH๋‹˜๊ป˜์„œ front, HI๋‹˜๊ป˜์„œ Back, HJ๋‹˜๊ณผ ๋‚ด๊ฐ€ Full stack์„ ๋งก๊ฒŒ ๋˜๋ฉด์„œ ๊ธฐ๋Šฅ ๊ตฌํ˜„๋Ÿ‰์ด ๋งŽ์€ ์ด์Šˆ์นด๋“œ์—๋Š” assinee์— ๋ฏธ..

[ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] API๋ฅผ ์ข€ ๋” RESTful ํ•˜๊ฒŒ

ํ”„๋ก ํŠธ์—”๋“œ์™€ ๋ฐฑ์—”๋“œ๊ฐ€ ์†Œํ†ตํ•˜๋Š” ์—”๋“œํฌ์ธํŠธ, RESTful API ๊ผญ ์ •๋…ํ•ด๋ณด์ž!!!! ์•„๋ž˜๋Š” ์•ฝ 4๋‹ฌ์ „์— commonJS์™€ RESTful API์— ๋Œ€ํ•ด ์ฒ˜์Œ ๋ฐฐ์› ์„ ๋•Œ ์ •๋ฆฌํ•œ ๊ธ€์ด๋‹ค. 21. Server & Node - CommonJS/RESTful API REST API๋ฅผ ์“ด๋‹ค๊ณ  ์ •ํ•ด๋†“๊ณ  RESTful ํ•˜๊ฒŒ ๋””์ž์ธํ•˜๋Š” ๊ฒƒ์˜ ์ค‘์š”์„ฑ์„ ๋งŽ์ด ๋“ค์–ด์™”์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์†”์งํžˆ ๋งํ•˜๋ฉด 'RESTful'ํ•œ๊ฒŒ ๋Œ€์ฒด ๋ญ”์ง€๋„ ๋ชจ๋ฅด๊ณ  ๊ทธ๋ƒฅ '์จ์™”๋‹ค.' ๊ทธ๋Ÿฌ๋‹ค๊ฐ€ ์–ด์ œ office hour์‹œ๊ฐ„์— ์•„๋‹ˆ๋‚˜ ๋‹ค๋ฅผ๊นŒ API๋””์ž์ธ์— ๋Œ€ํ•ด ๋งŽ์€ ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๋‹ค. ์šฐ์„  1. ํ•œ API์— ๊ธฐ๋Šฅ์ด 2๊ฐœ๊ฐ€ ๊ฒน์ณ์žˆ๋‹ค๋Š” ๊ฒƒ์ด์—ˆ๊ณ  (์˜ˆ๋ฅผ ๋“ค์–ด, ๊ฒ€์ƒ‰/์‚ญ์ œ ๊ธฐ๋Šฅ์ด ์ˆœ์ฐจ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผ ํ•  ๋•Œ, ๊ฒ€์ƒ‰์„ ์œ„ํ•œ API, ์‚ญ์ œ๋ฅผ ์œ„ํ•œ API๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด ์•„๋‹ˆ..

[ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] ๊ธฐ๋Šฅ ํ”Œ๋กœ์šฐ,DB schema

์ฒซ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์ธ SAFU๋ฅผ ๋๋‚ด๋ฉด์„œ Final ํ”„๋กœ์ ํŠธ๋•Œ์—๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์ด๊ฒƒ๋“ค์„ ๊ผญ ์ง€์ผœ๋ด์•ผ์ง€ ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉฐ ์ •๋ฆฌํ•ด ๋‘” ๊ธ€(์•„๋ž˜ ๋งํฌ)์ด ์žˆ์—ˆ๋‹ค. 10. Final Project ๋•Œ๋Š”... ์ด๋ ‡๊ฒŒ ๋” ๋ณด์ถฉํ•ด ๋ด์•ผ์ง€ ๊ทธ ์ค‘ ์ฒซ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ๋•Œ ๊ฐ€์žฅ ์† ๊ฐ€๋Š” ๋ถ€๋ถ„์ด ๋งŽ์•˜์œผ๋ฉฐ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์ด ๊ฐ€์žฅ ๋งŽ์ด ์ด๋ฃจ์–ด์ง„ ๋ถ€๋ถ„์ด DB schema์™€ API์ด์—ˆ๊ณ , ์ด ๋‘˜์€ ์ •๋ง ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘์—๋„ ๋ช‡ ๋ฒˆ์ด๋‚˜ ์ˆ˜์ •๋œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์—ˆ๊ธฐ์— ์ด๋ฒˆ์—๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ํ›จ์”ฌ ๋” ๊ผผ๊ผผํ•˜๊ฒŒ ์งœ์•ผ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ์žˆ์—ˆ๋‹ค. ์ด ๊ธ€์€ ์‹œ๊ธฐ์— ํ•ด๋‹นํ•˜๋Š” ์ฃผ์— ์ง  DB schema, API ๊ธฐํš๊ณผ ์ดํ›„ ํ”ผ๋“œ๋ฐฑ ๋ฐ ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ์ค‘ ๊นจ๋‹ฌ์€ ์ ์„ ๋ฐ”ํƒ•์œผ๋กœ ์ˆ˜์ •๋œ ์‚ฌํ•ญ๋“ค์„ ํฌํ•จํ•˜๊ณ  ์žˆ๋‹ค. 1. ๊ธฐ๋Šฅ ํ”Œ๋กœ์šฐ ์ดˆ๊ธฐ ๊ธฐํš๋œ ๊ธฐ๋Šฅ ํ”Œ๋กœ์šฐ๋Š” ๋ฅผ ํด๋ฆญํ•˜๋ฉด ๋ณผ ์ˆ˜ ์žˆ๋‹ค...

[ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] ๊ธฐ์ˆ  ์Šคํƒ ์„ ์ •

์ฒซ ๋ฒˆ์งธ ๋ฏธํŒ…์„ ๋งˆ์น˜๋ฉด์„œ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊ตฌํ˜„ํ•  ์„œ๋น„์Šค(์•ฝ์˜ฌ๋ฆผ)์˜ ๊ธฐ๋Šฅ๋“ค์„ ์ •๋ฆฌํ•˜๊ณ , ํ•„์š”ํ•œ ๊ธฐ์ˆ  ์Šคํƒ์„ '๋ช…ํ™•ํ•œ ์ด์œ '์™€ ํ•จ๊ป˜ ์„ ์ •ํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์šฐ์„  ๊ธฐ๋ณธ์ ์œผ๋กœ 1st Project์—์„œ ํ•ด๋ณธ ๊ฒƒ๋“ค์„ ์ œ์™ธํ•˜๊ณ  ์ƒˆ๋กญ๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผํ•  ๊ฒƒ๋“ค๊ณผ ์ด๋ฅผ ์œ„ํ•ด ํ•„์š”ํ•œ ๊ฒƒ๋“ค์€ - ์–ดํ”Œ ์„œ๋น„์Šค์ž„์„ ๊ฐ์•ˆํ•˜์—ฌ ๋ฐฐํฌ, ์ปดํŒŒ์ผ ๋ฐฉ๋ฒ• ๊ณต๋ถ€ - ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ์„ธํŒ… - ํฌ๋กค๋ง - ์˜์•ฝํ’ˆ(์˜์–‘์ œ(๊ฑด๊ฐ• ๋ณด์กฐ์‹ํ’ˆ)๋„ ์žˆ์œผ๋ฉด ์ข‹์ง€๋งŒ ์šฐ์„  ์˜์•ฝํ’ˆ์„ ์šฐ์„  ํ•˜๊ธฐ๋กœ ํ•จ) ๊ด€๋ จ ์ •๋ณด API - ์•Œ์•ฝ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•ด ํ’ˆ๋ช…์„ ์ž˜ ์˜ˆ์ธก ํ•  ์ˆ˜ ์žˆ๋„๋ก ์ด๋ฏธ์ง€ ์ฒ˜๋ฆฌ ๊ธฐ๊ณ„ํ•™์Šต - ๋ฐฐํฌ - ๋ชจ๋ฐ”์ผ ํ•˜๋“œ์›จ์–ด ์ ‘๊ทผ(์นด๋ฉ”๋ผ, ์•Œ๋žŒ, ์œ„์ ฏ) - ์ง€๋„ API ์‚ฌ์šฉ๋ฒ• ๋“ฑ์ด ์žˆ๋‹ค. ๊ทธ ํ›„ ์ •ํ•ด์ง„ ๊ธฐ์ˆ  ์Šคํƒ๋“ค์€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค. โ€ป ์•„์ง ํ•™์Šต ์ค‘์ธ ์šฐ๋ฆฌ๋“ค์ด๋ผ ๊ฐ ๊ธฐ์ˆ ๋“ค์˜ ์‹ฌ์˜คํ•œ ๋ฐฐ..

[ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] ํŒ€ ๊ตฌ์„ฑ ๋ฐ ์•„์ด๋””์–ด ์„ ์ • (Nov 8, 2020 ํšŒ๊ณ )

ํŒ€ ๊ตฌ์„ฑ ๋ฐ ์•„์ด๋””์–ด ์„ ์ • (Nov 8, 2020 ํšŒ๊ณ ) ์ฒซ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ์˜€๋˜ SAFU์˜ ๋ฐœํ‘œ(Nov 6, 2020)๋ฅผ ๋งˆ์น˜๊ณ  ์ดํ‹€ ํ›„(Nov 8, 2020), Final Project์˜ ํŒ€์›์ด ๋ฐœํ‘œ๋˜์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Final Project์˜ ์•„์ด๋””์–ด๋ฅผ ๋‚˜๋ˆ„๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์ตœ์ข… ์„ ์ •๋œ ์•„์ด๋””์–ด๋Š” ๋‚ด๊ฐ€ ์ œ์•ˆํ•œ '์•ฝ ์•Œ๋žŒ ๋ฐ ์ •๋ณด์ œ๊ณต ์„œ๋น„์Šค' ์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด๊ฒƒ ์ €๊ฒƒ ํ•˜๊ณ ์‹ถ์€ ๊ฒƒ๋„ ๋งŽ๊ณ  ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๋“ค๋„ ๋งŽ์•„์„œ ์ผ๋‹จ ๋ชจ๋‘ ์ ์–ด๋ณด๋‹ˆ ๋„ˆ๋ฌด ์ด๋„ ์ €๋„ ์•„๋‹Œ ๋Š๋‚Œ์ด ๋“ ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์•˜๊ณ , ์ด์•ผ๊ธฐ๊ฐ€ ์ง„ํ–‰๋˜๋Š” ๊ณผ์ • ์†์—์„œ ํ•ด๋‹น ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ์ด '์•ฝ ๋ณต์šฉ ๊ด€๋ฆฌ ์„œ๋น„์Šค'์ด๋ฉด์„œ '์ด๋ฏธ์ง€ ์ธ์‹์„ ํ†ต์•ˆ ์•ฝ ์ •๋ณด ์ œ๊ณต'์€ ๋ถ€๊ฐ€์ ์œผ๋กœ ํŽธ์˜๊ธฐ๋Šฅ์œผ๋กœ ์—ญํ• ์„ ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ๋‹ค. ๊ฑฐ์˜ 6-7์›” ์ฏค ํ• ๋จธ๋‹ˆ์˜ ์ˆ˜๋งŽ์€ ์•Œ์•ฝ๋“ค..

[DevOps] CI/CD

DevOps DevOps๋ž€ ๊ฐœ๋ฐœ(Development)๊ณผ ์šด์˜(Operation)์˜ ํ•ฉ์„ฑ์–ด๋กœ, ๊ฐœ๋ฐœ๊ณผ ์šด์˜์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์„œ ์ผํ•˜๋Š” ์ฒ ํ•™, ๋„๊ตฌ, ํ™˜๊ฒฝ, ๋ฌธํ™” ๋“ฑ์˜ ์กฐํ•ฉ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค. ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€ ๋ชจ๋“  ๋‹จ๊ณ„์— ์ž๋™ํ™”์™€ ๋ชจ๋‹ˆํ„ฐ๋ง์„ ๋„์ž…ํ•ด์„œ ๋” ์งง์€ ๊ฐœ๋ฐœ ์ฃผ๊ธฐ, ๋” ๋งŽ์€ ๋ฐฐํฌ ๋นˆ๋„, ์•ˆ์ •์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ๋ฐฐํฌํ•˜์ž๋Š” ๋ชฉํ‘œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์œ„์˜ ์„ค๋ช…์„ ๋ณด๋ฉด '์ž๋™ํ™”'์™€ '๋ชจ๋‹ˆํ„ฐ๋ง'์ด ํ•„์š”ํ•œ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜์„œ ๋ฐ๋ธŒ์˜ต์Šค๋Š” ์„œ๋ฒ„ ๊ตฌ์„ฑ, ๋ฐฐํฌ, ํ…Œ์ŠคํŠธ์— ์žˆ๋Š” ๋ฐ˜๋ณต์ž‘์—…์„ ์ตœ๋Œ€ํ•œ ์ž๋™ํ™”ํ•˜์—ฌ ๋ฐฐํฌ ๋ฆฌ์†Œ์Šค๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด ์‹œ์ž‘์ด๋‹ค. ๋ฐ๋ธŒ์˜ต์Šค๋ฅผ ์‹ค์ฒœํ•˜๋Š” ๋ฐฉ์‹์€ ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๊ณ , ๊ทธ ์ค‘ One-Step ๋นŒ๋“œ์™€ ๋ฐฐํฌ๊ฐ€ ์žˆ๋‹ค. ๋นŒ๋“œ(Build)๋ž€ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœํ•œ ์†Œ์Šค ์ฝ”๋“œ ํŒŒ์ผ์„ ํ†ตํ•ฉํ•˜๊ณ , ์‹ค์ œ ๋™์ž‘ ๊ฐ€๋Šฅํ•œ ๋…๋ฆฝ์ ์ธ S/W ๋ณ€..

Dev/DevOps, Infra 2021.01.15

[NGINX] EC2์— nginx ์„ค์น˜ ๋ฐ ์„ธํŒ…

์ฒซ ๋ฒˆ์งธ ํ”„๋กœ์ ํŠธ๋กœ ์ง„ํ–‰ํ•œ SAFU ์›น ์„œ๋น„์Šค ์„ ๋ฐฐํฌํ•˜๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„ ๊ตฌ์ถ•์„ ํ•˜๋ คํ•˜๋ฉฐ, '์„œ๋ฒ„ ๋‹จ์œ„์˜ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ' ์•„ํ‚คํ…์ณ ์ค‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„๊ฐ€ (์ผ๋‹จ์€)ํ•˜๋‚˜์ธ ์•„๋ž˜์˜ ๊ตฌ์„ฑ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ•œ๋‹ค. ์ˆœ์„œ๋Š” 1. EC2 ๋ฐฐํฌ ๋ฐ inbound ์„ค์ • 2. ACM ์—์„œ SSL ์ธ์ฆ์„œ ๋ฐœ๊ธ‰ 3. ELB ์ƒ์„ฑ ๋ฐ ๋ฆฌ์Šค๋„ˆ ์„ธํŒ… 4. Route53์˜ ๋„๋ฉ”์ธ๊ณผ ELB์˜ ์ธ์Šคํ„ด์Šค DNS ์—ฐ๊ฒฐ 5. EC2์— nginx ์„ค์น˜ ๋ฐ ์„ธํŒ… ์œผ๋กœ ์ง„ํ–‰ ๋  ๊ฒƒ์ด๋‹ค. ์ด๋ฒˆ์—๋Š” 5. EC2์— nginx ์„ค์น˜ ๋ฐ ์„ธํŒ… ์— ๋Œ€ํ•ด ์ •๋ฆฌํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. NGINX๋ž€ ์„œ๋ฒ„ ์ธ์Šคํ„ด์Šค์—๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด์ฃผ๋Š” ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๊ฐ€ ํ•„์š”ํ•˜๋‹ค. ์„œ๋ฒ„ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํฌ๊ฒŒ ์›น ์„œ๋ฒ„์™€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„(WAP; Web Application Server..

Dev/DevOps, Infra 2021.01.15
โ€‹