---
title: "📝 260530 — 프로필 진입점·설정 구조 개편 + 아바타 영속/실시간 + 피드 표시 버그 수정"
category: "workreport"
parent: "Claude Code 작업보고"
document_type: "workreport"
source_status: "generated"
knowledge_group: "03_history"
priority: "High"
purpose: "데스크탑/모바일 프로필·설정 진입 구조 개편, 프로필 아바타 저장·실시간 표시 정상화, SNS 피드 게시물 미표시(profiles FK 임베드) 버그 수정. PR #2~#10."
read_when: ["기능파악","UI작업","최신상태복구"]
updated: "2026-05-30"
work_timestamp: "20260530_174900"
source_of_truth: "https://dallog-tools.hansbridge.co.kr/"
---

# 달록 작업보고 — 프로필 진입점·설정 구조 개편 + 아바타 영속/실시간 + 피드 표시 버그 수정

- **작업 발생일**: 2026-05-29 ~ 2026-05-30
- **레포**: 달록 본레포 (`dallog_git`)
- **컨텍스트 요약**: 데스크탑/모바일의 프로필·설정 진입 구조를 개편하고, 프로필 아바타(사진) 저장·표시를 정상화했으며, SNS 피드 게시물이 보이지 않던 버그를 수정했다.

---

## 1. 프로필 진입점·설정 구조 개편 (데스크탑/모바일)

사장님 지시(추가지시 1·3·4·5·6·7)에 따라 진입 구조를 다음과 같이 바꿨다.

- **[데스크탑]** 사이드바 nav의 '프로필' 메뉴 제거 → **하단 계정 섹션**을 프로필 진입점으로 전환. 클릭 시 `/profile` 이동.
- **[공통]** 계정 아바타 = 사용자가 설정한 프로필 이미지(없으면 이름 첫 글자 폴백), 이름 = `display_name`.
- **[데스크탑]** 등급('관리자' 자리) → 아이디 `@handle` 표시.
- **[데스크탑]** 사이드바 '설정' 아코디언 제거 → 설정은 프로필 화면 우상단으로 이동(피드·프로필편집·설정).
- **[모바일]** 헤더 우상단 설정 버튼 제거 → 프로필 화면 우상단에 설정 배치. 하단 탭바 프로필 = 아바타 + 이름.
- **설정 표시 방식(확정)**: 프로필 화면에서 '설정' 클릭 시 우측에 **풀높이(full-cover) 인라인 설정 패널**이 펼쳐지고(모바일 슬라이드 메뉴와 동일 톤·6개 섹션 그룹: 운영 / 계정·로그), 항목 클릭 시 해당 설정 섹션으로 이동. 설정 페이지 자체의 섹션 메뉴도 동일한 우측 풀높이 사이드바 형태로 통일.
- 마스터 로컬세션 등 프로필 미가입 계정은 기존 폴백(마스터/관리자) 유지.

> 비개발 해설 — 예전엔 좌측 메뉴에 '프로필'과 '설정'이 따로 있었는데, 이제 **맨 아래 내 계정 칸이 곧 프로필 입구**가 되고, **설정은 프로필 안에 들어간 하위 메뉴**가 됐습니다. 설정을 누르면 오른쪽에 위에서 아래까지 꽉 찬 메뉴가 모바일처럼 펼쳐집니다.

관련 PR(세션 내 발행 순서): #2(진입점 통합·설정 하위화) → #3(설정 페이지 데스크탑 섹션 메뉴 복원) → #4(우측 인라인 설정 패널) → #5(패널 풀높이화) → #6(설정 페이지 메뉴도 우측 풀높이로 통일).

---

## 2. 프로필 아바타(사진) 정상화

- **avatars 스토리지 버킷 생성** — 프로필 사진 업로드가 "Bucket not found"로 실패하던 문제 해소. Supabase에 `avatars` public 버킷 + 권한 정책 4종(본인 폴더 insert/update/delete, 공개 select) 적용·검증 완료. (SQL은 골든셋 ⑥로 등록: `docs/sql/golden_set/260530_아바타스토리지_필수보존.sql`, 등록대장 갱신)
- **업로드 즉시 영속(PR #8)** — 기존엔 사진 업로드 시 스토리지에만 올라가고 `profiles.avatar_url` 반영은 '저장' 버튼 시점이라, 미저장 새로고침 시 사진이 풀리던 문제 수정. 업로드 성공 직후 즉시 프로필에 저장.
- **사이드바/하단탭 실시간 갱신(PR #9)** — `upsertProfile` 성공 시 `PROFILE_EVENT` 발행 → Layout이 구독해 프로필 재조회. 새로고침 없이 사이드바·모바일 하단탭의 아바타·이름이 즉시 반영.

> 비개발 해설 — 사진 올릴 곳(저장공간)이 아예 없어서 실패하던 걸 만들어줬고, 이제 **사진을 올리면 그 즉시 저장**되고 **왼쪽/아래 작은 프로필 사진도 새로고침 없이 바로** 바뀝니다.

---

## 3. SNS 피드 게시물 표시 버그 수정 (PR #10)

- **증상**: 새 게시(예: "테스트")가 에러 없이 올라가는데도 타임라인·프로필 '최근 게시물'·댓글·알림이 비어 보임.
- **원인**: `posts.user_id` / `post_comments.user_id` / `notifications.actor_id`가 `profiles`가 아니라 `auth.users`를 FK 참조해, PostgREST의 `profiles!*_fkey` 임베드가 "관계 없음"으로 쿼리 전체가 실패 → 빈 배열 반환. (insert 자체는 성공하므로 실패 알림도 안 뜸)
- **수정**: 프로필을 별도 조회해 코드에서 병합(`fetchProfilesByIds`), 단일 게시물용 `getPost` 신설. 피드·댓글·알림·게시물 상세 4곳 모두 적용. DB 마이그레이션 불필요.
- **결과**: 기존에 쌓여 있던 게시물까지 함께 정상 노출됨을 사장님이 확인.

> 비개발 해설 — 글은 원래부터 잘 저장되고 있었는데, **목록을 불러오는 쿼리가 작성자 정보를 잘못된 방식으로 붙이려다 통째로 실패**하고 있었습니다. 붙이는 방식을 바꾸니 그동안 안 보이던 글들이 한꺼번에 떴습니다.

---

## 4. 잔여/후속

- 보류 항목(기존 로드맵 유지): 이메일 컨펌 도입, 마스터/CS 계정 RLS 재설계.
- 이번 작업 관련 미해결 사항 없음.
