GithubHelp home page GithubHelp logo

devwoodie / nhn-forward-22 Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 22 KB

๐ŸŽช[NHN FORWARD 22] NHN ์˜คํ”„๋ผ์ธ ์ปจํผ๋Ÿฐ์Šค ๋‚ด์šฉ ์ •๋ฆฌ

nhn-forward-22's Introduction

[ NHN FORWARD 22 ]

image

Concise Summary


NHN์˜ ๋‹ค์„ฏ ๋ฒˆ์งธ ์˜คํ”„๋ผ์ธ ์ปจํผ๋Ÿฐ์Šค

์ผ์ž : 22.11.24

์žฅ์†Œ : ๊ทธ๋žœ๋“œ ์ธํ„ฐ์ปจํ‹ฐ๋„จํƒˆ ์„œ์šธ ํŒŒ๋ฅด๋‚˜์Šค

[NHN ํ‚ค๋…ธํŠธ] - ์˜คํ”„๋‹

๋ฐœํ‘œ์ž : NHN Cloud ๋ฐ•๊ทผํ•œ, ์ด์ง„์ˆ˜, ๊น€๋ช…์‹ 

  • Small Steps make a Big Difference

  • NHN ํšŒ์‚ฌ ์†Œ๊ฐœ(๊ฒŒ์ž„, ๊ฒฐ์ œ, ์ปค๋จธ์Šค, ๋ฐ์ดํ„ฐ, ํด๋ผ์šฐ๋“œ)

  • GameAnvil, GameTalk ์†Œ๊ฐœ

    • GameAnvil
      • ๊ฒŒ์ž„ ์„œ๋ฒ„์˜ ํ…œํ”Œ๋ฆฟ๊ณผ ์›น ์šด์˜ ๋„๊ตฌ, ์„ฑ๋Šฅ ํ…Œ์ŠคํŠธ ํˆด ๋“ฑ์„ ์ œ๊ณต
      • ๊ฐœ๋ฐœ ๊ฒฝํ—˜์ด ์ ์€ ๊ฒŒ์ž„ ๊ฐœ๋ฐœ์ž์—ฌ๋„ ๊ฒŒ์ž„ ์„œ๋ฒ„ ๊ฐœ๋ฐœ๊ณผ ์„œ๋น„์Šค, ์„œ๋น„์Šค ์šด์˜๊นŒ์ง€ ํ•œ ๋ฒˆ์— ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์คŒ
    • GameTalk
      • ๊ฐ„ํŽธํ•˜๊ฒŒ ๊ฒŒ์ž„ ๋‚ด ์ฑ„ํŒ…์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ์†”๋ฃจ์…˜
  • ์ข‹์€ ๊ธฐ์ˆ ์ด๋ž€?

    • ๊ณ ๊ฐ์ด ์ฒด๊ฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ณ ๋งˆ์šด ๊ธฐ์ˆ ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ
  • ๊ตญ๋‚ด์™ธ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ํ™•์žฅ ์˜ˆ์ •

  • AI ๊ธฐ์ˆ  ํ™•๋Œ€

    • ๋™ํ™”์ฑ… ์ฝ์–ด์ฃผ๊ธฐ

      • ์ผ๋ฐ˜ ai๊ฐ€ ์ฝ๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฐ์ •์ด ๋“ค์–ด๊ฐˆ ์ˆ˜ ์žˆ๋„๋ก
    • ๊ฐ€์ƒ ์•„๋‚˜์šด์„œ

      • ์ง์ ‘ ๋ฌด๋Œ€์— ์„œ์„œ ๋ฐœํ‘œํ•˜์ง€ ์•Š๊ณ  ๊ธ€์„ ์ž…๋ ฅ๋งŒ ํ•ด๋„ ๋งํ•˜๋Š” ๊ฒƒ ์ฒ˜๋Ÿผ
    • ์นดํˆฐ ์ƒ์„ฑ ๊ธฐ์ˆ 

      • ์‚ฌ์ง„์„ ์ด์šฉํ•ด ๋งŒํ™”๋กœ..?

