Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
329 commits
Select commit Hold shift + click to select a range
d33a2ba
feat: 마그넷 상세 조회/수정 API 스키마 및 React Query 훅 추가
hyonun321 Feb 28, 2026
be8988d
feat: MagnetPostPage 실제 API 연동 (GET 상세 조회 + PATCH 수정)
hyonun321 Feb 28, 2026
e4485f6
feat : 좋아요 버튼 컴포넌트 분리
yeeun426 Feb 28, 2026
2bc4c1c
Merge pull request #2150 from Let-s-intern/LC-2880-ADMIN-마그넷-내부화-글-등록…
hyonun321 Mar 2, 2026
24c5d55
feat: MagnetPostPage 저장 시 isVisible: false 전송
hyonun321 Mar 2, 2026
e993aa2
feat: 마그넷 신청폼 질문 API 스키마 및 React Query 훅 추가
hyonun321 Mar 2, 2026
9ec83d8
feat: MagnetFormPage 실제 API 연동 (신청폼 관리)
hyonun321 Mar 2, 2026
01efad1
refactor: 마그넷 질문 스키마를 상세 조회 API 응답에 맞게 수정
hyonun321 Mar 2, 2026
e0e5e98
refactor: useMagnetFormBuilder, CloneFormDropdown 상세 조회 API로 전환
hyonun321 Mar 2, 2026
01cbe43
feat: 공통 신청폼 추가 체크박스 기능 구현
hyonun321 Mar 2, 2026
e9d111a
chore: 신청자 정보 버튼 임시 console.log 처리
hyonun321 Mar 2, 2026
d23ef6d
refactor: 도메인에 맞는 위치로 함수 이동
hyonun321 Mar 2, 2026
d1e0a67
refactor: CloneFormDropdown fetchQuery 전환 및 mutation 중복 호출 제거
hyonun321 Mar 2, 2026
13069e8
feat : 마그넷 상세 반응형 적용
yeeun426 Mar 2, 2026
d5d7b40
Merge pull request #2151 from Let-s-intern/LC-2859-user-마그넷-상세페이지-UI
yeeun426 Mar 2, 2026
facf014
feat: 프로그램 카테고리에 가이드북 추가
yeji424 Mar 2, 2026
4702221
feat: 프로그램 조회에 가이드북 노출 및 필터링 추가
yeji424 Mar 2, 2026
c01737f
feat: 프로그램 카드 진행기간, 모집기간 비노출에 가이드북 타입 추가
yeji424 Mar 2, 2026
021aa9c
Merge pull request #2152 from Let-s-intern/LC-2843-USER-메인-페이지-프로그램-카…
yeji424 Mar 3, 2026
062610a
fix: 가이드북 유저/어드민별 조회 API 분리
yeji424 Mar 3, 2026
ae9a72b
fix: 최종가격 0원도 수용하도록 수정
yeji424 Mar 3, 2026
739beed
Merge pull request #2156 from Let-s-intern/LC-2841-USER-가이드북-상페-API-연동
yeji424 Mar 3, 2026
7bf9c0e
refactor: 가이드북 CTA 버튼 폴더 위치 변경
yeji424 Mar 3, 2026
e084064
feat: 결제 관련 로직에 가이드북 타입 추가
yeji424 Mar 4, 2026
96956ff
feat: CTA버튼 UI 분기처리
yeji424 Mar 4, 2026
b156088
feat: 가이드북 CTA → ApplyCTA로 변경 및 API 연동
yeji424 Mar 4, 2026
04ce075
feat: 가이드북 payment-input 카드 UI 분기 및 쿠폰 노출 여부 처리
yeji424 Mar 4, 2026
4bed02e
refactor: 레거시 코드 타입 오류 정리
yeji424 Mar 4, 2026
6623acb
fix: 결제 결과/실패 페이지 타입 에러 해결
yeji424 Mar 4, 2026
0607b6c
refactor: 결제 결과/실패 페이지 프로그램 데이터 타입 안정성 개선
yeji424 Mar 4, 2026
4fc9286
Merge pull request #2157 from Let-s-intern/LC-2842-USER-가이드북-결제-결제-플로…
yeji424 Mar 4, 2026
6766868
feat: 마이페이지 카테고리 칩 목록 UI 구현
yeji424 Mar 5, 2026
8f9db35
refactor: 커리어 성장 섹션 구조 분리 및 칩 UI 추가
yeji424 Mar 5, 2026
42a57b0
feat: 커리어 성장 칩 탭별 필터링 및 Empty 상태 정리
yeji424 Mar 5, 2026
42bab14
feat: 신청 현황에 칩 UI 추가
yeji424 Mar 5, 2026
f1795ba
feat: 신청 현황 칩 탭별 필터링
yeji424 Mar 5, 2026
3d069ea
refactor: 코드리뷰 반영
yeji424 Mar 5, 2026
feaf7e1
Merge pull request #2158 from Let-s-intern/LC-2844-USER-마이페이지-커리어성장-및…
yeji424 Mar 5, 2026
2d6cf11
refactor: 커리어 성장 카드 구조 리팩토링
yeji424 Mar 6, 2026
84235f6
feat: 가이드북 탭용 카드 매퍼 추가
yeji424 Mar 6, 2026
73e3c00
fix: 대시보드 입장 버튼 챌린지에만 노출되도록 수정
yeji424 Mar 6, 2026
621dc2b
feat: 가이드북 다운로드 API 연동 및 로직 구현
yeji424 Mar 6, 2026
fa4ec4b
feat: 가이드북 다운로드 전 확인 모달 구현
yeji424 Mar 6, 2026
7998668
Merge pull request #2159 from Let-s-intern/LC-2845-USER-마이페이지-가이드북-카드-구현
yeji424 Mar 6, 2026
9bc32cb
feat: 마그넷 등록 모달 제거, new post 페이지로 이동 + 알림 신청 버튼 추가 구문 추가가
hyonun321 Mar 7, 2026
aae2e69
chore: git ignore .omc 추가
hyonun321 Mar 7, 2026
4bf95cc
Merge pull request #2155 from Let-s-intern/LC-2881-ADMIN-마그넷-내부화-신청폼-…
hyonun321 Mar 7, 2026
de9434b
feat: 리드 관리 API 모듈 추가 (목데이터)
hyonun321 Mar 7, 2026
ea811cd
feat: 리드 관리 목록 페이지 구현 (필터 트리 + 테이블)
hyonun321 Mar 7, 2026
60cf7b5
feat: 유저 마그넷 신청 상세 페이지 구현
hyonun321 Mar 7, 2026
3a27731
chore: 사이드바 리드 관리 URL 변경 및 테이블 템플릿 패딩 조정
hyonun321 Mar 7, 2026
20fa267
feat: Figma 임베드 기능 완성 - URL 포맷 업데이트 및 개발중 라벨 제거
hyonun321 Mar 7, 2026
729a793
feat: PDF 임베드 기능 추가 - 파일 업로드 및 블로그 뷰어 지원
hyonun321 Mar 7, 2026
cafd9f1
refactor: 단일 책임을 가지며, 메인 페이지는 레이아웃과 데이터 조합만 담당
hyonun321 Mar 7, 2026
8822a43
refactor: CSV 유틸 공유 모듈 추출 및 필터 파싱 안전성 개선
hyonun321 Mar 7, 2026
26ab462
Merge pull request #2161 from Let-s-intern/LC-2895-ADMIN-마그넷-리드-관리-UI-추가
hyonun321 Mar 7, 2026
821e48d
Merge pull request #2132 from Let-s-intern/LC-2853-admin-블로그-글-에디터-개선-1
hyonun321 Mar 7, 2026
d00ca49
feat : 마그넷 신청 ui
yeeun426 Mar 7, 2026
3c655ca
Merge pull request #2163 from Let-s-intern/LC-2860-user-마그넷-신청-출시-ui
yeeun426 Mar 7, 2026
3ab2927
feat : 마그넷 리스트 api 연동
yeeun426 Mar 7, 2026
460122c
feat : MY 마그넷 목록 조회 연동
yeeun426 Mar 7, 2026
36b9d69
feat : 카테고리 필터 용어 변경
yeeun426 Mar 7, 2026
92fd2ba
feat : 중복 타입 제거
yeeun426 Mar 7, 2026
6df4b48
feat : 상세 apI 연동
yeeun426 Mar 7, 2026
0fee75e
feat: 마그넷 API 스키마 및 클라이언트 훅 업데이트
hyonun321 Mar 8, 2026
2344e74
feat: 마그넷 포스트 폼에 신규 필드 추가
hyonun321 Mar 8, 2026
7818803
feat: 공통 신청폼 실제 API 연동 및 mock 제거
hyonun321 Mar 8, 2026
3df785f
fix: 신청폼 복제 버그 수정 및 질문 매퍼 개선
hyonun321 Mar 8, 2026
cf97bf6
feat: 마그넷 테이블 신청자 링크 및 리드 목록 UI 수정
hyonun321 Mar 8, 2026
d0bbfce
feat : 마그넷 리스트 세부 UI 수정
yeeun426 Mar 8, 2026
b7bbdab
chore: 사용하지 않는 코드 삭제
yeeun426 Mar 8, 2026
c3de1e5
feat : 빌드 오류 해결
yeeun426 Mar 8, 2026
8f67683
Merge pull request #2164 from Let-s-intern/LC-2861-user-마그넷-리스트-api
yeeun426 Mar 8, 2026
c9bc0bc
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
yeeun426 Mar 8, 2026
f9751db
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
hyonun321 Mar 8, 2026
b9a3724
fix: 홈큐레이션 리스트 - 마그넷 리스트 반영
hyonun321 Mar 8, 2026
b31e88f
feat: 홈 큐레이션 리스트 - 가이드북 리스트 반영
hyonun321 Mar 8, 2026
5d7882e
Merge pull request #2168 from Let-s-intern/LC-2881-admin-마그넷-내부화-신청폼-…
hyonun321 Mar 8, 2026
b59d917
docs: 클로드 코드 andrej 룰 주입
hyonun321 Mar 8, 2026
4f88394
Merge pull request #2169 from Let-s-intern/LC-2898-CLAUD-코드-룰-주입
hyonun321 Mar 8, 2026
cd7ebc4
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
yeeun426 Mar 8, 2026
a494460
feat : 마그넷 상페 LexicalContent로 렌더링
yeeun426 Mar 8, 2026
a915807
feat : 신청하기 버튼 변경
yeeun426 Mar 8, 2026
3573e07
refactor : 코드 리뷰 반영
yeeun426 Mar 8, 2026
a44c070
Merge pull request #2170 from Let-s-intern/LC-2862-user-마그넷-상페-api
yeeun426 Mar 8, 2026
32a7d16
feat : 마그넷 신청 폼 조회 api 연동
yeeun426 Mar 8, 2026
5f93f44
feat : 필수 아이콘 추가
yeeun426 Mar 8, 2026
46fb7e8
feat : 마그넷 신청 api 연동
yeeun426 Mar 8, 2026
501cd2c
feat : mainContents 렌더링 부분을 클라이언트 컴포넌트로 분리하여, 브라우저에서 인증된 상태로 useGetUs…
yeeun426 Mar 8, 2026
55d88f7
feat: 신청현황 카테고리 탭 NAV바 구현
yeji424 Mar 7, 2026
a1869e9
feat: 신청현황 카드 UI 구현
yeji424 Mar 9, 2026
4b31f81
feat: 프로그램 탭 수정
yeji424 Mar 9, 2026
6b006b4
refactor: 신청 현황 카드 뷰모델 및 레이아웃 분리
yeji424 Mar 9, 2026
c2b6458
feat: 가이드북 탭 구현
yeji424 Mar 9, 2026
563cd46
refactor: 코드리뷰 반영
yeji424 Mar 9, 2026
d10dd95
Merge pull request #2172 from Let-s-intern/LC-2893-USER-마이페이지-신청현황-UI…
yeji424 Mar 9, 2026
ff84645
fix: 신청현황 프로그램 탭 버튼 노출 조건 수정
yeji424 Mar 9, 2026
7fb91eb
Merge pull request #2174 from Let-s-intern/LC-2893-USER-마이페이지-신청현황-UI…
yeji424 Mar 9, 2026
1abf93c
style: UI 수정사항 반영
yeji424 Mar 10, 2026
f9336b2
refactor: 코드리뷰 반영
yeji424 Mar 10, 2026
7b75adc
Merge pull request #2176 from Let-s-intern/LC-2893-USER-마이페이지-신청현황-UI…
yeji424 Mar 10, 2026
754ed84
style: 가이드북 결제 상세 UI 구현
yeji424 Mar 10, 2026
ac7e3c3
style: 가이드북 결제 상세 카드 열람방식 노출
yeji424 Mar 11, 2026
6e8926a
feat: 가이드북 환불 API 연동 및 로직 구현
yeji424 Mar 12, 2026
1ba2908
fix: 결제 취소 시 즉시 취소 상태 미반영 오류 수정
yeji424 Mar 12, 2026
828a3f0
Merge pull request #2177 from Let-s-intern/LC-2847-USER-가이드북-환불-환불-플로…
yeji424 Mar 12, 2026
6c4528a
feat: 가이드북 첫 다운로드일 시에만 모달 노출하도록 수정
yeji424 Mar 14, 2026
5c5b54c
refactor: 다운로드 여부 조회 단일 조회로 개선
yeji424 Mar 14, 2026
c98b87d
refactor: 코드리뷰 반영
yeji424 Mar 14, 2026
4df5bf8
Merge pull request #2183 from Let-s-intern/LC-2845-USER-마이페이지-가이드북-카드-구현
yeji424 Mar 14, 2026
84cfe25
feat : 마이페이지 > 마그넷 (신청현황, 커리어보드) api 연동
yeeun426 Mar 14, 2026
6c4ecea
feat : 마페>커리어성장 UI 수정
yeeun426 Mar 15, 2026
c5d4927
Merge pull request #2184 from Let-s-intern/LC-2903-USER-마그넷-신청현황-api
yeeun426 Mar 15, 2026
714b4af
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
yeeun426 Mar 15, 2026
15ddb43
refactor : ProgramsPage 컴포넌트 관심사 분리
hyonun321 Mar 15, 2026
84dedde
feat : 관심 직무 필터 추가 및 커리어 단계 옵션 업데이트
hyonun321 Mar 15, 2026
9e58f71
feat : 프로그램 카드 UI 개선
hyonun321 Mar 15, 2026
f8befe4
feat : 무료 자료집 섹션, 프로그램 추천 CTA, Swiper 배너 추가
hyonun321 Mar 15, 2026
6a9ddfa
refactor : 필터 사이드바 UI 개선
hyonun321 Mar 15, 2026
ffb0b1a
fix : 바텀시트 아코디언 토글 아이콘 깨짐 수정
hyonun321 Mar 15, 2026
9cb664d
fix : 바텀시트 아코디언 토글 아이콘 수정
hyonun321 Mar 15, 2026
2d73b71
feat : 셀렉트 박스 수정
yeeun426 Mar 16, 2026
377493f
feat : 1-index로 수정
yeeun426 Mar 16, 2026
a324479
feat : 공개 예정 카드, 공개 예정 상세 UI 변경
yeeun426 Mar 16, 2026
2ece346
feat : my 자료가 없는 경우, UI 추가
yeeun426 Mar 16, 2026
55bae99
feat : magnet.description 문자열을 파싱해 metaDescription 값을 표시
yeeun426 Mar 17, 2026
ce55a37
feat : 신청 후, api 재호출
yeeun426 Mar 17, 2026
2af453f
feat : 로그아웃 시, 신청하기 클릭 후 로그인 페이지 이동
yeeun426 Mar 20, 2026
57af5db
feat : 출시알림 질문 내 api 연동
yeeun426 Mar 21, 2026
ba3a15a
Merge pull request #2195 from Let-s-intern/LC-2863-user-마그넷-신청-api-연동
yeeun426 Mar 21, 2026
7fff621
feat : isOther, otherText 관련 코드 제거
yeeun426 Mar 21, 2026
97a208e
feat : 자료집 추천 최신 콘텐츠 4개가 기본값으로 노출
yeeun426 Mar 22, 2026
798b7a4
feat : 상세 페이지 내 공개예정 뱃지 정상 노출
yeeun426 Mar 22, 2026
7d05dcb
feat : LaunchAlertProgramSection 노출 조건 수정
yeeun426 Mar 22, 2026
3ac3496
feat : 마그넷 추천/ 프로그램 추천 조회 수정
yeeun426 Mar 22, 2026
678d7a4
feat : 마그넷 리스트 UI 변경
yeeun426 Mar 22, 2026
8814176
feat: 마그넷 신청자 정보 api 연동
hyonun321 Mar 23, 2026
5fed560
fix: nullable 추가하여 무응답으로 오는 필드 '-'로 처리
hyonun321 Mar 23, 2026
6bcf95b
feat: 프로그램타입, 챌린지 타입 추가 및 이벤트, 출시알림에 신청자 정보, 삭제 추가
hyonun321 Mar 23, 2026
6b36fe7
refactor: lead-history API 파라미터 변경 (leadEvent → magnet)
hyonun321 Mar 23, 2026
01aa6f4
refactor: 리드 히스토리 페이지를 /admin/leads/managements로 이동
hyonun321 Mar 23, 2026
8feb252
refactor: 사이드바에서 리드 히스토리 항목 제거
hyonun321 Mar 23, 2026
0cddbba
fix: 마그넷별 신청자 정보 페이지 복원
hyonun321 Mar 23, 2026
75cb80a
style: break-word 적용
hyonun321 Mar 23, 2026
d007526
fix: 쿼리에서 가져온 데이터로 리스트 조회하게 변경
hyonun321 Mar 23, 2026
ff67b1d
Merge pull request #2202 from Let-s-intern/LC-2926-ADMIN-ETC-API-연동
hyonun321 Mar 23, 2026
dc5b6dd
refactor : 코드 리뷰 반영
yeeun426 Mar 23, 2026
2914815
Merge pull request #2203 from Let-s-intern/LC-2922-user-마그넷-변경
yeeun426 Mar 23, 2026
f3b33e9
feat: 미설정시 기본값 노출 마그넷 추천 설정, 프로그램 추천 리스트 멘트 변경
hyonun321 Mar 23, 2026
e5f0dc3
feat : 마그넷 좋아요 api 연동
yeeun426 Mar 23, 2026
a8ee7f1
feat : LIGHT 플랜 추가
yeeun426 Mar 23, 2026
5f53855
feat : 마그넷 조회일 기록 기능 추가
yeeun426 Mar 23, 2026
4d0b216
feat : 이미 신청한 경우, 에러 메세지
yeeun426 Mar 23, 2026
18cdf96
fix: 프로그램/마그넷 추천 유저단 연동 버그 수정
hyonun321 Mar 23, 2026
c4221e0
feat: 마그넷 리스트 마그넷 추천 리스트 드롭박스 요소로 반영 하게 기능추가
hyonun321 Mar 23, 2026
a50fbb5
fix: 마그넷 추천 fallback에서 자료집/VOD/무료 템플릿만 조회하도록 수정
hyonun321 Mar 23, 2026
7766661
refactor: CTA 소제목 자동완성을 classification 기반으로 변경
hyonun321 Mar 23, 2026
52322e4
fix: 빌드에러 수정
hyonun321 Mar 23, 2026
e1dbc62
fix: programRecommendItems 인덱스 어긋남 버그 수정
hyonun321 Mar 23, 2026
1e7ec24
Merge pull request #2204 from Let-s-intern/LC-2929-ADMIN-magnet-유저단-프…
hyonun321 Mar 23, 2026
5eca031
feat : 리스트 즉시 갱신
yeeun426 Mar 24, 2026
fe0e8e1
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
yeeun426 Mar 24, 2026
272dd0d
feat : 프로그램 출시 알림 UI 추가
yeeun426 Mar 25, 2026
bd95c27
feat : 리스트에서 출시 알림 카테고리 제거
yeeun426 Mar 25, 2026
e345c20
feat : 공개예정, 미신청의 경우 콘텐츠 그라데이션 처리
yeeun426 Mar 25, 2026
719d7ba
feat : 마그넷 상세 UI 수정
yeeun426 Mar 25, 2026
2dc8653
style : 폰트 굵기 변경
yeeun426 Mar 25, 2026
73867ae
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
yeeun426 Mar 25, 2026
7f37ad1
feat : 다른 취준생이 찾은 컨텐츠 모바일 UI 변경
yeeun426 Mar 25, 2026
4d8101c
Merge pull request #2207 from Let-s-intern/LC-2922-user-마그넷-변경
yeeun426 Mar 25, 2026
3b039e2
fix: 필터링 에러 수정
hyonun321 Mar 25, 2026
8a84c4f
style: 레이아웃 및 UI 디테일 조정
yeji424 Mar 25, 2026
e3b973b
style: 카드에 h2 에 따라 늘어나는 height 그리드 추가
hyonun321 Mar 26, 2026
087565b
refactor: 필터사이드바 재사용 가능하게 변경 및 함수 유틸화로 보일러 플레이트 제거
hyonun321 Mar 26, 2026
e0282a6
Merge pull request #2185 from Let-s-intern/LC-2907-USER-프로그램-페이지-UI-개선
hyonun321 Mar 26, 2026
0278929
feat : 출시 알림 UI 변경
yeeun426 Mar 26, 2026
c2d429c
feat : 출시 알림 api 연동
yeeun426 Mar 26, 2026
dc448c3
feat : 모달 UI 수정
yeeun426 Mar 26, 2026
f1f3ad7
Merge pull request #2212 from Let-s-intern/LC-2930-user-출시알림
yeeun426 Mar 26, 2026
fbe97be
feat : 무료 마그넷 리스트에 SEO 적용
yeeun426 Mar 27, 2026
4b40cc1
feat : SEO 적용 위해 metaDesc 파싱 수정
yeeun426 Mar 27, 2026
389f4ff
Update src/app/(user)/library/list/page.tsx
yeeun426 Mar 29, 2026
02c69bc
Merge pull request #2218 from Let-s-intern/LC-2923-user-seo-적용
yeeun426 Mar 29, 2026
d37ba71
refactor: 도메인 별로 비지니스로직 캡슐화 및 파일화
hyonun321 Mar 29, 2026
cc32890
refactor: 리드 관리 테이블 전화번호별 1행 집계 구조로 변경
hyonun321 Mar 29, 2026
18895a9
refactor: pages/leads -> lead domain 폴더로 리팩토링
hyonun321 Mar 29, 2026
7998d4c
feat: 노출여부, 시작일 종료일 '-'로 변경
hyonun321 Mar 29, 2026
3cebd89
style: 헤더 사이즈 100 -> 150으로 변경
hyonun321 Mar 29, 2026
02e8576
refactor: csv 다운로드 -> csv 내보내기로 변경, 리드 등록 버튼 제거
hyonun321 Mar 29, 2026
cab765a
chore: 미사용 함수 제거
hyonun321 Mar 29, 2026
47a0c5c
Merge pull request #2220 from Let-s-intern/LC-2957-ADMIN-리드관리-개선
hyonun321 Mar 29, 2026
20dbf96
refactor: 공통 신청폼 라우트를 magnet/form/common으로 변경
hyonun321 Mar 29, 2026
f439b24
Merge pull request #2219 from Let-s-intern/LC-2955-ADMIN-출시알림-이벤트인경우-…
hyonun321 Mar 29, 2026
1cfa158
Merge pull request #2221 from Let-s-intern/LC-2954-ADMIN-admin-magnet…
hyonun321 Mar 29, 2026
54b6ba5
refactor: 마그넷 라우트를 /admin/blog/magnet에서 /admin/magnet으로 분리
hyonun321 Mar 29, 2026
c287404
merge: LC-2838-Sprint-17 병합 충돌 해결
hyonun321 Mar 29, 2026
3061200
Merge pull request #2222 from Let-s-intern/LC-2953-ADMIN-admin-blog-m…
hyonun321 Mar 29, 2026
36f89cf
fix: 마케팅 동의 여부 patch 같이 보내게 변경
hyonun321 Mar 29, 2026
1471561
Merge pull request #2223 from Let-s-intern/LC-2952-ADMIN-마그넷-신청자-목록에-…
hyonun321 Mar 29, 2026
0b942ce
feat : USER 무료자료집 카테고리 필터 항목 이벤트 -> 기타
yeeun426 Mar 30, 2026
176aeaf
feat : 비회원의 경우, 알림설정 시 로그인 페이지 리다이렉트
yeeun426 Mar 30, 2026
c67bdd0
Merge pull request #2231 from Let-s-intern/LC-2949-user-무료자료집-항목
yeeun426 Mar 30, 2026
ba00016
feat : 모바일 메뉴에 무료자료집 추가
yeeun426 Mar 30, 2026
48ec805
feat : 자료집 신청폼 '추가정보' 타이틀 빠짐/출시알림 신청에는 잘못된 위치 수정
yeeun426 Mar 30, 2026
4da2a84
feat : 추가 정보 노출 조건 변경
yeeun426 Mar 30, 2026
be770ee
refactor : 코드 리뷰 적용
yeeun426 Mar 30, 2026
c0cb07e
Merge pull request #2233 from Let-s-intern/LC-2941-디자인-QA-자료집
yeeun426 Mar 30, 2026
0b8c9e4
feat : 디자인 간격 수정
yeeun426 Mar 30, 2026
ce30afa
feat : LC-2942 마케팅 활용 동의 체크박스 수정
yeeun426 Mar 30, 2026
f2ca958
Merge pull request #2232 from Let-s-intern/LC-2946-user-mo-nav-누락
yeeun426 Mar 30, 2026
6ff62da
feat : LC-2944 아이콘 크기 수정
yeeun426 Mar 30, 2026
3d2f63b
feat : 자료집 콘텐츠 탭 들썩거림+모바일 폰트 사이즈 변경
yeeun426 Mar 30, 2026
36d7343
Merge pull request #2234 from Let-s-intern/LC-2943-QA-다지인-간격-수정
yeeun426 Mar 30, 2026
4666b33
Merge pull request #2235 from Let-s-intern/LC-2940-qa-탭-폰트
yeeun426 Mar 30, 2026
dd7060c
feat: 카테고리탭 사이즈props 추가
yeji424 Mar 29, 2026
b748156
style: 프로그램 페이지 필터 사이즈 적용
yeji424 Mar 29, 2026
9b01ced
refactor: 마이페이지 커리어보드 공용 탭으로 수정
yeji424 Mar 29, 2026
69400d8
style: 신청현황 카테고리탭 전체 너비 설정
yeji424 Mar 29, 2026
bd7bd90
fix: 카테고리탭 밑줄 줌 비율 버그 수정
yeji424 Apr 1, 2026
849d813
refactor: 코드리뷰 반영
yeji424 Apr 1, 2026
ca8366d
Merge pull request #2239 from Let-s-intern/LC-2958-공용-카테고리탭-UI-사이즈-추가-반영
yeji424 Apr 1, 2026
9d99bca
style: 바텀시트 UI 수정
yeji424 Apr 1, 2026
eed6e4e
style: 필터 아이콘 위치 조정
yeji424 Apr 1, 2026
e63a93d
fix: 바텀시트 열린 상태에서 데스크탑 리사이즈 시 스크롤 잠금 해제
yeji424 Apr 1, 2026
a4bc295
Merge pull request #2240 from Let-s-intern/LC-2965-USER-프로그램-페이지-바텀시트…
yeji424 Apr 1, 2026
dca976c
fix: isVisible 노출시간, 선택 체크박스 추가
hyonun321 Apr 1, 2026
7b1cf70
Merge pull request #2241 from Let-s-intern/LC-2950-USER-출시-알림버튼-ADMIN…
hyonun321 Apr 1, 2026
b08ed3a
chore : 상단 탭 구분선 삭제
yeeun426 Apr 1, 2026
a0d668d
feat : 희망구직조건 - 추가 질문 사이 간격
yeeun426 Apr 1, 2026
acc7531
Merge pull request #2243 from Let-s-intern/LC-2962-qa-디자인
yeeun426 Apr 1, 2026
e22e697
feat: 출시 알림 신청 모달에 launch-alert API 연결
yeeun426 Apr 2, 2026
70c0fd4
Merge branch 'LC-2838-Sprint-17' of https://github.com/Let-s-intern/l…
yeeun426 Apr 2, 2026
f518fc6
feat : 프로그램 출시 알림 API 연동
yeeun426 Apr 2, 2026
80ba18d
feat : 이메일 수정 가능
yeeun426 Apr 2, 2026
4833fe9
refactor : 코드 리뷰 반영
yeeun426 Apr 4, 2026
09e69b0
feat : LC-2969 [디자인QA/PC] 추가 질문 설명 너비
yeeun426 Apr 4, 2026
857580a
Merge pull request #2245 from Let-s-intern/LC-2930-user-출시알림
yeeun426 Apr 4, 2026
83606a7
fix : 출시 알림 신청 문항 variant 무관 노출 및 워딩 변경
hyonun321 Apr 4, 2026
b7e04e1
Merge pull request #2248 from Let-s-intern/LC-2967-ADMIN-마그넷-글-관리-출시-…
hyonun321 Apr 4, 2026
8b1185f
feat : 마그넷 등록 타입별 조건부 렌더링 적용
hyonun321 Apr 4, 2026
76eb384
Merge pull request #2249 from Let-s-intern/LC-2948-기획-개선-마그넷-등록-화면-노출…
hyonun321 Apr 4, 2026
1dbc586
feat : 마그넷 출시알림 챌린지 타입 전체 목록 노출
hyonun321 Apr 4, 2026
24cb153
Merge pull request #2250 from Let-s-intern/LC-2970-출시-알림-타입-챌린지-타입-추가
hyonun321 Apr 4, 2026
6506865
feat: 출시알림의 경우 노출일 수정하게
hyonun321 Apr 5, 2026
51469b4
feat : variant 조건 삭제
yeeun426 Apr 6, 2026
c4f3ea1
Merge pull request #2253 from Let-s-intern/LC-2971-user-출시알림-데이터
yeeun426 Apr 6, 2026
e64cf6f
feat:(임시) /magnet 상세 조회로 출시알림 신청했을시, 버튼 비활성화 기능 추가
hyonun321 Apr 6, 2026
17061d4
Merge pull request #2254 from Let-s-intern/LC-2972-마그넷-공개알림신청을-했어도-계속…
hyonun321 Apr 6, 2026
08265f0
Merge branch 'main' into LC-2838-Sprint-17
hyonun321 Apr 6, 2026
380370b
chore: 린트에러 제거
hyonun321 Apr 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .claude/behavioral.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
# CLAUDE.md

