01. React Component

1. ์•„ํ† ๋ฏน ๋””์ž์ธ ์‹œ์Šคํ…œ

  1. ๊ฐœ๋… ๋ฐ ์ •์˜

    1. ๋””์ž์ธ ์‹œ์Šคํ…œ ๋ฐฉ๋ฒ•๋ก  ์ค‘์˜ ํ•˜๋‚˜

    2. ์ฃผ๊ธฐ์œจํ‘œ ์ƒ์˜ ์›์ž(atom)๋“ค์ด ์–ด๋–ป๊ฒŒ ๊ฒฐํ•ฉํ•˜๋А๋ƒ์— ๋”ฐ๋ผ์„œ ์„ธ์ƒ ๋ชจ๋“  ๊ฒƒ๋“ค์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋“ฏ์ด

    3. ์›นํŽ˜์ด์ง€์˜ ์ปดํฌ๋„ŒํŠธ๋ฅผ 5๊ฐ€์ง€ ๋ ˆ๋ฒจ๋กœ ๋‚˜๋ˆ  ์ฒด๊ณ„ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

  2. ํ•„์š”์„ฑ ๋ฐ ์˜์˜

    1. ๊ทœ์น™์„ ์ œ๊ฐ๊ฐ์œผ๋กœ ๋งŒ๋“ค๋ฉด, ๊ด€์‹ฌ์‚ฌ๊ฐ€ ๋„ˆ๋ฌด ๋งŽ๊ฑฐ๋‚˜

    2. ์žฌ์‚ฌ์šฉ์ด๋‚˜ ํ™•์žฅํ•  ์ˆ˜ ์—†๋Š” ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด

  3. ํŠน์ง•

    1. atom - molecule - organism - Template - page์œผ๋กœ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ชผ๊ฐœ๋Š” ๋ฐฉ๋ฒ•

    2. atom: ๋”์ด์ƒ ์ชผ๊ฐค ์ˆ˜ ์—†๋Š” ๋‹จ์ผ์š”์†Œ (ex. ํƒœ๊ทธ, ๊ธ€๊ผด, ์ปฌ๋ŸฌํŒ”๋ ˆํŠธ, ๋ ˆ์ด์•„์›ƒ ๋“ฑ)

    3. molecule: ์—ฌ๋Ÿฌ atom์„ ๊ฒฐํ•ฉ, ๊ณ ์œ ์˜ ํŠน์„ฑ์„ ๊ฐ€์ง, ํ•œ๊ฐ€์ง€ ๋™์ž‘์„ ํ•จ(SRP, Single Responsibility Principle) - ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์‰ฝ๊ณ , ์žฌ์‚ฌ์šฉ์„ฑ ๋†’์Œ

    4. organism: ํŠน์ • ์ปจํ…์ŠคํŠธ๋ฅผ ๊ฐ€์ง, ์ƒ๋Œ€์ ์œผ๋กœ ๊ตฌ์ฒด์ , ์žฌ์‚ฌ์šฉ์„ฑ ๋‚ฎ์Œ (ex. header)

    5. Template: ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ฐฐ์น˜ํ•˜๊ณ  ๊ตฌ์กฐ๋ฅผ ์žก๋Š” ์™€์ด์–ดํ”„๋ ˆ์ž„, ์ปจํ…์ธ ๊ฐ€ ์—†๋Š” page (์Šค์ผˆ๋ ˆํ†ค)

    6. Page: ์œ ์ €๊ฐ€ ๋ณด๋Š”, ์‹ค์ œ ์ปจํ…์ธ ๋ฅผ ๋‹ด์€ ์š”์†Œ, template์˜ ์ธ์Šคํ„ด์Šค๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Œ.

  4. ๋ฐฉ๋ฒ•

    1. Molecule vs Organism

      1. SRP, Single Responsibility Principle์„ ์ง€ํ‚ฌ ์ˆ˜ ์žˆ๋А๋ƒ

      2. Context๊ฐ€ ์—†์–ด๋„ ์ปดํฌ๋„ŒํŠธ์˜ ์—ญํ• ์ด ์„ค๋ช…์ด ๋˜๋А๋ƒ

      3. ๊ทธ๋ž˜๋„ ๋ชจํ˜ธํ•˜๋ฉด ์ผ๋‹จ Organism

    2. ์ค‘๋ณต ์ปดํฌ๋„ŒํŠธ

      1. compound ์ปดํฌ๋„ŒํŠธ (ํ•ฉ์„ฑ ์ปดํฌ๋„ŒํŠธ)๋กœ ํ•ด๊ฒฐํ•˜๊ธฐ

      2. UI ์ œ์–ดํ•˜๋Š” ์ƒํƒœ ์ด๋Ÿฐ๊ฑฐ๋Š” ๋‹ค ์™ธ๋ถ€์—์„œ ์ฃผ์ž…ํ•˜๊ธฐ (์Šคํ† ๋ฆฌ๋ถ ์œ ์šฉ)

      3. ๋งˆ์ง„, ํŒจ๋”ฉ๊ณผ ๊ฐ™์€ ๋ ˆ์ด์•„์›ƒ ๊ด€๋ จ ์Šคํƒ€์ผ๋„ ์™ธ๋ถ€์—์„œ ์ฃผ์ž…ํ•˜๊ธฐ

    3. UI ๋ชจ๋ธ๋ง

      1. ํ•˜๋‚˜์˜ ์ปดํฌ๋„ŒํŠธ์˜ ๋‹จ์œ„๋ฅผ ์ชผ๊ฐœ๊ณ  ๋„ค์ด๋ฐ ํ•˜๋Š” ๊ณผ์ •์„ ํ”ผ๊ทธ์žผ์„ ํ†ตํ•ด ํ•จ๊ป˜ ์ง„ํ–‰ํ•˜๊ธฐ

  5. ๊ฐœ์ธ์ ์ธ ์ƒ๊ฐ(์ถ”๊ฐ€์ ์ธ ์งˆ๋ฌธ ๋˜๋Š” ์ธ์‚ฌ์ดํŠธ)

  6. ๋ชฉ์—…์˜ ๊ฐœ๋…

    ์–ด๋–ป๊ฒŒ ์ž‘์—…์„ ํ•  ๊ฒƒ์ด๋ƒ..
    ๋Œ€๋žต์ ์ธ ๋ชจ์Šต
    ์™„์„ฑ์€ ์•„๋‹ˆ์ง€๋งŒ
    ๊ทธ๋ ‡๋‹ค๊ณ  ํฐ ๋ณ€ํ™”๊ฐ€ ์žˆ์„ ๊ฒƒ๋„ ์•„๋‹Œ ๊ฒฐ๊ณผ๋ฌผ
  7. RestAPI

    1. ๊ฐœ๋…

      1. ๋‘ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์ด

      2. ์ธํ„ฐ๋„ท์„ ํ†ตํ•ด

      3. ์ •๋ณด๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๊ตํ™˜ํ•˜๊ธฐ ์œ„ํ•ด

      4. ์‚ฌ์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค (์ฝ”๋“œ)

    2. ์šฉ์–ด ์ •๋ฆฌ

      1. Rest:

        1. ์†Œํ”„ํŠธ์›จ์–ด ์•„ํ‚คํ…์ฒ˜์˜ ์ผ์ข…

        2. REpresentational State Transfer์˜ ์ด๋‹ˆ์…œ

        3. API ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ๋ถ€๊ณผ

      2. RESTful ์›น์„œ๋น„์Šค:

        1. REST ์•„ํ‚คํ…์ฒ˜๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ์›น์„œ๋น„์Šค

        2. Representational (๋Œ€ํฌํ•˜๋Š”) State (์ƒํƒœ) Transfer (์ด๋™)

      3. API:

        1. Application Programing Interface

        2. ์„œ๋กœ ๋‹ค๋ฅธ ์†Œํ”„ํŠธ์›จ์–ด ์‚ฌ์ด์˜

        3. ํ†ต์‹ ์„ ์œ„ํ•ด์„œ

        4. ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ ์œผ๋กœ ๋”ฐ๋ผ์•ผํ•˜๋Š” ๊ทœ์น™์„ ์ •์˜.

        5. ์›น์˜ ๊ฒฝ์šฐ, ์›น ์„œ๋ฒ„์˜ ๋ฆฌ์†Œ์Šค(๋ฐ์ดํ„ฐ)์— ์ ‘๊ทผํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์™€ ์›น์„œ๋ฒ„ ๊ฐ„์˜ ๊ฒŒ์ดํŠธ์›จ์ด

      4. URI:

        1. ์ž์›(๋ฆฌ์†Œ์Šค)์„ ๊ตฌ์กฐ์™€ ํ•จ๊ป˜ ๋‚˜ํƒ€๋‚ด๋Š” ๊ตฌ๋ถ„์ž

        2. (uniform resource identifier)

    3. ํŠน์ง•

      1. ๊ท ์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค

        1. ์š”์ฒญ์€ ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•ด์•ผํ•จ. ๊ท ์ผํ•œ ๋ฆฌ์†Œ์Šค ์‹๋ณ„์ž๋ฅผ ์‚ฌ์šฉ

      2. ๋ฌด์ƒํƒœ

      3. ๊ณ„์ธตํ™”์‹œ์Šคํ…œ

      4. ์บ์‹œ๊ฐ€๋Šฅ์„ฑ

      5. ์˜จ๋””๋งจ๋“œ์ฝ”๋“œ

      6. ๋™์‚ฌ ๋ง๊ณ  ๋ช…์‚ฌ๋กœ

    4. ๋™์ž‘ (HTTP METHOD ์ค‘ 5๊ฐ€์ง€๋ฅผ ์‚ฌ์šฉ)

      1. GET,

      2. POST,

      3. PUT: ์ •๋ณด๋ฅผ ํ†ต์ฑ„๋กœ ๊ฐˆ์•„ ๋ผ์šธ ๋•Œ

      4. PATCH: ์ •๋ณด ์ค‘ ์ผ๋ถ€๋งŒ ๋ณ€๊ฒฝํ•  ๋•Œ

      5. DELETE

      6. ๊ฒฐ๋ก : ์–ด๋–ค URI์— ์–ด๋–ค METHOD๋ฅผ ์‚ฌ์šฉํ•  ๊ฒƒ์ธ๊ฐ€

    5. ์—ญ์‚ฌ

      1. ๊ณผ๊ฑฐ์˜ SOAP์ด๋ž€ ๋ณต์žกํ•œ ๋ฐฉ์‹์„ ๋ณด์™„ํ•œ๊ฒƒ

    6. ์žฅ์ 

      1. ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๊ณ  ์ œ๊ณตํ•  ๋•Œ ํ˜•์‹์„ ๋ฏธ๋ฆฌ ์ง€์ •ํ•จ์œผ๋กœ์จ

      2. ๋ˆ„๊ตฌ๋“  ํ˜•์‹์„ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•จ

      3. ์š”์ฒญ๋งŒ ๋ณด๊ณ ๋„ ์ด ์š”์ฒญ์ด ์–ด๋–ค ์š”์ฒญ์ธ์ง€ ์ถ”๋ก ์ด ๊ฐ€๋Šฅํ•˜๋‹ค

    7. ๋ ˆํผ๋Ÿฐ์Šค

      1. https://aws.amazon.com/ko/what-is/restful-api/?nc1=h_ls

  8. GraphQL

    1. ์—ญ์‚ฌ

      1. RESTful api - ๋ฉ”์†Œ๋“œ์™€ uri๋ฅผ ์กฐํ•ฉํ•ด์„œ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์ผ์ •ํ•œ ์ •๋ณด์™€ ์ž‘์—…์„ ์š”์ฒญ

      2. ๋ฒ„ํŠผ๋งˆ๋‹ค ๋‚˜์˜ค๋Š” ๊ฒƒ์ด ํ™•์‹คํ•œ ์žํŒ๊ธฐ์ฒ˜๋Ÿผ..

      3. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ๋ށ์Šค์— ์žˆ๋Š” ์ •๋ณด๋“ค์„ ์š”์ฒญํ•˜๋ ค๋ฉด, ์š”์ฒญ์„ ๋‘ ๋ฒˆ ๋ณด๋‚ด์•ผํ•œ๋‹ค๊ฑฐ๋‚˜, ๋ฐ์ดํ„ฐ ์ค‘ ์ผ๋ถ€๋งŒ ํ•„์š”ํ•  ๋•Œ์—๋„ ์ „์ฒด ์ •๋ณด๋ฅผ ์ „์†กํ•ด์ฃผ์–ด์„œ ๋ฆฌ์†Œ์Šค๋ฅผ ๋‚ญ๋น„ํ•  ์ˆ˜ ์žˆ์Œ.

      4. RESTful api๋Š” ์š”์ฒญ ์ž์ฒด๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•˜๋Š” ๋Œ€์‹  ์‘๋‹ต์ด ๋ช…ํ™•ํ•˜์ง€ ์•Š์ง€๋งŒ, GraphQL์€ ์š”์ฒญ์ด ๋ณต์žกํ•ด์ง€๋Š” ๋Œ€์‹  ์‘๋‹ต์ด ๋ช…ํ™•ํ•ด์ง„๋‹ค.

    2. ์‚ฌ์šฉ๋ฒ• (์–ธ์–ด๋งˆ๋‹ค ์‚ฌ์šฉ๋ฒ•์ด ์žˆ์Œ!)

      1. nodejs, express

        1. schema (๋ฐ์ดํ„ฐ์˜ ๊ตฌ์กฐ๋‚˜ ํ‘œํ˜„๋ฒ•, ๊ด€๊ณ„๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ง) query์—์„œ ์–ป๊ณ ์ž ํ•˜๋Š” ๊ฑธ ์Šคํ‚ค๋งˆ์ฒ˜๋Ÿผ ๋„ฃ์–ด์ฃผ๊ฑฐ๋“ ์š”. ์ฟผ๋ฆฌ ์ž์ฒด์—์„œ ์ง€์ •์„ ํ•ด์ค˜์š”. ์ฟผ๋ฆฌ ๋žญ๊ท€์ง€๋ผ์„œ SQL์ด๋ž‘ ๋น„์Šทํ•ด์š”. Query(Read), Mutation(Command: Create, Update, Delete), Subscription(Event)

