Skip to content

gracelee5/14-OpenMind

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๐Ÿป ์•ˆ๋…•ํ•˜์„ธ์š”! ์ €ํฌ๋Š” ์ฝ”๋“œ์ž‡ ์Šคํ”„๋ฆฐํŠธ 6๊ธฐ 14ํŒ€์ž…๋‹ˆ๋‹ค!

โœจ์˜คํ”ˆ ๋งˆ์ธ๋“œโœจ๋Š”

์งˆ๋ฌธ๊ณผ ๋‹ต๋ณ€์„ ํ†ตํ•ด ๋งˆ์Œ์„ ์—ด๊ณ  ๋Œ€ํ™” ๋‚˜๋ˆ„๋Š” ์†Œํ†ต ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค.

๐Ÿ“ ๋ชฉ์ฐจ

1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
2. ํŒ€์› ์†Œ๊ฐœ
3. ๊ฐœ๋ฐœ ๊ธฐ๊ฐ„
4. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ
5. ํ˜‘์—… ๋ฐฉ๋ฒ•
6. ์ปจ๋ฒค์…˜
7. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
8. ํด๋” ๊ตฌ์กฐ
9. ์—ญํ• ๋ถ„๋‹ด
10. ๊ธฐ๋Šฅ์‹œ์—ฐ
11. ์ฝ”๋“œ ํŠน์ง•๊ณผ ๊ตฌํ˜„ ๋ฐฉ์‹
12. ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…
13. ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ


2. ํŒ€์›์†Œ๊ฐœ

์ด๊ฒฝ์› ๋ฐ•์ง€๋ฏผ ์œ ๊ธฐ์ฃผ ์•ˆ์ƒ๊ท  ์ด์†Œ์ •
๐Ÿ”—Github ๐Ÿ”—Github ๐Ÿ”—Github ๐Ÿ”—Github ๐Ÿ”—Github
ํŒ€์žฅ, ํฌ์ŠคํŠธ ํŽ˜์ด์ง€ ๋ฉ”์ธํŽ˜์ด์ง€ ๋ฆฌ์ŠคํŠธ ํŽ˜์ด์ง€ ๋ชจ๋‹ฌ ํŽ˜์ด์ง€, ๋ฐœํ‘œ ํฌ์ŠคํŠธ ํŽ˜์ด์ง€

3. ๊ฐœ๋ฐœ๊ธฐ๊ฐ„

  • ๊ธฐ๋Šฅ๊ตฌํ˜„ : 24/04/30 (ํ™”) ~ 24/05/15 (์ˆ˜)
  • ํ”„๋กœ์ ํŠธ ๋ฐœํ‘œ : 5/16 (๋ชฉ) 10:00 ~ 15:00
  • ๋ฆฌํŒฉํ† ๋ง :5/17

4. ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

  1. ์™„์„ฑ
    • ์ผ๋‹จ์€ ๊ธฐ๋Šฅ์˜ ์™„์„ฑ์— ์ง‘์ค‘ํ–ˆ์Šต๋‹ˆ๋‹ค. react๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฒ˜์Œ ํŒ€ ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋Š” ๋งŒํผ ๋ฌธ์ œ์—†์ด ๊ธฐ๋Šฅ์ด ์ž‘๋™ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ์‚ผ์•˜์Šต๋‹ˆ๋‹ค.
  2. ํ˜‘์—…
    • ๋‹ค์–‘ํ•œ ๋ฐฐ๊ฒฝ์„ ๊ฐ€์ง„ ํŒ€์›๋“ค๊ณผ์˜ ํ˜‘์—…์„ ํ†ตํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์— ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ๊ด€์ ์„ ์ดํ•ดํ•˜๊ณ  ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ ์ž ํ–ˆ์Šต๋‹ˆ๋‹ค.
    • ํ˜‘์—… ๋Šฅ๋ ฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ธฐ ์œ„ํ•ด ํŒ€์›๊ณผ ํ•จ๊ป˜ Notion๊ณผ Github์—์„œ ์ž‘์—…ํ•˜๊ณ  ์†Œํ†ตํ•˜์—ฌ Notion๊ณผ Github ์‚ฌ์šฉ์— ์ต์ˆ™ํ•ด์ง€๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  3. ๊ฒฝํ—˜
    • ๋‹ค์–‘ํ•œ ์‹คํŒจ ๊ฒฝํ—˜์„ ์Œ“๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜ ๋“ฑ ์‹œํ–‰์ฐฉ์˜ค๋ฅผ ๊ฒช์œผ๋ฉฐ, ๊ฐ์ž ๊ฒช์€ ์˜ค๋ฅ˜๋ฅผ ๊ณต์œ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

