πŸŽ€

μ΅œμ’… ν”„λ‘œμ νŠΈ 회고

 
 

μ„œλ‘ 

 
λ°λΈŒμ½”μŠ€ 5κ°œμ›”μ˜ 여정을 끝맺을 λŒ€λ§μ˜ μ΅œμ’… ν”„λ‘œμ νŠΈβ€¦.
νŒ€μ›λ“€κ³Ό ν•¨κ»˜ 아이디어λ₯Ό λ…Όμ˜ν•˜λ˜ 것이 μ—Šκ·Έμ œμ˜€λ˜ 것 같은데
벌써 ν•œ λ‹¬μ΄λΌλŠ” μ‹œκ°„μ΄ μ§€λ‚˜κ°€κ³  λͺ¨λ“  것이 λ§ˆλ¬΄λ¦¬λ˜μ—ˆλ‹€.
ν”„λ‘œμ νŠΈλ₯Ό ν•˜λ©΄μ„œ λ¬΄μ²™μ΄λ‚˜ νž˜λ“€μ—ˆμ§€λ§Œ,
λ™μ‹œμ— 개발, ν˜‘μ—…, ν”„λ‘œμ νŠΈ 관리 λ“± λ§Žμ€ 것을 배울 수 있던 κ·€μ€‘ν•œ μ‹œκ°„μ΄μ—ˆλ‹€.
 

νŒ€ μ†Œκ°œ & λ‚˜μ˜ μ—­ν• 

μš°λ¦¬λŠ” ν”„λ‘ νŠΈμ—”λ“œ 4λͺ…, λ°±μ—”λ“œ 4λͺ…μœΌλ‘œ κ΅¬μ„±λœ νŒ€μ΄μ—ˆλ‹€.
λ‚˜λŠ” ν”„λ‘ νŠΈμ—”λ“œ νŒ€μž₯을 λ§‘μ•˜μœΌλ©°,
κ°œλ°œμ—μ„œλŠ” 'ν›„κΈ° μž‘μ„± & μˆ˜μ • νŽ˜μ΄μ§€', '마이 νŽ˜μ΄μ§€', 'ν”„λ‘œν•„ μˆ˜μ • νŽ˜μ΄μ§€', β€˜ν—€λ”β€™λ₯Ό κ΅¬ν˜„ν•˜μ˜€κ³ ,
κ·Έ μ™Έ ν”„λ‘œμ νŠΈ ν™˜κ²½ μ„ΈνŒ…, Axiosλ₯Ό ν†΅ν•œ API 연동, SWR의 λ„μž… 등을 λ§‘μ•˜λ‹€.
ν•œνŽΈ, νŒ€μž₯μ΄λ‹€λ³΄λ‹ˆ 개발 μ™Έμ μœΌλ‘œλ„ ν•΄μ•Ό ν•  일듀이 λ§Žμ•˜λ‹€.
νŒ€μž₯μœΌλ‘œμ„œ 회의 μ§„ν–‰, 일정 관리, λ°±μ—”λ“œμ™€μ˜ μ†Œν†΅ λ“±μ˜ 업무λ₯Ό 주둜 λ‹΄λ‹Ήν•˜μ˜€λ‹€.
 
notion image
 

ν”„λ‘œμ νŠΈ μ†Œκ°œ

ν”„λ‘œμ νŠΈμ˜ 이름은 Art.zip(μ•„νŠΈμ§‘)으둜,
미술 μ „μ‹œνšŒμ— κ΄€ν•œ 정보λ₯Ό μ‘°νšŒν•˜κ³  ν›„κΈ°λ₯Ό κ³΅μœ ν•  수 μžˆλŠ” μ„œλΉ„μŠ€μ΄λ‹€.
 

μ „μ‹œνšŒ 쑰회 및 검색

notion image
 

ν›„κΈ° μž‘μ„± 및 곡유

notion image
 
 
 
μ•„λž˜λŠ” ν”„λ‘œμ νŠΈμ˜ κ°œμš”λ₯Ό μ •λ¦¬ν•œ 것이닀.
notion image
 
μžμ„Έν•œ 것은 github의 READMEλ₯Ό μ°Έκ³ ν•΄μ£Όμ‹œκΈ° λ°”λž€λ‹€.
Team-BackFro-ArtZip-FE
prgrms-web-devcourse β€’ Updated Nov 16, 2022
 
 

ν”„λ‘œμ νŠΈ 관리

λ¬Έμ„œν™”

λ¬Έμ„œν™”λ₯Ό 꼼꼼히 ν•˜κΈ° μœ„ν•΄ λ…Έλ ₯ν•˜μ˜€λ‹€.
κ°œλ°œλ§ŒνΌμ΄λ‚˜ λ¬Έμ„œμ˜ 정리도 μ€‘μš”ν•œ μ—…λ¬΄μ΄μž μ—­λŸ‰μ΄λΌκ³  μƒκ°ν–ˆκΈ° λ•Œλ¬Έμ΄λ‹€.
특히 쀑간 ν”„λ‘œμ νŠΈμ—μ„œλŠ” κ°œλ°œμ— 쫓겨 λ¬Έμ„œ 정리λ₯Ό μ•½κ°„ μ†Œν™€νžˆ ν•œ κ²½ν–₯이 μžˆμ—ˆλŠ”λ°,
이 점을 λ°˜μ„±ν•˜μ—¬ λ¬Έμ„œν™”μ— 신경을 썼닀.
λ…Έμ…˜μ„ 톡해 μ£Όμš” λ¬Έμ„œλ“€κ³Ό νšŒμ˜λ‘μ„ μ²΄κ³„μ μœΌλ‘œ μ •λ¦¬ν•˜μ˜€λ‹€.
 
notion image
 
notion image
 

μ• μžμΌ 슀크럼

ν•œνŽΈ, μ• μžμΌ 슀크럼 방식을 λ„μž…ν•˜μ—¬
3~4일의 μŠ€ν”„λ¦°νŠΈ λ‹¨μœ„λ‘œ ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜μ˜€λ‹€.
λ˜ν•œ, Github의 Projectsλ₯Ό 톡해 일일 μŠ€ν¬λŸΌμ„ μ§„ν–‰ν•˜μ˜€μœΌλ©°,
λ‹ΉμΌμ˜ μ•ˆκ±΄μ„ λ…Όμ˜ν•˜κ³  μž‘μ—… ν˜„ν™©μ„ κ΄€λ¦¬ν•˜μ˜€λ‹€.
 
notion image
 

ν”„λ‘œμ νŠΈ 일정

λ°±μ—”λ“œμ™€μ˜ ν˜‘μ—…μ΄ ν•„μˆ˜μ΄λ‹€λ³΄λ‹ˆ 사전에 λ…Όμ˜ν•΄μ•Όν•  것듀이 무척 λ§Žμ•˜μœΌλ©°,
μž‘μ—…μ„ λ³‘λ ¬μ μœΌλ‘œ μ§„ν–‰ν•˜λ©΄μ„œλ„, 곡톡 일정을 μ‘°μœ¨ν•˜λ©° 합을 λ§žμΆ”λŠ” 것이 κ½€λ‚˜ μ–΄λ €μ› λ‹€.
이 점은 λŠλ‚€μ μ—μ„œ 더 ν›„μˆ ν•˜λ„λ‘ ν•˜κ² λ‹€.
ν”„λ‘œμ νŠΈ 기간은 총 26μΌμ΄μ—ˆμœΌλ©°, μ•„λž˜λŠ” 전체 일정을 ν‘œλ‘œ μ •λ¦¬ν•œ 것이닀.
notion image
 
 

기술 μŠ€νƒ

notion image
 
특히 β€œTypescript, Next.js, Ant design”은
이번 ν”„λ‘œμ νŠΈμ—μ„œ 처음 λ„μž…ν–ˆλ˜ κΈ°μˆ μ΄μ—ˆκ³ , μ—¬λŸ¬λͺ¨λ‘œ 무척 μΈμƒκΉŠμ—ˆλ‹€.
λŠλ‚€μ μ„ μ€‘μ‹¬μœΌλ‘œ νšŒκ³ ν•˜κ² λ‹€.

1. νƒ€μž…μŠ€ν¬λ¦½νŠΈ

νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μ‚¬μš©ν•¨μœΌλ‘œμ¨ ν˜‘μ—…μ„ 더 μ›ν™œν•˜κ²Œ μ§„ν–‰ν•  수 μžˆμ—ˆλ‹€.
특히 API λͺ…세에 λ”°λ₯Έ νƒ€μž…λ“€μ„ μ •μ˜ν•¨μœΌλ‘œμ¨ 데이터λ₯Ό 더 λͺ…ν™•ν•˜κ²Œ 이해할 수 μžˆμ—ˆκ³ ,
νƒ€μž… μΆ”λ‘ , μžλ™ μ™„μ„± λ“±μ˜ κΈ°λŠ₯을 적극적으둜 μ‚¬μš©ν•  수 μžˆμ—ˆλ‹€.
λ˜ν•œ, μ»΄ν¬λ„ŒνŠΈμ˜ props에도 νƒ€μž…μ„ μ •μ˜ν•¨μœΌλ‘œμ¨ μ½”λ“œλ₯Ό ν•œμΈ΅ κ²¬κ³ ν•˜κ³  μ•ˆμ •μ μœΌλ‘œ λ§Œλ“€ 수 μžˆμ—ˆλ‹€.
또 ν•˜λ‚˜ 덧뢙이고 싢은 것은,
Cannot read properties of undefined μ—λŸ¬κ°€ 획기적으둜 μ€„μ—ˆλ‹€λŠ” 것이닀.
undefined의 속성에 μ ‘κ·Όν•˜λ €κ³  ν•  λ•Œ λ°œμƒν•˜λŠ” λ°”λ‘œ κ·Έ μ—λŸ¬λ‹€!
νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ 이와 같은 νƒ€μž… μ—λŸ¬λ₯Ό 컴파일 전에 λ§‰μ•„μ£Όμ—ˆκΈ° λ•Œλ¬Έμ—,
디버깅에 μ†Œλͺ¨ν•˜λŠ” μ‹œκ°„μ„ 크게 쀄일 수 μžˆμ—ˆλ‹€. 맀우 λ§Œμ‘±μŠ€λŸ¬μ› λ˜ 뢀뢄이닀.
 
