Skip to content

Latest commit

Β 

History

History
105 lines (91 loc) Β· 4.79 KB

File metadata and controls

105 lines (91 loc) Β· 4.79 KB

μŠ€μœ„μΉ˜μ½˜ (SwitchCon)

μŠ€μœ„μΉ˜μ½˜μ€ κΈ°ν”„ν‹°μ½˜ κ΄€λ¦¬β€’κ΅ν™˜β€’μ‚¬μš© μ›Ή μ•± μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. λͺ¨λ°”일 μƒν’ˆκΆŒ μ‹œμž₯이 κΈ‰μ„±μž₯ν•˜λ©΄μ„œ μœ νš¨κΈ°κ°„ 만료둜 μΈν•œ λΆˆνŽΈν•¨μ„ κ²ͺκ³  μžˆμŠ΅λ‹ˆλ‹€. 특히 ν™˜λΆˆμ΄λ‚˜ κΈ°κ°„ μ—°μž₯이 μ–΄λ €μš΄ B2B λͺ¨λ°”일 μƒν’ˆκΆŒκ³Ό μ›μΉ˜ μ•ŠλŠ” κΈ°ν”„ν‹°μ½˜ μ²˜λΆ„μ— 어렀움을 κ²ͺλŠ” μ‚¬λžŒλ“€μ΄ λ§Žμ•„μ§€κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŸ¬ν•œ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, 흩어져 μžˆλŠ” κΈ°ν”„ν‹°μ½˜μ„ 톡합 κ΄€λ¦¬ν•˜κ³ , μ‚¬μš©μžμ˜ μœ„μΉ˜λ₯Ό 기반으둜 μ‚¬μš©μ²˜λ₯Ό μ•ˆλ‚΄ν•˜λ©°, κΈ°ν”„ν‹°μ½˜ κ°„ κ΅ν™˜μ„ κ°€λŠ₯ν•˜κ²Œ ν•˜λŠ” ν”Œλž«νΌ 'μŠ€μœ„μΉ˜μ½˜' ν”„λ‘œμ νŠΈκ°€ κΈ°νšν•˜μ˜€μŠ΅λ‹ˆλ‹€.

  • κ°œλ°œκΈ°κ°„: 2023.11.21 - 2023.12.10
  • νŒ€ 원: ν”„λ‘ νŠΈ 2λͺ…, λ°±μ—”λ“œ 2λͺ…

λ‹΄λ‹Ή μ—­ν• 

  • ν”„λ‘œμ νŠΈ 총괄
  • UI&UX λ””μžμΈ 및 κ΅¬ν˜„ (메인 νŽ˜μ΄μ§€, κ΅ν™˜ν•˜κΈ° νŽ˜μ΄μ§€, κΈ°ν”„ν‹°μ½˜ λ“±λ‘νŽ˜μ΄μ§€ λ“±)
  • OCR μ„œλ²„ api μ—°κ²°
  • μ΅œμ’…λ³΄κ³ μ„œ μž‘μ„±

μ‹œμž‘ κ°€μ΄λ“œ

npm install

둜컬 μ‹€ν–‰

npm run start

λΉŒλ“œ 및 배포

  • github pagesλ₯Ό μ΄μš©ν•˜μ—¬ λ°°ν¬ν•˜μ˜€μŒ
  • npm run deploy μ‹œ gh-page 브랜치둜 λΉŒλ“œνŒŒμΌμ΄ μ—…λ°μ΄νŠΈ 됨
  • https://github.com/switchcon/switchcon-front/tree/gh-pages ν•΄λ‹Ή λ ˆν¬μ§€ν† λ¦¬ gh-page
  • baseURL λ³€κ²½ μ‹œ, index.tsx에 basename={process.env.PUBLIC_URL}λ₯Ό λ°˜λ“œμ‹œ μž‘μ„±ν•΄μ•Ό 함
  • package.jsonμ—μ„œ hompage에 baseURL을 μž‘μ„±ν•΄μ£Όλ©΄ λ©λ‹ˆλ‹€.

κ°œλ°œν™˜κ²½

alt text alt text

μ‹€μ œ ν™”λ©΄

alt text alt text alt text

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