5. ํ˜‘์—… ๋ฐฉ๋ฒ•

  • ๋…ธ์…˜ ์›Œํฌ์ŠคํŽ˜์ด์Šค ์‚ฌ์šฉ : ํ•ด๊ฒฐํ•ด์•ผ ํ•  ๊ณผ์ œ์™€ ๋‹ด๋‹น์ž๋ฅผ ์ •ํ•˜์˜€๊ณ , ๋ฏธํ•ด๊ฒฐ, ํ•ด๊ฒฐ, ํ•ด๊ฒฐ์ค‘ ์ƒํƒœ๋ฅผ ๊ธฐ๋กํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ๋””์Šค์ฝ”๋“œ : ๋งค์ผ ๋ฐ์ผ๋ฆฌ ๋ฏธํŒ…์„ ์ง„ํ–‰ํ•˜๋ฉฐ ์ž‘์—…์ƒํ™ฉ์„ ๊ณต์œ ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ๊ณต์œ ํ•˜์—ฌ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • Github : ๊ธฐ๋Šฅ๋ณ„๋กœ ๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด PR์„ ์š”์ฒญํ•œ ๋’ค ์ƒ์˜ํ›„์— ์ฝ”๋“œ๋ฅผ ๊ฐœ์„ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•  ๋•Œ ๋ธŒ๋žœ์น˜ ๋ช…์„ feature/{๊ธฐ๋Šฅ}์œผ๋กœ ์ƒ์„ฑํ•˜์—ฌ ์–ด๋–ค ๊ธฐ๋Šฅ์„ ๊ฐœ๋ฐœํ•œ ๋ธŒ๋žœ์น˜์ธ์ง€ ์‰ฝ๊ฒŒ ์•Œ ์ˆ˜ ์žˆ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

6. ์ปจ๋ฒค์…˜

  • ์ปค๋ฐ‹ ์ปจ๋ฒค์…˜

    https://www.conventionalcommits.org/ko/v1.0.0/

    - feat: ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ๊ตฌํ˜„
    - fix: ์˜ค๋ฅ˜ ์ˆ˜์ •
    - docs: readme.md, json ํŒŒ์ผ ๋“ฑ ์ˆ˜์ •, ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์„ค์น˜(๋ฌธ์„œ ๊ด€๋ จ)
    - refactor: ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
    - chore: ๋นŒ๋“œ ๋ถ€๋ถ„ ํ˜น์€ ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ • ์‚ฌํ•ญ
    - rename: ํŒŒ์ผ ํ˜น์€ ํด๋”๋ช… ์ˆ˜์ •, ์˜ฎ๊ธฐ๊ธฐ
    - remove: ํŒŒ์ผ ์‚ญ์ œ

7. ๊ฐœ๋ฐœํ™˜๊ฒฝ

8. ํด๋” ๊ตฌ์กฐ

โ””โ”€โ”€ ๐Ÿ“**14-OpenMind**
    โ”œโ”€โ”€ .eslintrc.js
    โ”œโ”€โ”€ .gitignore
    โ”œโ”€โ”€ .gitmodules
    โ”œโ”€โ”€ ๐Ÿ“.husky
    โ”œโ”€โ”€ .prettierrc
    โ”œโ”€โ”€ package-lock.json
    โ”œโ”€โ”€ package.json
    โ”œโ”€โ”€ README.md
    โ”œโ”€โ”€ yarn.lock
    โ”œโ”€โ”€ ๐Ÿ“**public**
    โ””โ”€โ”€ ๐Ÿ“**src**
        โ”œโ”€โ”€ ๐Ÿ“**api**
        โ”œโ”€โ”€ ๐Ÿ“**components**
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“Post
        โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“**FeedBackground**
        โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“**Modal**
        โ”œโ”€โ”€ ๐Ÿ“hooks
        โ”œโ”€โ”€ ๐Ÿ“images
        โ”‚   โ”œโ”€โ”€ ๐Ÿ“icons
        โ””โ”€โ”€ **๐Ÿ“pages**
            โ”œโ”€โ”€ ๐Ÿ“**MainPage**

