Loading...
2021. 9. 26. 11:47

[FastAPI] 11. Dependency Injector๋ฅผ ์ด์šฉํ•œ ์˜์กด์„ฑ ๊ด€๋ฆฌ

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๋‹ค๋ณด๋ฉด ๊ทœ๋ชจ๊ฐ€ ์ปค์ง€๊ฒŒ ๋˜์–ด ์ด๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ํ•„์š”๊ฐ€ ์ƒ๊ธฐ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ด์— ์ ์šฉํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๋Œ€ํ‘œ์ ์ธ ์•„ํ‚คํ…์ฒ˜์ธ Layered Architecture๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. Layered Architecture๋Š” ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์šด์šฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ˜„๋Œ€ ๋Œ€ํ‘œ์ ์ธ ๋ฐฉ๋ฒ•์œผ๋กœ, Application, Domain, Infrastructure์˜ 3๊ฐœ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋“ค์„ ์ „๋ถ€ ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๊ตฌํ˜„ํ•˜๊ฒŒ ๋˜๋ฉด ๊ฐ๊ฐ์˜ ์˜์กด์„ฑ์ด ๋Š˜์–ด๋‚˜๊ฒŒ ๋˜๊ณ , ๊ทธ ๋กœ์ง์ด ์ปค์ง€๋ฉด ์ด ์—ญ์‹œ ๊ด€๋ฆฌ๊ฐ€ ํž˜๋“ค์–ด์ง‘๋‹ˆ๋‹ค. Python์—์„œ๋Š” ์ด๋Ÿฌํ•œ ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์–‘ํ•œ DI ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ, ๊ทธ ์ค‘์—์„œ๋„ Dependency Injector๋ฅผ ์‚ฌ์šฉ ํ•ด๋ณด๊ณ ์ž ํ•ฉ๋‹ˆ๋‹ค. Dependency I..

2021. 8. 29. 18:26

[Github] Github Actions์™€ Firebase Channel์„ ์ด์šฉํ•œ ์Šคํ…Œ์ด์ง€ ํ™˜๊ฒฝ ๊ตฌ์ถ•

ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ๋‘ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ ์ดˆ๊ธฐ์— ๊ฐ€๊นŒ์ด ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋น ๋ฅด๊ฒŒ ๋ฐ˜์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ(Dev) ํ™˜๊ฒฝ, ์‹ค์ œ Production ํ™˜๊ฒฝ์— ์˜ฌ๋ฆฌ๊ธฐ ์ „, Production๊ณผ ๋˜‘๊ฐ™์€ ํ™˜๊ฒฝ์—์„œ ํ…Œ์ŠคํŠธ ํ•ด๋ณด๊ธฐ ์œ„ํ•œ Stage ํ™˜๊ฒฝ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 2019.08.27 - [DevOps/Git] - Github Actions - React ํ”„๋กœ์ ํŠธ๋ฅผ Firebase์— Deploy ํ•˜๊ธฐ Github Actions - React ํ”„๋กœ์ ํŠธ๋ฅผ Firebase์— Deploy ํ•˜๊ธฐ Actions ๋งˆ์ง€๋ง‰ ํฌ์ŠคํŠธ๋กœ React ํ”„๋กœ์ ํŠธ๋ฅผ Firebase์— Deploy ํ•˜๋Š” ๊ธ€์„ ์จ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ง€๋‚œ ํฌ์ŠคํŠธ์—์„œ YAML ํŒŒ์ผ์„ ๊ฐ€์ง€๊ณ  ๊ฐ„๋‹จํ•œ Workflow์™€ Matrix์™€..

2021. 8. 19. 00:32

[Github] Password authentication was removed์— ๋Œ€์ฒ˜ํ•˜๊ธฐ