Behavioral guidelines to reduce common LLM coding mistakes. Merge with project-specific instructions as needed.

**Tradeoff:** These guidelines bias toward caution over speed. For trivial tasks, use judgment.

## 1. Think Before Coding

**Don't assume. Don't hide confusion. Surface tradeoffs.**

Before implementing:

- State your assumptions explicitly. If uncertain, ask.
- If multiple interpretations exist, present them - don't pick silently.
- If a simpler approach exists, say so. Push back when warranted.
- If something is unclear, stop. Name what's confusing. Ask.

## 2. Simplicity First

**Minimum code that solves the problem. Nothing speculative.**

- No features beyond what was asked.
- No abstractions for single-use code.
- No "flexibility" or "configurability" that wasn't requested.
- No error handling for impossible scenarios.
- If you write 200 lines and it could be 50, rewrite it.

Ask yourself: "Would a senior engineer say this is overcomplicated?" If yes, simplify.

## 3. Surgical Changes

**Touch only what you must. Clean up only your own mess.**

When editing existing code:

- Don't "improve" adjacent code, comments, or formatting.
- Don't refactor things that aren't broken.
- Match existing style, even if you'd do it differently.
- If you notice unrelated dead code, mention it - don't delete it.

When your changes create orphans:

- Remove imports/variables/functions that YOUR changes made unused.
- Don't remove pre-existing dead code unless asked.

