Visitar URL original
[Chore] ci/cd sudo 권한 부여 by Wlsflfh · Pull Request #288 · woowacourse-teams/2026-rilog · GitHub
Skip to content

[Chore] ci/cd sudo 권한 부여 - #288

Merged
Wlsflfh merged 131 commits into
productionfrom
develop
Aug 21, 2026
Merged

Wlsflfh merged 131 commits into
productionfrom
develop

Conversation

@Wlsflfh

@Wlsflfh Wlsflfh commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

..

JetProc and others added 30 commits August 9, 2026 19:34
* chore: 프론트엔드 공통 실행·검증 환경 구성

* docs: 프론트엔드 개발 및 협업 기준 문서화

* chore: 미사용 코드와 빈 줄 검사 강화
* design: 공통 타이포그래피 토큰 정의

* design: 색상과 버튼 상태 토큰 정의

* design: 전역 스타일의 의미 기반 토큰 연결

* chore: Tailwind CSS 편집기 진단 설정 공유

* design: 버튼 토큰의 유틸리티 연동

버튼의 상태·색상·크기 토큰을 Tailwind theme namespace로 옮겨 공용 컴포넌트에서 이름 있는 유틸리티로 조합할 수 있게 한다.

Constraint: Tailwind CSS v4 theme namespace를 통해 유틸리티를 생성해야 한다
Rejected: :root 버튼 변수 유지 | 컴포넌트에서 일관된 유틸리티 조합 불가
Confidence: high
Scope-risk: narrow
Directive: 버튼 상태와 foreground 토큰은 Button 컴포넌트 variant 조합에서 사용한다
Tested: Prettier, ESLint, TypeScript, Vitest, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 실제 Button 컴포넌트의 키보드 상호작용

* design: focus ring 토큰의 의미 명확화

키보드 focus에 사용하는 색상임을 이름에 드러내고 Tailwind ring 유틸리티와 동일한 의미로 연결한다. 버튼 토큰 변경으로 참조가 사라진 radius mapping도 함께 제거한다.

Constraint: 모든 인터랙션 요소가 공통 focus 색상을 사용해야 한다
Rejected: --focus 이름 유지 | 색상 용도와 적용 대상이 모호함
Confidence: high
Scope-risk: narrow
Directive: 신규 interactive component는 버튼 전용 별칭 대신 ring-focus-ring을 사용한다
Tested: Prettier, ESLint, TypeScript, Vitest, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 실제 브라우저 keyboard focus 시각 점검

* design: 숫자형 타이포그래피 스케일 정리

의미가 겹치는 본문·라벨 토큰을 크기 중심의 숫자 스케일로 통합해 역할별 행간과 자간을 컴포넌트에서 조합할 수 있게 한다.

Constraint: 현재 Figma에서 확인된 14px, 16px, 20px, 64px 위계를 유지해야 한다
Rejected: 역할별 글자 크기 토큰 유지 | 같은 크기의 중복 선언과 확장 기준이 불명확함
Confidence: high
Scope-risk: narrow
Directive: 새 글자 크기는 실제 디자인 사용처가 확인될 때만 숫자 스케일에 추가한다
Tested: Prettier, ESLint, TypeScript, Vitest, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 미구현 화면에서의 시각적 위계 검토

* design: 역할 기반 타이포그래피 토큰 체계 확장

기존 숫자형 글자 크기 토큰을 역할 기반의 caption, label, body, title, heading, display 체계로 재구성해 화면 코드가 의도를 드러내는 유틸리티를 사용할 수 있게 한다.

Constraint: Tailwind CSS v4 text namespace와 숫자형 단계 명명 규칙을 유지해야 한다
Rejected: 기존 숫자형 scale 유지 | 동일한 크기의 역할과 사용 맥락을 표현할 수 없음
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: 신규 타이포그래피는 기존 역할을 재사용하고, 실제 사용처가 확인될 때만 단계를 추가한다
Tested: Prettier, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 구현 예정 화면에서의 시각적 위계 점검