ν•œνŽΈ, νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ ν•œκ³„λ„ 어렴풋이 느꼈던 것 κ°™λ‹€.
Object.keysλ₯Ό μ‚¬μš© μ‹œ, 무쑰건 string[]으둜 νƒ€μž… 좔둠이 λ‚œλ‹€λ˜κ°€,
μƒμ†Œν•œ νƒ€μž…μΈ 경우(예λ₯Ό λ“€μ–΄ Ant design의 νƒ€μž… λ“±),
νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ νƒ€μž… 좔둠을 μ˜¬λ°”λ₯΄κ²Œ λͺ» ν•˜λŠ” κ²½μš°κ°€ μ’…μ’… μžˆμ—ˆλ‹€.
κ·ΈλŸ¬ν•œ μ΄μŠˆλ“€ λ•Œλ¬Έμ— μ‹œκ°„μ΄ κ½€λ‚˜ μ†ŒλΉ„λ˜μ—ˆκ³ , μ–΄μ©” 수 없이 νƒ€μž… 단언을 μ‚¬μš©ν•΄μ•Όλ§Œ ν–ˆλ‹€.
νƒ€μž…μŠ€λ¦½νŠΈκ°€ μ™„λ²½ν•˜μ§€ μ•Šλ‹€λŠ” 것을 κΉ¨λ‹¬μ•˜λ˜ 뢀뢄이닀.
λ˜ν•œ, νƒ€μž…μŠ€ν¬λ¦½νŠΈλŠ” 개발자의 νƒ€μž… μ‹€μˆ˜λŠ” λ§‰μ•„μ£Όμ§€λ§Œ,
μ‚¬μš©μž(μœ μ €)의 νƒ€μž… μ‹€μˆ˜λŠ” 막아주지 λͺ»ν•œλ‹€. (λ‹Ήμ—°ν•œ 말일지도 λͺ¨λ₯΄κ² λ‹€)
예λ₯Ό λ“€μ–΄, μ‚¬μš©μžκ°€ 폼을 μž…λ ₯ν•  λ•Œ μž…λ ₯값이 μ˜¬λ°”λ₯Έ νƒ€μž…μΈμ§€λŠ” 막아주지 λͺ»ν•œλ‹€.
(κ·Έ λ•ŒλŠ” 이미 νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ μ•„λ‹Œ, 트랜슀파일링된 μžλ°”μŠ€ν¬λ¦½νŠΈμ΄κΈ° λ•Œλ¬Έμ΄λ‹€)
λ”°λΌμ„œ λ³„λ„μ˜ validation을 κ΅¬ν˜„ν•΄μ•Όλ§Œ ν–ˆλ‹€.
이 λ˜ν•œ νƒ€μž…μŠ€ν¬λ¦½νŠΈμ˜ ν•œκ³„λ₯Ό 어렴풋이 느꼈던 뢀뢄이닀.

2. Next.js

CRA둜 κ°œλ°œν–ˆλ˜ 쀑간 ν”„λ‘œμ νŠΈμ™€λŠ” 달리,
이번 ν”„λ‘œμ νŠΈμ—μ„œλŠ” SSR ν”„λ ˆμž„μ›Œν¬μΈ Next.jsλ₯Ό λ„μž…ν•˜μ˜€λ‹€.
Next.jsλ₯Ό λ„μž…ν•œ κΉŒλ‹­μ€ μš°μ„  SEO λ•Œλ¬Έμ΄λ‹€.
우리 μ‚¬μ΄νŠΈλŠ” β€˜μ „μ‹œνšŒμ˜ 정보λ₯Ό μ œκ³΅ν•΄μ£ΌλŠ” μ‚¬μ΄νŠΈβ€™μ΄λ―€λ‘œ,
검색 엔진에 μœ λ¦¬ν•˜κ²Œ λ…ΈμΆœλ˜λŠ” 것이 특히 μ€‘μš”ν–ˆκ³ , λ”°λΌμ„œ SEOκ°€ μ€‘μš”ν•˜λ‹€κ³  νŒλ‹¨ν•˜μ˜€λ‹€.
ν•œνŽΈ, κ·Έ 외에도 Next.jsλŠ” λ§Žμ€ 이점듀을 μ•ˆκ²¨μ£Όμ—ˆλ‹€.
νŽ˜μ΄μ§€ 기반 λΌμš°νŒ… μ‹œμŠ€ν…œ, Pre-render, SSR, SSGλ₯Ό ν†΅ν•œ μ„±λŠ₯ ν–₯상,
Next/image μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•œ 이미지 μ΅œμ ν™” 지원 등이 κ·Έκ²ƒμ΄μ—ˆλ‹€.
 
ν•œνŽΈ, Next.jsκ°€ μ΅μˆ™ν•˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— 개발 도쀑에 μ‹œν–‰μ°©μ˜€λ₯Ό κ½€ κ²ͺμ—ˆλ‹€.
λŒ€ν‘œμ μΈ 것은 인증 λ¬Έμ œμ˜€λ‹€.
μ΄ˆκΈ°μ—λŠ” 토큰을 둜컬 μŠ€ν† λ¦¬μ§€μ— μ €μž₯ν•˜μ—¬ κ΄€λ¦¬ν•˜κΈ°λ‘œ ν–ˆλŠ”λ°,
Next.js μ„œλ²„μ—μ„œ 둜컬 μŠ€ν† λ¦¬μ§€μ— μ ‘κ·Όν•  수 μ—†μœΌλ―€λ‘œ SSR μ‹œ λ¬Έμ œκ°€ λ°œμƒν•˜μ˜€λ‹€.
κ²°κ΅­ 둜컬 μŠ€ν† λ¦¬μ§€κ°€ μ•„λ‹Œ 쿠킀에 토큰을 μ €μž₯ν•˜λŠ” κ²ƒμœΌλ‘œ λ’€λŠ¦κ²Œ λ°”κΎΈμ–΄μ•Όλ§Œ ν–ˆλ‹€.
κ·Έ 외에도, react-hydration-errorκ°€ μ’…μ’… λ°œμƒν•΄μ„œ 골치λ₯Ό μ©μ˜€λ‹€.
이것은 Next.js에 μ˜ν•΄ pre-rendering된 λ¦¬μ•‘νŠΈ νŠΈλ¦¬μ™€
λΈŒλΌμš°μ €μ˜ λ¦¬μ•‘νŠΈ νŠΈλ¦¬κ°€ λΆˆμΌμΉ˜ν•΄μ„œ λ°œμƒν•˜λŠ” μ—λŸ¬μ˜€λŠ”λ°,
생전 처음 λ³΄λŠ” μ—λŸ¬μ˜€κΈ° λ•Œλ¬Έμ— 개발 도쀑에 μƒλ‹Ήνžˆ 머리가 μ•„νŒ λ˜ 것 κ°™λ‹€.
 