[๊ฑฐ๋Œ€ํ•œ ์„œ๋น„์Šค ์ชผ๊ฐœ์„œ ๋งˆ์ดํฌ๋กœ ํ”„๋ก ํŠธ์—”๋“œ ๋งŒ๋“ค๊ธฐ]

๋ฐœํ‘œ์ž : NHN Dooray ์ด์›…์žฌ

  • React Monolithic SPA ์— Micro Frontend(์ฐจ์„ธ๋Œ€) ๋„์ž…

    • Dooray Renewal Project
      • 2021.10.21 ๋ฆฌ๋‰ด์–ผ ์ž‘์—… ์žฌ๊ฐœ
      • React
      • TypeScript
      • Vite
      • Redux + Redux-Saga(์ƒํƒœ ๊ด€๋ฆฌ)

    • Renewal ์‹œ ๋ฌธ์ œ์ ?
      • ์„œ๋น„์Šค๋Š” ์ ์  ๋” ๋ณต์žกํ•ด์ง€๊ณ  FE ์—”์ง€๋‹ˆ์–ด๋Š” ๋ชจ๋“  ๋„๋ฉ”์ธ ์ง€์‹์„ ๋‹ค ์„ญ๋ ตํ•˜๊ธฐ ์–ด๋ ต๋‹ค.
      • ์ปค๋‹ค๋ž€ ๋˜ ํ•˜๋‚˜์˜ ์ƒˆ๋กœ์šด ๋ ˆ๊ฑฐ์‹œ ์‹œ์Šคํ…œ์„ ๋งŒ๋“ค๊ณ  ์‹ถ์ง€ ์•Š๋‹ค.
      • ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ๋ฐฉ๋Œ€ํ•ด์ง€๊ณ , ๊ฐœ๋ฐœ/๋นŒ๋“œ๊ฐ€ ์ ์  ๊ธธ์–ด์ง„๋‹ค.
      • ํ†ตํ•ฉ, QA, ๋ฐฐํฌ ๊ณผ์ •์ด ํž˜๋“ค๋‹ค.

ํ•˜๋‚˜์˜ ์„œ๋น„์Šค๋งŒ ๋…๋ฆฝ์ ์œผ๋กœ ๊ฐœ๋ฐœ ๋ฐ ๋ฐฐํฌ, ์šด์˜ํ•  ์ˆ˜ ์—†์„๊นŒ?

  • ๋ณ€๊ฒฝ ์ „ Drive, Mail, Wiki ๋“ฑ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค ๊ฐœ๋ฐœ ํ›„ ํ•˜๋‚˜๋กœ ์ทจํ•ฉํ•˜์—ฌ Test,Build, Deploy -> QA -> Production ๊ณผ์ •์„ ๊ฑฐ์ณค์Œ

  • ๋ณ€๊ฒฝ ํ›„ Drive, Mail, Wiki ๋“ฑ๊ณผ ๊ฐ™์€ ์„œ๋น„์Šค๋ฅผ ๊ฐœ๋ฐœ ํ›„ ๊ฐ๊ฐ Test,Build, Deploy -> QA -> Production ๊ณผ์ •์„ ๊ฑฐ์ณ ํ†ตํ•ฉ ํ•˜์˜€๋‹ค.

  • SPA(Single Page Application)

    • Linked Single Page Application
      • ๊ฐ ์„œ๋น„์Šค๋Š” url ์‹œ์ž‘์œผ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ ๊ฐ๊ฐ ๋…๋ฆฝ์ ์ธ SPA๋กœ ๊ตฌ์ถ•ํ•œ๋‹ค.
      • ํŒ€ ๋‚ด๋ถ€์—์„œ๋Š” history API ๋ฅผ ์ด์šฉํ•œ ํด๋ผ์ด์–ธํŠธ ์ธก ๋ผ์šฐํŒ…์„ ์‚ฌ์šฉํ•œ๋‹ค. (Soft Navigation)
      • ํŒ€ ๊ฐ„์—๋Š” ํ•˜์ดํผ ๋งํฌ๋ฅผ ์ด์šฉํ•œ Hard Navigation ์„ ์‚ฌ์šฉํ•œ๋‹ค.

ํ•˜์ง€๋งŒ Linked SPA ๋ฐฉ์‹์€ Dooray์™€ ๋งž์ง€ ์•Š๋Š”๋‹ค.

  1. ๋‘๋ ˆ์ด๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค๋ฅผ ์œ ์ €๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ „ํ™˜ํ•˜๋Š” ์•ฑ์ด๋‹ค.
  2. ์„œ๋กœ ๋‹ค๋ฅธ ์„œ๋น„์Šค ๊ฐ„์˜ ํ†ตํ•ฉ๋œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ์žฅ์ ์ด๋‹ค.
    • ๋ฉ”์ผ์„ ์—…๋ฌด๋กœ ๋“ฑ๋กํ•˜๋Š” ๊ธฐ๋Šฅ
    • ๋ฉ”์ผ์—์„œ ๋“œ๋ผ์ด๋ธŒ ์„œ๋น„์Šค๋ฅผ ์ด์šฉํ•ด ๊ณต์œ  ๋งํฌ๋ฅผ ๋งŒ๋“ค์–ด์„œ ์ฒจ๋ถ€ํ•˜๋Š” ๊ธฐ๋Šฅ
    • ์ด๋Ÿฐ ๊ธฐ๋Šฅ๋“ค์„ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ
  • Unified SPA

    • Application shell
      • ๋ชจ๋“  ํ•˜์œ„ ์„œ๋น„์Šค๋“ค์˜ ์ƒ์œ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—ญํ• 
      • ๋“ค์–ด์˜ค๋Š” ๋ชจ๋“  ์š”์ฒญ์„ ๋ผ์šฐํŒ…์— ๋งž๊ฒŒ ํ•˜์œ„ ์„œ๋น„์Šค์— ์—ฐ๊ฒฐ
      • ๊ณตํ†ต ๋ ˆ์ด์•„์›ƒ
      • ์„œ๋น„์Šค ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํฌํ•จํ•˜์ง€ ์•Š์Œ
      • ์ธ์ฆ์ด๋‚˜ ์•ฑ ์ „์ฒด ์„ค์ •
  • Page ์•ˆ์—์„œ์˜ ์„œ๋น„์Šค ๊ฐ„ ํ†ตํ•ฉ

    • Drive ์„œ๋น„์Šค์˜ ์ง„ํ™”
      • Drive ์„œ๋น„์Šค์˜ ํŒจํ‚ค์ง€๋ฅผ ๋ถ„๋ฆฌํ•˜๊ณ  shared๋ผ๋Š” ๊ณณ์— ๋‹ค๋ฅธ ์„œ๋น„์Šค๋กœ ๊ณต์œ ๋˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์„ ๋ชจ์•˜๋‹ค.
      • TypeScript ๋ฅผ ํ†ตํ•ด ์ปดํŒŒ์ผ ํƒ€์ž„์— ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๊ฒ€์ฆ์ด ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฌด๋ฆฌ ์—†์ด ์„œ๋กœ ์ฝ”๋“œ๋งŒ์œผ๋กœ ์‚ฌ์šฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.
      • ์šฐ๋ฆฌ๋Š” Drive ์„œ๋น„์Šค์—์„œ ์ œ๊ณตํ•ด์•ผ ํ•˜๋Š” ์ฝ”๋“œ ์กฐ๊ฐ๋“ค์˜ ๊ฒฝ๊ณ„์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๊ธฐ ์‹œ์ž‘ํ–ˆ๋‹ค.
      • ๊ทธ๋ฆฌ๊ณ  ์šฐ๋ฆฌ๋Š” Drive์˜ ๋ฐฑ์—”๋“œ API๋ฅผ ๋‹ค๋ฃจ๋Š” ๊ฒฝ์šฐ Drive ์„œ๋น„์Šค๊ฐ€ ์ž‘์—…ํ•˜๊ณ  ๊ณต์œ ํ•˜๊ธฐ๋กœ ํ–ˆ๋‹ค.
  • Webpack 5 Module Federation

  • Page ์™€ Fragment, ์ƒํƒœ ๋ถ„๋ฆฌ

  • Micro Frontend ๋Š” ๊ตฌ์ฒด์ ์ธ ๊ธฐ์ˆ ์ด ์•„๋‹ˆ๋‹ค.

    • ์„œ๋น„์Šค๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ปค์ ธ์„œ ๋ณต์žก๋„์˜ ์ฆ๊ฐ€๋ฅผ ๋”ฐ๋ผ๊ฐ€์ง€ ๋ชปํ•  ๋•Œ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋Œ€์•ˆ ์ค‘ ํ•˜๋‚˜์ด๋‹ค.
    • ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋Š” ๊ฐœ๋ฐœ๋„ ์ค‘์š”ํ•˜์ง€๋งŒ ์šด์˜ํ•˜๋ฉด์„œ ๋‚˜์˜ค๋Š” ์š”์†Œ๋“ค์„ ๊ณ„์† ๊ณ ๋ คํ•˜๋ฉฐ ๋ฐœ์ „์‹œ์ผœ์•ผ ํ•œ๋‹ค.
    • ํŠน์ • ์ฝ”๋“œ ์กฐ๊ฐ์ด ๋ณ€๊ฒฝ๋˜์—ˆ์„ ๋•Œ ์–ด๋””๊นŒ์ง€ ํ…Œ์ŠคํŠธ ํ•ด์•ผํ•  ์ˆ˜ ์žˆ์„์ง€๋ฅผ ์ฐพ์„ ๋•Œ ๋ช…ํ™•ํ•˜๋‹ค.
    • ์ฝ”๋“œ์˜ ์ค‘๋ณต์€ ์–ด์ฉ” ์ˆ˜ ์—†๋Š” ๋ถ€๋ถ„์ด๋‹ค. ์ด๋“์— ์ดˆ์ ์„ ๋งž์ถฐ์•ผ ํ•œ๋‹ค.
      • ์ฝ”๋“œ ๋ณต์‚ฌ๋ฅผ ๋‘๋ ค์›Œํ•˜์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค.
    • ๋ชจ๋†€๋ฆฌ์‹ SPA ๋ฅผ ๋งŒ๋“ค๋˜ ํŒ€ ๊ตฌ์กฐ ๊ทธ๋Œ€๋กœ ๋งˆ์ดํฌ๋กœ ํ”„๋ก ํŠธ์—”๋“œ๋ฅผ ์ ์šฉํ•˜๋ฉด ์ž˜๋˜์ง€ ์•Š์„๊ฑฐ๋ผ ๋ฏฟ๋Š”๋‹ค.
      • ๋ฉ”์ผ ํ”„๋ก ํŠธ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๋Œ€ํ™”๋ฅผ ๋งŽ์ด ํ•ด์•ผ ํ•  ๋Œ€์ƒ์€ ๋“œ๋ผ์ด๋ธŒ ํ”„๋ก ํŠธ ์—”์ง€๋‹ˆ์–ด๊ฐ€ ์•„๋‹Œ ๋ฉ”์ผ ๊ธฐํš์ž, ๋ฉ”์ผ BE ์—”์ง€๋‹ˆ์–ด์ด๋‹ค.
    • FE ์—”์ง€๋‹ˆ์–ด ๊ฐ„์˜ ๊ธฐ์ˆ ์  ๊ต๋ฅ˜๋ฅผ ์œ„ํ•ด์„œ ์ฑ„๋„์„ ๋งŒ๋“ค๊ณ , ์•„ํ‚คํ…์ฒ˜์˜ ๋ฐœ์ „์„ ์œ„ํ•ด ๋…ธ๋ ฅํ•ด์•ผ ํ•œ๋‹ค.

