๊ฐœ๋ฐœ ์ธํ„ด
์ง๊ตฐTech
๊ฒฝ๋ ฅ์‚ฌํ•ญ๋ฌด๊ด€
๊ณ ์šฉํ˜•ํƒœ์ธํ„ด
๊ทผ๋ฌด์ง€๋Œ€ํ•œ๋ฏผ๊ตญ ์„œ์šธํŠน๋ณ„์‹œ ๊ฐ•๋‚จ๊ตฌ ํ…Œํ—ค๋ž€๋กœ2๊ธธ 27, 14์ธต

โญ ๊ฐœ๋ฐœ ์ธํ„ด์€ ์ด๋Ÿฐ ์ผ์„ ํ•ด์š”


[์ธํ„ด - ์›น(React) ๊ฐœ๋ฐœ์ž]

  • ํด๋ผ์ธ์˜ ๋น ๋ฅธ ์„ฑ์žฅ์— ๋”ฐ๋ฅธ ํ™•์žฅ์„ฑ ์žˆ๊ณ  ์ƒ์‚ฐ์„ฑ ์žˆ๋Š” ์›น ๊ฐœ๋ฐœ
  • ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•œ ๋ฐ˜์‘ํ˜• ์›น ๊ฐœ๋ฐœ


[์ธํ„ด - ์•ฑ(React Native) ๊ฐœ๋ฐœ์ž]

  • ํด๋ผ์ธ์˜ ๋น ๋ฅธ ์„ฑ์žฅ์— ๋”ฐ๋ฅธ ํ™•์žฅ์„ฑ ์žˆ๊ณ  ์ƒ์‚ฐ์„ฑ ์žˆ๋Š” Android/iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
  • React-Native์˜ React ์˜์—ญ๊ณผ Native ์˜์—ญ, bridge์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ํ™”๋œ React-Native ์•ฑ ๊ฐœ๋ฐœ
  • ํ”Œ๋ ˆ์ด์Šคํ† ์–ด/์•ฑ ์Šคํ† ์–ด ๋ฐ ์ฝ”๋“œํ‘ธ์‹œ ๋ฐฐํฌ ๊ด€๋ฆฌ


[์ธํ„ด - ๋ฐฑ์—”๋“œ(Node.js) ๊ฐœ๋ฐœ์ž]

  • ํด๋ผ์ธ ์›น, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ API ๊ฐœ๋ฐœ
  • ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋ฐ˜์˜ AWS ์ธํ”„๋ผ ๊ตฌ์„ฑ
  • ํด๋ผ์ธ ์„œ๋น„์Šค ํ’ˆ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ์ž‘์—… ๋ฐ ๋ฆฌ์„œ์น˜


๐Ÿ… ์ด๋Ÿฐ ๋ถ„์„ ์ฐพ๊ณ  ์žˆ์–ด์š”

  • ๋‹จ๊ธฐ๊ฐ„์— ์ง‘์ค‘, ๋ชฐ์ž…์„ ํ†ตํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„
  • ๋งก์€ ์ž‘์—…์— ๋Œ€ํ•œ ์˜ค๋„ˆ์‹ญ์„ ๊ฐ–๊ณ , ๋๊นŒ์ง€ ์™„์„ฑ์‹œํ‚ค๋Š” ์ฑ…์ž„๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ถ„
  • ๋ฐฐ์›€์— ๋Œ€ํ•œ ์—ด์ •์„ ๊ฐ–๊ณ , ์ง€์†์ ์ด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ถ„


๐Ÿ’ซ ์ด๋Ÿฐ ๋ถ„์ด๋ฉด ๋” ์ข‹์•„์š”

[์ธํ„ด - ์›น(React) ๊ฐœ๋ฐœ์ž]

  • ์›น ๊ฐœ๋ฐœ ๊ฒฝ๋ ฅ์ด ์žˆ๊ฑฐ๋‚˜ ๊ทธ์— ์ค€ํ•˜๋Š” ์‹ค๋ ฅ์„ ๊ฐ–์ถ”์‹  ๋ถ„
  • HTML, CSS, JavaScript์™€ TypeScript์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • React, Redux ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • Functional Component ํ™œ์šฉ์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • Sass(SCSS) ์‚ฌ์šฉ์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • Git์„ ํ†ตํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ฒฝํ—˜ ์žˆ์œผ์‹  ๋ถ„


[์ธํ„ด - ์•ฑ(React Native) ๊ฐœ๋ฐœ์ž]

  • JavaScript์™€ TypeScript์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • React-Native, Redux ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • CodePush ๋“ฑ์„ ์ด์šฉํ•œ ํšจ์œจ์ ์ธ ๋ฐฐํฌ ๊ด€๋ฆฌ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • Git์„ ํ†ตํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ฒฝํ—˜ ์žˆ์œผ์‹  ๋ถ„


[์ธํ„ด - ๋ฐฑ์—”๋“œ(Node.js) ๊ฐœ๋ฐœ์ž]

  • AWS๋ฅผ ํ†ตํ•ด ์ธํ”„๋ผ ๊ตฌ์ถ•ํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • JavaScript์™€ TypeScript์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • Node.js๋กœ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹ ๋ถ„
  • RDBMS, NoSQL์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๊ฐ–์ถ˜ ๋ถ„
  • NestJS์™€ TypeORM์„ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹ ๋ถ„
  • ์„œ๋ฒ„๋ฆฌ์Šค๋กœ ์ƒ์šฉ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•œ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹  ๋ถ„
  • WebSocket์œผ๋กœ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ ‘์†ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • Git์„ ํ†ตํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ฒฝํ—˜ ์žˆ์œผ์‹  ๋ถ„


๐Ÿ”ง ์‚ฌ์šฉ ํˆด/์Šคํƒ

[์ธํ„ด - ์›น(React) ๊ฐœ๋ฐœ์ž]

  • React (Hooks), Redux
  • TypeScript
  • Sass(SCSS)๋ฅผ ์ด์šฉํ•œ ์Šคํƒ€์ผ๋ง


[์ธํ„ด - ์•ฑ(React Native) ๊ฐœ๋ฐœ์ž]

  • React Native ๊ธฐ๋ฐ˜ ํฌ๋กœ์Šคํ”Œ๋žซํผ(Android/iOS) ๊ฐœ๋ฐœ
  • TypeScript
  • Redux, Recoil ์ด์šฉํ•œ ์Šคํ…Œ์ดํŠธ ๊ด€๋ฆฌ
  • Microsoft Codepush ํ†ตํ•œ ํšจ์œจ์ ์ธ ์—…๋ฐ์ดํŠธ, ์Šคํ† ์–ด ๋ฐฐํฌ ๊ด€๋ฆฌ
  • Expo Secure Store๋กœ OAuth(Facebook/Google), Email ๋กœ๊ทธ์ธ ์œ ์ € ๋‹ค์ค‘ ๊ณ„์ • ์ „ํ™˜ ๊ด€๋ฆฌ
  • RTL ์Šคํฌ๋ฆฝํŠธ, English, Japanese ๋“ฑ ๋‹ค๊ตญ์–ด locale ์ฒ˜๋ฆฌ


[์ธํ„ด - ๋ฐฑ์—”๋“œ(Node.js) ๊ฐœ๋ฐœ์ž]

  • TypeScript, Nest.js
  • Node.js, Serverless Framework, AWS Lamda์„ ์ด์šฉํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฑ์—”๋“œ
  • AWS RDS(Aurora)
  • circle-ci๋ฅผ ํ™œ์šฉํ•œ build/test/deploy ์ž๋™ํ™”
  • AWS CloudWatch๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง
  • Swagger๋ฅผ ์ด์šฉํ•œ api ๋ฌธ์„œ ์ž๋™ํ™”


๐Ÿ“… ํด๋ผ์ธ์œผ๋กœ์˜ ํ•ฉ๋ฅ˜ ์—ฌ์ •

Step 1. ์ง€์›์„œ ์ œ์ถœ

  • ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์…”์„œ ์ด๋ ฅ์„œ์™€ ๊ธฐ๋ณธ ์ธ์  ์‚ฌํ•ญ, ์‚ฌ์ „ ์งˆ๋ฌธ์„ ์ž‘์„ฑํ•ด ์ œ์ถœํ•ด์ฃผ์„ธ์š”.
  • ์ง€์›์„œ ๊ฒ€ํ†  ํ›„, 2์ฃผ์ผ ์ด๋‚ด์— ๊ฒฐ๊ณผ ์•ˆ๋‚ด ๋ฉ”์ผ์„ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์–ด์š”.

Step 2. ๊ณผ์ œ

  • ํฌ์ง€์…˜๋ณ„ ์‹ค๋ฌด ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ œ ์ „ํ˜•์„ ์ง„ํ–‰ํ•ด์š”.
  • ์›น ๊ฐœ๋ฐœ
  • react + redux๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ† ์ด ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„
  • ์•ฑ ๊ฐœ๋ฐœ
  • react-native๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌํ˜„
  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ
  • Node.js + TypeScript + NestJS + TypeORM + MySQL์„ ์‚ฌ์šฉํ•˜์—ฌ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„
  • ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ์ž๋ถ„๋“ค๊ป˜ ๊ฐœ๋ณ„์ ์œผ๋กœ ์•ˆ๋‚ด๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ํ‰๊ท  ์ผ์ฃผ์ผ ์ •๋„ ์†Œ์š”๋ผ์š”.

Step 3. ์ง๋ฌด ์ธํ„ฐ๋ทฐ

  • Step 2์—์„œ ์ง„ํ–‰ํ•œ ๊ณผ์ œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์š”.
  • ์ง๋ฌด ์—ญ๋Ÿ‰์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝํ—˜/๊ธฐ์ˆ ๊ณผ ๊ด€๋ จํ•œ ์งˆ๋ฌธ์„ ๋“œ๋ ค์š”.
  • Tech Chapter์˜ Head, ํŒ€์›๊ณผ์˜ ์ธํ„ฐ๋ทฐ๋กœ ํด๋ผ์ธ ์‚ฌ๋ฌด์‹ค์—์„œ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์š”.

Step 4. ์ž„์›์ง„ ์ธํ„ฐ๋ทฐ

  • ํด๋ผ์ธ์˜ ๋ฌธํ™”์— ๊ณต๊ฐํ•˜๊ณ  ์ž˜ ์ ์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐ๋ทฐ์—์š”.
  • ํด๋ผ์ธ์˜ C-Level๊ณผ์˜ ์ธํ„ฐ๋ทฐ๋กœ ํด๋ผ์ธ ์‚ฌ๋ฌด์‹ค์—์„œ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์š”.


๐Ÿ’ผ ์ด๋ ‡๊ฒŒ ๊ทผ๋ฌดํ•˜๊ฒŒ ๋ผ์š”

  • ์ฑ„์šฉ ํ˜•ํƒœ : ์ธํ„ด(8๊ฐœ์›”)
  • ์ธํ„ด ๊ธฐ๊ฐ„์„ ๊ธธ๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋Š” ์ด์œ ๋Š” 4~5์ฃผ ๊ฐ„์˜ ์˜จ๋ณด๋”ฉ ๊ธฐ๊ฐ„ ํ›„ ํ”„๋กœ๋•์…˜์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ์—…๋ฌด๋ฅผ ๋“œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด์—์š”.
  • 8๊ฐœ์›” ๋™์•ˆ ์ง‘์ค‘์ ์œผ๋กœ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ์Œ“์œผ๋ฉฐ ์Šค์Šค๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒ€ ์ฐจ์›์—์„œ ์ง€์›ํ•ด์š”.
  • ๊ทผ๋ฌด์ง€ : ์„œ์šธํŠน๋ณ„์‹œ ๊ฐ•๋‚จ๊ตฌ ํ…Œํ—ค๋ž€๋กœ2๊ธธ 27
  • ์ง€์› ์กฐ๊ฑด:
  • ํ•™์œ„ ์กธ์—…์ž
  • ํ•™์œ„ ์กธ์—… ์˜ˆ์ •์ž
  • ์กธ์—…๊นŒ์ง€ 1ํ•™๊ธฐ๊ฐ€ ๋‚จ์œผ์‹ ๋ถ„ (์˜ˆ, 15ํ•™์  ์ดํ•˜), ์ทจ์—…๊ณ„๋ฅผ ํ†ตํ•ด์„œ ์ธํ„ด ๊ธฐ๊ฐ„ ์กธ์—…์ด ๊ฐ€๋Šฅํ•œ๋ถ„)
๊ณต์œ ํ•˜๊ธฐ
๊ฐœ๋ฐœ ์ธํ„ด

โญ ๊ฐœ๋ฐœ ์ธํ„ด์€ ์ด๋Ÿฐ ์ผ์„ ํ•ด์š”


[์ธํ„ด - ์›น(React) ๊ฐœ๋ฐœ์ž]

  • ํด๋ผ์ธ์˜ ๋น ๋ฅธ ์„ฑ์žฅ์— ๋”ฐ๋ฅธ ํ™•์žฅ์„ฑ ์žˆ๊ณ  ์ƒ์‚ฐ์„ฑ ์žˆ๋Š” ์›น ๊ฐœ๋ฐœ
  • ๋‹ค์–‘ํ•œ ๋””๋ฐ”์ด์Šค ํ™˜๊ฒฝ์„ ๊ณ ๋ คํ•œ ๋ฐ˜์‘ํ˜• ์›น ๊ฐœ๋ฐœ


[์ธํ„ด - ์•ฑ(React Native) ๊ฐœ๋ฐœ์ž]

  • ํด๋ผ์ธ์˜ ๋น ๋ฅธ ์„ฑ์žฅ์— ๋”ฐ๋ฅธ ํ™•์žฅ์„ฑ ์žˆ๊ณ  ์ƒ์‚ฐ์„ฑ ์žˆ๋Š” Android/iOS ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ
  • React-Native์˜ React ์˜์—ญ๊ณผ Native ์˜์—ญ, bridge์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ตœ์ ํ™”๋œ React-Native ์•ฑ ๊ฐœ๋ฐœ
  • ํ”Œ๋ ˆ์ด์Šคํ† ์–ด/์•ฑ ์Šคํ† ์–ด ๋ฐ ์ฝ”๋“œํ‘ธ์‹œ ๋ฐฐํฌ ๊ด€๋ฆฌ


[์ธํ„ด - ๋ฐฑ์—”๋“œ(Node.js) ๊ฐœ๋ฐœ์ž]

  • ํด๋ผ์ธ ์›น, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•œ API ๊ฐœ๋ฐœ
  • ์„œ๋ฒ„๋ฆฌ์Šค ๊ธฐ๋ฐ˜์˜ AWS ์ธํ”„๋ผ ๊ตฌ์„ฑ
  • ํด๋ผ์ธ ์„œ๋น„์Šค ํ’ˆ์งˆ ํ–ฅ์ƒ์„ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ์ตœ์ ํ™” ์ž‘์—… ๋ฐ ๋ฆฌ์„œ์น˜


๐Ÿ… ์ด๋Ÿฐ ๋ถ„์„ ์ฐพ๊ณ  ์žˆ์–ด์š”

  • ๋‹จ๊ธฐ๊ฐ„์— ์ง‘์ค‘, ๋ชฐ์ž…์„ ํ†ตํ•ด์„œ ๋น ๋ฅด๊ฒŒ ์„ฑ์žฅํ•˜๊ณ  ์‹ถ์œผ์‹  ๋ถ„
  • ๋งก์€ ์ž‘์—…์— ๋Œ€ํ•œ ์˜ค๋„ˆ์‹ญ์„ ๊ฐ–๊ณ , ๋๊นŒ์ง€ ์™„์„ฑ์‹œํ‚ค๋Š” ์ฑ…์ž„๊ฐ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ถ„
  • ๋ฐฐ์›€์— ๋Œ€ํ•œ ์—ด์ •์„ ๊ฐ–๊ณ , ์ง€์†์ ์ด๊ณ  ํšจ๊ณผ์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ณ  ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ๋ถ„


๐Ÿ’ซ ์ด๋Ÿฐ ๋ถ„์ด๋ฉด ๋” ์ข‹์•„์š”

[์ธํ„ด - ์›น(React) ๊ฐœ๋ฐœ์ž]

  • ์›น ๊ฐœ๋ฐœ ๊ฒฝ๋ ฅ์ด ์žˆ๊ฑฐ๋‚˜ ๊ทธ์— ์ค€ํ•˜๋Š” ์‹ค๋ ฅ์„ ๊ฐ–์ถ”์‹  ๋ถ„
  • HTML, CSS, JavaScript์™€ TypeScript์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • React, Redux ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • Functional Component ํ™œ์šฉ์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • Sass(SCSS) ์‚ฌ์šฉ์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • Git์„ ํ†ตํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ฒฝํ—˜ ์žˆ์œผ์‹  ๋ถ„


[์ธํ„ด - ์•ฑ(React Native) ๊ฐœ๋ฐœ์ž]

  • JavaScript์™€ TypeScript์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • React-Native, Redux ์‚ฌ์šฉ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • CodePush ๋“ฑ์„ ์ด์šฉํ•œ ํšจ์œจ์ ์ธ ๋ฐฐํฌ ๊ด€๋ฆฌ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • Git์„ ํ†ตํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ฒฝํ—˜ ์žˆ์œผ์‹  ๋ถ„


[์ธํ„ด - ๋ฐฑ์—”๋“œ(Node.js) ๊ฐœ๋ฐœ์ž]

  • AWS๋ฅผ ํ†ตํ•ด ์ธํ”„๋ผ ๊ตฌ์ถ•ํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • JavaScript์™€ TypeScript์— ๋Šฅ์ˆ™ํ•˜์‹  ๋ถ„
  • Node.js๋กœ ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹ ๋ถ„
  • RDBMS, NoSQL์— ๋Œ€ํ•œ ์ดํ•ด๋ฅผ ๊ฐ–์ถ˜ ๋ถ„
  • NestJS์™€ TypeORM์„ ์‚ฌ์šฉํ•ด๋ณธ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹ ๋ถ„
  • ์„œ๋ฒ„๋ฆฌ์Šค๋กœ ์ƒ์šฉ ์„œ๋น„์Šค๋ฅผ ์šด์˜ํ•œ ๊ฒฝํ—˜์ด ์žˆ์œผ์‹  ๋ถ„
  • WebSocket์œผ๋กœ ๋งŽ์€ ์‚ฌ๋žŒ๋“ค์ด ์ ‘์†ํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์ฑ„ํŒ… ์„œ๋น„์Šค๋ฅผ ๊ตฌํ˜„ํ•œ ๊ฒฝํ—˜์ด ์žˆ๋Š” ๋ถ„
  • Git์„ ํ†ตํ•œ ๋ฒ„์ „ ๊ด€๋ฆฌ์— ๊ฒฝํ—˜ ์žˆ์œผ์‹  ๋ถ„


๐Ÿ”ง ์‚ฌ์šฉ ํˆด/์Šคํƒ

[์ธํ„ด - ์›น(React) ๊ฐœ๋ฐœ์ž]

  • React (Hooks), Redux
  • TypeScript
  • Sass(SCSS)๋ฅผ ์ด์šฉํ•œ ์Šคํƒ€์ผ๋ง


[์ธํ„ด - ์•ฑ(React Native) ๊ฐœ๋ฐœ์ž]

  • React Native ๊ธฐ๋ฐ˜ ํฌ๋กœ์Šคํ”Œ๋žซํผ(Android/iOS) ๊ฐœ๋ฐœ
  • TypeScript
  • Redux, Recoil ์ด์šฉํ•œ ์Šคํ…Œ์ดํŠธ ๊ด€๋ฆฌ
  • Microsoft Codepush ํ†ตํ•œ ํšจ์œจ์ ์ธ ์—…๋ฐ์ดํŠธ, ์Šคํ† ์–ด ๋ฐฐํฌ ๊ด€๋ฆฌ
  • Expo Secure Store๋กœ OAuth(Facebook/Google), Email ๋กœ๊ทธ์ธ ์œ ์ € ๋‹ค์ค‘ ๊ณ„์ • ์ „ํ™˜ ๊ด€๋ฆฌ
  • RTL ์Šคํฌ๋ฆฝํŠธ, English, Japanese ๋“ฑ ๋‹ค๊ตญ์–ด locale ์ฒ˜๋ฆฌ


[์ธํ„ด - ๋ฐฑ์—”๋“œ(Node.js) ๊ฐœ๋ฐœ์ž]

  • TypeScript, Nest.js
  • Node.js, Serverless Framework, AWS Lamda์„ ์ด์šฉํ•œ ์„œ๋ฒ„๋ฆฌ์Šค ๋ฐฑ์—”๋“œ
  • AWS RDS(Aurora)
  • circle-ci๋ฅผ ํ™œ์šฉํ•œ build/test/deploy ์ž๋™ํ™”
  • AWS CloudWatch๋ฅผ ํ™œ์šฉํ•œ ๋กœ๊น… ๋ฐ ๋ชจ๋‹ˆํ„ฐ๋ง
  • Swagger๋ฅผ ์ด์šฉํ•œ api ๋ฌธ์„œ ์ž๋™ํ™”


๐Ÿ“… ํด๋ผ์ธ์œผ๋กœ์˜ ํ•ฉ๋ฅ˜ ์—ฌ์ •

Step 1. ์ง€์›์„œ ์ œ์ถœ

  • ๋งํฌ๋ฅผ ํด๋ฆญํ•˜์…”์„œ ์ด๋ ฅ์„œ์™€ ๊ธฐ๋ณธ ์ธ์  ์‚ฌํ•ญ, ์‚ฌ์ „ ์งˆ๋ฌธ์„ ์ž‘์„ฑํ•ด ์ œ์ถœํ•ด์ฃผ์„ธ์š”.
  • ์ง€์›์„œ ๊ฒ€ํ†  ํ›„, 2์ฃผ์ผ ์ด๋‚ด์— ๊ฒฐ๊ณผ ์•ˆ๋‚ด ๋ฉ”์ผ์„ ๋ฐ›์œผ์‹ค ์ˆ˜ ์žˆ์–ด์š”.

Step 2. ๊ณผ์ œ

  • ํฌ์ง€์…˜๋ณ„ ์‹ค๋ฌด ๊ธฐ์ˆ  ์Šคํƒ์œผ๋กœ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ œ ์ „ํ˜•์„ ์ง„ํ–‰ํ•ด์š”.
  • ์›น ๊ฐœ๋ฐœ
  • react + redux๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ† ์ด ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„
  • ์•ฑ ๊ฐœ๋ฐœ
  • react-native๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฃผ์–ด์ง„ ์š”๊ตฌ์‚ฌํ•ญ์„ ๊ตฌํ˜„
  • ๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ
  • Node.js + TypeScript + NestJS + TypeORM + MySQL์„ ์‚ฌ์šฉํ•˜์—ฌ ํ† ์ด ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌํ˜„
  • ์„œ๋ฅ˜ ํ•ฉ๊ฒฉ์ž๋ถ„๋“ค๊ป˜ ๊ฐœ๋ณ„์ ์œผ๋กœ ์•ˆ๋‚ด๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ํ‰๊ท  ์ผ์ฃผ์ผ ์ •๋„ ์†Œ์š”๋ผ์š”.

Step 3. ์ง๋ฌด ์ธํ„ฐ๋ทฐ

  • Step 2์—์„œ ์ง„ํ–‰ํ•œ ๊ณผ์ œ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์š”.
  • ์ง๋ฌด ์—ญ๋Ÿ‰์„ ํŒ๋‹จํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝํ—˜/๊ธฐ์ˆ ๊ณผ ๊ด€๋ จํ•œ ์งˆ๋ฌธ์„ ๋“œ๋ ค์š”.
  • Tech Chapter์˜ Head, ํŒ€์›๊ณผ์˜ ์ธํ„ฐ๋ทฐ๋กœ ํด๋ผ์ธ ์‚ฌ๋ฌด์‹ค์—์„œ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์š”.

Step 4. ์ž„์›์ง„ ์ธํ„ฐ๋ทฐ

  • ํด๋ผ์ธ์˜ ๋ฌธํ™”์— ๊ณต๊ฐํ•˜๊ณ  ์ž˜ ์ ์‘ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ„์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•œ ์ธํ„ฐ๋ทฐ์—์š”.
  • ํด๋ผ์ธ์˜ C-Level๊ณผ์˜ ์ธํ„ฐ๋ทฐ๋กœ ํด๋ผ์ธ ์‚ฌ๋ฌด์‹ค์—์„œ ์ธํ„ฐ๋ทฐ๋ฅผ ์ง„ํ–‰ํ•ด์š”.


๐Ÿ’ผ ์ด๋ ‡๊ฒŒ ๊ทผ๋ฌดํ•˜๊ฒŒ ๋ผ์š”

  • ์ฑ„์šฉ ํ˜•ํƒœ : ์ธํ„ด(8๊ฐœ์›”)
  • ์ธํ„ด ๊ธฐ๊ฐ„์„ ๊ธธ๊ฒŒ ๊ฐ€์ ธ๊ฐ€๋Š” ์ด์œ ๋Š” 4~5์ฃผ ๊ฐ„์˜ ์˜จ๋ณด๋”ฉ ๊ธฐ๊ฐ„ ํ›„ ํ”„๋กœ๋•์…˜์— ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ๋Š” ์‹ค์ œ ์—…๋ฌด๋ฅผ ๋“œ๋ฆฌ๊ธฐ ๋•Œ๋ฌธ์ด์—์š”.
  • 8๊ฐœ์›” ๋™์•ˆ ์ง‘์ค‘์ ์œผ๋กœ ์‹ค๋ฌด ๊ฒฝํ—˜์„ ์Œ“์œผ๋ฉฐ ์Šค์Šค๋กœ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ํŒ€ ์ฐจ์›์—์„œ ์ง€์›ํ•ด์š”.
  • ๊ทผ๋ฌด์ง€ : ์„œ์šธํŠน๋ณ„์‹œ ๊ฐ•๋‚จ๊ตฌ ํ…Œํ—ค๋ž€๋กœ2๊ธธ 27
  • ์ง€์› ์กฐ๊ฑด:
  • ํ•™์œ„ ์กธ์—…์ž
  • ํ•™์œ„ ์กธ์—… ์˜ˆ์ •์ž
  • ์กธ์—…๊นŒ์ง€ 1ํ•™๊ธฐ๊ฐ€ ๋‚จ์œผ์‹ ๋ถ„ (์˜ˆ, 15ํ•™์  ์ดํ•˜), ์ทจ์—…๊ณ„๋ฅผ ํ†ตํ•ด์„œ ์ธํ„ด ๊ธฐ๊ฐ„ ์กธ์—…์ด ๊ฐ€๋Šฅํ•œ๋ถ„)
์ง๊ตฐTech
๊ฒฝ๋ ฅ์‚ฌํ•ญ๋ฌด๊ด€
๊ณ ์šฉํ˜•ํƒœ์ธํ„ด
๊ทผ๋ฌด์ง€๋Œ€ํ•œ๋ฏผ๊ตญ ์„œ์šธํŠน๋ณ„์‹œ ๊ฐ•๋‚จ๊ตฌ ํ…Œํ—ค๋ž€๋กœ2๊ธธ 27, 14์ธต
๊ณต์œ ํ•˜๊ธฐ