κ²°κ΅­, Next.js의 λ™μž‘ 방식에 λŒ€ν•œ 근본적인 이해가 λΆ€μ‘±ν•œ μƒνƒœμ—μ„œ
λ„μž…μ„ ν•˜μ˜€κΈ° λ•Œλ¬Έμ— κ²ͺμ—ˆλ˜ λ¬Έμ œλ“€μ΄λΌκ³  μƒκ°ν•œλ‹€.
μ–΄λ–€ 기술의 μ‚¬μš©λ²•μ„ μ΅νžˆλŠ” 것도 μ€‘μš”ν•˜μ§€λ§Œ,
κ·Έ 기술의 λ™μž‘ 방식에 λŒ€ν•œ 근본적이고 μ •ν™•ν•œ 이해가 μ„ ν–‰λ˜μ–΄μ•Ό 함을 κΉ¨λ‹¬μ•˜λ‹€.

3. Ant Design

Ant Designμ΄λΌλŠ” UI 라이브러리λ₯Ό 처음 μ‚¬μš©ν•΄λ³΄μ•˜λ‹€.
κ²°λ‘ λΆ€ν„° λ§ν•˜λ©΄β€¦μž₯단점이 λ„ˆλ¬΄λ‚˜ λšœλ ·ν–ˆλ˜ λ…€μ„μ΄μ—ˆλ‹€κ³  μƒκ°ν•œλ‹€.
μž₯점은 μ—¬λŸ¬ μ»΄ν¬λ„ŒνŠΈ(modal, spinner, calender λ“±)λ₯Ό μ‰½κ²Œ μ‚¬μš©ν•  수 μžˆλ‹€λŠ” κ²ƒμ΄μ—ˆλ‹€.
이 덕뢄에 λΉ λ₯Έ μ†λ„λ‘œ λ§ˆν¬μ—… μž‘μ—…μ„ 끝낼 수 μžˆμ—ˆμœΌλ©°,
API의 연동 λ“± λΉ„μ¦ˆλ‹ˆμŠ€ λ‘œμ§μ„ ν’€μ–΄λ‚˜κ°€λŠ”λ° 집쀑할 수 μžˆμ—ˆλ‹€.
λ˜ν•œ, Form μ»΄ν¬λ„ŒνŠΈμ˜ μ„±λŠ₯이 맀우 μ’‹μ•˜κΈ° λ•Œλ¬Έμ—
useForm을 μ‚¬μš©ν•΄μ„œ validation을 효율적으둜 μ²˜λ¦¬ν•˜λŠ”λ° 도움을 받을 수 μžˆμ—ˆλ‹€.
λ˜ν•œ, AntdλŠ” λ””μžμ΄λ„ˆμ˜ λΆ€μž¬ 문제λ₯Ό ν•΄κ²°ν•΄μ£Όμ—ˆλ‹€.
우리 νŒ€μ—λŠ” λ””μžμ΄λ„ˆκ°€ μ—†κΈ° λ•Œλ¬Έμ— λ””μžμΈμ΄ κ°€μž₯ 큰 κ³ λ―Όμ΄μ—ˆλŠ”λ°,
Antd의 예쁘고 κΉ”λ”ν•œ λ””μžμΈ 덕뢄에 μ΄λŸ¬ν•œ 고민을 μ‘°κΈˆμ΄λ‚˜λ§ˆ 덜 수 μžˆμ—ˆλ‹€.
 