[๊ตฌ๊ธ€ ์‚ฌ๋ก€๋กœ ์งš์–ด๋ณด๋Š” ๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ์ง„ํ™”]

๋ฐœํ‘œ์ž : Google ๋””์ž์ด๋„ˆ ์ด์ •์˜

Why we need Design System(๋””์ž์ธ ์‹œ์Šคํ…œ์˜ ๊ฐ€์น˜)

UX์˜ ์ ‘๊ทผ ๋ฐฉ์‹ ๊ฐœ๋ณ„ ํ”ผ์ฒ˜์˜ ๋””์ž์ธ ์™„์„ฑ๋„์— ์ง‘์ค‘ -> ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ†ตํ•œ ๋น ๋ฅธ ํ…Œ์ŠคํŠธ ํ™˜๊ฒฝ์„ ์ œ๊ณต, ํ™•๋ณดํ•œ ์‹œ๊ฐ„์„ ํ†ตํ•ด User Value ํƒ์ƒ‰

  • Efficiency(๋Šฅ๋ฅ )
    • ์ผ๊ด€์ ์ธ ์šฉ์–ด ์‚ฌ์šฉ, ๊ฐœ๋ฐœ๊ณผ ๋””์ž์ธ์ด ์‹ฑํฌ ๋˜์–ด์žˆ๋Š” ์ปดํผ๋„ŒํŠธ ๋“ฑ์„ ํ†ตํ•ด์„œ ์ œํ’ˆ ์กฐ์ง ์ „์ฒด์˜ ํšจ์œจ์„ฑ๊ณผ ์ƒ์‚ฐ์„ฑ์ด ํฌ๊ฒŒ ์ƒ์Šน
  • Usability(์œ ์šฉ์„ฑ)
    • ์ผ๊ด€์„ฑ ์žˆ๋Š” UX๋Š” ์ œํ’ˆ ํŒ€์˜ ํšจ์œจ์„ฑ์„ ์ฆ๊ฐ€ ์‹œํ‚ค๋Š” ๊ฒƒ์—์„œ ๋‚˜์•„๊ฐ€ ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๋งŒ๋“ ๋‹ค.
    • ๊ธฐ๋Œ€ํ•œ ๋Œ€๋กœ ๋™์ž‘ํ•˜๋Š” ์ปดํผ๋„ŒํŠธ, ๋ณต์žกํ•œ ์ƒํ™ฉ์—์„œ๋„ ์ฆ‰์‹œ ์ดํ•ด ๊ฐ€๋Šฅํ•œ ์œ ์ € ํ”Œ๋กœ์šฐ ๋“ฑ์ด ๊ฐ€๋Šฅํ•ด์กŒ๋‹ค.
  • Product Identity
    • ์ œํ’ˆ ์ „์ฒด์˜ ์ธ์ƒ์„ ๊ฒฐ์ •ํ•˜๋Š” ์ปฌ๋Ÿฌ, ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ, ์ผ๋Ÿฌ์ŠคํŠธ๋ ˆ์ด์…˜ ๋“ฑ์€ ๊ฐœ๋ณ„ ํ”ผ์ฒ˜๊ฐ€ ์•„๋‹ˆ๋ผ ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ํ†ตํ•ด์„œ ์ •์˜๋œ๋‹ค.
    • ์ž˜ ๊ด€๋ฆฌ๋˜๊ณ  ์™ธ๋ถ€์—๋„ ๊ณต์œ ๋˜๋Š” ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ์ œํ’ˆ ๊ทธ ์ž์ฒด์˜ ์™„์„ฑ๋„๋ฅผ ๋Œ€๋ณ€ํ•œ๋‹ค.