9. ์—ญํ• ๋ถ„๋‹ด

์ด๊ฒฝ์›

  • ํ”„๋กœ์ ํŠธ ๊ธฐ์ดˆ ์„ธํŒ… (ํด๋”๊ตฌ์กฐ ์ƒ์„ฑ ๋ฐ eslint, prettier ์„ค์ •)
  • Post ํŽ˜์ด์ง€ ๋‹ด๋‹น
    • ํฌ์ŠคํŠธ ํ”ผ๋“œ ๋ฐฐ๊ฒฝ ๊ตฌํ˜„
    • ๋‹ต๋ณ€, ๋‹ต๋ณ€ ๊ฑฐ์ ˆ, ์ˆ˜์ • ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • ํŽ˜์ด์ง€ ๊ฐ„ ์—ฐ๊ฒฐ ๊ธฐ๋Šฅ ๊ตฌํ˜„
  • PR ํ™•์ธ ํ›„ ๋จธ์ง€ (๋จธ์ง€ํ•˜๋Š” ๋„์ค‘ ์ถฉ๋Œ์ด๋‚˜ ์˜ค๋ฅ˜ ๋ฐœ์ƒ ์‹œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ)

๋ฐ•์ง€๋ฏผ

  • Main ํŽ˜์ด์ง€ ๋‹ด๋‹น
  • Feed ์ƒ์„ฑํ•˜๊ณ  ํŽ˜์ด์ง€ ์ด๋™ ๊ตฌํ˜„

์•ˆ์ƒ๊ท 

  • Modal ์ปดํฌ๋„ŒํŠธ ๋‹ด๋‹น
    • Post์˜ ์งˆ๋ฌธํ•˜๊ธฐ, ์‚ญ์ œํ•˜๊ธฐ, ์ผ€๋ฐฅ ๋ฒ„ํŠผ ์ œ์ž‘๊ณผ ์—ฐ๊ฒฐ
  • ๋ฉ”ํƒ€ํƒœ๊ทธ ์„ค์ •

์œ ๊ธฐ์ฃผ

  • List ํŽ˜์ด์ง€ ๋‹ด๋‹น
    • Usercard ์ƒ์„ฑ
    • List ํŽ˜์ด์ง€ Pagination ๊ตฌํ˜„

์ด์†Œ์ •

  • Post ํŽ˜์ด์ง€ ๋‹ด๋‹น
  • Post์˜ FeedCard์ปดํฌ๋„ŒํŠธ ๊ตฌํ˜„
    • ์ตœ์‹ ์ˆœ์œผ๋กœ FeedCard ๋ณด์—ฌ์ฃผ๋„๋ก ๊ตฌํ˜„
    • ์ข‹์•„์š”, ์‹ซ์–ด์š” ๋ฒ„ํŠผ Create, Update
    • ๋‹ต๋ณ€, ๋ฏธ๋‹ต๋ณ€ ๋ฐฐ์ง€ ๊ตฌํ˜„
    • ๋ฌดํ•œ ์Šคํฌ๋กค ๊ตฌํ˜„
    • formatData ํ•จ์ˆ˜๋กœ ์ž‘์„ฑ ๋‚ ์งœ ๊ตฌํ˜„

10. ๊ธฐ๋Šฅ์‹œ์—ฐ

http://14-openmind.s3-website.ap-northeast-2.amazonaws.com/

๋™์˜์ƒ

