1. React Component

ํ‚ค์›Œ๋“œ

  • REST API ์™€ GraphQL

    • REST API ๋ž€ ๋ฌด์—‡์ธ๊ฐ€

    • GraphQL์€ ์™œ ๋“ฑ์žฅํ–ˆ๋Š”๊ฐ€?

    • REST API vs GraphQL

  • JSON

  • DSL(Domain-Specific Language)

  • ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • ๋ช…๋ นํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ

  • SRP(๋‹จ์ผ ์ฑ…์ž„ ์›์น™)

  • Atomic Design

  • React component ์™€ props

๋ฐ์ดํ„ฐ

๋ฐฑ์—”๋“œ์—์„œ JSON ํ˜•ํƒœ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋„˜๊ฒจ์ค€๋‹ค๊ณ  ๊ฐ€์ •

ํ”„๋ก ํŠธ์—”๋“œ๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋„๋ก UI๋ฅผ ๊ตฌ์„ฑ

JSON

  • ์ธํ„ฐ๋„ท์—์„œ ์ž๋ฃŒ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ๊ทธ ์ž๋ฃŒ๋ฅผ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•

  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ๊ตฌ๋ฌธํ˜•์‹์„ ๋”ฐ๋ฅด์ง€๋งŒ ์–ธ์–ด ๋…๋ฆฝํ˜• ํฌ๋งท

  • ํ‚ค-๊ฐ’ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฐ์ดํ„ฐ ์˜ค๋ธŒ์ ํŠธ๋ฅผ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•œ ํฌ๋งท

  • ๋ฌธ์ž์—ด ํ˜•ํƒœ๋กœ ์กด์žฌํ•˜์—ฌ ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „์†กํ•  ๋•Œ ์œ ์šฉํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ์— ์•ก์„ธ์Šค ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋„ค์ดํ‹ฐ๋ธŒ JSON ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜๋˜์–ด์•ผํ•จ

    • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” JSON ์ „์—ญ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ๋ฌธ์ž์—ด๊ณผ JSON ๊ฐ์ฒด์˜ ์ƒํ˜ธ๋ณ€ํ™˜์„ ์ง€์›

    • Parsing: ๋ฌธ์ž์—ด์—์„œ ๋„ค์ดํ‹ฐ๋ธŒ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ

    • Stringification(๋ฌธ์ž์—ดํ™”) : ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ณผ์ •

REST API vs. GraphQL

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” API

REST API

  • URI๋Š” ์ •๋ณด์˜ ์ž์›์„ ํ‘œํ˜„

  • ์ž์›์— ๋Œ€ํ•œ ํ–‰์œ„๋Š” HTTP Method๋กœ ํ‘œํ˜„(GET, POST, PUT, DELETE)

REST API์˜ ํ•œ๊ณ„์™€ GraphQL์˜ ํƒ„์ƒ

  • ํ•˜๋‚˜์˜ View๋ฅผ ๊ทธ๋ฆฌ๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฒˆ API๋ฅผ ํ˜ธ์ถœํ•ด์•ผํ•จ

  • ๋‹ค์–‘ํ•œ ๊ธฐ์ข…์—์„œ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ผ์ผํžˆ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์›€

  • GraphQL์€ ํด๋ผ์ด์–ธํŠธ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋งŒ ์ฟผ๋ฆฌ๋ฅผ ํ†ตํ•ด ํš๋“ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜์—ฌ ํ†ต์‹  ๋กœ์ง์˜ ๊ตฌํ˜„์ด ํŽธ๋ฆฌํ•ด์ง

GraphQL

  • ์ž์›์„ ํŠน์ •ํ•˜๋Š” ๊ฒƒ์€ URL์ด ์•„๋‹Œ GraphQL Schema

  • ์–ด๋–ค ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ HTTP Mehod ๋Œ€์‹  Query, Mutation

  • ํ•œ ๋ฒˆ์˜ ์š”์ฒญ์œผ๋กœ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Œ

  • ์š”์ฒญํ• ๋•Œ ์‚ฌ์šฉํ•˜๋Š” Query๋ฌธ์— ๋”ฐ๋ผ ์‘๋‹ต์˜ ๊ตฌ์กฐ๊ฐ€ ๋‹ฌ๋ผ์ง

  • REST API์— ๋น„ํ•ด HTTP ์š”์ฒญ์˜ ํšŸ์ˆ˜์™€ ์‘๋‹ต์˜ ์‚ฌ์ด์ฆˆ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Œ

์ปดํฌ๋„ŒํŠธ์™€ Props

๋ฆฌ์•กํŠธ์˜ ํŠน์ง•

  1. ์„ ์–ธํ˜•

  2. ์ปดํฌ๋„ŒํŠธ๋กœ ๊ตฌ์„ฑ

๊ฐ„๋‹จํ•œ ์ปดํฌ๋„ŒํŠธ๋“ค์„ ํ•ฉ์ณ์„œ ๋ณต์žกํ•œ UI๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ

์ปดํฌ๋„ŒํŠธ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€

  • SRP(Single Responsibility Principle)

  • CSS

  • Design layer

  • Information Architecture

SRP

๊ฐ์ฒด๋Š” ๋‹จ ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค.

์ปดํฌ๋„ŒํŠธ๊ฐ€ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ฑ…์ž„์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๋ฉด ๋ถ„๋ฆฌํ•ด์•ผํ•จ

Extract Function

์ผ๋‹จ ๊ธธ๊ฒŒ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์ž๋ฅผ ์ˆ˜ ์žˆ์„ ๋•Œ ํ•จ์ˆ˜๋กœ ์ถ”์ถœ. ๋‚˜์ค‘์— ํŒŒ์ผ๋กœ ๋ถ„๋ฆฌ ๊ฐ€๋Šฅ

Atomic Design

  • Atoms : ๋””์ž์ธ์˜ ์ตœ์†Œ ๋‹จ์œ„. input, label, button, ...

  • Molecules: Atoms๋ฅผ ๋ชจ์•„์„œ ๋งŒ๋“  ํ•œ๊ฐ€์ง€ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋‹จ์œ„

  • Organisms: Atoms์™€ Molecules๋กœ ๊ตฌ์„ฑ๋œ ์‚ฌ์šฉ์ž์—๊ฒŒ ์˜๋ฏธ์™€ ์—ญํ• ์ด ์กด์žฌํ•˜๋Š” ๋‹จ์œ„

  • Template: ์—ฌ๋Ÿฌ Oragnism์œผ๋กœ ๊ตฌ์„ฑ๋œ ์ตœ์ข… ๋ ˆ์ด์•„์›ƒ ํ˜•ํƒœ

  • Page: ํ…œํ”Œ๋ฆฟ์— ์ฝ˜ํ…์ธ ๊ฐ€ ๋”ํ•ด์ง„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ๋˜๋Š” ์ตœ์ข… ๋””์ž์ธ์˜ ํ˜•ํƒœ

Props

๋‚˜๋ˆ ์ง„ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์—ฐ๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•

Last updated