πŸ“OCR 기반 κΈ°ν”„ν‹°μ½˜ μœ νš¨μ„± 검사

  • μƒˆλ‘œ 등둝할 κΈ°ν”„ν‹°μ½˜μ— λŒ€ν•΄ μœ νš¨κΈ°κ°„μ΄ ν˜„μž¬ λ‚ μ§œλ‘œλΆ€ν„° μœ νš¨ν•œμ§€ κ²€μ‚¬ν•œ ν›„ λ“±λ‘ν•©λ‹ˆλ‹€.
  • μ΄λŠ” ν΄λΌμ΄μ–ΈνŠΈμ—μ„œ νŒŒμΌμ—…λ‘œλ“œ ν›„, OCR μ„œλ²„μ— νŒŒμΌμ„ 보내 ν…μŠ€νŠΈ 뢄석을 마친 κ²°κ³Όλ₯Ό λ°›μ•„ μœ νš¨μ„±μ„ ν™•μΈν•˜λŠ” λ‘œμ§μž…λ‹ˆλ‹€. πŸ“μ§€λ„λ‘œ λ³΄λŠ” λ‚΄ μ£Όλ³€ κΈ°ν”„ν‹°μ½˜ μ‚¬μš©μ²˜
  • λ“±λ‘λœ κΈ°ν”„ν‹°μ½˜μ˜ μ‚¬μš©μ²˜ 쀑 μ‚¬μš©μž μœ„μΉ˜μ™€ κ°€κΉŒμš΄ 곳을 μ§€λ„λ‘œ λ³΄μ—¬μ€λ‹ˆλ‹€.
  • ν˜„μž¬λŠ” API Keyκ°€ λ§Œλ£Œλ˜μ–΄ 싀행이 λΆˆκ°€ν•©λ‹ˆλ‹€.

μœ μ € μΌ€μ΄μŠ€

alt text

파일ꡬ쑰

src
 ┣ api # μ„œλ²„ μ—°κ²° api 
 ┃ ┣ ExchangeAPI.tsx
 ┃ ┣ GiftconAPI.tsx
 ┃ β”— UserApi.tsx
 ┣ assets #이미지 에셋
 ┃ β”— images
 ┣ components
 ┃ β”— ui #κ³΅μš©μ»΄ν¬λ„ŒνŠΈ
 ┃ ┃ ┣ alert-dialog.tsx
 ┃ ┃ ┣ badge.tsx
 ┃ ┃ ┣ button.tsx
 ┃ ┃ ┣ Common.tsx
 ┃ ┃ ┣ ExchangeReqCard.tsx
 ┃ ┃ ┣ Footer.tsx
 ┃ ┃ ┣ GiftCard.tsx
 ┃ ┃ ┣ Header.tsx
 ┃ ┃ ┣ select.tsx
 ┃ ┃ β”— tabs.tsx
 ┣ functions
 ┃ β”— base64Decoding.ts
 ┣ lib 
 ┃ ┣ kakaoMap.js # κ΅ν™˜ μƒμ„ΈνŽ˜μ΄μ§€μ— 보여쀄 카카였맡
 ┃ ┣ state.ts
 ┃ β”— utils.ts
 ┣ pages
 ┃ ┣ exchange
 ┃ ┃ ┣ ExchangeHome.tsx  #κ΅ν™˜ ν™ˆνŽ˜μ΄μ§€
 ┃ ┃ ┣ ExchangePostCreate.tsx #κ΅ν™˜ μš”μ²­ μž‘μ„±νŽ˜μ΄μ§€
 ┃ ┃ ┣ ExchangePostDetail.tsx #κ΅ν™˜κ²Œμ‹œλ¬Ό μƒμ„ΈνŽ˜μ΄μ§€
 ┃ ┃ β”— ExchangeRequest.tsx #κ΅ν™˜μš”μ²­ νŽ˜μ΄μ§€
 ┃ ┣ giftCon
 ┃ ┃ ┣ GiftconPostDetail.tsx #λ‚΄ κΈ°ν”„ν‹°μ½˜ μƒμ„ΈνŽ˜μ΄μ§€
 ┃ ┃ β”— GiftConRegister.tsx #κΈ°ν”„ν‹°μ½˜ λ“±λ‘νŽ˜μ΄μ§€ 
 ┃ ┣ login
 ┃ ┃ ┣ Login.tsx #λ‘œκ·ΈμΈνŽ˜μ΄μ§€
 ┃ ┃ β”— Signup.tsx #νšŒμ›κ°€μž…νŽ˜μ΄μ§€
 ┃ ┣ mainPage
 ┃ ┃ ┣ Home.tsx #λ©”μΈνŽ˜μ΄μ§€
 ┃ ┃ β”— Landing.tsx
 ┃ β”— myExchange
 ┃ ┃ β”— MyExchange.tsx #λ‚΄ κ΅ν™˜λͺ©λ‘νŽ˜μ΄μ§€
 ┣ App.tsx
 ┣ index.css
 β”— index.tsx

회고

이번 ν”„λ‘œμ νŠΈλ₯Ό μ§„ν–‰ν•˜λ©΄μ„œ, 짧은 κΈ°κ°„ 내에 완성도λ₯Ό 높이기 μœ„ν•΄ μ£Όμš” κΈ°λŠ₯에 μš°μ„ μˆœμœ„λ₯Ό 두고 κ°œλ°œν•˜λŠ” 것이 μ€‘μš”ν•˜λ‹€λŠ” 것을 λ‹€μ‹œ ν•œ 번 λŠκΌˆμŠ΅λ‹ˆλ‹€. 초기 λ‹¨κ³„μ—μ„œ 섀계와 κΈ°νšμ— λ§Žμ€ μ‹œκ°„μ„ νˆ¬μžν•œ κ²°κ³Ό, 전체적인 ꡬ쑰와 λ°©ν–₯성은 λͺ…ν™•ν•˜κ²Œ μ„€μ •ν•  수 μžˆμ—ˆμ§€λ§Œ, 그만큼 μ‹€μ œ κ°œλ°œμ— ν• μ• ν•  μ‹œκ°„μ΄ λΆ€μ‘±ν•΄μ§€λŠ” 상황이 λ°œμƒν–ˆμŠ΅λ‹ˆλ‹€. 특히, κ³„νšν–ˆλ˜ 일정 내에 λͺ¨λ“  κΈ°λŠ₯을 κ΅¬ν˜„ν•˜λŠ” 데 어렀움을 κ²ͺμœΌλ©΄μ„œ, κΈ°λŠ₯ κ΅¬ν˜„μ˜ μš°μ„ μˆœμœ„λ₯Ό λͺ…ν™•ν•˜κ²Œ μ •ν•˜κ³ , 핡심 κΈ°λŠ₯λΆ€ν„° μ™„μ„±ν•˜λŠ” μ „λž΅μ΄ ν•„μš”ν–ˆμŒμ„ κΉ¨λ‹¬μ•˜μŠ΅λ‹ˆλ‹€.

결과적으둜, μ‹œκ°„μ΄ λΆ€μ‘±ν•œ μƒν™©μ—μ„œ λͺ¨λ“  κΈ°λŠ₯을 μ™„λ²½ν•˜κ²Œ κ΅¬ν˜„ν•˜μ§€ λͺ»ν•΄ 아쉬움이 λ‚¨μ§€λ§Œ, 이번 κ²½ν—˜μ„ 톡해 ν”„λ‘œμ νŠΈ 관리와 개발 μΌμ •μ˜ μ€‘μš”μ„±μ„ λ‹€μ‹œ ν•œ 번 μΈμ‹ν•˜κ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ•žμœΌλ‘œλŠ” 섀계와 기획 λ‹¨κ³„μ—μ„œ μ£Όμš” κΈ°λŠ₯에 λŒ€ν•œ μš°μ„ μˆœμœ„λ₯Ό λ”μš± λͺ…ν™•νžˆ ν•˜κ³ , 그에 따라 개발 일정을 μ„Έλ°€ν•˜κ²Œ μ‘°μ •ν•΄ λ‚˜κ°€λŠ” 것이 ν•„μš”ν•  것 κ°™μŠ΅λ‹ˆλ‹€. 이와 같은 κ²½ν—˜μ΄ λ‹€μŒ ν”„λ‘œμ νŠΈμ—μ„œλŠ” 더 λ‚˜μ€ κ²°κ³Όλ₯Ό λ„μΆœν•˜λŠ” 데 큰 도움이 될 것이라 μƒκ°ν•©λ‹ˆλ‹€.