The test: Every changed line should trace directly to the user's request.

## 4. Goal-Driven Execution

**Define success criteria. Loop until verified.**

Transform tasks into verifiable goals:

- "Add validation" → "Write tests for invalid inputs, then make them pass"
- "Fix the bug" → "Write a test that reproduces it, then make it pass"
- "Refactor X" → "Ensure tests pass before and after"

For multi-step tasks, state a brief plan:

```
1. [Step] → verify: [check]
2. [Step] → verify: [check]
3. [Step] → verify: [check]
```

Strong success criteria let you loop independently. Weak criteria ("make it work") require constant clarification.

---

**These guidelines are working if:** fewer unnecessary changes in diffs, fewer rewrites due to overcomplication, and clarifying questions come before implementation rather than after mistakes.
1 change: 1 addition & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@
},
"enabledPlugins": {
"code-review@claude-plugins-official": true,
"andrej-karpathy-skills@karpathy-skills": true,
"typescript-lsp@claude-plugins-official": true,
"playwright@claude-plugins-official": true,
"commit-commands@claude-plugins-official": true,
Expand Down
121 changes: 121 additions & 0 deletions .cursor/rules/domain-folder-structure.mdc
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
---
description: Domain-based folder structure rules - MUST follow when creating or moving files
globs:
alwaysApply: true
---

# 도메인 기반 폴더 구조 규칙 (최우선 적용)

> 이 규칙은 파일 생성, 이동, 리팩토링 시 반드시 따라야 하는 최우선 규칙이다.

## 프로젝트 구조

```
src/
├── app/ # Next.js App Router — 라우팅만 담당
├── domain/ # 도메인 기반 기능 모듈 (핵심 코드가 여기에 위치)
│ ├── about/
│ ├── admin/
│ ├── auth/
│ ├── blog/
│ ├── career-board/
│ ├── challenge/
│ ├── faq/
│ ├── home/
│ ├── mypage/
│ ├── program/
│ ├── program-recommend/
│ ├── report/
│ └── review/
├── common/ # 3개 이상 도메인에서 사용하는 범용 UI 컴포넌트
├── api/ # API 클라이언트 (도메인별 하위 폴더)
├── hooks/ # 3개 이상 도메인에서 사용하는 공유 훅
├── store/ # Zustand 전역 스토어
├── types/ # 공유 타입 정의
├── utils/ # 3개 이상 도메인에서 사용하는 공유 유틸리티
├── lib/ # 라이브러리 설정
├── context/ # React Context 프로바이더
└── schema.ts # 중앙 Zod 스키마
```

## 파일 배치 결정 규칙 (이 순서대로 판단)

### 1. 단일 도메인 전용 → `domain/{도메인}/` 안에 배치

컴포넌트, 훅, 유틸 모두 해당 도메인 폴더 안에 둔다.

```
domain/challenge/
├── MyChallengeCard.tsx # 컴포넌트
├── hooks/useMissionSubmit.ts # 도메인 전용 훅
├── utils/calcMissionScore.ts # 도메인 전용 유틸
├── section/DailyMissionSection.tsx
└── ui/MissionBadge.tsx
```

### 2. 인접 2~3개 도메인 공유 → 상위/핵심 도메인 폴더에 배치

- `program`과 `challenge` 공유 → `domain/program/` (상위 개념)
- `mypage`와 `review` 공유 → `domain/mypage/` (호스트 역할)
- `home`과 `blog` 공유 → 더 핵심인 도메인에 배치

### 3. 3개 이상 도메인에서 광범위하게 사용 → `common/`, `hooks/`, `utils/`

완전히 범용적이고 특정 도메인에 속하지 않는 것만.

```
common/button/BaseButton.tsx # 범용 UI
hooks/useDebounce.ts # 범용 훅
utils/formatDate.ts # 범용 유틸
```

## 절대 금지

1. **도메인 간 직접 import 금지**
```typescript
// BAD: domain/challenge/에서 domain/program/ 직접 참조
import { ProgramCard } from '@/domain/program/ProgramCard';

// GOOD: 공유가 필요하면 common으로 올리거나 상위 도메인에 배치
```

2. **타입별 flat 구조 금지** — 모든 컴포넌트를 `src/components/`에 넣지 않음

3. **순환 의존 금지** — 도메인 A → B → A 형태 금지

4. **기존 파일 불필요한 이동 금지** — 새 파일에만 규칙 적용. 기존 구조를 함부로 바꾸지 않음

## 도메인 폴더 내부 패턴

```
domain/{기능}/
├── {ComponentName}.tsx # 루트 컴포넌트
├── section/ # 페이지 섹션별 분리
│ ├── {Feature}Section.tsx
│ └── {Feature}SkeletonSection.tsx
├── ui/ # 도메인 전용 UI (button, card, modal 등)
├── hooks/ # 도메인 전용 훅
├── utils/ # 도메인 전용 유틸리티
├── modal/ # 도메인 전용 모달
└── {하위기능}/ # 서브 기능별 폴더
```

## 삭제 용이성 원칙

**도메인 폴더를 통째로 삭제해도 다른 도메인에 영향이 없어야 한다.**

- 도메인 전용 코드는 반드시 해당 도메인 폴더에 위치
- 공유 코드 생성 전 "정말 필요한가?" 확인
- 성급한 추상화보다 적절한 중복이 낫다

## 의존 방향

```
common / hooks / utils (공유 레이어)
domain/{각 도메인} (비즈니스 로직)
app/ (라우팅, 페이지 조립)
```

상위 레이어가 하위 레이어를 참조한다. 역방향 참조 금지.
79 changes: 75 additions & 4 deletions .gemini/styleguide.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,75 @@
<!--
출처: 토스 프론트엔드 가이드라인 기반으로 만든 Cursor rule
https://gist.github.com/toy-crane/dde6258997519d954063a536fc72d055
출처: 토스 프론트엔드 가이드라인 + Vercel React Best Practices 기반
-->

# Frontend Design Guideline

> **Gemini review language:** All code review feedback must be provided in korean.
> **Gemini review language:** All code review feedback must be provided in Korean.

This document summarizes key frontend design principles and rules, showcasing
recommended patterns. Follow these guidelines when writing frontend code.
recommended patterns. Follow these guidelines when writing and reviewing frontend code.

---

# 도메인 기반 폴더 구조 (최우선 리뷰 항목)

> 파일이 올바른 위치에 있는지를 가장 먼저 확인한다.

## 프로젝트 구조

```
src/
├── app/ # Next.js App Router — 라우팅만 담당
├── domain/ # 도메인 기반 기능 모듈 (핵심 코드)
│ ├── about/ ├── admin/ ├── auth/
│ ├── blog/ ├── career-board/ ├── challenge/
│ ├── faq/ ├── home/ ├── mypage/
│ ├── program/ ├── program-recommend/
│ ├── report/ └── review/
├── common/ # 3개+ 도메인에서 사용하는 범용 UI
├── api/ # API 클라이언트 (도메인별 하위 폴더)
├── hooks/ # 3개+ 도메인에서 사용하는 공유 훅
├── store/ # Zustand 전역 스토어
├── types/ # 공유 타입
├── utils/ # 3개+ 도메인에서 사용하는 공유 유틸
└── schema.ts # 중앙 Zod 스키마
```

## 파일 배치 규칙 (리뷰 시 반드시 확인)

### 1. 단일 도메인 전용 → `domain/{도메인}/` 안에 배치
### 2. 인접 2~3개 도메인 공유 → 상위/핵심 도메인 폴더에 배치
### 3. 3개+ 도메인에서 범용 사용 → `common/`, `hooks/`, `utils/`

## 도메인 폴더 내부 구조

```
domain/{기능}/
├── {ComponentName}.tsx # 루트 컴포넌트
├── section/ # 페이지 섹션
├── ui/ # 도메인 전용 UI
├── hooks/ # 도메인 전용 훅
├── utils/ # 도메인 전용 유틸
├── modal/ # 도메인 전용 모달
└── {하위기능}/ # 서브 기능 폴더
```

## 리뷰 시 반드시 지적할 패턴

1. **도메인 간 직접 import** — `domain/A/`에서 `domain/B/`를 import하는 코드
2. **타입별 flat 구조** — 새 컴포넌트를 `src/components/`에 넣는 코드
3. **순환 의존** — 도메인 A → B → A 형태
4. **도메인 전용 코드가 common에 있는 경우** — 한 도메인에서만 쓰는데 common에 있으면 지적

## 의존 방향

```
common / hooks / utils (공유) ← domain/{각 도메인} (비즈니스) ← app/ (라우팅)
```

역방향 참조 금지. 도메인 폴더를 통째로 삭제해도 다른 도메인에 영향이 없어야 한다.

---

# Readability

Expand Down Expand Up @@ -736,3 +797,13 @@ When reviewing React and Next.js code, also refer to the comprehensive performan
- Minimize serialization at RSC boundaries

Always consider both the design principles in this document AND the performance best practices from Vercel when providing code review feedback.

## Other Detailed Rule References

| File | Content |
|---|---|
| `.cursor/rules/full-stack-rule.mdc` | Full-stack development practices (RSC, error handling, optimization, testing) |
| `.cursor/rules/domain-folder-structure.mdc` | Domain-based folder structure detailed rules |
| `.cursor/rules/commit-convention.mdc` | Commit message convention (Korean, Conventional Commits) |

**이 문서와 위 상세 파일이 충돌할 경우, 이 문서(styleguide.md)의 내용을 우선한다.**
101 changes: 101 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
# Copilot Instructions — Let's Intern Client

> 이 프로젝트의 모든 AI 도구가 따라야 할 핵심 규칙입니다.

## Tech Stack

Next.js 15 (App Router), React 18, TypeScript, Tailwind CSS, Zustand, TanStack React Query, React Hook Form + Zod, Vitest.

## 도메인 기반 폴더 구조 (최우선 규칙)

### 구조 개요

```
src/
├── app/ # Next.js App Router — 라우팅만 담당
├── domain/ # 도메인 기반 기능 모듈 (핵심)
├── common/ # 3개+ 도메인에서 사용하는 범용 UI
├── api/ # API 클라이언트 (도메인별)
├── hooks/ # 3개+ 도메인에서 사용하는 공유 훅
├── store/ # Zustand 전역 스토어
├── types/ # 공유 타입
├── utils/ # 3개+ 도메인에서 사용하는 공유 유틸
└── schema.ts # 중앙 Zod 스키마
```

### 파일 배치 규칙

1. **단일 도메인 전용** → `domain/{도메인}/` 안에 배치
2. **인접 2~3개 도메인 공유** → 상위/핵심 도메인 폴더에 배치
3. **3개+ 도메인에서 범용 사용** → `common/`, `hooks/`, `utils/`

### 도메인 폴더 내부

```
domain/{기능}/
├── {ComponentName}.tsx # 루트 컴포넌트
├── section/ # 페이지 섹션
├── ui/ # 도메인 전용 UI
├── hooks/ # 도메인 전용 훅
├── utils/ # 도메인 전용 유틸
└── {하위기능}/ # 서브 기능 폴더
```

### 현재 도메인 목록

about, admin, auth, blog, career-board, challenge, faq, home, mypage, program, program-recommend, report, review

### 금지 패턴

- 도메인 간 직접 import (`domain/A/` → `domain/B/`) 금지
- 타입별 flat 구조 금지 (모든 컴포넌트를 `src/components/`에 넣지 않음)
- 순환 의존 금지
- 기존 파일 불필요한 이동 금지

### 의존 방향

`common/hooks/utils` ← `domain/` ← `app/` (역방향 금지)

## 코딩 스타일

- PascalCase: 컴포넌트 (`ProgramCard.tsx`)
- camelCase: 함수/변수 (`useProgramStore`)
- kebab-case: 라우트 폴더 (`program-detail/`)
- UPPER_SNAKE_CASE: 상수 (`ANIMATION_DELAY_MS`)
- 함수형/선언적 프로그래밍, class 금지
- `'use client'`, `useEffect`, `setState` 최소화 — RSC 우선
- Prettier: 2 spaces, semicolons, single quotes, width 80

## 코드 품질 (Toss Frontend Fundamentals)

1. **가독성** — 매직넘버 네이밍, 위에서 아래로 읽히는 코드, 복잡한 조건에 이름 부여
2. **예측 가능성** — 일관된 반환 타입, 숨겨진 부수 효과 없음
3. **응집도** — 함께 수정되는 코드는 같은 위치에
4. **결합도** — 성급한 추상화보다 적절한 중복. 영향 범위 최소화

## 성능 (Vercel React Best Practices)

- `Promise.all()` for independent async (워터폴 제거)
- barrel file import 지양
- 무거운 컴포넌트 dynamic import
- 서드파티 지연 로딩

## 커밋

- **한국어**, Conventional Commits (`feat:`, `fix:`, `refactor:` 등), 72자 이내

---

## 상세 규칙 참조 (반드시 함께 읽을 것)

코드 작성 및 리뷰 시, 아래 파일들의 상세 규칙도 함께 따른다:

| 파일 | 내용 |
|---|---|
| `.cursor/rules/toss-frontend.mdc` | Toss Frontend Fundamentals 상세 코드 예시 (매직넘버, 가드패턴, 조건부렌더링, Form Cohesion, Props Drilling, 추상화 등) |
| `.cursor/rules/full-stack-rule.mdc` | 풀스택 개발 프랙티스 (RSC, 에러 핸들링, 최적화, 테스트 등) |
| `.cursor/rules/domain-folder-structure.mdc` | 도메인 기반 폴더 구조 상세 규칙 |
| `.cursor/rules/commit-convention.mdc` | 커밋 메시지 컨벤션 상세 |
| `.github/skills/vercel-react-best-practices/AGENTS.md` | Vercel React 성능 최적화 40+ 규칙 상세 |

**이 문서의 요약과 위 상세 파일이 충돌할 경우, 상세 파일의 내용을 따른다.**
Loading
Loading