단점은, Antd의 λ””μžμΈμ„ μ»€μŠ€ν…€ν•˜κΈ°κ°€ λ„ˆλ¬΄ κΉŒλ‹€λ‘œμ› λ‹€λŠ” 점이닀.
Antd의 μ»΄ν¬λ„ŒνŠΈμ—μ„œ 일뢀 속성(폰트, 컬러 λ“±)만 λ°”κΎΈλ €ν•  λ•Œ,
적용이 잘 μ•ˆ λ˜λŠ” κ²½μš°κ°€ λ§Žμ•˜λ‹€.
λ˜λŠ” κ°„μ‹ νžˆ 적용이 λ˜μ—ˆλ‹€κ³  해도, κ·Έ 변경점이
기쑴의 λ‹€λ₯Έ 속성듀과 μΆ©λŒμ„ 일으켜 λ””μžμΈμ΄ μ΄μƒν•΄μ§€κ³ λŠ” ν•˜μ˜€λ‹€.
μš°λ¦¬λŠ” Emotion을 μ‚¬μš©ν–ˆμ—ˆλŠ”λ°,
μ–΄μ©Œλ©΄ Antd와 Emotion의 ν˜Έν™˜μ΄ μ•ˆ λ§žμ•˜λ˜ 것인지도 λͺ¨λ₯΄κ² λ‹€.
Antdκ°€ μ•„λ‹ˆλΌ MUIλ₯Ό μ‚¬μš©ν–ˆλ‹€λ©΄ μ–΄λ• μ„κΉŒν•˜λŠ” 생각이 λ“€μ—ˆλ˜ 뢀뢄이닀.
그리고 λ˜ν•œ, Antd의 μ»΄ν¬λ„ŒνŠΈλŠ” 고유의 λ™μž‘ 방식을 κ°€μ§€κ³  μžˆμ—ˆλ‹€.
λ™μž‘ 방식이라 함은 props둜 μ „λ‹¬ν•˜λŠ” 속성, λ©”μ„œλ“œ, κ·Έκ²ƒλ“€μ˜ νƒ€μž… 등을 λ§ν•œλ‹€.
예λ₯Ό λ“€μ–΄, 이미지λ₯Ό μ—…λ‘œλ“œν•  수 μžˆλŠ” UploadλΌλŠ” μ»΄ν¬λ„ŒνŠΈκ°€ μžˆλ‹€.
이미지가 μ—…λ‘œλ“œλœ ν›„λ₯Ό μ²˜λ¦¬ν•˜λ €λ©΄ onChange에 ν•¨μˆ˜λ₯Ό λ„˜κ²¨μ•Ό ν•œλ‹€.
onChangeλŠ” 맀개 λ³€μˆ˜, λ°˜ν™˜κ°’, κ·Έκ²ƒλ“€μ˜ νƒ€μž…μ΄ λ‹€ μ •ν•΄μ Έ μžˆμ–΄μ„œ
그것을 λ°˜λ“œμ‹œ μ€€μˆ˜ν•΄μ•Όλ§Œ ν–ˆκ³ , κ·ΈλŸ¬ν•œ κΉŒλ‹€λ‘œμš΄ μ œν•œ λ•Œλ¬Έμ— μ‹œκ°„μ„ κ½€ μ†ŒλΉ„ν•΄μ•Όλ§Œ ν–ˆλ‹€.
λ˜ν•œ, File νƒ€μž…μ„ ν™•μž₯ν•œ UploadFile λ“± Antd 고유의 νƒ€μž…λ“€λ„ λ§Žμ•˜λ˜ κΉŒλ‹­μ—
νƒ€μž…μŠ€ν¬λ¦½νŠΈλ₯Ό μž‘μ—…ν•˜λŠ” 것이 ν•œμΈ΅ 더 κΉŒλ‹€λ‘œμ› λ‹€.
그것듀은 μƒμ†Œν•œ νƒ€μž…μ΄μ–΄μ„œ νƒ€μž…μŠ€ν¬λ¦½νŠΈκ°€ 잘 인식을 λͺ»ν•˜λŠ” κ²½μš°λ„ λ°œμƒν–ˆλ˜ 것이닀.
μ΄λŸ¬ν•œ 점듀이 Antdλ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ μ•„μ‰¬μ› λ˜ 뢀뢄이닀.
 
결둠적으둜, Antd와 같은 UI 라이브러리의 μž₯단점을 잘 λŠλ‚„ 수 μžˆμ—ˆλ‹€.
λ‚΄κ°€ κ²°λ‘ λ‚΄λ¦° λ°”λŠ” 이렇닀.
κ°„λ‹¨ν•œ 것을 κ΅¬ν˜„ν•  λ•Œ, μ˜ˆμ˜κ²ŒλŠ” λ§Œλ“€κ³  μ‹Άμ§€λ§Œ λ””μžμΈ μ‹€λ ₯이 λΆ€μ‘±ν•  λ•Œ,
직접 λ§Œλ“€κΈ° 번거둜운 μ»΄ν¬λ„ŒνŠΈλ₯Ό μ‚¬μš©ν•˜κ³  싢을 λ•Œ UI 라이브러리λ₯Ό μ‚¬μš©ν•˜λ©΄ 쒋을 것 κ°™λ‹€.
λ°˜λ©΄μ— λ””μžμΈμ μœΌλ‘œ μ»€μŠ€ν…€μ΄ 많이 ν•„μš”ν•˜κ±°λ‚˜,
μ»΄ν¬λ„ŒνŠΈκ°€ μ œκ³΅ν•΄μ£ΌλŠ” 것 μ΄μƒμ˜ 심화 κΈ°λŠ₯을 μΆ”κ°€ν•˜λ € ν•œλ‹€λ©΄ μ’‹μ§€ μ•Šλ‹€κ³  μƒκ°ν•œλ‹€.
κ·Έ κ²½μš°μ—λŠ” λ¬Έμ œκ°€ 더 λ³΅μž‘ν•΄μ§ˆ 수 μžˆλ‹€.
Antd μ»΄ν¬λ„ŒνŠΈλŠ” 고유의 λ™μž‘ 방식이 μ •ν•΄μ Έ μžˆμ–΄, 그것이 μ»€μŠ€ν…€μ— 큰 μ œμ•½μ„ κ±ΈκΈ° λ•Œλ¬Έμ΄λ‹€.
ν•œνŽΈ, UI 라이브러리λ₯Ό μ œλŒ€λ‘œ μ‚¬μš©ν•˜κΈ° μœ„ν•΄μ„œλŠ” 그것에 λŒ€ν•œ 사전 곡뢀가 ν•„μˆ˜μž„μ„
μžŠμ–΄μ„œλŠ” μ•ˆ 될 것 κ°™λ‹€. μ‚¬μš©λ²•μ΄ 쉽닀고 κ°„κ³Όν•΄μ„œλŠ” μ•ˆ λœλ‹€.
곡식 λ¬Έμ„œλ₯Ό 꼼꼼히 μ½μœΌλ©΄μ„œ ν™•μ‹€νžˆ 이해λ₯Ό ν•œ 뒀에야,
μ»΄ν¬λ„ŒνŠΈμ˜ κΈ°λŠ₯을 μ˜¨μ „νžˆ, μ œλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆμ„ 것이닀.
 