์ €๋Š” OS X, Ubuntu Linux, Windows 3๊ฐ€์ง€ OS์—์„œ Github์„ ์ด์šฉํ•ด ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ํ‘ธ์‹œํ•˜๋Š” ์ž‘์—…์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ๋ฐ, ์ด๋ฅผ ์—ฌํƒœ๊นŒ์ง€ ์ƒ๊ฐ์—†์ด ํŽธํ•œ๋Œ€๋กœ ์‚ฌ์šฉํ•˜์—ฌ ์–ด๋–ค OS์—์„œ๋Š” SSH Key๋ฅผ ์‚ฌ์šฉํ–ˆ๊ณ , ์–ด๋–ค OS์—์„œ๋Š” Password ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๊ณ , ์–ด๋–ค OS์—์„œ๋Š” OAuth Key๋ฅผ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋˜ ์˜ค๋Š˜, ๊ฐœ์ธ์šฉ PC์— ์„ค์น˜๋œ Ubuntu Linux์—์„œ ์ƒˆ๋กœ์šด ๋ชจ๋“ˆ์„ ๋งŒ๋“ค๊ณ , Github์— Push๋ฅผ ํ–ˆ๋”๋‹ˆ ์•„๋ž˜์™€ ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋‚˜๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Password authentication is deprecated ์–ธ์  ๊ฐ€ ๋น„์Šทํ•œ ๋ฉ”์ผ์„ Github์—์„œ ์—ฌ๋Ÿฌ๋ฒˆ ๋ฐ›์•˜์—ˆ๋Š”๋ฐ, ์กฐ๋งŒ๊ฐ„ ์•ˆ์ „ํ•˜์ง€ ์•Š์€ ๋ณด์•ˆ ์žฅ์น˜๋“ค์— ๋Œ€ํ•ด ๋” ์ด์ƒ ์ง€์›ํ•˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๋‚ด์šฉ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ์ด์ œ ๊ทธ..

2021. 6. 19. 22:35

[Spring Data] Spring Data JDBC๋ฅผ ์ด์šฉํ•œ DB ์—ฐ๋™ (์‘์šฉํŽธ)

์ง€๋‚œ ๊ธ€์—์„œ ์šฐ๋ฆฌ๋Š” Spring Data JDBC๋ฅผ ์ด์šฉํ•ด ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์ด๋ฅผ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋กœ ๋งŒ๋“œ๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ดค์Šต๋‹ˆ๋‹ค. ์ด๋ฒˆ ๊ธ€์—์„œ๋Š” ๋‘ ๊ฐœ์˜ ํ…Œ์ด๋ธ”์ด ์„œ๋กœ ๊ด€๊ณ„๋ฅผ ๊ฐ€์ง„ ๊ฒฝ์šฐ์— ์–ด๋–ป๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋Š”์ง€์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. Entity ์ด๋ฒˆ ๊ธ€์—์„œ ์‚ฌ์šฉํ•  ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ธ”๋กœ๊ทธ์—์„œ ํ”ํžˆ ๋ณผ ์ˆ˜ ์žˆ๋Š” ํฌ์ŠคํŠธ์™€ ์ฝ”๋ฉ˜ํŠธ์ž…๋‹ˆ๋‹ค. ํฌ์ŠคํŠธ์— ๋ธ”๋กœ๊ทธ์˜ ๊ฒŒ์‹œ๊ธ€์ด ๋‹ฌ๋ฆฌ๋ฉด ๊ทธ ๋Œ“๊ธ€์„ ๋‹ฌ ์ˆ˜ ์žˆ๋Š” ํ˜•ํƒœ๋กœ ํ•˜๋‚˜์˜ ๊ธ€์„ ์กฐํšŒํ–ˆ์„ ๋•Œ ๋Œ“๊ธ€์„ ๊ฐ™์ด ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‹œ๋ฅผ ๋‹ด์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. SQL script flyway์— ์•„๋ž˜์˜ SQL script๋ฅผ ์ž…๋ ฅํ•ด์ค๋‹ˆ๋‹ค. ์ง€๋‚œ ๊ธ€์—์„œ์™€๋Š” ๋‹ฌ๋ฆฌ PRIMARY KEY์˜ ์ƒ์„ฑ ๋ฐฉ๋ฒ•์ด ์กฐ๊ธˆ ๋‹ค๋ฅธ๋ฐ, CONSTRAINT ์ฟผ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ฉด ์ž์‹ ์ด ์ง์ ‘ ํ•ด๋‹น ํ‚ค..

