Dev

2023๋…„ 1๋ถ„๊ธฐ ํšŒ๊ณ 

Jun Park ๐ŸŽต 2023. 4. 6. 00:23

์ƒˆ๋กœ์šด ํšŒ์‚ฌ์—์„œ ์ผ์„ ์‹œ์ž‘ํ•˜๊ฒŒ ๋๋‹ค. Flutter ๊ฐœ๋ฐœ์ž๋กœ ์ž…์‚ฌํ–ˆ๋Š”๋ฐ ๋‚ด๋ถ€ ์‚ฌ์ •์— ๋”ฐ๋ผ React ๊ฐœ๋ฐœ ๋จผ์ € ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ฐœ์ธ์œผ๋กœ ํ”„๋กœ์ ํŠธ์˜ ๋Œ€๋ถ€๋ถ„์„ ๋„๋งก์•„ ์ผํ–ˆ๋˜ ๊ณผ๊ฑฐ์™€ ๋‹ฌ๋ฆฌ ๊ธฐํš, ์šด์˜, ๋ฐฑ์—”๋“œ, ํ”„๋ก ํŠธ์—”๋“œ์™€ ํ˜‘์—…ํ•˜๋‹ˆ ์ƒˆ๋กญ๋‹ค.

  • ํ’€์Šคํƒ ๋˜๋Š” ๊ทธ๋ƒฅ ๊ฐœ๋ฐœ์ž๊ฐ€ ์•„๋‹Œ "ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž"๋กœ์„œ ์ผํ•˜๊ธฐ
    React, Gatsby, Figma
  • ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋Š” ์„œ๋น„์Šค ๊ฐœ๋ฐœ
  • Atlassian ์ œํ’ˆ ์‚ฌ์šฉ
    Bitbucket, Jira, Confluence, Bamboo
  • CI/CD ๊ตฌ์ถ•
    Bamboo๋ฅผ ํ™œ์šฉํ•˜์—ฌ ์ •์  ํŒŒ์ผ ๋นŒ๋“œ ๋ฐ AWS S3 ๋ฐฐํฌ
  • AWS ์‚ฌ์šฉ
    S3, EC2, CloudFront, AWS SDK JavaScript
  • M1 MacBook ์‚ฌ์šฉ 
  • ์ ์ ˆํ•œ React Memoization ํ™œ์šฉ
  • ์ข‹์€ JavaScript Code
    ๊ณต์œ  ํ”„๋กœ์ ํŠธ์—์„œ ๋งŒ๋“œ๋Š” ํŒŒ์ผ, ํ•จ์ˆ˜, ๋ณ€์ˆ˜ ํ•˜๋‚˜ํ•˜๋‚˜๊ฐ€ ๋‚จ์—๊ฒŒ ๋ผ์น  ์˜ํ–ฅ์„ ๊ณ ๋ ค
    You Don't Know JS์˜ ๋‚ด์šฉ ์ค‘ ์ ์šฉํ•  ๋งŒํ•œ ๊ฒƒ ๊ณต์œ ํ•˜๊ธฐ
  • ์™ธ๋ถ€์˜ ๋ณ€ํ™”์—๋„ ์œ ์ง€๋˜๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฝ”๋“œ ์‹ค์ „ ์ ์šฉ
    if statement๋ฅผ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์˜ ์กฐ๊ฑด ์ฒ˜๋ฆฌ๊ฐ€ ์•„๋‹Œ (์˜ˆ๊ฒฌํ•  ์ˆ˜ ์—†๋Š”) ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋งŒ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด?
  • SOA์™€ MSA์˜ ๊ฐœ๋…๊ณผ ์ฐจ์ด์ 
    ์ธํ„ฐ๋„ท์—์„œ ์„ค๋ช…์„ ๋ด๋„ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ ๋‹ค์Œ์ฒ˜๋Ÿผ ์ดํ•ดํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค. ์ดํ•ดํ•˜๊ธฐ์˜ ๋Œ€์ „์ œ๋Š” ๋‚˜์ฒ˜๋Ÿผ ์ด์ œ ๋ง‰ ์‹œ์ž‘ํ•œ ๊ฐœ๋ฐœ์ž๋“ค์€ MSA ๊ฐœ๋ฐœ๋ถ€ํ„ฐ ์ ‘ํ•˜๊ธฐ ๋•Œ๋ฌธ์— MA, SOA์˜ ์กด์žฌ ์ด์œ ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋‚˜๋ฆ„ ์ Š์€ ํ•™๋ฌธ์ธ ์†Œํ”„ํŠธ์›จ์–ด๋„ ๋‹ค๋ฅธ ํ•™๋ฌธ์ฒ˜๋Ÿผ ์—ญ์‚ฌ์ ์œผ๋กœ ์ ‘๊ทผํ•˜๋ฉด ๋” ์ž˜ ์™€๋‹ฟ๋Š”๋‹ค.
    MA: ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ 1๊ฐœ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์†ํ•ด ์žˆ๋‹ค. ํฌ๊ธฐ๊ฐ€ ์ž‘์„ ๋•Œ๋Š” ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์œผ๋ฉฐ ๊ฐœ๋ฐœ ๋น„์šฉ์ด ๋‚ฎ์œผ๋‚˜ ํฌ๊ธฐ๊ฐ€ ํฌ๋ฉด ๋ณต์žก๋„๊ฐ€ ๋†’์œผ๋ฉฐ ํ™•์žฅ ์‹œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋น„์šฉ์ด ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’๋‹ค. SOA์™€์˜ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ๊ทน๋‹จ์ ์ธ ์˜ˆ์‹œ๋กœ 1๊ฐœ์˜ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, ์„œ๋ฒ„, UI๊นŒ์ง€ ํฌํ•จ๋œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜๋ฉด ํŽธํ•˜๋‹ค.
    SOA: ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๋ถ„๋ฆฌํ•œ๋‹ค. ํ•˜์ง€๋งŒ 1๊ฐœ์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ(๋น„์ฆˆ๋‹ˆ์Šค)๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ณต์ˆ˜์˜ ์„œ๋น„์Šค๊ฐ€ ์„œ๋ฒ„ ๋‚ด๋ถ€์— ํ†ตํ•ฉ๋˜์–ด ์žˆ๋‹ค. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ(UI, ๋ธŒ๋ผ์šฐ์ € ๋“ฑ) ๋ถ„๋ฆฌ๋กœ ์ธํ•ด ์ตœ์†Œํ•œ ์„œ๋ฒ„ ๋‚ด์˜ ์„œ๋น„์Šค ํ™•์žฅ ์‹œ ๋น„์šฉ์€ MA๋ณด๋‹ค ํ˜„์ €ํžˆ ๋‚ฎ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ์ „ํžˆ ํฌ๊ธฐ๊ฐ€ ์ปค์ง€๋ฉด ์„œ๋ฒ„ ๋‚ด์˜ ๋ณต์žก๋„๊ฐ€ ๋†’์•„์ง„๋‹ค.
    MSA: ์„œ๋ฒ„๋ฅผ ์„œ๋น„์Šค๋ณ„๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค. 1๊ฐœ์˜ ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋‹ค์–‘ํ•œ ๋ณต์ˆ˜์˜ ์„œ๋น„์Šค๋ฅผ ๊ฐ๊ฐ์˜ ์„œ๋ฒ„์—์„œ ์ง€์›ํ•œ๋‹ค. SOA์—์„œ GET /viewers ์š”์ฒญ ํ•œ๋ฒˆ์— ์ฒ˜๋ฆฌํ•  ๊ฒƒ์„ MSA๋Š” GET /users?isAuthorized=true, GET /contents ๋“ฑ ๋ณต์ˆ˜์˜ ์š”์ฒญ์œผ๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค. ํฌ๊ธฐ๊ฐ€ ์ž‘์•„๋„ ์„œ๋ฒ„ ์•„ํ‚คํ…์ฒ˜์˜ ๋ณต์žก๋„๊ฐ€ ๋†’๋‹ค. ํ•˜์ง€๋งŒ ์„œ๋ฒ„ ๋˜๋Š” ์„œ๋น„์Šค ํ™•์žฅ ์‹œ ๋น„์šฉ์€ SOA๋ณด๋‹ค ๋‚ฎ๋‹ค.

'Dev' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

2023๋…„ 2๋ถ„๊ธฐ ํšŒ๊ณ   (0) 2023.06.30
WebRTC ์›๋ฆฌ ์‰ฌ์šด ์„ค๋ช…  (0) 2023.04.24
Type (Alias) over Interface  (0) 2023.04.05
React + MVVM  (0) 2023.01.11
Implementing Async/Await From Scratch  (0) 2022.11.29