11. ์ฝ”๋“œ ํŠน์ง•๊ณผ ๊ตฌํ˜„ ๋ฐฉ์‹

  1. ์ปดํฌ๋„ŒํŠธ ๊ตฌ์กฐํ™”
  • api ํด๋”์— ์‚ฌ์šฉ๋˜๋Š” api๋ฅผ ์ผ๊ด„ ๊ด€๋ฆฌ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ชฉ์ ์— ๋”ฐ๋ผย ๊ธฐ๋Šฅ์  ์ปดํฌ๋„ŒํŠธ์™€ ์Šคํƒ€์ผ๋“œย ์ปดํฌ๋„ŒํŠธ๋ช…์„ ๊ตฌ๋ถ„ํ•˜์—ฌ ์‚ฌ์šฉ ํ–ˆ์Šต๋‹ˆ๋‹ค.
  1. ๋” ๋‚˜์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜
  • ๋กœ๋”ฉ ์Šค๋‚ต๋ฐ”๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๋”ฉ ์ƒํƒœ๋ฅผ ์ธ์ง€ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋กœ์ปฌ์— ์ด๋ฏธ ์ƒ์„ฑ๋œ ํ”ผ๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์•Œ๋ฆผ ํ‘œ์‹œ๋กœ ์•ˆ๋‚ดํ•ด์ฃผ๊ณ  ๋ณธ์ธ ํ”ผ๋“œ๋กœ ์ด๋™ํ•˜๋„๋ก ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์ข‹์•„์š” ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ํ”ผ๋“œ ์ „์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฒ„ํŠผ ๋ถ€๋ถ„๋งŒ ๋ฆฌ๋ Œ๋”๋ง ๋˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ํ”ผ๋“œ์˜ ๋ณ€ํ™”๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์‹ค์‹œ๊ฐ„ ๋ฆฌ๋ Œ๋”๋ง์„ ํ•˜๋„๋ก ์—…๋ฐ์ดํŠธ ํ•ธ๋“ค๋Ÿฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹ค์ˆ˜๋กœ ํ”ผ๋“œ ์‚ญ์ œ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํ™•์ธ ๋ชจ๋‹ฌ์ฐฝ์„ ๋„์šฐ๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  1. useParams ์‚ฌ์šฉ
  • useParams๋ฅผ ์ด์šฉํ•ด ์‚ฌ์šฉ์ž์˜ id๋ฅผ ๋ฐ›์•„์™€ ์ •๋ณด๋ฅผ ๋„์›Œ์ค๋‹ˆ๋‹ค. ํ˜„์žฌ ์ฃผ์†Œ์ฐฝ์˜ ํ”ผ๋“œ id ๊ฐ’๊ณผ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์˜ id ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ์ผ์น˜ํ•˜๋ฉด ๋‹ต๋ณ€ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.