λ‚˜μ˜ μž‘μ—…λ¬Ό

  1. ν›„κΈ° μž‘μ„± & μˆ˜μ • νŽ˜μ΄μ§€
μ „μ‹œνšŒμ˜ ν›„κΈ°λ₯Ό μž‘μ„± 및 μˆ˜μ •ν•  수 μžˆλŠ” νŽ˜μ΄μ§€ κ΅¬ν˜„
  • ν›„κΈ° λ‚΄μš© μž…λ ₯ 폼
    • λ‹€λ…€μ˜¨ λ‚ μ§œ, 제λͺ©, λ‚΄μš©, 곡개 μ—¬λΆ€
    • μœ νš¨μ„± 검사
  • λ‹€μˆ˜ 이미지 파일 μ—…λ‘œλ“œ 및 μ‚­μ œ
notion image
notion image
 
  1. μœ μ € νŽ˜μ΄μ§€ & ν”„λ‘œν•„ μˆ˜μ • νŽ˜μ΄μ§€
      • μœ μ €μ˜ 정보λ₯Ό μ‘°νšŒν•  수 μžˆλŠ” νŽ˜μ΄μ§€ κ΅¬ν˜„
        • μž‘μ„±ν•œ ν›„κΈ°, μ’‹μ•„μš” λˆ„λ₯Έ ν›„κΈ° 및 μ „μ‹œνšŒ 쑰회
        • SWR을 μ‚¬μš©ν•œ 데이터 fetching
        • νŽ˜μ΄μ§€λ„€μ΄μ…˜
      • ν”„λ‘œν•„ 정보λ₯Ό μˆ˜μ •ν•  수 μžˆλŠ” νŽ˜μ΄μ§€ κ΅¬ν˜„
        • ν”„λ‘œν•„ 사진, λ‹‰λ„€μž„, λΉ„λ°€λ²ˆν˜Έ μˆ˜μ •
        • useForm을 μ‚¬μš©ν•œ μœ νš¨μ„± 검사
notion image
notion image
 
  1. λ°˜μ‘ν˜• 헀더
      • 둜그인 μƒνƒœ, ν˜„μž¬ νŽ˜μ΄μ§€, λ””λ°”μ΄μŠ€ ν™˜κ²½μ— 따라 μŠ€νƒ€μΌ λ³€ν™”
      • useClickAway 훅을 μ‚¬μš©ν•˜μ—¬ Dropdown κ΅¬ν˜„
notion image
notion image
 
  1. μ΅œμ ν™”
      • Next/Imageλ₯Ό ν™œμš©ν•œ 이미지 μ΅œμ ν™”
        • 이미지 μ‚¬μ΄μ¦ˆ κ²½λŸ‰ν™”, lazy loading, placeholder λ“±
      • SEO
        • 메타 νƒœκ·Έ μ„€μ • λ“±
 
  1. ν”„λ‘ νŠΈμ—”λ“œ νŒ€μž₯
      • λ°±μ—”λ“œμ™€μ˜ μ†Œν†΅ 및 의견 μ‘°μœ¨μ„ μœ„ν•œ λ…Έλ ₯
      • 회의 μ§„ν–‰, 일정 관리, λ°œν‘œ
 

λŠλ‚€μ 

1. λ°±μ—”λ“œμ™€μ˜ κ·€μ€‘ν•œ ν˜‘μ—… κ²½ν—˜

λ°±μ—”λ“œμ™€ ν˜‘μ—…ν•˜λŠ” κ·€μ€‘ν•œ κ²½ν—˜μ„ ν•  수 μžˆμ–΄μ„œ μ’‹μ•˜λ‹€.
ν”„λ‘ νŠΈ νŒ€μ›λ“€κ³Ό ν˜‘μ—…ν•œ 적은 μžˆμ—ˆμ§€λ§Œ, λ°±μ—”λ“œ νŒ€μ›λ“€κ³Όμ˜ ν˜‘μ—…μ€ 이번이 μ²˜μŒμ΄μ—ˆλ‹€.
κΈ°νšλΆ€ν„° μ‹œμž‘ν•΄μ„œ API λͺ…세에 λŒ€ν•œ 쑰율, 개발 λ‹¨κ³„μ—μ„œμ˜ μ†Œν†΅, λ§ˆλ¬΄λ¦¬κΉŒμ§€
μ‹€μ œ ν”„λ‘œμ νŠΈ μ „λ°˜μ˜ 흐름을 읡힐 수 있던 κ·€μ€‘ν•œ κ²½ν—˜μ΄μ—ˆλ‹€κ³  μƒκ°ν•œλ‹€.
 
