โœ”๏ธServer 22

[Milestone ๊ทธ ์ดํ›„] Tensorflow Model Serving

1. SavedModel๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ ํ•™์Šต์‹œํ‚จ ๋ชจ๋ธ์„ tf.saved_model.save()ํ•จ์ˆ˜๋กœ SavedModel ํฌ๋งท์œผ๋กœ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋ธ๊ณผ ์ด๋ฆ„, ๋ฒ„์ „์„ ํฌํ•จํ•œ ๊ฒฝ๋กœ๋ฅผ ์ „๋‹ฌํ•˜๋ฉด ์ด ํ•จ์ˆ˜๋Š” ์ด ๊ฒฝ๋กœ์— ๋ชจ๋ธ์˜ ๊ณ„์‚ฐ ๊ทธ๋ž˜ํ”„์™€ ํ•™์Šต๊ฒฐ๊ณผ ๊ฐ€์ค‘์น˜๋ฅผ ์ €์žฅํ•œ๋‹ค. model_version = "0001" model_name = "medisharp_pill_image_model" model_path = os.path.join(model_name, model_version) tf.saved_model.save(model, model_path) ๊ทธ๋Ÿฌ๋ฉด - saved_model.pb: ๊ณ„์‚ฐ ๊ทธ๋ž˜ํ”„๋ฅผ ์ •์˜ - variables: ๋ณ€์ˆ˜๊ฐ’์„ ๋‹ด๊ณ ์žˆ๋Š” ํด๋”๋กœ, ๋งŽ์€ ๊ฐœ์ˆ˜์˜ ๊ฐ€์ค‘์น˜๋ฅผ ๋‹ด์€ ๋ชจ๋ธ์˜ ๊ฒฝ์šฐ ๋ณ€์ˆ˜๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ๋กœ..

[Milestone Week 4(๋งˆ์ง€๋ง‰ ๋งˆ๋ฌด๋ฆฌ)] Push Notification/๊ฐœ์ธ์ •๋ณด ๊ด€๋ฆฌ/๋กœ๊ทธ์•„์›ƒ

push notification์„ ๊ตฌํ˜„ํ•˜๋ฉด์„œ ์ง€๊ธˆ๊นŒ์ง€ ํ”„๋กœ์ ํ‹€๋ฅผ ํ•˜๋ฉด์„œ ํ‚ค์šด ๋‚ด๊ณต๋“ค+๊ฐ€์น˜๋“ค์ด ํ•œ๊บผ๋ฒˆ์— ๋ฐœํœ˜๋˜์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋ชจ๋“  ํŒ€์›๋“ค์˜ ์ฑ…์ž„๊ฐ์žˆ๋Š” ํƒœ๋„์— ํž˜์ด ๋‚ฌ์œผ๋ฉฐ, ํ˜ผ์ž ํ•  ๋•Œ๋Š” ๋ง‰๋ง‰ํ–ˆ๋˜ ๊ฒƒ์ด HJ๋‹˜๊ณผ ํ˜‘๋ ฅํ•˜๋‹ˆ ๋‚ด๊ฐ€ ๋ชฐ๋ž๋˜ ๋ถ€๋ถ„์ด ์ฑ„์›Œ์ง€๊ณ , ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ , ๊ทธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์งˆ๋ฌธ/๊ฒ€์ƒ‰์„ ํ•˜๊ณ , ์ฐพ์€ ํ•ด๋‹ต์„ ์–ด๋–ป๊ฒŒ ๋‚ด ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถ”๊ฐ€๋กœ, ์–ธ์ œ๋‚˜ ๋‹ต์€ '๊ณต์‹ ๋ฌธ์„œ'์™€ '์›๋ฆฌ ํŒŒ์•…'์— ์žˆ๋‹ค๋Š” ๊ฐ’์ง„ ๊นจ๋‹ฌ์Œ๋„ ์–ป์—ˆ๋‹ค. ๐Ÿ™‚ ์ด์ œ ์•ž์„œ [ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] ๋งˆ์ผ์Šคํ†ค ์ •ํ•˜๊ธฐ, UX/UI ๋””์ž์ธ, ์ปดํฌ๋„ŒํŠธ ๋ฆฌ์ŠคํŠธ์—…์˜ ์—์„œ ๊ณ„ํšํ•œ ๋ชจ๋“  ๊ธฐ๋Šฅ๊ตฌํ˜„์€ ๋งˆ๋ฌด๋ฆฌ ๋˜์—ˆ๊ณ , ๋‚ด๊ฐ€ ํ•œ ์ผ์— ๋Œ€ํ•œ ํšŒ๊ณ  ๊ธ€๋„ ๋์ด ๋‚ฌ๋‹ค. ์ž๋ฉด์„œ๋„ ์ฝ”๋”ฉํ•˜๋Š” ๊ฟˆ์„ ..

[Milestone Week 3] ๋ณต์•ฝ ์ •๋ณด ์ œ๊ณต ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

3์ฃผ์ฐจ ๋•Œ๋Š” 2์ฃผ์ฐจ์˜ ๋ณต์šฉ ์ผ์ • ๋“ฑ๋ก ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์— ์ด์–ด์„œ ์•ฝ์˜ฌ๋ฆผ์˜ ๋˜๋‹ค๋ฅธ ํ•ต์‹ฌ ์„œ๋น„์Šค์ธ ๋ณต์•ฝ ์ •๋ณด ์ œ๊ณต ๋ฐ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋‹ค. ์ด ๊ธฐ๋Šฅ์€ ๊ตฌํ˜„ ์ด์ „๋ถ€ํ„ฐ '์•ฝ ์ƒ์„ธ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด์ฃผ๋Š” ๊ณณ์ด ์žˆ๋‚˜, ์žˆ์œผ๋ฉด ์–ด๋””์ธ๊ฐ€?' , '์ด ๋ฐ์ดํ„ฐ๋ฅผ ์šฐ๋ฆฌ DB์— ์ €์žฅ ํ•  ๊ฒƒ์ด๋ƒ ์•„๋‹ˆ๋ฉด ๋งค๋ฒˆ OpenAPI๋กœ ์š”์ฒญํ•  ๊ฒƒ์ด๋ƒ', '์–ด๋–ค ์ •๋ณด๋ฅผ ์ œ๊ณตํ•ด ์ค„ ๊ฒƒ์ธ๊ฐ€?', 'OpenAPI๋ฅผ ์š”์ฒญํ•˜๋Š” ๊ณณ์„ Client์—์„œ ํ•  ๊ฒƒ์ธ๊ฐ€ Server์—์„œ ํ•  ๊ฒƒ์ธ๊ฐ€?' ๋“ฑ์— ๋Œ€ํ•œ ํŒ€์›๊ฐ„ ๋…ผ์˜๊ฐ€ ํ™œ๋ฐœํ•˜๊ฒŒ ์ด๋ฃจ์–ด์ง„ ๋ถ€๋ถ„์ด๊ธฐ๋„ ํ•˜๋‹ค. ์ด๋ฒˆ์— ๊ตฌํ˜„ํ–ˆ๋˜ ๊ธฐ๋Šฅ๋“ค์€ ๊ธฐ์ˆ ์ ์ธ ์ด์Šˆ๋‚˜ ์›๋ฆฌ๋ฅผ ์•„๋Š” ๊ฒƒ ๋ณด๋‹ค '์‚ฌ๋ก€์™€ ์‚ฌ์šฉ๋ฒ•'์„ ์•„๋Š” ๊ฒƒ์ด ํ•ต์‹ฌ์ด๋‹ค. ๊ทธ๋งŒํผ ๊ณต์‹๋ฌธ์„œ๋ณด๋‹ค๋Š” ๋‚˜๋ณด๋‹ค ๋จผ์ € ๊ณต๊ณต๋ฐ์ดํ„ฐ, OpenAPI, xml์ •๋ณด์˜ jsonํ™”๋ฅผ ๊ณ ๋ฏผํ–ˆ๋˜ ์‚ฌ๋žŒ๋“ค์ด ๊ธฐ..

[Milestone Week 2] ์•Œ๋žŒ ์ผ์ • CRUD ๊ธฐ๋Šฅ ๊ตฌํ˜„

1. ์•Œ๋žŒ ์ผ์ • ๋“ฑ๋ก ๊ธฐ๋Šฅ 2์ฃผ์ฐจ์˜ ์•Œ๋žŒ ์ผ์ •, ํŠนํžˆ ๋“ฑ๋ก์— ๊ด€ํ•œ ๊ธฐ๋Šฅ์€ ์•ฝ์˜ฌ๋ฆผ ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜๋กœ, ์นด๋ฉ”๋ผ ์ดฌ์˜ ๋˜๋Š” ์ง์ ‘ ์ž…๋ ฅ์œผ๋กœ ์ดฌ์˜ํ•œ ์ด๋ฏธ์ง€์™€ ํ•จ๊ป˜ ์•Œ์•ฝ์„ ๋“ฑ๋กํ•˜๋ฉฐ ์บ˜๋ฆฐ๋”์™€ ์‹œ๊ฐ„, ์ฃผ๊ธฐ ๊ณ„์‚ฐ ๋“ฑ์ด ๋ชจ๋‘ ๋ณตํ•ฉ์ ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์•ผํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ์˜จ ํŒ€์›์ด ๋งˆ์น˜ ํ•œ ๋ชธ์ธ ๊ฒƒ์ฒ˜๋Ÿผ ๊ธฐ๋Šฅ๊ตฌํ˜„์˜ ํ‹ฐํ‚คํƒ€์นด๊ฐ€ ์ด๋ฃจ์–ด์ ธ์•ผํ–ˆ๊ณ , ์‹ค์ œ๋กœ ๊ทธ๋ ‡๊ฒŒ ํ•˜์˜€๋‹ค! ๊ทธ๋ž˜์„œ ์•„๋ž˜์™€ ๊ฐ™์€ ์•„๋ฆ„๋‹ค์šด ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„ ๋  ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ์ด๋‹ค. ํŠนํžˆ ์•ฝ ๋“ฑ๋ก์˜ ๊ณผ์ •์ด ๋งค์šฐ ๋ณต์žกํ–ˆ๋‹ค. ์Šคํฌ๋ฆฐ ์ด๋™์ด ๋งŽ์•˜๊ณ , ๊ทธ ์Šคํฌ๋ฆฐ๋งˆ๋‹ค ์ •๋ณด(state)๋ฅผ ํ•ญ์ƒ ๊ฐ€์ง€๊ณ  ์ด๋™์‹œ์ผœ์•ผํ–ˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์ด ๊ณผ์ •์—์„œ ๋‚˜๋Š” camera์— ์ ‘๊ทผํ•˜์—ฌ์„œ ์ „๋ฐฉ/ํ›„๋ฐฉ์นด๋ฉ”๋ผ ์„ ํƒ/์ด๋ฏธ์ง€ ์ดฌ์˜/์„ ํƒ ๋˜๋Š” ์žฌ์ดฌ์˜ ๊ธฐ๋Šฅ๊ณผ ์•Œ์•ฝ ์ด๋ฏธ์ง€๋ฅผ ํ†ตํ•œ ์ข…๋ฅ˜ ์˜ˆ์ธก ๊ธฐ๋Šฅ์— ๋Œ€ํ•ด ์ง‘์ค‘ํ•˜์˜€๊ณ , HJ๋‹˜์ด..

[Milestone Week 1] Home, Calendar๊ด€๋ จ API & CountTimer ๊ตฌํ˜„

์ด๋ฒˆ์— Full Stack ํฌ์ง€์…˜์„ ๋งก๊ฒŒ ๋˜๋ฉด์„œ Server์™€ Client์˜ ์ž‘์—…์„ ๋™์‹œ ์ง„ํ–‰ํ•˜์˜€๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ฐœ๋ฐœ์ ์ธ ์—ญ๋Ÿ‰์„ ํ‚ค์šธ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ๋„ ์ •๋ง ํฐ ์„ฑ์žฅ์ด์ง€๋งŒ ๋ฌด์—‡๋ณด๋‹ค1. ํ•„์š”ํ•œ ๊ธฐ๋Šฅ์ด ๋ฌด์—‡์ธ์ง€ ์ •ํ™•ํ•˜๊ฒŒ ํŒŒ์•…ํ•˜๊ณ (๋ฌธ์ œ ์ •์˜ ๋Šฅ๋ ฅ),2. ๊ทธ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์ •ํ™•ํ•˜๊ณ  ํšจ์œจ์ ์ธ ์งˆ๋ฌธ/๊ฒ€์ƒ‰์„ ํ•˜๊ณ ,3. ์ฐพ์€ ํ•ด๋‹ต์„ ์–ด๋–ป๊ฒŒ ๋‚ด ์ƒํ™ฉ์— ๋งž๊ฒŒ ์ ์šฉํ•˜๋Š” ๋Šฅ๋ ฅ์„ ๊ธฐ๋ฅผ ์ˆ˜ ์žˆ์–ด์„œ ์ •๋ง ๊ฐ’์ง„ ์‹œ๊ฐ„์ด์—ˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. Milestone ๊ธฐ์ค€ ๋ณธ๊ฒฉ์ ์ธ ๊ธฐ๋Šฅ๊ตฌํ˜„ 1์ฃผ์ฐจ์— Server์™€ Client side์—์„œ ํ•œ ์ผ์„ ์ ์–ด๋ณด๊ณ ์ž ํ•œ๋‹ค. 1. Server side๋กœ๊ทธ์ธ ์™„๋ฃŒ ํ›„ ์ฒ˜์Œ ์•ฑ์— ๋“ค์–ด๊ฐ€์ž๋งˆ์ž ๋ณด์ด๋Š” Home ํŽ˜์ด์ง€์™€ ์•ฝ์˜ฌ๋ฆผ ์„œ๋น„์Šค์˜ ํ•ต์‹ฌ ํŽ˜์ด์ง€๋ผ ํ•  ์ˆ˜ ์žˆ๋Š” Calendar ํŽ˜์ด์ง€์— ํ•„์š”ํ•œ API๋ฅผ..

[์ดˆ๊ธฐ ์„ธํŒ… ๋ฐ ๋ฐฐํฌ] 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..

[ํ”„๋กœ์ ํŠธ ๊ธฐํš ๋ฐ ์ค€๋น„์ž‘์—…] 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๋กœ ๋‚˜๋ˆˆ ๊ฒƒ์ด ์•„๋‹ˆ..

[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
โ€‹