Skip to content

πŸš€[κΈ°λŠ₯κ°œμ„ ][κ΄€λ¦¬μž][λ¬Όν’ˆκ΄€λ¦¬][μ±„νŒ…] κ΄€λ¦¬μž μ‚­μ œ λ¬Όν’ˆμ— λŒ€ν•œ μ±„νŒ…λ°© UX 및 μ•Œλ¦Ό 고도화 #629

@Cassiiopeia

Description

@Cassiiopeia

πŸ“ ν˜„μž¬ 문제점

  • 이슈 ❗[버그][κ΄€λ¦¬μž][λ¬Όν’ˆκ΄€λ¦¬] λ¬Όν’ˆ μ‚­μ œ μ‹œ trade_request_history FK μ œμ•½μ‘°κ±΄ μœ„λ°˜μœΌλ‘œ 500 μ—λŸ¬ λ°œμƒΒ #627(Phase 1)μ—μ„œ κ΄€λ¦¬μž λ¬Όν’ˆ μ‚­μ œλ₯Ό Hard Delete β†’ Soft Delete둜 μ „ν™˜ν•˜μ—¬ FK μ œμ•½ μœ„λ°˜ 문제λ₯Ό ν•΄κ²°ν•˜κ³ , κ³ μ • 문ꡬ("κ΄€λ¦¬μžμ— μ˜ν•΄ λ¬Όν’ˆμ΄ μ‚­μ œλ˜μ—ˆμŠ΅λ‹ˆλ‹€") ν˜•νƒœμ˜ μž„μ‹œ μ•Œλ¦Όλ§Œ λ°œμ†‘ν•˜λ„λ‘ κ΅¬ν˜„λ¨
  • 이에 따라 λ‹€μŒκ³Ό 같은 후속 μž‘μ—…μ΄ ν•„μš”ν•¨
    • μ‚­μ œλœ λ¬Όν’ˆμ΄ μ—°κ²°λœ μ±„νŒ…λ°©μ— μ§„μž…ν–ˆμ„ λ•Œ, κΈ°μ‘΄ λŒ€ν™”λŠ” λ³΄μ‘΄λ˜μ§€λ§Œ λ¬Όν’ˆ 정보 μ˜μ—­μ΄ μ–΄λ–»κ²Œ ν‘œμ‹œλ˜μ–΄μ•Ό ν•˜λŠ”μ§€ UXκ°€ μ •μ˜λ˜μ§€ μ•ŠμŒ
    • μ‚­μ œλœ λ¬Όν’ˆμ˜ μ±„νŒ…λ°©μ—μ„œ μ—¬μ „νžˆ λ©”μ‹œμ§€ 전솑이 κ°€λŠ₯ν•˜μ—¬, μ‚¬μš©μžκ°€ μ‚­μ œ 사싀을 μΈμ§€ν•˜μ§€ λͺ»ν•œ 채 λŒ€ν™”λ₯Ό μ΄μ–΄κ°ˆ 수 있음
    • μ•Œλ¦Ό 본문이 κ³ μ • 문ꡬ라 μ‚¬μš©μžκ°€ μ‚­μ œ μ‚¬μœ λ₯Ό μ•Œ 수 μ—†μ–΄ CS 문의 λ°œμƒ 우렀
    • μ€‘κ³ κ±°λž˜ ν”Œλž«νΌ νŠΉμ„±μƒ 거래/μ±„νŒ… 기둝은 μ „μžμƒκ±°λž˜λ²•/κ°œμΈμ •λ³΄λ³΄ν˜Έλ²•μ— λ”°λ₯Έ 보쑴 μ˜λ¬΄κ°€ μžˆμœΌλ‚˜, ν˜„μž¬ 데이터 보쑴 정책이 λ¬Έμ„œν™”λ˜μ–΄ μžˆμ§€ μ•ŠμŒ