ν•œνŽΈ, ν”„λ‘ νŠΈμ™€ λ°±μ—”λ“œμ˜ 지식 및 κ΄€μ μ˜ 차이둜 인해 μ†Œν†΅μ— λ‹€μ†Œ 어렀움이 μžˆμ—ˆλ‹€.
ν”„λ‘ νŠΈμ˜ β€˜μ „μ—­ μƒνƒœ 관리’ κ°œλ…μ„ λ°±μ—”λ“œ νŒ€μ›λ“€μ΄ 잘 μ΄ν•΄ν•˜μ§€ λͺ»ν•˜κ±°λ‚˜,
λ°˜λŒ€λ‘œ λ°±μ—”λ“œμ—μ„œ 데이터λ₯Ό μ €μž₯ 및 μœ μ €μ˜ 인증을 κ΄€λ¦¬ν•˜λŠ” 방식에 λŒ€ν•΄
ν”„λ‘ νŠΈ 츑의 이해가 λΆ€μ‘±ν•΄μ„œ μ†Œν†΅μ˜ 어렀움이 μžˆμ—ˆλ‹€.
κ·Έ 외에도 API λͺ…μ„Έλ₯Ό 일뢀 μˆ˜μ •ν•˜λŠ” λ“±, ν›„λ°˜λΆ€μ—λ„ μž¦μ€ νšŒμ˜λ“€μ΄ μ΄μ–΄μ‘Œλ‹€.
μ–΄μ©” 수 μ—†μ—ˆλ‹€λŠ” 생각이 λ“€λ©΄μ„œλ„β€¦.
κ·Έ λ•Œλ¬Έμ— κ°œλ°œμ— μŸλŠ” μ‹œκ°„μ„ λΉΌμ•—κΈ°κ²Œ λ˜μ–΄ 많이 μ•„μ‰¬μ› λ˜ 뢀뢄이닀.
그둜 인해 ν›„λ°˜λΆ€μ—λ„ 버그 λ¦¬ν¬νŒ…κ³Ό 해결이 λ―Έμ§„ν•΄μ„œ λ‹€μ†Œ 아쉬웠닀.
μš°λ¦¬κ°€ μ΄ˆλ°˜μ— 더 λͺ…ν™•ν•˜κ²Œ 기획 및 섀계λ₯Ό ν•˜κ³ ,
μ—¬νƒ€μ˜ 곡톡 λ¬Έμ œλ“€μ— λŒ€ν•΄ μƒν˜Έ 의견 일치λ₯Ό μ΄λ£¨μ—ˆλ‹€λ©΄
더 μ’‹μ•˜μ„ κ²ƒμ΄λΌλŠ” 생각이 λ“€μ–΄ 큰 아쉬움이 λ‚¨λŠ”λ‹€.
β€œνŠΌνŠΌν•œ 기획과 섀계가 쒋은 κ°œλ°œμ„ λ‚³λŠ”λ‹€β€λŠ” 것을 깨달은 κ²½ν—˜μ΄μ—ˆλ‹€.
 

2. λ¬Έμ„œν™” & μ• μžμΌ 슀크럼

μ‹€μ œ κ°œλ°œλ³΄λ‹€λŠ” μ•„λ‹ˆλ”λΌλ„, 그에 λ²„κΈˆκ°€κ²Œ μ€‘μš”ν•œ 것이 β€˜λ¬Έμ„œν™”β€™λΌκ³  μƒκ°ν•œλ‹€.
회의λ₯Ό ν•˜λ©΄μ„œ μ˜κ²¬μ„ λ‚˜λˆ„κ³  κ²°λ‘ λ‚΄λ¦° 것에 λŒ€ν•΄
λ¬Έμ„œλ‘œ λͺ…ν™•ν•˜κ²Œ μ •λ¦¬ν•˜μ§€ μ•ŠμœΌλ©΄, 금방 κΈ°μ–΅μ—μ„œ μžŠν˜€μ§€κ³  흐지뢀지 λ˜μ–΄λ²„λ¦°λ‹€.
쀑간 ν”„λ‘œμ νŠΈμ—μ„œ μ•„μ‰¬μ› λ˜ λΆ€λΆ„μ΄μ—ˆκΈ°μ—,
이번 μ΅œμ’… ν”„λ‘œμ νŠΈμ—μ„œλŠ” λ¬Έμ„œν™”λ₯Ό μ²΄κ³„μ μœΌλ‘œ ν•˜κΈ° μœ„ν•΄ λ§Žμ€ λ…Έλ ₯을 κΈ°μšΈμ˜€λ‹€.
λ…Έμ…˜μ˜ μΊ˜λ¦°λ”μ— νšŒμ˜λ‘μ„ 맀일 μ •λ¦¬ν•˜κ³ , μ£Όμš” λ¬Έμ„œλ“€μ„ 꼼꼼히 μ •λ¦¬ν•˜μ˜€λ‹€.
λ˜ν•œ, github의 Discussionsλ₯Ό 적극 ν™œμš©ν•΄μ„œ μ£Όμš” μ΄μŠˆλ“€μ— λŒ€ν•΄ μ •λ¦¬ν•˜κ³  ν† λ‘ ν•˜μ˜€λ‹€.
이처럼 λ¬Έμ„œν™”λ₯Ό 꼼꼼히 ν•œ 덕뢄에 λ‚˜μ€‘μ— 찾아보기가 μš©μ΄ν–ˆκ³ ,
μž₯κΈ°μ μœΌλ‘œλŠ” 개발의 νŽΈμ˜μ„±μ„ 크게 λ†’μ—¬μ£Όμ—ˆλ‹€.
이번 ν”„λ‘œμ νŠΈμ—μ„œ λ§Œμ‘±μŠ€λŸ¬μ› λ˜ λΆ€λΆ„ 쀑 ν•˜λ‚˜μ΄λ‹€.
 
