Skip to content

fix: Railway 이전에 맞춘 파일 URL·블로그 미리보기 및 프로젝트 상세 캐러셀 - #335

Open
dongmin0204 wants to merge 5 commits into
mainfrom
fix/railway-file-url
Open

dongmin0204 wants to merge 5 commits into
mainfrom
fix/railway-file-url

Conversation

@dongmin0204

Copy link
Copy Markdown
Contributor

무엇

AWS 계정 종료로 백엔드·파일 저장소를 Railway(Railway Bucket)로 옮기면서 필요한 프론트 수정과, 블로그/프로젝트 페이지 개선입니다. 아래 커밋은 이미 운영(Vercel)에 배포되어 동작 중인 코드와 같습니다.

커밋 내용
05fb8e3 프로필 이미지 URL을 presignedUrl.split('?')[0] 대신 백엔드 응답의 fileUrl로 저장, turbo.json env에 VITE_S3_BASE_URL 추가
1db5136 블로그 카드 미리보기를 corsproxy 대신 백엔드 저장값(title/description/thumbnailUrl)으로 표시, 카드 그리드 간격 정리
7889028 프로젝트 상세 이미지를 캐러셀(좌우 버튼·점·스와이프)로 넘겨 볼 수 있게 변경

왜

  • Railway Bucket은 private이라 presigned URL의 쿼리를 잘라낸 주소로는 이미지를 볼 수 없습니다. 백엔드의 /api/s3/files/**가 presigned GET으로 302 redirect 합니다.
  • turbo strict env 모드에서 VITE_S3_BASE_URL이 빠져 farminglog 빌드에 주입되지 않았습니다.
  • corsproxy 무료 한도(월 1만 요청)를 방문자마다 블로그 카드 수만큼 소모하던 구조였습니다.
  • 카드 고정폭 250px이 그리드 셀(약 246px)을 넘쳐 열 간격을 잡아먹었습니다.

리뷰 포인트

  • 동작 변경: 블로그 목록이 더 이상 useLinkPreviewStore(프록시)를 쓰지 않습니다. 스토어·훅 파일은 남겨 두었으니 필요 없으면 후속 PR에서 정리해 주세요.
  • 백엔드 PR(HomePage-BE feat/railway-bucket)의 title/description/thumbnailUrl, imageUrls, fileUrl 응답 필드에 의존합니다. 해당 백엔드는 이미 api.farmsystem.kr에 배포되어 있습니다.

검증

  • apps/website, apps/farminglog 각각 tsc -b && vite build 통과
  • 운영 사이트에서 확인: 블로그 44개 썸네일 표시, 카드 간격 24px 균일(측정), 프로젝트 상세 캐러셀 4장 순서대로 넘어감

🤖 Generated with Claude Code

dongmin0204 and others added 5 commits October 14, 2026 12:11
- 기존: presignedUrl의 쿼리를 잘라 객체 URL로 사용 → Railway Bucket은 private이라 이 URL로 조회 불가
- 이제: 백엔드 응답의 fileUrl(/api/s3/files/<key>, presigned GET으로 302) 사용
- turbo strict env 모드에서 VITE_S3_BASE_URL이 빠져 farminglog 빌드에 주입되지 않던 문제 수정

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- 기존: 방문자마다 corsproxy로 블로그 HTML을 받아 OG 태그 추출 (무료 한도 월 1만 건)
- 이제: 백엔드가 승인된 블로그의 OG 정보·썸네일을 저장해 API(title/description/thumbnailUrl)로 내려줌
- 카드 고정폭(250px)이 그리드 셀(약 246px)을 넘쳐 열 간격을 잡아먹던 문제 → 카드 width 100%
- 그리드 열/행 간격을 clamp(12px, 2vw, 24px)로 통일 (블로그·프로젝트 공통)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- 썸네일과 imageUrls를 한 캐러셀로 묶어 좌우 버튼·점 네비게이션·모바일 스와이프 지원
- imageUrls가 없으면 기존 bodyImageUrl 한 장으로 대체, 이미지가 1장이면 버튼·점 숨김
- 썸네일 img에 object-fit: cover를 넣어 비율이 다른 사진이 찌그러지지 않게 함

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- 기존: 소식 상세가 썸네일 1장 + 나머지 사진 정사각 그리드로 표시됨
- 이제: 썸네일과 사진을 한 캐러셀로 묶어 좌우 버튼·점·스와이프로 넘겨 봄, 이미지 클릭 시 기존 확대 모달 유지
- 인스타 포스터(1:1, 4:5)가 잘리지 않도록 정사각 프레임에 object-fit: contain
- 프로젝트 상세의 인라인 캐러셀을 공용 ImageCarousel로 분리해 두 화면이 함께 사용 (프로젝트 화면 모양은 동일)
- 변경으로 쓰이지 않게 된 DetailLayout의 Thumbnail/ImageGallery/Image 스타일 제거

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
- 2025년 3월 모집이 끝났는데 '2025년 3월 13일까지 모집 예정', '언제 모집하나요? 2025년 3월 4일부터 13일까지…' 문구가 남아 있었음
- 지원하기 아래 안내 문구와 지원 요건의 '언제 모집하나요?' 항목 삭제 (안 쓰이게 된 ApplyDescription 스타일 포함)
- 모집 기간이 아닐 때 뜨는 팝업 내용 '3월 13일까지 지원 가능해요.' → '다음 모집 일정은 소식에서 안내해 드릴게요.' (홈·하단·헤더 4곳)

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant