Skip to content

πŸ’Έ 쀑고 개인 경맀 ν”„λ‘œμ νŠΈ

Notifications You must be signed in to change notification settings

eunsol-an/shoe-bid-project

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

μ‹ λ°œ κ²½λ§€λŠ”? μŠˆλΉ„λ“œμ—μ„œ!

gitbg

πŸ‘Ÿ Introduction

μŠˆλΉ„λ“œ(SHOE-BID) λŠ” 개인의 μ‹ λ°œμ„ 경맀둜 사고 νŒ” 수 μžˆλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€.

πŸ“ Summary

  • μŠˆλΉ„λ“œλŠ” 쀑고 κ±°λž˜μ— 경맀 방식을 더해 μ‹ λ°œμ„ 합리적인 κ°€κ²©μœΌλ‘œ κ±°λž˜ν•  수 μžˆλŠ” μ„œλΉ„μŠ€μž…λ‹ˆλ‹€. κ΅¬λ§€μžκ°€ κ΅¬λ§€ν•˜κ³  싢은 가격을 μ„€μ •ν•΄ λ‚™μ°°λ°›μ•„ κ±°λž˜ν•  수 μžˆλŠ” 경맀 κ°œλ…μ„ λ„μž…ν•˜μ—¬ λ‹€λ₯Έ μ€‘κ³ κ±°λž˜ μ„œλΉ„μŠ€μ™€ 차별화λ₯Ό λ‘μ—ˆμŠ΅λ‹ˆλ‹€.

  • νŒλ§€μžλŠ” μžμ‹ μ΄ νŒλ§€ν•˜λ €λŠ” 가격을 μ„€μ •ν•œ ν›„ ν•΄λ‹Ή 가격을 μˆ˜μš©ν•  κ΅¬λ§€μžκ°€ λ‚˜νƒ€λ‚  λ•ŒκΉŒμ§€ 일방적으둜 κΈ°λ‹€λ¦¬λŠ” μ‹œκ°„μ„ 쀄일 수 μžˆμŠ΅λ‹ˆλ‹€. 또 κ΅¬λ§€μžλŠ” 일방적으둜 정해진 가격이 μ•„λ‹Œ μ›ν•˜λŠ” 가격에 물건을 낙찰받을 수 μžˆμŠ΅λ‹ˆλ‹€.

  • λ¬Όν’ˆ 거래λ₯Ό μœ„ν•œ μ±„νŒ…μ΄ κ°€λŠ₯ν•˜κ³ , νŒλ§€μžμ™€ κ΅¬λ§€μžλŠ” μ„œλ‘œμ— λŒ€ν•œ 리뷰λ₯Ό μž‘μ„±ν•  수 μžˆμ–΄ 신뒰도λ₯Ό 확인할 수 μžˆμŠ΅λ‹ˆλ‹€.

  • μŠˆλΉ„λ“œ μ΄μš©ν•΄λ³΄κΈ°


⏱ Period

2022.07.29 ~ 2022.08.19 (3μ£Ό)


πŸ“ˆ ERD

shoe-bid-erd

πŸ›  Core Tools

Frontend

image image image

Backend

image image

Infrastructure

image

DB

image

Dev Tools

image image image image

Design

image image

πŸ’» Core Tech

⏰ Spring schedulerλ₯Ό μ΄μš©ν•œ 경맀 μ’…λ£Œ μžλ™ν™” μ‹œμŠ€ν…œ

  • 경맀 마감 μ‹œκ°„κ³Ό ν˜„μž¬ μ‹œκ°„μ„ λΉ„κ΅ν•˜κ³  μŠ€μΌ€μ€„λŸ¬λ₯Ό ν™œμš©ν•˜μ—¬ 경맀 μƒνƒœ μžλ™ μ—…λ°μ΄νŠΈ
  • μ—…λ°μ΄νŠΈλœ κ²°κ³ΌλŠ” νŒλ§€μžμ™€ ꡬ맀자, 각 νšŒμ›μ˜ λ§ˆμ΄νŽ˜μ΄μ§€μ—μ„œ 쑰회 κ°€λŠ₯

πŸ“§ νšŒμ›κ°„μ˜ 1:1 μ±„νŒ… μ‹œμŠ€ν…œ

  • 경맀가 μ„±μ‚¬λ˜μ—ˆμ„ 경우, νŒλ§€μžμ™€ κ΅¬λ§€μžκ°€ 거래 방식에 λŒ€ν•œ λŒ€ν™”λ₯Ό λ‚˜λˆŒ 수 μžˆλ„λ‘ ν”„λΌμ΄λΉ—ν•œ μ±„νŒ…λ°© ν™œμ„±ν™”
  • DBλ₯Ό μ΄μš©ν•˜μ—¬ νšŒμ› κ°„μ˜ λŒ€ν™”κ°€ μ €μž₯될 수 μžˆλ„λ‘ κ΅¬ν˜„

πŸ… νšŒμ›μ˜ ν™œλ™μ— 따라 μ—…λ°μ΄νŠΈ λ˜λŠ” νšŒμ› λ“±κΈ‰ μ‹œμŠ€ν…œ

  • νŠΈλžœμž­μ…˜ 처리λ₯Ό 톡해 νšŒμ›μ˜ ν™œλ™μ— λŒ€ν•œ λ“±κΈ‰ 점수λ₯Ό λΆ€μ—¬
  • 5λ‹¨κ³„λ‘œ λ‚˜λˆ μ§„ 등급에 따라 νšŒμ› λ“±κΈ‰ μžλ™ μŠΉκΈ‰

πŸ‘Ύ Trouble shooting

Issue1 - [QnA] 이벀트 μœ„μž„

🚨 Situation

  • 비동기 톡신을 μ΄μš©ν•œ QnA κ²Œμ‹œνŒμ˜ νŠΉμ„±μƒ, λΈŒλΌμš°μ €μ—μ„œ 같은 κΈ°λŠ₯을 ν•˜λŠ” button νƒœκ·Έκ°€ λ™μ μœΌλ‘œ μΆ”κ°€λ˜λŠ” κ²½μš°κ°€ λ§Žμ•˜λ‹€. μ΄λ•Œ μΆ”κ°€λœ νƒœκ·Έμ—λŠ” μ΄λ²€νŠΈκ°€ μ‹€ν–‰λ˜μ§€ μ•Šμ•˜λ‹€. λ˜ν•œ div νƒœκ·Έ μ•ˆμ— μžˆλŠ” μ—¬λŸ¬ 개의 button νƒœκ·Έλ₯Ό ν΄λ¦­ν–ˆμ„ λ•Œ, ν•΄λ‹Ή 이벀트의 콜백 ν•¨μˆ˜κ°€ μ‹€ν–‰λ˜μ§€ μ•Šμ•˜λ‹€.

πŸ’₯ Cause

  • html νƒœκ·Έλ“€μ΄ μ€‘μ²©λ˜μ–΄ 있고, λ™μΌν•œ μš”μ†Œμ— μ΄λ²€νŠΈκ°€ μ—¬λŸ¬ 개 λ“±λ‘λ˜μ–΄ μžˆλŠ” ꡬ쑰 λ•Œλ¬Έμ— 이벀트 μ œμ–΄κ°€ λ³΅μž‘ν•΄μ§€κ³  νλ¦„μ˜ νŒŒμ•…μ΄ μ–΄λ €μ›Œμ‘Œλ‹€.

πŸ’‘ Solution

  • button ν•˜λ‚˜ν•˜λ‚˜μ— 이벀트λ₯Ό λ“±λ‘ν•˜μ§€ μ•Šκ³ , button을 감싸고 μžˆλŠ” div νƒœκ·Έμ— 이벀트λ₯Ό λ“±λ‘ν•˜μ˜€λ‹€. querySelector()λ₯Ό μ‚¬μš©ν•˜λ©΄, μ‚¬μš©μžκ°€ button을 ν΄λ¦­ν–ˆμ„ λ•Œ 이벀트 버블링이 μΌμ–΄λ‚˜ μƒμœ„μ— μžˆλŠ” μš”μ†ŒκΉŒμ§€ μ΄λ²€νŠΈκ°€ μ „νŒŒλ˜μ–΄ 콜백 ν•¨μˆ˜κ°€ 싀행될 수 μžˆλ‹€.

Issue2 - [μ±„νŒ…] 데이터 컨트둀

🚨 Situation

  • μ‚¬μš©μž κ°„μ˜ μ±„νŒ… κ³Όμ • 쀑 본인이 μ±„νŒ…μ„ λ³΄λƒˆμŒμ—λ„ λΆˆκ΅¬ν•˜κ³  λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯λ˜λŠ” μƒλŒ€λ°©μ˜ mno κ°’κ³Ό 본인의 mno 값이 λ™μΌν•˜κ²Œ μ €μž₯λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•˜μ˜€λ‹€.

πŸ’₯ Cause

  • 처음 μ±„νŒ… μ‹œ λ°μ΄ν„°λ² μ΄μŠ€μ— 본인 mno κ°’κ³Ό μƒλŒ€ mno 값이 μ €μž₯λ˜λŠ”λ° λ‹€μ‹œ μƒλŒ€κ°€ μ±„νŒ…μ„ 보낼 경우 μƒλŒ€ μž…μž₯μ—μ„œλŠ” 본인 mno와 μƒλŒ€ mno 값이 μ„œλ‘œ λ°”λ€Œμ–΄μ„œ λ“€μ–΄κ°€μ•Ό ν•˜λŠ” μƒν™©μ΄μ—ˆκΈ° λ•Œλ¬Έμ΄λ‹€.

πŸ’‘ Solution

  • λ°μ΄ν„°λ² μ΄μŠ€μ— μ €μž₯ν•˜κΈ° 전에 if 문을 μ‚¬μš©ν•˜μ—¬ 본인 mno와 λ‘œκ·ΈμΈν•œ mnoκ°€ κ°™μœΌλ©΄ 보낸 μ‚¬λžŒμ˜ mno 값에 λ„£κ³  같지 μ•ŠμœΌλ©΄ μƒλŒ€μ˜ mno 값에 λ„£μ–΄ ν•΄κ²°ν•˜μ˜€λ‹€.

Issue3 - [관심 μƒν’ˆ] μš”μ†Œ 컨트둀

🚨 Situation

  • λ‚˜μ˜ 관심 μƒν’ˆ νŽ˜μ΄μ§€μ—μ„œ μ—¬λŸ¬ 개의 μƒν’ˆ 리슀트 쀑 κ°€μž₯ μƒλ‹¨μ˜ μƒν’ˆλ§Œ 찜 μ‚­μ œκ°€ λ˜λŠ” λ¬Έμ œκ°€ λ°œμƒν•˜μ˜€λ‹€.

πŸ’₯ Cause

  • jsp λΆ€λΆ„ 관심 μƒν’ˆ 리슀트의 forλ¬Έ κ΅¬μ‘°μ—μ„œ 첫 μƒν’ˆμ˜ id κ°’λ§Œ κ°€μ Έμ˜€λŠ” 것이 λ¬Έμ œμ˜€λ‹€.

πŸ’‘ Solution

  • μ‚­μ œ λ²„νŠΌμ„ ν΄λ¦­ν•˜μ˜€μ„ λ•Œ button νƒœκ·Έ μ•ˆμ— λΉ„ν‘œμ€€ 속성(data set)을 μ‚¬μš©ν•˜μ—¬ ν•΄λ‹Ή μƒν’ˆ 각각의 id 값을 λ‹΄μ•„ ν•΄κ²°ν•˜μ˜€λ‹€.

Issue4 - [경맀] μƒν’ˆ 마감 처리

🚨 Situation

  • 경맀가 마감된 μƒν’ˆμ˜ 리슀트λ₯Ό 뢈러올 κ²½μš°μ™€ μƒν’ˆ λ””ν…ŒμΌ νŽ˜μ΄μ§€μ—μ„œ 경맀 마감 μ‹œκ°„μ΄ 지날 κ²½μš°μ— 경맀 μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” λΆ„κΈ° 처리λ₯Ό ν•˜μ˜€λ‹€. κ·Έλ ‡μ§€λ§Œ λ§ˆμ΄νŽ˜μ΄μ§€μ—μ„œ 판맀 μƒν’ˆ, ꡬ맀 μƒν’ˆμ„ 확인할 λ•Œ 마감 처리 뢀뢄은 μƒν’ˆ 리슀트 λ˜λŠ” μƒν’ˆ λ””ν…ŒμΌμ„ 거친 후에야 λΆ„κΈ° μ²˜λ¦¬κ°€ κ°€λŠ₯ν–ˆλ‹€.

πŸ’‘ Solution

  • μƒν’ˆλ§ˆλ‹€ λ§ˆκ°λ˜λŠ” μ‹œκ°„μ΄ λ‹€λ₯Έ μƒν™©μ—μ„œ μŠ€μΌ€μ€„λŸ¬λ₯Ό 톡해 10μ΄ˆλ§ˆλ‹€ 경맀가 진행 쀑인 μƒν’ˆ 리슀트λ₯Ό λΆˆλŸ¬μ™€ ν˜„μž¬ μ‹œκ°„κ³Ό λ§ˆκ°μ‹œκ°„μ„ 비ꡐ해 경맀 μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈν•˜λŠ” λ‘œμ§μ„ κ΅¬ν˜„ν•˜μ˜€λ‹€.

Issue5 - [νšŒμ›] JSTL 문법

🚨 Situation

  • 아이디 μ°ΎκΈ° κ²°κ³Ό ν™”λ©΄μ—μ„œ 아이디λ₯Ό 좜λ ₯ν•  λ•Œ, λ’€μ˜ 3자리λ₯Ό λ§ˆμŠ€ν‚Ή μ²˜λ¦¬ν•˜κΈ° μœ„ν•΄ jstlμ—μ„œ substringκ³Ό lengthλ₯Ό μ΄μš©ν•˜μ—¬ λ‹€μŒκ³Ό 같이 λ§Œλ“€μ—ˆλ‹€. ${fn:substring(id, 0, length-3) } κ·ΈλŸ¬λ‚˜ lengthλ₯Ό μΈμ‹ν•˜μ§€ λͺ»ν•˜λŠ” λ¬Έμ œκ°€ λ°œμƒν–ˆλ‹€.

πŸ’₯ Cause

  • jstl둜 ν•¨μˆ˜λ₯Ό μž‘μ„±ν•˜λ©΄μ„œ length의 λŒ€μƒμ„ 지정해 주지 μ•Šμ•˜λ˜ 것이 μ›μΈμ΄μ—ˆλ‹€.

πŸ’‘ Solution

  • id의 lengthλ₯Ό κ΅¬ν•˜λŠ” ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‹€μŒκ³Ό 같이 ν•΄κ²°ν•˜μ˜€λ‹€. ${fn:substring(id, 0, fn:length(id)-3) }

Issue6 - [μž…μ°°] 쿼리 쑰건절 μœ„μΉ˜

🚨 Situation

  • νšŒμ›μ΄ μ‹€μ œλ‘œ μž…μ°°ν•œ λ‚΄μ—­κ³Ό λ§ˆμ΄νŽ˜μ΄μ§€μ˜ μž…μ°° 내역이 μΌμΉ˜ν•˜μ§€ μ•ŠλŠ” 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€. 경맀 μƒνƒœμ— λ”°λ₯Έ 필터링을 μ μš©ν–ˆμ„ λ•Œ, νšŒμ›μ΄ μž…μ°°ν•œ 내역이 μžˆμŒμ—λ„ ν™”λ©΄μ—λŠ” 내역이 보이지 μ•Šμ•˜λ‹€.

πŸ’₯ Cause

  • νŽ˜μ΄μ§•μ„ μœ„ν•΄μ„œ fromμ ˆμ— μ„œλΈŒμΏΌλ¦¬λ₯Ό μ΄μš©ν•˜μ—¬ limit을 μ μš©ν•˜μ˜€λ‹€. 이 μ„œλΈŒμΏΌλ¦¬ μ•ˆμͺ½μœΌλ‘œ νšŒμ›μ„ νŠΉμ •ν•˜λŠ” where 쑰건절이 ν¬ν•¨λ˜μ–΄ μžˆμ§€ μ•Šμ•˜λ˜ 것이 μ›μΈμ΄μ—ˆλ‹€.

πŸ’‘ Solution

  • νšŒμ›μ„ νŠΉμ •ν•˜λŠ” whereμ ˆμ„ μ„œλΈŒμΏΌλ¦¬ μ•ˆμͺ½μœΌλ‘œ μ΄λ™μ‹œμΌœ ν•΄κ²°ν•˜μ˜€λ‹€.

πŸ‘¨β€πŸ’» Members

Β nameΒ  work contact
μ•ˆμ€μ†” ν”„λ‘œμ νŠΈ 일정 관리 / 경맀 μž…μ°° CRUD / 거래 ν›„κΈ° CRUD / 이미지 파일 첨뢀 κΈ°λŠ₯ / Github 관리 / μ„œλ²„ 도메인 μ—°κ²° dev.eunsol@gmail.com
μ΄μš°μ§„ νšŒμ› κ°„ 1:1 μ±„νŒ… κΈ°λŠ₯ / κ΄€μ‹¬μƒν’ˆ CRUD / μ‹ κ³  κ²Œμ‹œκΈ€ CRUD / ABOUT 메뉴 λ””μžμΈ 24864@naver.com
μ΄μš΄μ‚° νšŒμ› κ΄€λ ¨ CRUD / μƒν’ˆ 데이터 μˆ˜μ§‘ sleeus1007@naver.com
μ •μˆ˜μ—° 질문 λ‹΅λ³€ CRUD / 전체 νŽ˜μ΄μ§€ CSS κ΅¬ν˜„ dev.suyeon@gmail.com
μ΅œμ„±μ—΄ 경맀 μƒν’ˆ CRUD / 경맀 μ’…λ£Œ μŠ€μΌ€μ€„λŸ¬ κ΅¬ν˜„ / κ²Œμ‹œκΈ€ 검색 ν•„ν„° tjdfuf802@naver.com

About

πŸ’Έ 쀑고 개인 경맀 ν”„λ‘œμ νŠΈ

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published