ν•œνŽΈ, μ• μžμΌ 슀크럼 방식을 λ„μž…ν•˜μ—¬ μŠ€ν”„λ¦°νŠΈ λ‹¨μœ„λ‘œ ν”„λ‘œμ νŠΈλ₯Ό κ΄€λ¦¬ν•˜μ˜€λ‹€.
μŠ€ν”„λ¦°νŠΈ μ£ΌκΈ°λŠ” 3~4일둜 λ‘μ—ˆμœΌλ©°,
μŠ€ν”„λ¦°νŠΈ μ²«λ‚ μ—λŠ” ν•΄λ‹Ή κΈ°κ°„λ™μ•ˆ 각자 ν•΄μ•Όν•  일을 μ •ν–ˆμœΌλ©°,
μŠ€ν”„λ¦°νŠΈ λ§ˆμ§€λ§‰λ‚ μ—λŠ” 달성 μ—¬λΆ€λ₯Ό 점검 및 νšŒκ³ ν•˜λŠ” λ°©μ‹μœΌλ‘œ μ§„ν–‰ν•˜μ˜€λ‹€.
이 덕뢄에 ν”„λ‘œμ νŠΈμ˜ μ „λ°˜μ μΈ 흐름을 κ³„νšν•˜κ³ , μž‘μ—… 상황을 μ κ²€ν•˜λŠ” λ“±
ν”„λ‘œμ νŠΈλ₯Ό 효과적으둜 관리할 수 μžˆμ—ˆλ‹€κ³  μƒκ°ν•œλ‹€.
μ™œ μ‹€λ¬΄μ—μ„œ μ• μžμΌ 슀크럼 방식을 많이 μ‚¬μš©ν•˜λŠ”μ§€ 이해할 수 μžˆμ—ˆκ³ ,
λͺΈμ†Œ μ²΄ν—˜ν•΄λ³Ό 수 있던 κ·€μ€‘ν•œ κ²½ν—˜μ΄μ—ˆλ‹€κ³  μƒκ°€ν•œλ‹€.
 

3. ν–₯ν›„ λ¦¬νŒ©ν† λ§

μ™„λ²½ν•œ ν”„λ‘œμ νŠΈμ™€ μ½”λ“œλŠ” 이 세상에 μ—†λ‹€κ³  μƒκ°ν•œλ‹€.
우리의 ν”„λ‘œμ νŠΈ μ—­μ‹œ λ§ˆμ°¬κ°€μ§€λ‹€.
ν”„λ‘œμ νŠΈ 기간이 끝났닀고 ν•΄μ„œ 손을 λ†“μ•„λ²„λ¦¬λŠ” 것이 μ•„λ‹ˆλΌ,
κΎΈμ€€ν•œ λ¦¬νŒ©ν† λ§μ„ ν†΅ν•΄μ„œ κ°œμ„ ν•΄λ‚˜κ°€λŠ” 것이 ν•„μš”ν•œ 것이닀.
λ‹Ήμž₯ 해결이 μ‹œκΈ‰ν•œ 것은 β€˜μ‚¬μ΄νŠΈμ˜ 속도가 λŠλ¦¬λ‹€β€™λŠ” λ¬Έμ œμ μ΄λ‹€.
μΆ”λ‘ ν•˜κ±΄λŒ€, 이것은 μ‚¬μ΄νŠΈμ—μ„œ λ§Žμ€ μ–‘μ˜ 이미지 νŒŒμΌμ„ μ‚¬μš©ν•˜κ³  있으며,
이 λ•Œλ¬Έμ— λ‘œλ”© 속도가 였래걸리기 λ•Œλ¬Έμ΄λΌκ³  μƒκ°ν•œλ‹€.
next/imageλ₯Ό μ‚¬μš©ν•˜μ—¬ 이미지 μš©λŸ‰μ„ κ²½λŸ‰ν™”ν•˜λŠ” μž‘μ—…μ„ 톡해 κ°œμ„ ν•΄μ•Όλ§Œ ν•œλ‹€.
κ·Έ 외에도 μ»΄ν¬λ„ŒνŠΈλ₯Ό 더 잘개 μͺΌκ°œκ³  μΆ”μƒν™”ν•˜κΈ°, validation κ°•ν™”ν•˜κΈ°,
λ°˜μ‘ν˜• μ‹œ λ ˆμ΄μ•„μ›ƒ κ°œμ„ ν•˜κΈ°, ν…ŒμŠ€νŠΈ μ½”λ“œμ˜ μΆ”κ°€ 등이 ν•„μš”ν•  것 κ°™λ‹€.
이와 같은 λ¦¬νŒ©ν† λ§μ„ 톡해 더 λ§Žμ€ 것을 읡히고 배울 수 μžˆμ„ 것이라고 μƒκ°ν•œλ‹€.