Evolving Design System(์ง„ํ™”ํ•˜๋Š” ๋””์ž์ธ ์‹œ์Šคํ…œ)

[Step 0]

  • Aligned Design Guidelines (psd)
    • ๋กœ์ปฌ ํŒŒ์ผ๋กœ ์กด์žฌ
    • ๋””์ž์ด๋„ˆ๋“ค ์‚ฌ์ด์—์„œ๋„ ๋ช…ํ™•ํ•˜์ง€ ์•Š์€ ์‹ฑํฌ
    • ๋‹จ๋ฐœ์„ฑ ํ”„๋กœ์ ํŠธ
    • ๋ฆฌ๋”ฉ ์ฃผ์ œ ๋ถˆ๋ช…ํ™•

[Step 1]

  • Cloud Design Library
    • ํด๋ผ์šฐ๋“œ๋ฅผ ํ†ตํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐฐํฌ
    • ๋””์ž์ธ ์‹œ์Šคํ…œ ํŒ€ ์…‹์—…
    • UI Refresh
    • ์ผ๊ด€์„ฑ ๊ฐœ์„ 
    • Design Legacy ๊ฐœ์„ 
    • Design Foundation ์ •๋ฆฝ

[Step 2] - ํ˜„์žฌ ๋‹จ๊ณ„

  • Code & Design Sync (figma)
    • Component ์ œ์ž‘
    • UX/Eng Document
    • UI Migration

