Conversation
Git 브랜치 전략 가이드 문서 추가
- PR이 모든 조건(빌드, 리뷰)을 충족할 때까지 대기 후 자동 머지 - branch protection rules 우회를 위한 관리자 권한 사용
- 자동 머지 옵션에서 --auto 제거
버그 이슈 템플릿 추가 및 CI 설정 변경
- main 브랜치로의 푸시 시 --admin 옵션을 사용하도록 수정
[chore] develop-to-main 머지 시 관리자 권한 사용 추가
- GitHub Actions 워크플로우 파일에서 사용되는 secrets 변수에 대한 ESLint 경고 해결
ESLint 설정에 GitHub Actions secrets 전역 변수 추가
- 루트 레이아웃, 메인, 레시피 작성, 관리자 로그인 페이지
- 검색, 상세, 수정 페이지
검색 엔진 최적화 작업
- 검색바에서는 차단되지만, URL로 직접 접근할 경우 전체목록을 보여주기때문에 이에 대응하는 메타데이터를 설정
SEO 관련 기능 개선 및 레시피 단일 조회 테스트 추가
There was a problem hiding this comment.
Actionable comments posted: 0
🧹 Nitpick comments (3)
docs/git-strategy.md (1)
67-72: 코드 블록 언어 명시 누락
커밋 메시지 규칙을 나타내는 코드 블록에 언어가 지정되어 있지 않습니다. 가독성을 높이고 markdownlint 경고(MD040)를 해소하기 위해 코드 블록에plaintext또는 적절한 언어를 명시하는 것을 권장합니다.아래와 같이 수정하는 방안을 고려해보세요:
-``` -[type] 제목 - - 본문 (선택사항) -``` +```plaintext +[type] 제목 + - 본문 (선택사항) +```🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
67-67: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
src/app/admin/login/page.tsx (1)
10-10: OpenGraph 이미지 경로 점검 필요OpenGraph 이미지가
/thumbnail.png와 같이 일반적인 경로를 사용하고 있습니다. 관리자 페이지에 더 특화된 이미지를 사용하거나, 이미지 경로가 정확한지 확인해주세요.🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/app/error.tsx (1)
24-29: HomeButton 컴포넌트 사용 권장현재 NotFound 페이지에서는 HomeButton 컴포넌트를 사용하고 있는데, 이 에러 페이지에서도 동일한 HomeButton 컴포넌트를 사용하여 코드 일관성을 높일 것을 권장합니다.
- <button - className="w-60 rounded-xl bg-bgBlack py-3 text-center text-white" - onClick={() => router.replace("/")} - > - 홈으로 돌아가기 - </button> + <HomeButton />수정 시 상단에 HomeButton 컴포넌트 import를 추가해야 합니다:
import HomeButton from "./components/HomeButton";
📜 Review details
Configuration used: .coderabbit.yaml
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (7)
public/file-text.svgis excluded by!**/*.svgpublic/globe.svgis excluded by!**/*.svgpublic/next.svgis excluded by!**/*.svgpublic/thumbnail.pngis excluded by!**/*.pngpublic/vercel.svgis excluded by!**/*.svgpublic/window.svgis excluded by!**/*.svgsrc/app/favicon.icois excluded by!**/*.ico
📒 Files selected for processing (18)
.eslintrc.json(1 hunks).github/ISSUE_TEMPLATE/bug.md(1 hunks).github/workflows/develop-to-main.yml(1 hunks).github/workflows/pr-check.yml(1 hunks)docs/git-strategy.md(1 hunks)src/app/(with-header)/(with-search-bar)/page.tsx(2 hunks)src/app/(with-header)/(with-search-bar)/search/page.tsx(2 hunks)src/app/(with-header)/edit/[id]/page.tsx(1 hunks)src/app/(with-header)/new/page.tsx(1 hunks)src/app/(with-header)/recipe/[id]/page.tsx(1 hunks)src/app/admin/login/page.tsx(1 hunks)src/app/components/HomeButton.test.tsx(1 hunks)src/app/components/HomeButton.tsx(1 hunks)src/app/error.tsx(1 hunks)src/app/layout.tsx(1 hunks)src/app/not-found.tsx(2 hunks)src/util/getRecipe.test.ts(1 hunks)src/util/getRecipe.ts(1 hunks)
🧰 Additional context used
🧬 Code Definitions (6)
src/app/(with-header)/(with-search-bar)/page.tsx (3)
src/app/layout.tsx (1)
metadata(13-17)src/app/(with-header)/new/page.tsx (1)
metadata(4-13)src/app/admin/login/page.tsx (1)
metadata(4-13)
src/app/not-found.tsx (1)
src/app/components/HomeButton.tsx (1)
HomeButton(5-15)
src/app/(with-header)/new/page.tsx (4)
src/app/(with-header)/(with-search-bar)/page.tsx (1)
metadata(28-54)src/app/layout.tsx (1)
metadata(13-17)src/app/admin/login/page.tsx (1)
metadata(4-13)src/app/components/RecipeForm.tsx (1)
RecipeForm(15-123)
src/app/components/HomeButton.test.tsx (1)
src/app/components/HomeButton.tsx (1)
HomeButton(5-15)
src/util/getRecipe.test.ts (1)
src/util/getRecipe.ts (1)
getRecipe(4-18)
src/util/getRecipe.ts (1)
src/app/error.tsx (1)
Error(5-33)
🪛 GitHub Actions: develop to main
src/app/admin/login/page.tsx
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/app/(with-header)/(with-search-bar)/search/page.tsx
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/app/(with-header)/recipe/[id]/page.tsx
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/app/(with-header)/edit/[id]/page.tsx
[error] Merge conflict in file. Please resolve the conflicts before committing.
🪛 markdownlint-cli2 (0.17.2)
docs/git-strategy.md
67-67: Fenced code blocks should have a language specified
null
(MD040, fenced-code-language)
🔇 Additional comments (30)
.eslintrc.json (1)
2-5: ESLint 글로벌 변수 설정 추가 확인
"globals": { "secrets": "readonly" }설정이 추가되어, 코드 내에서secrets변수의 재할당을 방지할 수 있습니다. 이 변경은 GitHub Actions 워크플로우에서 사용하는 secret 관리와도 잘 맞아 보입니다..github/ISSUE_TEMPLATE/bug.md (2)
1-7: 새로운 버그 이슈 템플릿 도입
새 파일로 추가된 버그 이슈 템플릿은 제목, 설명, 라벨, 담당자 등의 기본 정보를 잘 포함하고 있어 버그 리포트 작성을 체계적으로 도와줄 것입니다.
9-14: 문제 상황 및 해결 방법 섹션 구성
템플릿 내에 "문제상황"과 "해결 방법" 섹션이 명확하게 구분되어 있어, 이슈 작성자가 핵심 내용을 빠짐없이 기재할 수 있을 것으로 보입니다..github/workflows/pr-check.yml (1)
37-41: PR 병합 명령에 관리자 플래그 추가
gh pr merge명령어에--admin플래그가 추가되어 관리자 권한으로 PR 병합을 수행하게 됩니다. 이 변경이 의도된 보안/권한 관련 정책과 부합하는지 재확인해 주세요..github/workflows/develop-to-main.yml (1)
16-19: Checkout 단계에 토큰 추가 확인
actions/checkout@v4스텝에token: ${{ secrets.WORKFLOW_PAT }}파라미터가 추가되어, 퍼스널 액세스 토큰을 통한 인증으로 보안을 강화한 모습입니다. 변경 사항이 정상 작동하는지 확인 부탁드립니다.docs/git-strategy.md (1)
1-112: Git 브랜치 전략 문서 전반 검토
새롭게 추가된 문서는 브랜치 구조, 작업 흐름, 커밋 메시지 규칙, PR/머지 전략, GitHub Actions 자동화 및 핫픽스 처리에 대해 포괄적으로 설명하고 있어 팀 내 가이드라인 마련에 큰 도움이 될 것으로 보입니다.🧰 Tools
🪛 markdownlint-cli2 (0.17.2)
67-67: Fenced code blocks should have a language specified
null(MD040, fenced-code-language)
src/app/components/HomeButton.tsx (1)
1-15: 홈 버튼 컴포넌트 구현이 잘 되었습니다!"use client" 지시문과 Next.js의 useRouter를 적절히 사용하여 홈 페이지로 이동하는 기능을 잘 구현했습니다. 컴포넌트가 단일 책임을 가지고 있어 재사용성이 좋습니다.
제안사항: 더 유연한 컴포넌트가 되도록 텍스트나 스타일을 커스터마이징할 수 있는 props를 추가하는 것을 고려해보세요.
src/app/admin/login/page.tsx (1)
2-13:Details
✅ Verification successful
SEO 메타데이터 추가가 잘 되었습니다
Next.js의 Metadata 타입을 활용하여 관리자 로그인 페이지에 대한 메타데이터를 잘 정의했습니다. 관리자 페이지에 "noindex, nofollow"를 적용한 것은 보안 측면에서 좋은 판단입니다.
파이프라인 오류로 병합 충돌이 발생했습니다. 이 파일의 충돌을 해결해주세요.
🏁 Script executed:
#!/bin/bash # 병합 충돌이 있는지 확인 git diff --checkLength of output: 18
검증 결과: 메타데이터 설정 정상 & 병합 충돌 해결됨
src/app/admin/login/page.tsx파일에서 Next.js의Metadata타입을 활용하여 SEO 메타데이터가 올바르게 정의되어 있습니다.- 추가 검증(예: conflict marker 검색) 결과,
<<<<<<<,>>>>>>>등의 충돌 마커가 발견되지 않아 병합 충돌 문제는 이미 해결된 상태입니다.코드 상태는 양호하므로 해당 리뷰 코멘트에 명시된 충돌 문제는 더 이상 반영할 필요가 없어 보입니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/app/error.tsx (2)
18-20: 에러 메시지 표시 방식 개선이 좋습니다실제 에러 메시지가 있는 경우 이를 표시하고, 그렇지 않은 경우 기본 메시지를 표시하도록 한 변경은 사용자에게 더 정확한 정보를 제공할 수 있어 좋은 개선입니다.
22-22: 텍스트 간소화가 잘 되었습니다줄바꿈 태그(
<br />)를 제거하여 텍스트 표시를 간소화한 것은 좋은 변경입니다.src/app/not-found.tsx (2)
1-1: HomeButton 컴포넌트 임포트가 올바릅니다HomeButton 컴포넌트를 올바르게 임포트하고 있습니다.
18-18: HomeButton 컴포넌트 활용이 잘 되었습니다기존 버튼 구현을 HomeButton 컴포넌트로 대체한 것은 코드 재사용성과 일관성 측면에서 좋은 변경입니다. 이렇게 공통 UI 요소를 컴포넌트화하면 앱 전체의 유지보수성이 향상됩니다.
src/app/(with-header)/new/page.tsx (2)
1-2: 메타데이터 추가로 SEO 개선이 잘 이루어졌습니다.새 레시피 작성 페이지에 SEO 관련 메타데이터를 추가하여 웹 접근성과 검색 엔진 최적화를 개선했습니다. 특히
robots: "noindex, nofollow"설정은 폼 페이지에 적합한 선택입니다. Open Graph 태그도 소셜 미디어 공유 시 페이지 정보가 올바르게 표시될 수 있도록 잘 구성되었습니다.import 문을 상대 경로에서 절대 경로(
@/app/components/RecipeForm)로 변경한 것도 Next.js 프로젝트의 모범 사례를 따르고 있어 코드의 일관성과 유지보수성이 향상되었습니다.Also applies to: 4-13
19-19: 세미콜론 제거로 JSX 문법 개선이 이루어졌습니다.
RecipeForm컴포넌트 렌더링 코드에서 세미콜론을 제거하여 표준 JSX 문법을 따르도록 수정했습니다. 이는 코드 스타일의 일관성을 유지하는 데 도움이 됩니다.src/app/(with-header)/(with-search-bar)/page.tsx (1)
5-5: 홈페이지 메타데이터 강화로 SEO 최적화가 완성되었습니다.홈페이지에 상세한 메타데이터를 추가하여 검색 엔진 최적화와 소셜 미디어 공유 기능을 크게 향상시켰습니다. 특히 다음 요소들이 잘 구성되었습니다:
- 사이트 제목과 설명이 명확하게 정의됨
- 관련 키워드 목록이 포괄적으로 추가됨
- Open Graph 메타데이터가 소셜 미디어 공유를 위해 완전하게 설정됨
- 정식 URL(canonical URL)이 설정되어 중복 콘텐츠 문제 방지
이러한 변경사항은 사이트의 검색 가능성과 사용자 경험을 크게 향상시킬 것입니다.
Also applies to: 28-54
src/app/layout.tsx (1)
15-16: 루트 레이아웃 메타데이터 개선으로 사이트 설명 및 색인 정책이 정의되었습니다.기존의 일반적인 "Generated by create next app" 설명을 앱의 실제 목적을 설명하는 한국어 문구("레시피를 저장하고 관리할 수 있는 맛있는 서랍, 테이스토리지")로 업데이트했습니다.
또한
robots: "index, follow"지시문을 추가하여 검색 엔진이 이 페이지를 색인하고 링크를 따라가도록 명시적으로 지시했습니다. 이는 메인 애플리케이션에 적절한 설정으로, 검색 가능성을 높이는 데 도움이 됩니다.src/app/components/HomeButton.test.tsx (1)
1-32: HomeButton 컴포넌트 테스트가 잘 구현되었습니다.새로 추가된 HomeButton 컴포넌트에 대한 테스트 코드가 모범 사례에 따라 구현되었습니다:
useRouter모킹이 적절하게 이루어져 테스트 환경이 잘 통제됨getHomeButton헬퍼 함수를 통해 접근성 관점에서 버튼을 선택함 (role과 name 사용)- 렌더링 테스트와 기능 테스트가 명확하게 분리됨
beforeEach를 사용하여 각 테스트 전에 컴포넌트를 새로 렌더링하는 좋은 패턴 적용특히 버튼의 네비게이션 기능이 정확히 테스트되고 있어, 홈 페이지로의 이동 기능이 올바르게 작동함을 확인할 수 있습니다.
src/util/getRecipe.ts (1)
1-18: 잘 구현된 레시피 데이터 가져오기 유틸리티 함수입니다.이 함수는 레시피 데이터를 가져오는 로직을 잘 캡슐화하고 있습니다. API 요청 및 오류 처리가 잘 구현되어 있으며, 특히 다음 사항들이 잘 처리되었습니다:
- 404 응답 시
notFound()함수 호출- 실패한 응답에 대한 오류 로깅 및 예외 처리
- 캐싱 전략 사용 ("force-cache")
이 유틸리티 함수는 다른 파일에서 레시피 데이터를 가져오는 일관된 방법을 제공하여 코드 중복을 줄이고 유지보수성을 향상시킵니다.
src/app/(with-header)/(with-search-bar)/search/page.tsx (2)
5-5: Metadata 타입 임포트가 잘 추가되었습니다.SEO 메타데이터 생성을 위한 필수 타입 임포트입니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
29-57:Details
✅ Verification successful
SEO를 위한 동적 메타데이터 생성 기능이 잘 구현되었습니다.
검색 쿼리에 따라 메타데이터를 동적으로 생성하는 기능이 잘 구현되었습니다. 검색어 유무에 따라 적절한 타이틀과 설명을 제공하고 OpenGraph 속성도 포함하고 있어 SNS 공유 시 최적화된 표시가 가능합니다.
다만, 파이프라인 실패 로그에 따르면 이 파일에 병합 충돌이 있습니다. PR을 병합하기 전에 충돌을 해결해주세요.
🏁 Script executed:
#!/bin/bash # 병합 충돌이 있는 파일 확인 git diff --name-only --diff-filter=ULength of output: 38
병합 충돌 확인 및 기능 승인 안내
- SEO를 위한 동적 메타데이터 생성 기능은 검색어 유무에 따라 올바르게 작동하고 있습니다.
- 추가로,
src/app/(with-header)/(with-search-bar)/search/page.tsx파일 내에서 병합 충돌 마커(예:<<<<<<<,=======,>>>>>>>)가 발견되지 않아 이전 로그에서 언급된 충돌 문제는 이미 해결된 것으로 보입니다.PR 병합 전에 최종적으로 수동 검토해 주시기 바랍니다.
🏁 Script executed:
#!/bin/bash # 해당 파일 내에 병합 충돌 마커가 존재하는지 확인합니다. grep -E '^(<<<<<<<|=======|>>>>>>>)' "src/app/(with-header)/(with-search-bar)/search/page.tsx" || echo "병합 충돌 마커가 발견되지 않았습니다"Length of output: 147
동적 메타데이터 생성 기능 확인됨
- 검색어 유무에 따라 올바르게 타이틀, 설명, OpenGraph 속성이 생성되고 있습니다.
src/app/(with-header)/(with-search-bar)/search/page.tsx파일 내에 병합 충돌 마커가 존재하지 않아, 이전에 언급된 병합 충돌 문제는 이미 해결된 것으로 보입니다.최종적으로, 기능 구현에 문제 없으므로 PR 병합 전에 한 번 더 수동 검토 후 진행해 주세요.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/util/getRecipe.test.ts (4)
1-12: 테스트를 위한 설정과 모킹이 잘 되어 있습니다.필요한 모듈 임포트와 전역
fetch및notFound함수의 모킹, 환경 변수 설정이 잘 되어 있습니다. 이는 테스트 격리와 일관된 테스트 환경 구성에 중요한 부분입니다.
14-41: 성공 케이스에 대한 테스트가 잘 구현되어 있습니다.레시피 정보를 성공적으로 가져오는 시나리오에 대한 테스트가 잘 작성되어 있습니다:
- 모킹된 레시피 데이터 설정
- 성공적인 응답 모킹
getRecipe함수 호출- API 호출 URL과 캐싱 옵션 검증
- 반환된 결과 검증
이 테스트는 함수의 주요 성공 시나리오를 정확히 검증합니다.
43-51: 404 응답 처리 테스트가 잘 구현되어 있습니다.존재하지 않는 레시피 ID로 요청 시 404 응답에 대한 처리를 테스트하고 있습니다.
notFound함수가 호출되는지 확인함으로써 사용자에게 적절한 피드백이 제공되는지 검증합니다.
53-69: 오류 처리 테스트가 잘 구현되어 있습니다.서버 오류(500) 응답에 대한 처리를 테스트하고 있으며, 다음 사항들을 확인합니다:
- 콘솔 에러 로깅 기능 모킹 및 검증
- 실패 응답 모킹
- 예상된 오류 메시지로 예외가 발생하는지 검증
- 콘솔 로그에 올바른 메시지가 기록되는지 검증
이 테스트는 오류 상황에서 함수가 예상대로 동작하는지 철저히 검증합니다.
src/app/(with-header)/recipe/[id]/page.tsx (3)
2-3: 필요한 모듈들이 잘 추가되었습니다.SEO 메타데이터 생성 및 레시피 데이터 가져오기를 위한 모듈들이 적절히 임포트되었습니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
24-31: Page 컴포넌트가 getRecipe 유틸리티를 사용하도록 수정되었습니다.기존 코드에서 직접 API 호출을 하던 방식에서
getRecipe유틸리티 함수를 사용하도록 변경되었습니다. 이는 다음과 같은 장점이 있습니다:
- 코드 중복 감소
- 오류 처리 로직 일원화
- 캐싱 전략 일관성 유지
이러한 리팩토링은 코드 유지보수성과 일관성을 향상시킵니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
5-22:Details
❓ Verification inconclusive
레시피 상세 페이지의 메타데이터 생성 기능이 잘 구현되었습니다.
generateMetadata함수가 추가되어 레시피 ID에 따라 동적으로 메타데이터를 생성합니다:
getRecipe유틸리티 함수를 사용하여 레시피 데이터를 가져옴- 레시피 제목을 활용한 타이틀 및 설명 생성
- OpenGraph 메타데이터 포함
이는 SEO 최적화와 소셜 미디어 공유 시 사용자 경험 향상에 기여합니다.
다만, 파이프라인 실패 로그에 따르면 이 파일에 병합 충돌이 있습니다. PR을 병합하기 전에 충돌을 해결해주세요.
🏁 Script executed:
#!/bin/bash # 병합 충돌이 있는 파일 확인 git diff --name-only --diff-filter=ULength of output: 38
병합 충돌 관련 재확인이 필요합니다
레시피 상세 페이지 메타데이터 생성 기능은 기대한 대로 동작하여,generateMetadata함수가getRecipe를 통해 데이터를 받아와 타이틀, 설명 및 OpenGraph 메타데이터를 올바르게 생성하고 있습니다. 이는 SEO 최적화 및 소셜 미디어 공유 측면에서 긍정적인 효과를 기대할 수 있습니다.다만, 파이프라인 로그에서는 병합 충돌이 있다고 언급되었으나, 해당 파일(
src/app/(with-header)/recipe/[id]/page.tsx) 내에서는 충돌 표시(<<<<<<<<<)가 확인되지 않았습니다.
- 위치:
src/app/(with-header)/recipe/[id]/page.tsx
- 확인 결과: 병합 충돌 표시가 발견되지 않음
이 부분에 대해 파이프라인 로그와 코드 상태를 재검토해 주시길 바랍니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
src/app/(with-header)/edit/[id]/page.tsx (3)
2-3: 필요한 모듈 임포트 추가Metadata 타입과 getRecipe 유틸리티 함수를 추가하여 코드의 가독성과 유지보수성이 향상되었습니다. 외부 API 호출 로직을 별도의 유틸리티 함수로 분리한 것은 좋은 리팩토링 방향입니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
5-23: SEO를 위한 메타데이터 생성 함수 추가SEO 개선을 위한
generateMetadata함수 추가는 적절합니다. 특히 다음 부분이 잘 구현되었습니다:
- 레시피 제목을 활용한 동적 타이틀과 설명 생성
- OpenGraph 메타데이터 설정으로 소셜 미디어 공유 시 더 나은 표현 가능
- 편집 페이지에 "noindex, nofollow" 설정으로 검색 엔진 크롤링 방지
레시피 편집 페이지는 검색 엔진에 노출되지 않는 것이 적절하므로 robots 설정이 올바릅니다.
🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
25-32:Details
❓ Verification inconclusive
Page 컴포넌트 리팩토링
Page 컴포넌트가 간결해졌습니다. API 호출 및 에러 처리 로직을
getRecipe유틸리티 함수로 분리한 점이 좋습니다. 이렇게 하면 컴포넌트는 UI 렌더링에만 집중할 수 있고, 데이터 패칭 로직은 재사용 가능한 유틸리티로 분리됩니다.다만, 파이프라인 실패 로그에서 병합 충돌(merge conflict)이 있다고 표시되니 커밋 전에 해결해주세요.
🏁 Script executed:
#!/bin/bash # 병합 충돌 발생한 파일 확인 git diff --name-only --diff-filter=ULength of output: 38
코드 리팩토링 검증 및 병합 충돌 추가 확인 요청
Page 컴포넌트의 리팩토링을 통해 API 호출 및 에러 처리 로직이 별도의
getRecipe유틸리티로 분리되어 컴포넌트가 UI 렌더링에 집중할 수 있는 구조로 개선되었습니다.다만, 과거 파이프라인 로그에서 병합 충돌(merge conflict)이 언급되었던 점에 대해,
최근 실행한git diff --name-only --diff-filter=U명령어에서는 병합 충돌로 인한 파일이 나타나지 않아 문제 해결된 것으로 보입니다.
그러나 최종 커밋 전에 로컬 저장소에서 병합 충돌이 완전히 해결되었는지 한 번 더 수동으로 확인해 주시기 바랍니다.🧰 Tools
🪛 GitHub Actions: develop to main
[error] Merge conflict in file. Please resolve the conflicts before committing.
No description provided.