์ง€๊ธˆ์€ key๋กœ ์“ธ ์ˆ˜ ์žˆ๋Š”๊ฒŒ ์—†์–ด์„œ ์ „์ฒด๋ฅผ ํ•˜๋‚˜์˜ ๋ฌธ์ž์—ด๋กœ ๋งŒ๋“ ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๊ณ ์œ ์˜ key๋ฅผ ๋งŒ๋“ค์–ด์ค˜์•ผํ•ด์š”.

  1. JSON

JavaScript Object Notation : ๊ฒฝ๋Ÿ‰์˜ ๋ฐ์ดํ„ฐ ๊ตํ™˜ํ˜•์‹์ด๋‹ค.

json.org ๋”๊ธ€๋ผ์Šค ์–ด์ฉŒ๊ตฌ๋‹˜์ด js๋ฅผ ์ œ๋Œ€๋กœ ์“ฐ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ..

๋ฌธ์ž์—ด๊ณผ ์˜ค๋ธŒ์ ํŠธ ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ

๋ฌธ์ž์—ด -> ์˜ค๋ธŒ์ ํŠธ: parse ์˜ค๋ธŒ์ ํŠธ -> ๋ฌธ์ž์—ด: stringify

  1. ์ปดํฌ๋„ŒํŠธ ๊ณ„์ธต๊ตฌ์กฐ