[Step 3]

  • Company level Design System
    • ํ”„๋กœ์ ํŠธ๋ณ„๋กœ ๋””์ž์ธ ์‹œ์Šคํ…œ ์กด์žฌ
    • ์ƒ์†๊ด€๊ณ„ ์ •์˜
    • ๋””์ž์ธ ์›์น™ ์žฌ์ •๋ฆฝ
    • Design Tokens ๋„์ž…
    • Cross Platforms

Signals for Design System(๋””์ž์ธ ์‹œ์Šคํ…œ ์–ธ์ œ ์‹œ์ž‘ํ• ๊นŒ)

  • ํŒ€์ด ์ ์  ์ปค์ง€๊ณ  ๊ทธ์— ๋”ฐ๋ผ ์ผ๊ด€์„ฑ์ด ๋ฌด๋„ˆ์ง€๋Š” ๊ฒฝ์šฐ
  • UX ์กฐ์ง์˜ ์Šค์ผ€์ผ์ด ์ปค์ง€๊ณ  ์—ญํ• ์„ ํ™•์žฅํ•ด์•ผ ํ•˜๋Š” ์‹œ๊ธฐ
    • ๋””์ž์ธ ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•ด์„œ ์ฆ๊ฐ€ํ•œ ์—…๋ฌด ํšจ์œจ์„ ์‹ค์ œ ์œ ์ €์—๊ฒŒ ์ž„ํŒฉํŠธ ์žˆ๋Š” ๊ฒฝํ—˜์— ๋Œ€ํ•œ ๊ณ ๋ฏผ์˜ ์‹œ๊ฐ„์œผ๋กœ ํ™œ์šฉ
      • Research ํ™œ์šฉ
      • A/B Testing ๋ฐ Experiment ํ™•๋Œ€
      • Product User Value ์ •์˜
      • CUJ model ๋„์ž…
  • ์ œํ’ˆ ์ „์ฒด์ ์ธ ๋””์ž์ธ ๋ฆฌํ”„๋ ˆ์‹œ๋ฅผ ์•ž๋‘๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ
  • ๋•Œ๋กœ๋Š” ๊ทธ์ € ์ƒˆ๋กœ์šด ๋””์ž์ธ ํˆด์˜ ๋„์ž…๊ณผ ๋ฐœ๋งž์ถฐ(ex.Figma)