* design: 홈 화면에 의미 기반 타이포그래피 적용

홈 화면의 기본 Tailwind 글자 크기를 역할 기반 토큰으로 바꿔 디자인 시스템이 정의한 행간과 자간을 일관되게 적용한다.

Constraint: 페이지 제목과 본문은 앞선 타이포그래피 토큰 커밋을 소비해야 한다
Rejected: text-4xl과 text-base 유지 | 화면마다 기본 scale과 의미 기반 토큰이 혼재함
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: 신규 화면은 기본 Tailwind font-size 대신 의미 기반 text 토큰을 우선 사용한다
Tested: Prettier, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 브라우저별 실제 렌더링의 시각적 위계 점검
* chore: config 폴더 제거

* chore: api client 테스트를 위한 의존성 설치

* feature: 토큰 재발급 로직을 포함하는 api client 모듈 구현

* feature: 토큰 재발급 실패 시 유저 데이터 초기화를 위한 구독발행 모델 구축

* style: import 순서 정렬

* chore: vitest config 내 alias 대상 상대경로 수정

* refactor: 토큰 재발급 실패 시 초기화 필요한 쿼리의 키를 그루핑

* feature: 토큰 재발급 실패 시 쿼리 초기화를 트리거하는 훅 컴포넌트 구현

* feature: QueryProvider 구현 및 적용

* chore(apiClient): tokenProvider 관련 TODO 추가

* chore(playwright.config): 대상 디렉터리 경로 수정

* chore: .env.example 파일 추가

* docs: 작업 범위별 브랜치 명명 기준 통일 (#17)

* [Chore] #14 프론트엔드 디자인 토큰 구성 (#18)

* design: 공통 타이포그래피 토큰 정의

* design: 색상과 버튼 상태 토큰 정의

* design: 전역 스타일의 의미 기반 토큰 연결

* chore: Tailwind CSS 편집기 진단 설정 공유

* design: 버튼 토큰의 유틸리티 연동

버튼의 상태·색상·크기 토큰을 Tailwind theme namespace로 옮겨 공용 컴포넌트에서 이름 있는 유틸리티로 조합할 수 있게 한다.

Constraint: Tailwind CSS v4 theme namespace를 통해 유틸리티를 생성해야 한다
Rejected: :root 버튼 변수 유지 | 컴포넌트에서 일관된 유틸리티 조합 불가
Confidence: high
Scope-risk: narrow
Directive: 버튼 상태와 foreground 토큰은 Button 컴포넌트 variant 조합에서 사용한다
Tested: Prettier, ESLint, TypeScript, Vitest, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 실제 Button 컴포넌트의 키보드 상호작용

* design: focus ring 토큰의 의미 명확화

키보드 focus에 사용하는 색상임을 이름에 드러내고 Tailwind ring 유틸리티와 동일한 의미로 연결한다. 버튼 토큰 변경으로 참조가 사라진 radius mapping도 함께 제거한다.

Constraint: 모든 인터랙션 요소가 공통 focus 색상을 사용해야 한다
Rejected: --focus 이름 유지 | 색상 용도와 적용 대상이 모호함
Confidence: high
Scope-risk: narrow
Directive: 신규 interactive component는 버튼 전용 별칭 대신 ring-focus-ring을 사용한다
Tested: Prettier, ESLint, TypeScript, Vitest, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 실제 브라우저 keyboard focus 시각 점검

* design: 숫자형 타이포그래피 스케일 정리

의미가 겹치는 본문·라벨 토큰을 크기 중심의 숫자 스케일로 통합해 역할별 행간과 자간을 컴포넌트에서 조합할 수 있게 한다.

Constraint: 현재 Figma에서 확인된 14px, 16px, 20px, 64px 위계를 유지해야 한다
Rejected: 역할별 글자 크기 토큰 유지 | 같은 크기의 중복 선언과 확장 기준이 불명확함
Confidence: high
Scope-risk: narrow
Directive: 새 글자 크기는 실제 디자인 사용처가 확인될 때만 숫자 스케일에 추가한다
Tested: Prettier, ESLint, TypeScript, Vitest, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 미구현 화면에서의 시각적 위계 검토

* design: 역할 기반 타이포그래피 토큰 체계 확장

기존 숫자형 글자 크기 토큰을 역할 기반의 caption, label, body, title, heading, display 체계로 재구성해 화면 코드가 의도를 드러내는 유틸리티를 사용할 수 있게 한다.

Constraint: Tailwind CSS v4 text namespace와 숫자형 단계 명명 규칙을 유지해야 한다
Rejected: 기존 숫자형 scale 유지 | 동일한 크기의 역할과 사용 맥락을 표현할 수 없음
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: 신규 타이포그래피는 기존 역할을 재사용하고, 실제 사용처가 확인될 때만 단계를 추가한다
Tested: Prettier, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 구현 예정 화면에서의 시각적 위계 점검

* design: 홈 화면에 의미 기반 타이포그래피 적용

홈 화면의 기본 Tailwind 글자 크기를 역할 기반 토큰으로 바꿔 디자인 시스템이 정의한 행간과 자간을 일관되게 적용한다.

Constraint: 페이지 제목과 본문은 앞선 타이포그래피 토큰 커밋을 소비해야 한다
Rejected: text-4xl과 text-base 유지 | 화면마다 기본 scale과 의미 기반 토큰이 혼재함
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: 신규 화면은 기본 Tailwind font-size 대신 의미 기반 text 토큰을 우선 사용한다
Tested: Prettier, Next.js build, Tailwind 유틸리티 생성 확인
Not-tested: 브라우저별 실제 렌더링의 시각적 위계 점검

* chore(createApiClient): 토큰 재발급 분기 처리 관련 TODO 추가

---------

Co-authored-by: JetProc <46674347+JetProc@users.noreply.github.com>
* feature: 서비스 전역 버튼 인터페이스 통일

* refactor: Button 타입과 크기별 스타일을 정리

Button에서만 사용하는 props 타입을 컴포넌트 파일로 옮기고 public entry의 타입 export를 제거했다.
버튼 크기별 모서리 반경도 sm/md와 lg의 위계를 드러내도록 조정했다.

Constraint: Button 타입의 외부 소비처가 없음
Rejected: 별도 타입 파일 유지 | 단일 소비처를 위한 파일 경계가 불필요함
Confidence: high
Scope-risk: narrow
Directive: 외부 타입 소비처가 생기면 필요한 타입만 public entry로 다시 공개할 것
Tested: pnpm check (format, lint, typecheck, component tests, build)
Not-tested: E2E 브라우저 흐름

* refactor: Button 전용 토큰의 소유 위치 정리

Button만 소비하는 시맨틱 토큰을 컴포넌트 폴더로 이동하고, 전역 스타일 진입점에서 등록하도록 import 경로를 분리했다.

Constraint: Tailwind 유틸리티 생성을 위해 @theme 토큰은 전역 CSS에서 import되어야 함
Rejected: foundations 토큰 폴더 유지 | Button 컴포넌트와 토큰의 소유 관계가 분산됨
Confidence: high
Scope-risk: narrow
Directive: 다른 공용 컴포넌트 전용 토큰도 소비처가 하나면 해당 컴포넌트와 함께 관리할 것
Tested: pnpm check (format, lint, typecheck, component tests, build)
Not-tested: E2E 브라우저 흐름
* chore: domain 패키지 구조 유지 (#19)

* feat: InvalidParam 추가 (#19)

- 유효하지 않은 Param을 전달하기 위함.

* feat: ErrorDetail 추가 (#19)

* feat: RilogBusinessException 추가 (#19)

- 어플리케이션 최상위 커스텀 예외

* feat: ErrorInformation 추가 (#19)

- 커스텀 예외 생성자 시그니처를 Interface로 단축

* feat: GlobalExceptionInformation 추가 (#19)

* feat: GlobalExceptionHandler 추가 (#19)

- 전역 예외처리 핸들러로 한 곳에서 예외처리 관리

* docs: exception-handling.md 추가 (#19)

- 비즈니스 예외를 일관된 API 오류 응답으로 변환하는 방법을 설명

* refactor: 메서드 네이밍 수정 (#19)

* refactor: 자바 기본 예외는 초기세팅에 포함하지 않음. (#19)

* refactor: 클래스 선언 직후, 괄호 닫기 전 개행 추가 (#19)
* build: Spring Data Jpa 라이브러리 추가 (#27)

* feat: BaseEntity 추가 (#27)

* feat: JpaAuditingConfig 추가 (#27)

- JpaAuditing 설정 허용

* feat: Spring Data 관련 예외처리 등록 (#27)

* docs: BaseEntity 사용 가이드.md 추가  (#27)
객체 계약은 interface를 기본으로 사용하고 모듈 경계 import만 절대 경로를 사용하도록 기존 코드와 하네스를 함께 정리한다.

Constraint: 같은 모듈 내부 상대 경로는 허용
Rejected: 모듈별 barrel 유지 | 현재 공개 API 규모 대비 관리 비용과 runtime 혼합 위험이 큼
Directive: barrel 재도입은 명시적인 public API 필요가 확인된 뒤 별도 이슈 또는 ADR로 결정
Tested: Node 24.19.0에서 pnpm check 및 Playwright E2E 통과
* feat: @LoginUserId 추가 (#31)

* feat: @LoginUserSlug 추가 (#31)

* feat: 임시 LoginUserIdArgumentResolver 추가 (#31)

- 작업 병목을 막기 위한 임시 ArgumentResolver

* feat: 임시 LoginUserSlugArgumentResolver 추가 (#31)

- 작업 병목을 막기 위한 임시 ArgumentResolver
* chore: service, repository 패키지 구조 추가

* refactor: HealthController 패키지 위치 변경

* refactor: HealthController 패키지 구조 변경에 의한 수정

* feature: User 테이블 구현

* feature: OnboardingStatus 구현

* test: UserTest 구현

* refactor: Onboarding 입력 값 추가

* test: Onboarding 입력 값 추가에 의한 테스트 케이스 수정

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* refactor: 잘못된 패키지 구조 형식 제거 (#34)

* feature: test 패키지 gitignore 추가 (#34)

* refactor: User 패키지로 이동 (#34)

* refactor: HealthCheckController 패키지 이동 (#34)

* feature: user entity에 UNIQUE 제약 추가 (#34)

* feature: blog entity 추가 (#34)

* feature: post entity 추가 (#34)

* feature: BlogMember entity 추가 (#34)

* feature: local.env gitignore 추가 (#34)

* refactor: BlogMember Entity 잘못된 @table name 속성 수정  (#34)

* feature: application profile별 분리  (#34)

* refactor: author를 user로 변경 (#34)
* build: swagger 의존성 추가 (#42)

* build: dev, local 환경에 swagger 접속 허용 (#42)

* feature: OpenApiConfig 추가 (#42)
* refactor: GlobalExceptionInformation getErrorCode 응답 형식 변경

* docs: 예외 Enum 사용 방식 변경으로 docs 반영
* refactor: 인증 보조 타입의 도메인 패키지 이동

* refactor: 인증 보조 타입의 패키지 선언 정리

* feature: GitHub OAuth 로그인 요청과 callback 검증 추가

* fix: 온보딩 slug 최초 저장과 재변경 방지

* docs: 아키텍쳐 구조 설명 추가

* fix: 파라미터 버그 수정

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* feature: Blog Entity에 owner 추가

* feature: Post Builder 패턴 적용

* refactor: 잘못 사용된 어노테이션 수정

- LoginUserId -> LoginUserSlug

* refactor: BlogType을 도메인 용어로 수정 COLOG, RILOG

* feat: Colog인지 확인하는 도메인 로직 추가

* feat: Blog 도메인 예외 추가

* Merge branch 'develop' of https://github.com/woowacourse-teams/2026-rilog into be/feature/#45-게시글-발행-기능-구현

# Conflicts:
#	backend/src/main/java/kr/rilog/domain/auth/resolver/LoginUserSlugArgumentResolver.java

* feat: 사용자를 찾을 수 없는 예외 에러 코드 추가

* feat: UserRepository 추가

* feat: BlogRepository 추가

- 개인사용자의 블로그를 조회하는 메서드 추가

* refactor: default 생성자 문제 해결 @Autowired 적용

* feat: PostRepository 추가

* feat: PostPublishRequest 추가

* feat: PostPublishResponse 추가

* feat: PostDetail 추가

* feat: PostSaveCommand 추가

* feat: PostPublishResult 추가

* refactor: default 생성자 문제 해결

* feat: PostService 추가 및 게시글 작성 구현

- 이미지 처리는 다음 이슈에 구현

* feat: PostController 추가 및 게시글 작성 API 구현

- 이미지 처리는 다음 이슈에 구현

* feat: NoResourceException 전역 예외 처리 추가

* feat: Post 게시글 작성 단위 테스트 추가

* refactor: .gradle-codex gitignore에 추가

* refactor: NoResourceFoundException 발생 시 잘못된 예외 코드 수정

* feature: Blog 소유자인지 판단하는 도메인 로직 추가

* feature: 게시글 작성 시, 다른 개인 블로그에 글을 작성할 수 있는 엣지케이스 제거 및 테스트 코드 작성
* fix: GitHub 로그인 시작 생성자 주입 대상 명확화

* feature: GitHub Access Token 교환과 사용자 조회 추가

* refactor: 소셜 로그인 provider 경계 분리

Tested: JAVA_HOME=/Users/jinriro/Library/Java/JavaVirtualMachines/ms-21.0.10/Contents/Home ./gradlew test

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* feature: GitHub 로그인 사용자 생성과 온보딩 대기 처리

Tested: JAVA_HOME=/Users/jinriro/Library/Java/JavaVirtualMachines/ms-21.0.10/Contents/Home ./gradlew test

* refactor: OAuth 로그인 사용자 조회 흐름과 테스트 정리

Tested: JAVA_HOME=/Users/jinriro/Library/Java/JavaVirtualMachines/ms-21.0.10/Contents/Home ./gradlew test

* fix: 생성자 충돌로 인한 정적 팩토리 메서드로 변경

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* feature: 전체 게시글 수 조회 메서드 추가

* feature: TotalPostsCountResponse 추가

* feature: 전체 게시글 수 API 구현
* feat: hibernate Jackson 버전을 Spring Boot 4.0.x의 기본 Jackson 버전으로 명시

* feat: Post와 Author Fetch Join 메서드 추가

* feat: Post 도메인 예외 추가

* feat: 비공개 게시글 읽기 검증 로직 추가

* feat: 게시글 상세 조회 ResponseDto 추가

* feat: 게시글 상세 조회 비즈니스 로직 추가

* feat: 게시글 상세 조회 API 추가

* refactor: 잘못된 import 경로 수정

* refactor: 메서드명 readPosts에서 readPost로 변경

* refactor: Post에서 사용하지 않는 logoUrl 삭제
- logoUrl 메서드 시그니처 삭제
Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* feature: Bearer 인증 인터셉터 구현

* refactor: 인증 선언과 사용자 주입 책임 분리

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* chore: placeholder 컬러 토큰 추가

* feature: 인풋 text 컴포넌트 구현

* chore: 범용 spacing 토큰 추가

* feature(Input): 아이콘/주소 prefix 등을 위해 인풋 좌측 슬롯 구현

* feature: 텍스트 영역 컴포넌트 구현

* style: css prettier 포맷 통일

* feature: left 컴포넌트를 클릭해도 input에 focus 되는 기능 추가

* feature(Textarea): 포커스 시 아웃라인 색상 지정

* test(Textarea): uncontrolled 방식의 테스트 제거
* feature: 전체 피드 게시글 목록 조회 메서드 구현

- 데이터 양이 많은 content 생략을 위해 Projection 사용.
- 정렬순은 하드코딩, 추후 확장성 고민해야함.

* feature: 전체피드 게시글 목록 Response 추가

- Inner Record를 사용

* feature: 전체피드 게시글 목록 조회 비즈니스 로직 추가

* feature: 전체피드 게시글 목록 조회 API 추가

* feature: 전체피드 게시글 목록 조회 API 추가

* feature: 전체피드 게시글 목록 조회 API Swagger 명세 추가

* feature: FeedService 단위 테스트 추가

* feature: 요청에 필요한 파라미터 누락 예외 상세하게 처리

* refactor: 잘못된 import 경로 수정
* refactor: 공통 응답 ApiResponse 적용

- 소셜 로그인 컨트롤러는 미적용

* feature: ApiResponse 응답 적용

* refactor: 공통 응답 ApiResponse 적용

- 소셜 로그인 컨트롤러는 미적용

* feat: .gradle-user-home/ .gitignore 추가
Tested: JAVA_HOME=/Users/jinriro/Library/Java/JavaVirtualMachines/ms-21.0.10/Contents/Home ./gradlew test

Tested: git diff --check

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
gustn99 and others added 27 commits August 20, 2026 09:53
* feature: 깃허브 소셜 로그인 구현

* refactor: auth api 경로를 shared 하위로 이동

* feature: 소셜 로그인 뒤 헤더로부터 토큰을 추출하는 로직 추가
* refactor: RefreshToken SameSite Option 환경변수로 분리

* feature: AWS_S3_DIRECTORY application.yaml에 환경변수 추가
* docs: 프론트엔드 API 계층 구현 가이드 작성

* feature: 팀 블로그 멤버 초대 API 및 Mutation 추가

* feature: 팀 블로그 멤버 초대 UI와 API 연동

* chore: 불필요한 멤버 초대 mock 데이터 삭제

* design: 멤버 관리 표에서 역할 칼럼 임시 숨김

* refactor: src/api/users를 shared/api/users로 병합 및 구조 개편
교차 출처 API 요청에서 refresh token 쿠키가 누락되지 않도록 전역 ky 인스턴스에 credentials 옵션을 설정하고 Request 옵션을 검증한다.

Constraint: 외부 presigned URL 요청에는 공통 API 인증 정책을 적용하지 않음
Tested: pnpm test:unit (97 passed), pnpm typecheck, pnpm build
Not-tested: 브라우저-API 서버 간 실제 CORS 쿠키 통합 검증
* refactor: Blog 프로필 값 객체 적용

* test: Profile 구조에 맞춘 테스트 정리

* refactor: Slug 패키지 이동

* refactor: Slug 를 Blog 의 필드로 변경

* refactor: SlugTest 패키지 경로 변경

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* feature: 온보딩 api 함수 구현

* feature: 온보딩 api 연동

* feature: 로그아웃 api 연동

* fix: 로그인 시 조용히 토큰만 등록되고 상태가 업데이트되지 않는 문제 수정

* feat: 온보딩 후에도 토큰 파싱하는 로직 추가

* chore: 환경변수 추가

* feature: 이미지 src에 버킷 url을 추가하는 로직 구현

* feature: token provider에 실제 리프레시 로직 연결

* fix: token provider 관련 순환 참조 이슈 해결

* chore: pr에서 배포 스크립트 실행되도록 yml 수정

* fix: 피드 이미지에 getImageUrl 함수 사용

* fix: 새로고침 시에 토큰 재발급 하도록 수정 및 토큰 관리 모듈 리팩터링

* fix: ky client에 credentials 설정 추가

* fix: create-ky-instance에 있던 credentials 설정을 instance 생성 시점으로 이동

* chore: 배포 스크립트를 prod 버전으로 변경
* feature: 팀 프로필 응답 매핑 로직 추가 및 기존 mock 제거

* feature: 팀 설정 프로필 탭 화면에 실데이터 연동
* fix: 메인 피드 페이지 정적 캐싱 비활성화

* feature: 게시글 발행 API 인터페이스 및 훅 추가

* feature: 게시글 발행 기능 API 연동 및 모의 객체 제거

* 이미지 포함 게시글의 발행과 조회 실패 방지

본문 이미지 업로드를 실제 스토리지 mutation으로 연결하고, BlockNote 0.53 서버 렌더러의 opaque JSDOM origin을 보정해 이미지 및 복합 블록 상세 조회를 안정화한다.

Constraint: BlockNote 0.53 ServerBlockNoteEditor가 URL 없는 내부 JSDOM으로 global window를 교체함
Rejected: 공식 serverExternalPackages 설정만 적용 | 실제 production 재현에서 opaque-origin 오류가 지속됨
Confidence: high
Scope-risk: moderate
Directive: BlockNote 업그레이드 시 private jsdom reconfigure 호환 코드를 제거할 수 있는지 반드시 재검토
Tested: 관련 unit/component 18개, typecheck, production build, 실제 /@please/posts/22 조회
Not-tested: 외부 개발 API에 테스트 게시글을 실제로 생성하는 E2E

* chore: '내 블로그' 가 옵션에서 표시되던 항목 수정
* test: 여러 domain 에서 사용되는 fixture 함수 집합 클래스 구현

* test: Nickname vo test case 작성

* test: Email vo test case 작성

* test: Post vo test case 작성

* test: Slug vo test case 작성

* test: User test case 작성

* test: Blog test case 작성

* test: BlogMember test case 작성

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* feature: AuthProvider isInitialized 상태 추가 및 테스트 픽스쳐 반영

* feature: 코로그 설정 접근 제어 및 버튼 조건부 렌더링 구현
* feature: 전체 게시글 수 조회 api 함수 구현

* feature: 사이드바에 전체 게시글 수 연동

* design: 사이드바 내부 클릭 시 width 고정되는 문제 해결
* refactor: 초대권한 에러코드명 수정

* feature: Profile 정적 팩토리 메서드 추가

* feature: Blog 프로필 변경 도메인 로직추가

* feature: BlogMember ADMIN 권한 검사 도메인 로직 추가

* feature: Colog 프로필 수정 Dto 추가

* feature: Colog 프로필 수정 API 추가

* feature: Colog 서비스 통합테스트 코드 추가

* refactor: Colog 생성 시 RequestDto에 누락된 Email 반영

* feat: 팀블로그 프로필 수정 Swagger 명세 추가
* feature: 범용 404 페이지 구현

* feature: 범용 에러 페이지 구현
Tested: backend에서 JAVA_HOME=/Users/jinriro/Library/Java/JavaVirtualMachines/ms-21.0.10/Contents/Home ./gradlew test

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* fix: 이미지 URL 변환 유틸리티의 null 경로 예외 처리 추가 및 테스트

* refactor: 프로필 및 커버 이미지 업로더 라벨 문구 개선

* feature: 코로그 홈에 멤버 목록 사이드바 연동 및 커버 이미지 반영

* refactor: 이용약관 및 개인정보처리방침 외부 노션 링크로 변경

* refactor: 팀 커버 기본 이미지 에셋 변경 및 컴포넌트 폴백 구현

* feature: 게시글 썸네일 폴백 이미지 로직 유틸리티로 분리 및 적용

* feature: Avatar 컴포넌트에 커스텀 스타일(className) 주입 지원 및 기본 테두리 설정

* feature: API 응답 스키마 변경에 따른 코로그 프로필 이미지(profileImageUrl) 연동 로직 수정

* refactor: PageShell 컴포넌트의 단일 보조 콘텐츠(Right/Left) 레이아웃 속성 분리 및 지원

* fix: 로그아웃 완료 시 홈 피드 화면으로 자동 리다이렉트 처리

* refactor: 게시글 썸네일 폴백 이미지 에셋 전용 SVG로 분리 및 테스트 반영

* feature: 팀 커버 이미지가 없을 때의 연한 배경(Fallback) 지원 등 히어로 UI 개선

* chore: 사용하지 않는 팀 커버 플레이스홀더 이미지 삭제

* feature: 공통 폼 UI(입력 필드 필수 표시 등) 확장 및 이미지 편집 메뉴(ImageEditMenu) 추가 적용

* refactor: PageShell 단일 사이드 어사이드 레이아웃 스타일 반응형 개선

* refactor: 푸터 공식 연락처 및 SNS(카카오톡, 인스타그램 등) 외부 링크 업데이트

* refactor: 게시글 썸네일 전용 배경색 토큰 추가 및 카드 UI 폰트/간격 조정

* feature: 대표 이미지가 없을 때 기본 썸네일(fallback) URL을 서버로 직접 전송하도록 글쓰기 제출 로직 개선
* docs(AGENTS): api 관련 문서 최신화

* feature: 슬러그 및 닉네임 중복검사 api 함수 구현

* feature: 온보딩에 중복 검사 api 연동

* feature: 온보딩 중복 검사에 자체 검증 로직 연결

* fix: 약관 동의를 가입 필수값으로 설정

* feat: 팀 생성 플로우에 슬러그 중복 검사 api 연결

* feature: 중복 검사 없이 폼 제출 시 유저 피드백 추가
* feature: Profile Class에 @EqualsAndHashCode 추가

* feature: BlogMemberFixture 추가

* feature: UserFixture 추가

* refactor: BlogFixture 패키지 이동

* feat: User 서비스통합테스트 추가

* refactor: 유저 서비스 단위 테스트 삭제

* refactor: UserQueryService를 UserService로 이전

* feature: User와 Blog Slug를 모두 검증
* refactor: 인증 상태 전이 책임 단일화

* feature: Proxy Session 기반 인증 페이지 접근 제어

* feature: 접근 제한 페이지에서 리다이렉트 후 유저 피드백 추가

* feature: 권한으로 인한 접근 제한 페이지(코로그 세팅)에서도 리다이렉트 후 유저 피드백 추가

* feature(AccessFeedback): auth-required 문구 수정

* feature: 회원가입 페이지 가드 추가

* fix: 소셜 로그인 중에 버튼을 다시 못 누르도록 개선
* feature: 게시글 발행 시 전체 게시글 수/블로그 게시글 목록/블로그 프로필 캐시 초기화

* feature: 코로그 생성 시 사이드바 내 코로그 목록 요약 캐시 초기화
* fix: OWNER 권한 수정

* chore: production yaml 파일 생성

---------

Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
* refactor: 인증 상태 전이 책임 단일화

* feature: Proxy Session 기반 인증 페이지 접근 제어

* feature: 접근 제한 페이지에서 리다이렉트 후 유저 피드백 추가

* feature: 권한으로 인한 접근 제한 페이지(코로그 세팅)에서도 리다이렉트 후 유저 피드백 추가

* feature(AccessFeedback): auth-required 문구 수정

* feature: 회원가입 페이지 가드 추가

* fix: 소셜 로그인 중에 버튼을 다시 못 누르도록 개선

* refactor: 폼 프로필/커버 이미지 렌더링 방식 개선 및 이미지 수정 UI 컴포넌트(ImageEditButton 등) 교체

* feature: 팀 블로그 프로필 수정 API 연동 및 변경사항 유무(isDirty)에 따른 저장 버튼 렌더링 구현

* refactor: 팀 설정 커버 이미지 편집 버튼 UI 레이아웃 개선

---------

Co-authored-by: gustn99 <azerosong@gmail.com>
Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
Co-authored-by: Jinriro <riro12.hanyang.ac.kr>
@Wlsflfh Wlsflfh self-assigned this Aug 21, 2026
@coderabbitai

coderabbitai Bot commented Aug 21, 2026

Copy link
Copy Markdown

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: e38039a2-7384-475c-909f-ee973ffcc6fe

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@Wlsflfh
Wlsflfh merged commit 0f72730 into production Aug 21, 2026
2 checks passed
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.

4 participants