2021. 6. 5. 22:36

[Spring Data] Spring Data JDBC๋ฅผ ์ด์šฉํ•œ DB ์—ฐ๋™ (๊ธฐ๋ณธํŽธ)

Spring Data JDBC๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์•Œ๊ณ  ์žˆ๋Š” Spring JDBC์™€๋Š” ์กฐ๊ธˆ ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. JDBC ํ…œํ”Œ๋ฆฟ์€ ์ฟผ๋ฆฌ๋ฅผ ์ง์ ‘ ์ž…๋ ฅํ•˜๊ณ  ์šฐ๋ฆฌ๊ฐ€ ์ด๋“ค์˜ ํ•จ์ˆ˜ ํ˜•ํƒœ๋ฅผ ์ง์ ‘ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์†์ด ๋งŽ์ด ๊ฐ‘๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ด๋“ค์„ Spring Data Commons๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์žฌ๊ตฌ์„ฑํ•œ ๊ฒƒ์ด ๋ฐ”๋กœ Spring Data JDBC ์ž…๋‹ˆ๋‹ค. Background of Spring Data JDBC ์šฐ๋ฆฌ๋Š” ์ด์ „ ๊ธ€์—์„œ Spring Data Commons๊ฐ€ ๋ฌด์—‡์ธ์ง€๋ฅผ ์•Œ์•„๋ดค์Šต๋‹ˆ๋‹ค. ์Šคํ”„๋ง์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๊ธฐ ์œ„ํ•ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌํ˜„๋˜์–ด ์žˆ๋Š” CRUD์˜ ์ถ”์ƒํ™” ๋ ˆ์ด์–ด๋ฅผ ๋งŒ๋“  ๊ฒƒ์ด ๋ฐ”๋กœ Spring Data Commons ์ธ๋ฐ์š”. ์ด๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ JPA๋ฅผ ๋„ฃ์€ ๊ฒƒ์ด ๋ฐ”๋กœ Spring Data JPA์ž…๋‹ˆ๋‹ค. ..

2021. 5. 29. 20:13

[Spring Data] Spring Data module

์Šคํ”„๋ง์„ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ์ด๋Ÿฐ ์˜๋ฌธ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. JPA๋Š” JPA์ธ๋ฐ, Spring Data JPA๋Š” ๋ฌด์—‡์ด๋ฉฐ, JDBC๋Š” JDBC์ธ๋ฐ, Spring Data JDBC๋Š” ๋ฌด์—‡์ธ๊ฐ€? JPA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ Spring Data JPA๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ถ„๋ช…ํžˆ ๋‹ค๋ฅธ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ชฉ์š”์—ฐํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด Spring Data JPA๋ฅผ ๋ชฐ๋ผ๋„ JPA๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐ ํฐ ์ง€์žฅ์€ ์—†์ง€๋งŒ JPA๋ฅผ ๋ชจ๋ฅด๋Š” ์ƒํƒœ์—์„œ Spring Data JPA๋กœ ๋„˜์–ด์˜ค๋Š” ๊ฒƒ์€ ๋งˆ์น˜ ์ด๋ก  ์—†์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์“ฐ๋Š” ๊ฒƒ๊ณผ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ์ด์ฒ˜๋Ÿผ Spring Data๊ฐ€ ์•ž์— ๋ถ€ํŠผ ๋””ํŽœ๋˜์‹œ๋“ค์€ ๋ฌด์–ธ๊ฐ€ Spring์— ์ตœ์ ํ™” ๋˜์–ด ์žˆ๋Š” ๋Š๋‚Œ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด Spring์—์„œ ์ œ๊ณตํ•˜๋Š” Spring Data Pattern์€ ์–ด๋–ค ๊ฒƒ์ผ๊นŒ์š”? Spring Data Spri..

2021. 5. 16. 12:01

[Web] Dropbox / Adobe Photoshop API๋กœ ์ด๋ฏธ์ง€ ๋ฐฐ๊ฒฝ ์ง€์šฐ๊ธฐ

๊ฐœ๋ฐœ ๋ฒˆ์™ธ ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๊ฑด ์ง€๊ทนํžˆ ์˜ค๋žœ๋งŒ์ธ ๊ฑฐ ๊ฐ™๋„ค์š”. ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ํ˜„์žฌ Beta๋กœ ์ œ๊ณต๋˜๊ณ  ์žˆ๋Š” Adobe Photoshop API๋ฅผ ์ด์šฉํ•ด์„œ ์ด๋ฏธ์ง€์˜ ๋ฐฐ๊ฒฝ์„ ์ง€์šฐ๋Š” ๊ฐ„๋‹จํ•œ ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Adobe Photoshop API https://github.com/AdobeDocs/photoshop-api-docs AdobeDocs/photoshop-api-docs Adobe Photoshop API. Contribute to AdobeDocs/photoshop-api-docs development by creating an account on GitHub. github.com Adobe API๋Š” ํ˜„์žฌ ๊ณต๊ฐœ ๋ฒ ํƒ€์™€ ๋น„๊ณต๊ฐœ ๋ฒ ํƒ€ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋ˆ ์„œ ์ง„ํ–‰ ์ค‘์— ์žˆ์œผ๋ฉฐ Photostop ..

2021. 5. 16. 10:25

[Spring boot] Spring ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•๊ณผ @SpringBootTest

์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ์–ด๋–ป๊ฒŒ ๊ตฌํ˜„ํ•ด์•ผ ํ• ๊นŒ์š”? ์ œ๊ฐ€ ์ฒ˜์Œ ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•˜๊ณ  ๋‚˜์„œ ํ…Œ์ŠคํŠธ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ–ˆ์„ ๋•Œ ๊ฐ€์žฅ ํฐ ์˜๋ฌธ์ ์ด ๋“ค์—ˆ๋˜ ์œ ํ˜•์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ๋กœ ์•ˆ๋“œ๋กœ์ด๋“œ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ–ˆ์„ ๋•Œ๋Š” Unit Test์™€ Instrument Test ๋‘ ๊ฐ€์ง€๋ฅผ ์ง„ํ–‰ํ–ˆ๊ณ , ๊ฐ๊ฐ DB I/O ํ…Œ์ŠคํŠธ์™€ UI/UX ๋™์ž‘ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•œ ๊ฒƒ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ์„œ๋ฒ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์–ด๋–จ๊นŒ์š”? ๋Œ€ํ‘œ์ ์ธ Spring boot๋ฅผ ์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ ๋‹ค๋ค„๋ณผํ…๋ฐ, Spring boot์—์„œ๋Š” JUnit ์ด๋ผ๋Š” ํ…Œ์ŠคํŠธ ๋„๊ตฌ์™€ Mockito๋ผ๋Š” Mock ๊ฐ์ฒด ์ƒ์„ฑ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜์—ฌ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ , ํ…Œ์ŠคํŠธ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ์„œ 3๊ฐ€์ง€๋กœ ๋ถ„๋ฅ˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Spring boot์˜ ํ…Œ์ŠคํŠธ ๋ถ„๋ฅ˜ https:..

2021. 5. 2. 19:38

[FastAPI] 10. Middleware๋ฅผ ์ด์šฉํ•œ ์ „ํ›„ ์ฒ˜๋ฆฌ

API๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ์ฒ˜๋ฆฌ ์‹œ๊ฐ„์ด ์–ด๋Š ์ •๋„ ์†Œ๋ชจ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•˜๋‹ค๊ฑฐ๋‚˜ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์š”์ฒญ์„ ๋ฐ›์•˜์„ ๋•Œ ๋ฐ›์€ EndPoint์™€ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ถ๊ธˆํ•˜๋‹ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ์š”? Middleware Spring์—์„œ๋Š” Intercepter, Filter์™€ ๊ฐ™์€ ์ค‘๊ฐ„ ์ฒ˜๋ฆฌ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค๋ฉด, Flask์—์„œ๋Š” App Context ์ค‘ after_request๋‚˜ before_request ๋“ฑ์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๋กœ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋“ฑ ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. FastAPI์—๋Š” Middleware ํŒจํ„ด์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Middleware ํŒจํ„ด์€ API ํ˜ธ์ถœ ์ „ํ›„๋ฅผ ์ค‘์‹ฌ์œผ๋กœ ํ•˜๋‚˜์˜ ์ฝœ๋ฐฑ ํ•จ์ˆ˜๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋‚œ ๋’ค, API Router๋กœ ์š”์ฒญ์„ ๋„˜๊ธฐ๋Š” ํŒจํ„ด์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญ์„ ๋ฐ›์œผ๋ฉด ์ด ์š”์ฒญ์€ ๋จผ์ € Middleware์—์„œ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ..

2021. 4. 11. 22:27

[Programming] Reactive (๋ฆฌ์•กํ‹ฐ๋ธŒ)

์›น ์„œ๋น„์Šค์—์„œ ํ”ํžˆ ๋ฐœ์ƒํ•˜๋Š” ์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜๋‚˜์˜ API ๊ฒฐ๊ณผ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ n๊ฐœ์˜ API ๊ฒฐ๊ณผ๋ฅผ ๋ฐ›์•„๋ณด๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค. ํ”ํžˆ ์šฐ๋ฆฌ๊ฐ€ SPA๋ฅผ ๊ฐ€์ง€๊ณ  ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ API๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ผ์ด ์žˆ๋Š”๋ฐ, ์ด์™€ ๋น„์Šทํ•œ ์ด์•ผ๊ธฐ์ž…๋‹ˆ๋‹ค. Reactive Programming์ด ๋‚˜์˜ค๊ธฐ ์ด์ „, ์šฐ๋ฆฌ๊ฐ€ ์ƒ๊ฐํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ทธ๋ƒฅ ์ˆ˜์‹ญ๋Œ€ ์„œ๋ฒ„๋ฅผ ๊ฐ€์ง€๊ณ  GB ์ •๋„์˜ ๋ฐ์ดํ„ฐ, ๋ช‡ ์ดˆ ๊ฑธ๋ฆฌ๋Š” ์‘๋‹ต ์‹œ๊ฐ„, ์œ ์ง€๋ณด์ˆ˜๋Š” ๋ช‡ ์‹œ๊ฐ„ ๊ฑธ๋ฆฌ๋Š” ์ •๋„๊ฐ€ ๋‹น์—ฐํ•˜๋‹ค. ๋ผ๊ณ  ๋ณด๊ณ  ์šด์˜์„ ํ•ด์™”์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ง€๊ธˆ์€ ์–ด๋–จ๊นŒ์š”? ๋‹ค์–‘ํ•œ ์„œ๋น„์Šค๊ฐ€ ์žˆ๊ณ , ํŠนํžˆ ํ•œ๊ตญ์—์„œ๋Š” ์ธํ„ฐ๋„ท ์†๋„๊ฐ€ ๊ต‰์žฅํžˆ ๋น ๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์ด ์ˆ˜ ์ดˆ๋ผ๋„ ๊ฑธ๋ฆฌ๋ฉด ๊ทธ๋ƒฅ ๋‹ซ์•„๋ฒ„๋ฆฌ๋Š” ๊ฒŒ ๊ด€์Šต์ด ๋˜์–ด๋ฒ„๋ ธ์ฃ . ์ด๋ ‡๊ฒŒ ๋ณ€ํ™”๊ฐ€ ๋œ ์ด์œ ๋Š” ๋ฌด์—‡์ผ๊นŒ์š”? ๋Š˜์–ด๋‚œ ๋ฐ์ดํ„ฐ ์‹œ..