Know-hows and Tips(์ ์šฉ ๋…ธํ•˜์šฐ์™€ ํŒ)

  • ์†์— ์žกํžˆ๋Š” ๊ฐ€์‹œ์ ์ธ ๋งˆ์ผ์Šคํ†ค

    • ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ๊ธด ์‹œ๊ฐ„์„ ํˆฌ์žํ•ด์•ผ ํ•˜๋Š” ๋ฐ”๋‹ฅ ๊ณต์‚ฌ์™€ ๊ฐ™๋‹ค.
    • ์ง€์น˜์ง€ ์•Š๊ธฐ ์œ„ํ•ด์„œ๋Š” ๊ฐ€์‹œ์ ์œผ๋กœ ๋ณด์ด๋Š” ๋งˆ์ผ์Šคํ†ค์„ ์ž˜ ์„ค์ •ํ•˜๋Š”๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.
    • ๋ผ์ธ์—์„œ๋Š” ๋‹คํฌ ๋ชจ๋“œ ์ ์šฉ๊ณผ ์ปฌ๋Ÿฌ ์ •๋ฆฌ๋ฅผ ํ•จ๊ป˜ ๋ฌถ์–ด์„œ ์ง„ํ–‰ํ–ˆ๋‹ค.
  • ํ”„๋กœ๋•ํŠธ ์ž„ํŒฉํŠธ๋ฅผ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ์„ค์ •

    • UX ์™€ Eng ์‹ค๋ฌด์ž๋“ค์—๊ฒŒ๋Š” ๊ทธ ์ฆ‰์‹œ ์—…๋ฌด ํšจ์œจ์ด ์˜ฌ๋ผ๊ฐ€๋Š” ํ”„๋กœ์ ํŠธ์ง€๋งŒ, ๋ฆฌ๋”์‹ญ์˜ ํฐ ์ง€์›๊ณผ ์ดํ•ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ๊ฐ€์‹œ์ ์œผ๋กœ ๋ชฉํ‘œ๋ฅผ ์„ค์ •ํ•˜๊ณ  ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.
  • Visibility ๋ฅผ ์ƒ๊ฐํ•˜๊ณ , ํŒ€์„ ํ‚ค์šฐ๊ธฐ

    • ์™„๋ฒฝํ•จ์„ ์ถ”๊ตฌํ•˜๊ธฐ ๋ณด๋‹ค, ๋‹น์žฅ ํŒ€์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ๋ถ€๋ถ„์„ ๊ณต์œ ํ•˜๋ฉด ๋” ํฐ ๊ด€์‹ฌ๊ณผ ์„œํฌํŠธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.
  • ์—ด๋ฆฐ ์ž์„ธ๋กœ, ์—ฌ๋Ÿฌ ์ฑ„๋„๋กœ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜

  • ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ๊พธ์ค€ํžˆ ์šด์˜๋˜๋Š” ๋ชจ๋ธ๋กœ

    • ๋””์ž์ธ ์‹œ์Šคํ…œ์€ ํ”„๋กœ์„ธ์Šค ์ž์ฒด๊ฐ€ 50% ์ด์ƒ์ด๋ผ๊ณ  ํ•ด๋„ ๋  ์ •๋„๋กœ Workflow๋ฅผ ์ž˜ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.
    • ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ฒ˜๋ฆฌ๋  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐ์— ์‹œ๊ฐ„์„ ๋งŽ์ด ๋“ค์ด์ž

[๊ดด๋ฌผ ๊ฐ™์ด ๋ณ€ํ•œ Dooray! ์›น์•ฑ ์ •๋ฆฌํ•˜๊ธฐ]

๋ฐœํ‘œ์ž : NHN Dooray ๊น€๋ถ€์Šน

2014๋…„ Dooray ๊ฐœ๋ฐœ ์‹œ์ž‘ ๋ฉ”์‹ ์ €๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€ ์„œ๋น„์Šค๋Š” SPA๋กœ ์ œ์ž‘ ๋จ ์‚ฌ์šฉ ํ”„๋ ˆ์ž„์›Œํฌ : Angular js

Angular๊ฐ€ 2022๋…„ 1์›” ์ง€์›์ด ์ข…๋ฃŒ๋œ๋‹ค๊ณ  ํ–ˆ์Œ 2019๋…„ vue๋กœ ๋ณ€๊ฒฝ ์‹œ๋„ ํ˜„์žฌ ์ฃผ์†Œ๋ก, ๊ฒฐ์ œ ์„œ๋น„์Šค๋งŒ vue๋กœ ์ž‘์—…๋˜์–ด ์žˆ์Œ

  • Vue๋กœ ์ •๋ฆฌํ•œ ์ฝ”๋“œ ๋ฌธ์ œ์ 

    • ํƒ€์ž… ์ถ”๋ก ์ด ์ž˜ ๋˜์ง€ ์•Š์Œ
    • ๋น… ์ปดํฌ๋„ŒํŠธ
    • Watch ์ฝ”๋“œ ์—ฐ๊ด˜๋กœ ์ฝ”๋“œ ์ถ”์  ํž˜๋“ฌ
    • ์ฝ”๋“œ ์Šคํƒ€์ผ ํŒŒํŽธํ™”
  • Angular ์™€ Vue์˜ ๊ณตํ†ต์  ์„œ๋น„์Šค ๋ฌธ์ œ๊ฐ€ ์กด์žฌ

    • ์ƒˆ๋กœ์šด ๊ฐœ๋ฐœ์„ ํ•˜๊ฒŒ ๋  ๋•Œ ์–‘์ชฝ์—์„œ ๋‘๋ฒˆ ์ž‘์—…์„ ํ•ด์•ผํ•จ
    • ๋ฒ„๊ทธ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋ผ์ดํ”„์‚ฌ์ดํด์„ ๊ฐ–๊ณ  ์žˆ์Œ

