Skip to content
/ doWork Public

πŸ—“οΈ μŠ€μΌ€μ₯΄ 관리 μ›Ή μ„œλΉ„μŠ€

Notifications You must be signed in to change notification settings

dee0518/doWork

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

doWork


https://do-work.vercel.app/

1. Outline

doWorkλŠ” ν˜‘μ—…μ„ μœ„ν•΄ μŠ€μΌ€μ₯΄μ„ 관리할 수 μžˆλŠ” μ„œλΉ„μŠ€μ΄λ‹€. νŒŒμ΄μ–΄λ² μ΄μŠ€λ₯Ό μ΄μš©ν•˜μ—¬ 데이터 λ°”μΈλ”©ν•˜κ³  μžˆλ‹€. ν˜„μž¬ typescriptλ₯Ό μ μš©ν•˜λ©° κΈ°μˆ μ μœΌλ‘œλ‚˜ UI 츑면으둜 λ¦¬λ‰΄μ–Όν•˜κ³  μžˆλ‹€. 브레인 μŠ€ν† λ°μ„ 톡해 work에 λŒ€ν•œ 생각을 μ •λ¦¬ν•˜μ˜€κ³  κΈ°νšμ— 맞게 κΈ°λŠ₯듀을 κ΅¬ν˜„ν•΄λ‚˜κ°ˆ 것이닀.


기획

  • 브레인 μŠ€ν† λ°

doWorkBrain

  • Process Flow

doWorkFlow


μ£Όμš” κΈ°λŠ₯

ν˜„μž¬ μ•„λž˜ κΈ°λŠ₯듀이 κ΅¬ν˜„λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.


2. Folder Structure

πŸ“ deeWork/
β”œβ”€β”€ πŸ“ public/
β”œβ”€β”€ πŸ“ src/
|    β”œβ”€β”€ πŸ“ assets/
|    β”œβ”€β”€ πŸ“ components/
|    β”œβ”€β”€ πŸ“ pages/
|    β”œβ”€β”€ πŸ“ types/
|    β”œβ”€β”€ πŸ“œ App.tsx
|    β”œβ”€β”€ πŸ“œ Constant.ts
|    β”œβ”€β”€ πŸ“œ firebase.ts
|    β”œβ”€β”€ πŸ“œ index.tsx
|    └── πŸ“œ router.tsx
β”œβ”€β”€ βš™οΈ ts.confing.json
└── πŸ“¦ package.json
  • assets : 이미지와 scss같은 정적인 νŒŒμΌμ„ 담은 폴더
  • components : μž‘μ€ λ‹¨μœ„μ˜ μ»΄ν¬λ„ŒνŠΈλ₯Ό 담은 폴더
  • pages : 화면을 κ΅¬μ„±ν•˜λŠ” μ»΄ν¬λ„ŒνŠΈλ₯Ό 담은 폴더
  • types : κΈ€λ‘œλ²Œλ‘œ μ„ μ–Έλ˜μ–΄μ•Ό ν•˜λŠ” νƒ€μž…λ“€μ„ 담은 폴더

3. Issue & Slove

  1. typescript μ μš©μ— λ”°λ₯Έ νƒ€μž… 였λ₯˜

    • 원인 : 비동기 ν˜ΈμΆœν•˜λŠ” ν•¨μˆ˜ λΆ€λΆ„μ—μ„œ returnκ°’μ˜ νƒ€μž…μ— λŒ€ν•œ 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.
    • ν•΄κ²° : async & await 문의 return 값은 Promise<T>의 ν˜•νƒœλ‘œ μ§€μ •λ˜μ–΄μ•Ό ν•œλ‹€.
    const request = async (url: string, options : Options): Promise<any> => {
      try {
        const response = await fetch(url, options);
        const json = await response.json();
    
        if(response.ok){
            return response.json();
        }
        
        throw new Error('μ—λŸ¬μž…λ‹ˆλ‹€.')
      } catch (e) {
        console.log(e);
      }
    };
  2. Unexpected any. Specify a different type.eslint@typescript-eslint/no-explicit-any 였λ₯˜ : νƒ€μž… any의 λ…Έλž€μƒ‰ λ¬Όκ²°

    • 원인 : eslintκ°€ λͺ…μ‹œμ μœΌλ‘œ μ„ μ–Έλ˜λŠ” anyλ₯Ό λ°©μ§€ν•˜κΈ° μœ„ν•˜μ—¬ λœ¨λŠ” 경고이닀.
    • ν•΄κ²° : eslintrc.js에 "@typescript-eslint/no-explicit-any": "off" μΆ”κ°€
  3. μΈν„°νŽ˜μ΄μŠ€ νƒ€μž… 섀정에 λ”°λ₯Έ 문제점

    • 원인 : μ•ˆμ— 같은 λ‚΄μš©μ„ 담은 μΈν„°νŽ˜μ΄μŠ€λ₯Ό 각 μ»΄ν¬λ„ŒνŠΈμ—μ„œ μƒμ„±ν•˜μ—¬ μ‚¬μš©ν•  경우 μ„œλ‘œ λ‹€λ₯Έ μΈν„°νŽ˜μ΄μŠ€λ‘œ 인식
    • ν•΄κ²° : μΈν„°νŽ˜μ΄μŠ€λ₯Ό μ •μ˜ν•˜λŠ” νŒŒμΌμ„ λ§Œλ“€μ–΄ exportν•˜μ—¬ μ‚¬μš©
  4. μΊ˜λ¦°λ” νƒ€μž„λΌμΈ ν™”λ©΄ ν‘œμ‹œλ  μ‹œ κ²ΉμΉ˜μ§€ μ•Šμ•„λ„ μœ„μΉ˜κ°€ 0μ—μ„œλΆ€ν„° μ‹œμž‘ν•˜μ§€ μ•ŠλŠ” 문제.

    • 원인 : top의 값을 index에 따라 μ£Όμ—ˆκΈ° λ•Œλ¬Έ.
    • ν•΄κ²° : ν˜„μž¬ ν•΄κ²° μ€‘μž…λ‹ˆλ‹€.

회고

νšŒκ³ λ‘μ„ λ³΄μ‹œλ €λ©΄ μ—¬κΈ°λ₯Ό ν΄λ¦­ν•΄μ£Όμ„Έμš”:)

About

πŸ—“οΈ μŠ€μΌ€μ₯΄ 관리 μ›Ή μ„œλΉ„μŠ€

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published