πŸ› οΈ ν•΄κ²° λ°©μ•ˆ / μ œμ•ˆ κΈ°λŠ₯

  • μ±„νŒ…λ°© λ‚΄λΆ€ UX κ°œμ„ 

    • μ‚­μ œλœ λ¬Όν’ˆμ΄ μ—°κ²°λœ μ±„νŒ…λ°© μ§„μž… μ‹œ, 상단 λ¬Όν’ˆ 정보 μ˜μ—­μ— "κ΄€λ¦¬μžμ— μ˜ν•΄ μ‚­μ œλœ λ¬Όν’ˆμž…λ‹ˆλ‹€" ν”Œλ ˆμ΄μŠ€ν™€λ” ν‘œμ‹œ
    • κΈ°μ‘΄ λŒ€ν™” λ‚΄μš©μ€ κ·ΈλŒ€λ‘œ 보쑴 (μ‚¬μš©μžκ°€ λ§₯락 확인 κ°€λŠ₯)
    • Phase 1μ—μ„œ Response DTO에 λ…ΈμΆœλœ item.isDeleted ν”Œλž˜κ·Έλ₯Ό 기반으둜 ν”„λ‘ νŠΈμ—μ„œ UI λΆ„κΈ° 처리
  • μ±„νŒ…λ°© λ©”μ‹œμ§€ 전솑 차단

    • λ©”μ‹œμ§€ 전솑 μ‹œ μ—°κ²°λœ λ¬Όν’ˆμ˜ μ‚­μ œ μ—¬λΆ€λ₯Ό μ²΄ν¬ν•˜μ—¬, μ‚­μ œλœ 경우 전솑 차단
    • 차단 μ‹œ "μ‚­μ œλœ λ¬Όν’ˆμ΄λΌ 더 이상 λŒ€ν™”ν•  수 μ—†μŠ΅λ‹ˆλ‹€" μ•ˆλ‚΄ λ°˜ν™˜
  • μ•Œλ¦Ό 고도화

    • κ³ μ • 문ꡬ μ•Œλ¦Όμ„ μΉ΄ν…Œκ³ λ¦¬ 기반 μ‚¬μœ  ν‘œμ‹œλ‘œ ꡐ체
    • μ‚­μ œ μ‚¬μœ  μΉ΄ν…Œκ³ λ¦¬ λ„μž… (거래 κΈˆμ§€ ν’ˆλͺ©, 사기 μ˜μ‹¬, λΆ€μ μ ˆν•œ μ½˜ν…μΈ , μ €μž‘κΆŒ μΉ¨ν•΄, μ‹ κ³  λˆ„μ , 기타)
    • Admin μ‚­μ œ API에 μ‚­μ œ μ‚¬μœ (ν•„μˆ˜) 및 상세 μ‚¬μœ (선택) νŒŒλΌλ―Έν„° μΆ”κ°€
    • μ•Œλ¦Ό λ³Έλ¬Έ 예: "νšŒμ›λ‹˜μ˜ λ¬Όν’ˆ '{λ¬Όν’ˆλͺ…}'이(κ°€) '{μΉ΄ν…Œκ³ λ¦¬}' μ‚¬μœ λ‘œ μ‚­μ œλ˜μ—ˆμŠ΅λ‹ˆλ‹€."
    • 상세 μ‚¬μœ λŠ” κ΄€λ¦¬μž 이λ ₯ μ‘°νšŒμ—μ„œλ§Œ λ…ΈμΆœ, μ‚¬μš©μžμ—κ²ŒλŠ” λΉ„κ³΅κ°œ (민감 정보 보호)
  • 데이터 보쑴 μ •μ±… 수립

    • μ „μžμƒκ±°λž˜λ²• κΈ°μ€€ 거래/계약 기둝 5λ…„ 보쑴 μ •μ±… λ¬Έμ„œν™”
    • κ°œμΈμ •λ³΄μ²˜λ¦¬λ°©μΉ¨ 반영 κ²€ν† 
    • 보쑴 κΈ°κ°„ κ²½κ³Ό λ°μ΄ν„°μ˜ 읡λͺ…ν™” 및 파기 배치 μŠ€μΌ€μ€„λŸ¬ 섀계
    • MongoDB μ±„νŒ… λ©”μ‹œμ§€ TTL λ˜λŠ” 배치 기반 만료 처리 방식 섀계

βš™οΈ μž‘μ—… λ‚΄μš©

  • μ±„νŒ…λ°© Response DTO에 μ‚­μ œ λ¬Όν’ˆ ν‘œμ‹œλ₯Ό μœ„ν•œ ν•„λ“œ 점검 및 보강
  • μ±„νŒ…λ°© λ©”μ‹œμ§€ 전솑 API/WebSocket μ—”λ“œν¬μΈνŠΈμ—μ„œ λ¬Όν’ˆ μ‚­μ œ μ—¬λΆ€ 검증 둜직 μΆ”κ°€
  • μ‚­μ œ μ‚¬μœ  μΉ΄ν…Œκ³ λ¦¬ enum μ‹ κ·œ λ„μž… 및 Item 엔티티에 μ‚­μ œ μ‚¬μœ /상세 μ‚¬μœ  ν•„λ“œ μΆ”κ°€
  • Flyway λ§ˆμ΄κ·Έλ ˆμ΄μ…˜: item ν…Œμ΄λΈ”μ— μ‚­μ œ μ‚¬μœ  κ΄€λ ¨ 컬럼 μΆ”κ°€
  • Admin λ¬Όν’ˆ μ‚­μ œ API에 μ‚­μ œ μ‚¬μœ /상세 μ‚¬μœ  νŒŒλΌλ―Έν„° μΆ”κ°€ (AdminRequest ν™•μž₯)
  • AdminControllerDocs에 @ApiChangeLog μΆ”κ°€ 및 @Operation description μ—…λ°μ΄νŠΈ
  • μ•Œλ¦Ό λ°œμ†‘ λ‘œμ§μ„ μΉ΄ν…Œκ³ λ¦¬ 기반 동적 λ³Έλ¬Έ 생성 λ°©μ‹μœΌλ‘œ ꡐ체
  • 데이터 보쑴 μ •μ±… λ¬Έμ„œ μ‹ κ·œ μž‘μ„± (docs/ ν•˜μœ„)

πŸ”— κ΄€λ ¨ 이슈

πŸ™‹β€β™‚οΈ λ‹΄λ‹Ήμž

  • λ°±μ—”λ“œ: @Chuseok22
  • ν”„λ‘ νŠΈμ—”λ“œ: 이름
  • λ””μžμΈ: 이름

Metadata

Metadata

Assignees

Labels

μž‘μ—…μ „μž‘μ—… μ‹œμž‘ μ „ μ€€λΉ„ μƒνƒœ

Type

No type

Projects

Status

μž‘μ—…μ „

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions