Files
sodalive-ios/docs/20260316_크리에이터커뮤니티게시물고정기능.md

5.3 KiB

크리에이터 커뮤니티 게시물 고정 기능 구현

  • API /creator-community/fixed (PUT) 추가
  • UpdateCommunityPostFixedRequest DTO 추가 및 Repository 연결
  • 리스트 모드 보조 메뉴에 고정/해제 항목 추가
  • 그리드 모드 길게 터치 시 보조 메뉴 표시 연결
  • 보조 메뉴를 BottomSheet 형태로 표시
  • 고정 상태에 따라 문구 분기 (최상단에 고정 / 고정 해제)
  • 고정 게시물 우측 상단 핀 표시를 그리드 모드에만 적용
  • 그리드 모드 게시물 이미지를 1:1 비율로 표시
  • 진단/빌드/테스트 수행 및 결과 기록

검증 기록

  • lsp_diagnostics (수정 파일 전체): SourceKit 환경에서 외부 모듈(Moya, Kingfisher) 인식 오류가 지속되어 진단 신뢰성이 낮아 빌드 결과로 최종 검증함.
  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build: 성공 (** BUILD SUCCEEDED **).
  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build: 성공 (** BUILD SUCCEEDED **).
  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test: 실패 (Scheme SodaLive is not currently configured for the test action.).
  • xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test: 실패 (Scheme SodaLive-dev is not currently configured for the test action.).
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build && xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build: 성공 (** BUILD SUCCEEDED ** 2회).
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test; xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test: 두 스킴 모두 test action 미구성으로 실패.
  • (요구사항 조정) 리스트 모드 핀 오버레이 제거, 그리드 모드(CreatorCommunityAllGridItemView)만 핀 표시 유지.
  • (요구사항 조정) 그리드 모드 셀 내부 콘텐츠에 frame(maxWidth: .infinity, maxHeight: .infinity)를 적용해 1:1 비율 셀에서 이미지가 항상 정사각형 기준으로 표시되도록 고정.
  • (요구사항 조정) gridContentView에서 셀 프레임을 width = (containerWidth - 2) / 3, height = width로 직접 지정해 긴 이미지여도 세로가 가로를 넘지 않도록 고정.
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build && xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build: 성공 (** BUILD SUCCEEDED ** 2회).
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test; xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test: 두 스킴 모두 test action 미구성으로 실패.
  • (요구사항 조정) 그리드 셀의 aspectRatio 기반 계산을 제거하고, CreatorCommunityAllGridItemView 호출부에서 정사각형 고정 프레임을 직접 부여.
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build && xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build: 성공 (** BUILD SUCCEEDED ** 2회).
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test; xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test: 두 스킴 모두 test action 미구성으로 실패.
  • (요구사항 조정) 바깥 폭(containerWidth) 기반 고정 계산을 제거하고, LazyVGrid 컬럼 폭에 맞춰 CreatorCommunityAllGridItemView 내부 aspectRatio(1, .fit)로 정사각형을 강제해 옆 셀 침범을 방지.
  • (요구사항 조정) 정사각형은 LazyVGrid 컬럼 자체 폭 기준으로만 계산되도록 gridContentView(containerWidth:)gridItemLength를 제거해 긴 원본 비율 이미지의 옆 셀 침범을 차단.
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build && xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build: 성공 (** BUILD SUCCEEDED ** 2회).
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test; xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test: 두 스킴 모두 test action 미구성으로 실패.
  • (요구사항 조정) GeometryReader 내부 실제 그리드 폭 기준으로 gridItemLength = (width - 2) / 3를 계산하고 각 아이템에 frame(width: gridItemLength, height: gridItemLength)를 적용해 1:1을 강제.
  • (요구사항 조정) 아이템 내부 중복 비율 제약(aspectRatio)을 제거해 부모 고정 프레임과 충돌하지 않도록 정리.
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build && xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" -configuration Debug build: 성공 (** BUILD SUCCEEDED ** 2회).
  • (추가 반영) xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" test; xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive-dev" test: 두 스킴 모두 test action 미구성으로 실패.