์ œ๋กœ์ œ์ด์Šค์—์„œ ๋‹ค์‹œ ์ž‘์—… ์‹œ์ž‘ -> React React ์„ ์ • ์ด์œ ? -> ๋ฆฌ์•กํŠธ์˜ ์‹œ์žฅ ์ ์œ ์œจ์ด ๋†’๊ธฐ ๋•Œ๋ฌธ์— ์ฐธ๊ณ ํ•  ๋ ˆํผ๋Ÿฐ์Šค๋“ค์ด ๋งŽ์Œ

์ปดํฌ๋„ŒํŠธ ์ •๋ฆฌ ์ปดํฌ๋„ŒํŠธ ๋ฉ”๋ชจ

  • ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋™์ผํ•œ props๋กœ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ Œ๋”๋งํ•ด๋‚ธ๋‹ค๋ฉด, React.memo ๋ฅผ ํ˜ธ์ถœํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ฉ”๋ชจ์ด์ง•(Memoizing)ํ•˜๋„๋ก ๋ž˜ํ•‘ํ•˜์—ฌ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ ํ–ฅ์ƒ์„ ๋ˆ„๋ฆด ์ˆ˜ ์žˆ๋‹ค.
  • ์ฆ‰, React๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ Œ๋”๋ง ํ•˜์ง€ ์•Š๊ณ  ๋งˆ์ง€๋ง‰์œผ๋กœ ๋ Œ๋”๋ง ๊ฒฐ๊ณผ๋ฅผ ์žฌ์‚ฌ์šฉํ•œ๋‹ค.

์ƒํƒœ ์ €์žฅ

[ ์žฅ๋‹จ์  ]

  • ์ปจํ…Œ์ด๋„ˆ

    • ์ƒํƒœ ์ถ”๊ฐ€ ์‰ฌ์›€
    • ์™ธ๋ถ€ ์ƒํƒœ ์ฐธ์กฐ ์–ด๋ ค์›€
    • ๊ณ„์‚ฐ ๋กœ์ง์€ ์ปจํ…Œ์ด๋„ˆ์—๋งŒ ์œ„์น˜
    • ๋น„๋™๊ธฐ ๋กœ์ง ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์›€
  • ์Šคํ† ์–ด

    • ์ƒํƒœ ์ถ”๊ฐ€ ์‹œ ์ผ์ด ๋งŽ์Œ
    • ์ƒํƒœ ์ฐธ์กฐ ์‰ฌ์›€
    • ๊ณ„์‚ฐ ๋กœ์ง ์œ„์น˜ ์ž์œ 
    • ๋น„๋™๊ธฐ ๋กœ์ง ๋‹ค๋ฃจ๊ธฐ ์‰ฌ์›€

[ ์—ญํ•  ]

  • ํ”„๋ ˆ์  ํ„ฐ

    • ํ™”๋ฉด์„ ๊ทธ๋ฆผ
    • ์ด๋ฒคํŠธ ๋ฐœ์ƒ ์‹œ ์ปจํ…Œ์ด๋„ˆ์— ์•Œ๋ ค์คŒ
  • ์ปจํ…Œ์ด๋„ˆ

    • ์Šคํ† ์–ด์˜ ์ƒํƒœ๋ฅผ ํ”„๋ ˆ์  ํ„ฐ์— ์—ฐ๊ฒฐ
    • ํ”„๋ ˆ์  ํ„ฐ์—์„œ ๋™์ž‘ ์‹œ ์Šคํ† ์–ด์— ์—ฐ๊ฒฐ
  • ์Šคํ† ์–ด

    • ์ƒํƒœ ์ €์žฅ
    • ๊ณ„์‚ฐ ๋กœ์ง ์‹คํ–‰
    • API ํ˜ธ์ถœ

nhn-forward-22's People

Contributors

devwoodie avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.