12. ํŠธ๋Ÿฌ๋ธ” ์ŠˆํŒ…

  1. ์ž์‹ ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๊ฐ์ฒด๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜
  • ๋ฌธ์ œ :
    • objects are not valid as a react child ์—๋Ÿฌ๊ฐ€ ๋œจ๋ฉฐ, ํ™”๋ฉด ์ƒ์— ๋ Œ๋”๋ง์ด ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
    • ๋ฌธ์ž์—ด, ์ˆซ์ž ๋˜๋Š” React ๊ตฌ์„ฑ ์š”์†Œ์™€ ๊ฐ™์€ ์ž์‹ ์š”์†Œ๊ฐ€ ์•„๋‹Œ ๊ฐ์ฒด๋ฅผ ๋ Œ๋”๋งํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ์˜ค๋ฅ˜๋ผ๊ณ  ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ์›์ธ :
    • {item.answer} ์ด๋ ‡๊ฒŒ ์ ์—ˆ๋˜ ์ฝ”๋“œ์—์„œ ์—๋Ÿฌ๊ฐ€ ๋‚ฌ์Šต๋‹ˆ๋‹ค. api์— null ๊ฐ’์ด์–ด์„œ ๋ฌธ์ œ์—†์ด ์ž‘๋™ํ–ˆ์œผ๋‚˜, answer์— ๊ฐ’์„ ๋„ฃ์œผ๋‹ˆ null ์ด ์•„๋‹ˆ๋ผ ๊ฐ์ฒด๊ฐ€ ๋˜์–ด์žˆ์–ด์„œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ :
    • {item.answer?.content} ์œผ๋กœ ์ˆ˜์ •ํ•˜์˜€์Šต๋‹ˆ๋‹ค. **item.answer**๊ฐ€ ์กด์žฌํ•˜๊ณ  ๊ทธ ์•ˆ์— content ์†์„ฑ์ด ์žˆ๋‹ค๋ฉด ํ•ด๋‹น ๋‚ด์šฉ์„ ๋ Œ๋”๋งํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด ์•„๋ฌด๊ฒƒ๋„ ๋ Œ๋”๋งํ•˜์ง€ ์•Š๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  1. List ํŽ˜์ด์ง€ ๊ฐ์ฒด ์ •๋ณด ๋ Œ๋”๋ง ์˜ค๋ฅ˜
  • ๋ฌธ์ œ :
    • api์—์„œ ๊ฐ์ฒด ์ •๋ณด๋ฅผ ๋ถˆ๋Ÿฌ์˜ค๊ธด ํ•˜์˜€์ง€๋งŒ, ํ™”๋ฉด ์ƒ์— ๋ Œ๋”๋ง์ด ๋˜์ง€ ์•Š๋Š” ํ˜„์ƒ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์›์ธ :
    • ****usercard ์ปดํฌ๋„ŒํŠธ๋ฅผ ์ƒ์„ฑํ•ด์„œ ๊ฐ์ฒด๋ฅผ ๋„ฃ์–ด์ฃผ๋Š” ๊ณผ์ •์—์„œ ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ ์ž˜๋ชป ๋„ฃ์–ด์ฃผ์–ด ์ธ์‹์„ ๋ชปํ•˜์˜€์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ :
    • ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ํ”„๋กœํผํ‹ฐ ๊ฐ’์„ usercard ํƒœ๊ทธ์— ์ œ๋Œ€๋กœ ๋„ฃ์–ด์ฃผ์–ด, ๊ฐ์ฒด ์ •๋ณด๋“ค์„ ๋ฐ›์•„์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
  1. ๋‹ต๋ณ€ ์ˆ˜์ • ํ›„ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ ๋ฐ˜์˜ ๊ด€๋ จ ๋‚ด์šฉ
  • ๋ฌธ์ œ :
    • ๋‹ต๋ณ€ ์ˆ˜์ • ํ›„ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๋ฐ”๋กœ ํ™”๋ฉด์— ๋ Œ๋”๋งํ•˜๊ณ  ์‹ถ์€๋ฐ ์ƒˆ๋กœ๊ณ ์นจ์„ ํ•ด์•ผ๋งŒ ๋ฐ˜์˜๋œ ํ™”๋ฉด์ด ๋ณด์ด๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์›์ธ :
    • ์ˆ˜์ •ํ•œ ๋‚ด์šฉ์„ ๋ฐ˜์˜ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‹ต๋ณ€ ์ˆ˜์ • ์ปดํฌ๋„ŒํŠธ์—์„œ ์ƒ์œ„ ์ปดํฌ๋„ŒํŠธ๋กœ ์ˆ˜์ •ํ–ˆ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ „๋‹ฌํ•˜๊ณ  ๋‹ต๋ณ€ ๋‚ด์šฉ์„ ๋‹ค์‹œ ๋ถˆ๋Ÿฌ์™€์•ผ ํ•˜๋Š”๋ฐ ๊ทธ๋ ‡์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ :
    • FeedCardList์—์„œ AnswerEdit ์ปดํฌ๋„ŒํŠธ๋ฅผ ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ props๋กœ onEditSuccess ํ•จ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ด์„œ ๋‹ต๋ณ€์„ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ ํ•จ์ˆ˜๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ•˜์˜€์Šต๋‹ˆ๋‹ค. onEditSuccess ํ•จ์ˆ˜์—๋Š” ๋‹ต๋ณ€ ๋‚ด์šฉ์„ ๋ฐ›์•„์˜ค๋Š” ์ฝ”๋“œ๋ฅผ ๋„ฃ์—ˆ์Šต๋‹ˆ๋‹ค.
  1. Main ํŽ˜์ด์ง€
  • ๋ฌธ์ œ :
    • ๋ฐฐ๊ฒฝ ์ด๋ฏธ์ง€๊ฐ€ ์ž˜๋ฆฌ๊ณ  ์›ํ•˜๋Š” ํฌ๊ธฐ ๋Œ€๋กœ crop ๋˜์–ด ๋‚˜์˜ค๊ฒŒ ํ•˜๋Š” ๋ฐ ๋ฌธ์ œ๊ฐ€ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์›์ธ:
    • backgroundImg ๋ฅผ cover ๋กœ ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ
    • backgroundImg ์†์„ฑ์„ ์“ฐ์ง€ ์•Š๊ณ  imgํƒœ๊ทธ์— url ์„ ์‚ฌ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค.
  1. REST API ์š”์ฒญ ๋ฐ˜์‘์—†์Œ
  • ๋ฌธ์ œ :
    • ๋ฒ„ํŠผ์„ ํด๋ฆญํ•˜๋ฉด ์‚ญ์ œ ์š”์ฒญ์ด ์„œ๋ฒ„์— ์ „์†ก๋˜์–ด์•ผ ํ–ˆ์œผ๋‚˜ ํฌ๋กฌ ๊ฐœ๋ฐœ์ž Network๋ž€์— ์•„๋ฌด ๋ฐ˜์‘์ด ์—†์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์›์ธ :
    • API์š”์ฒญ์„ ๋ฒ„ํŠผ์ด ์•„๋‹Œ SVG ํŒŒ์ผ์— ์ค€ ๊ฒƒ์ด ์›์ธ์ด์—ˆ์Šต๋‹ˆ๋‹ค. ํ•ด๋‹น ์ด๋ฏธ์ง€๋Š” ํด๋ฆญ์ด ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ๋˜ํ•œ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํ•ด๊ฒฐ :
    • API๋ฅผ ์˜ฌ๋ฐ”๋ฅธ ์œ„์น˜์˜ ํƒœ๊ทธ์—์„œ ์š”์ฒญํ•ด์„œ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค.