์ž๋™์ฐจ ์กฐ๋ฆฝํ•˜๋“ฏ

  1. ๋‚˜๋ˆ„๋Š” ๊ธฐ์ค€

    1. SRP (Single Responsibility Principle)

      1. SOLID

      2. ์บก์Аํ™”๋œ ์ปดํฌ๋„ŒํŠธ

      3. ํ•˜๋‚˜์˜ ์ฑ…์ž„๋งŒ ๊ฐ–๋„๋ก

      4. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ๋„ˆ๋ฌด ๊ธธ์–ด์ ธ -> ์ชผ๊ฐœ์ค˜์•ผ๋จ

    2. CSS ํด๋ž˜์Šค ์„ ํƒ์ž ์ฐธ๊ณ ํ•˜๊ธฐ

    3. Design's Layer ๋””์ž์ด๋„ˆ๊ฐ€ ์งœ๋†“์€ ๊ทธ๋ฃน, ์ปดํฌ๋„ŒํŠธ ๊ธฐ์ค€ ์ฐธ๊ณ ํ•˜๊ธฐ

    4. Information Architecture: JSON์˜ ์Šคํ‚ค๋งˆ ํ™œ์šฉ => ๋ฐ”๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์—†๋‹ค๋ฉด ๋ฐฑ์—”๋“œํ•œํ…Œ ์š”์ฒญ (์•„์ƒฌ's pick) => ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ SRP๊ฐ€๋Šฅ / ํ˜น์€ ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๋ฒˆ ๋” ๊ฐ€๊ณต

    ์žฅ์ : ๋งŒ๋“ค๊ณ  ๋‚˜๋ฉด ์กฐ๋ฆฝ ๋ฐฉ์‹์„ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅํ•ด์ง

  2. ์•„ํ† ๋ฏน๋””์ž์ธ => ๊ณ„์ธตํ˜• ๊ตฌ์กฐ๋ฅผ ๋ช‡ ๊ฐ€์ง€ ์นดํ…Œ๊ณ ๋ฆฌ๋กœ ๋ฌถ์€ ๋ฐฉ๋ฒ•

  3. ์ •์ ์ธ ui๋จผ์ € ๊ตฌํ˜„ (ex. html ๊ตฌ์กฐ)

  • DSL(Domain-Specific Language)

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

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

  • React component ์™€ props

  1. map ์‚ฌ์šฉ -> ์ด๋ฆ„์ด ๊ฒน์น˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ „์ œํ•˜์— ์ด๋ฆ„์„ ํ‚ค๋กœ ์žก๋Š”๋‹ค.

  2. Extract Function

    1. Refactoring.com

    2. ์ฝ”๋“œ๋ฅผ ํ•จ์ˆ˜๋กœ ๋บ€๋‹ค = ์ด ์ฝ”๋“œ๊ฐ€ ์–ด๋–ค ์˜๋„๋ฅผ ๊ฐ–๊ณ  ์ž‘์„ฑ๋œ ์ฝ”๋“œ์ธ์ง€, ์–ด๋–ค ๋™์ž‘์„ ํ•˜๋Š”์ง€ ์„ค๋ช…์„ ํ•˜๊ฒ ๋‹ค

    3. useRef

    4. selectCategories... ์–ด์ฉŒ๊ตฌ.. ๊ณ„์†๊ณ„์† ์ชผ๊ฐœ๊ณ  ์ชผ๊ฐœ๊ณ ..

  3. ์—ฌ๊ธฐ๊นŒ์ง€๊ฐ€ ์ •์ ์ธ๊ฒƒ ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผํ• ๊นŒ?

    1. ๋ฐ”๋กœ ํŒŒ์ผ์„ ์ƒˆ๋กœ ๋งŒ๋“ค์ง€ ๋ง๊ณ  ์ผ๋‹จ ํ•œ ํŒŒ์ผ ๋‚ด์—์„œ ํ•จ์ˆ˜๋กœ ๋บ€๋‹ค.

Last updated