13. ํ”„๋กœ์ ํŠธ ํ›„๊ธฐ

์ด๊ฒฝ์›

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

๋ฐ•์ง€๋ฏผ

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

์•ˆ์ƒ๊ท 

  • Git ์‚ฌ์šฉ์ด ๊ฐ€์žฅ ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค. ๊ฐ•์‚ฌ๋‹˜๊ป˜ ๋ฐ›์€ ์„ค๋ช… ์‚ฌ์ดํŠธ๋ฅผ ๋ณด๋ฉฐ ๋ธŒ๋žœ์น˜๋ฅผ ํ™œ์šฉํ•ด ๋ดค์œผ๋‚˜ ์‹ค์ˆ˜๋กœ main์— ํ•ฉ๋ณ‘ํ•ด๋ฒ„๋ฆฌ๊ธฐ ์ผ์‘ค์˜€์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๋ฒ„์ „ ๊ด€๋ฆฌ๋„ ์•„์ง ์–ด๋ ค์›Œ์„œ ์—๋Ÿฌ๋‚˜๋Š” ๋ฒ„์ „์— ๊ฐ‡ํžˆ๊ธฐ๋ผ๋„ ํ•˜๋ฉด ์ž‘์—…์ด ์–ด๋ ค์› ์Šต๋‹ˆ๋‹ค.
  • ๊ทธ๋Ÿผ์—๋„ ์„ฑ์‹คํ•˜๊ณ  ๋Šฅ๋ ฅ ์ข‹์€ ํŒ€์›๋ถ„๋“ค์„ ๋งŒ๋‚˜์„œ Git์‚ฌ์šฉ๋ฒ•์„ ๋‹ค์‹œ ๋ฐฐ์šฐ๊ณ , ์ฐจ๊ทผ์ฐจ๊ทผ ์™„์„ฑํ•ด๋‚˜๊ฐ€๋Š” ๊ณผ์ •์ด ๋ณด๋žŒ์ฐผ์Šต๋‹ˆ๋‹ค. ์ดˆ๋ฐ˜๋ถ€ํ„ฐ ์—ด์‹ฌํžˆ ๋‹ฌ๋ฆฌ๋ฉด์„œ ์ œ์ž‘ํ•˜์‹œ๋Š” ๋ชจ์Šต์„ ๋ณด๋ฉด์„œ ๊ฐœ๋ฐœ์ž๋กœ์„œ์˜ ์•ž๋‚ ์ด ๊ธฐ๋Œ€๊ฐ€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์œ ๊ธฐ์ฃผ

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

์ด์†Œ์ •

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

Releases

No releases published

Packages

No packages published

Contributors 5