PostgreSQL의 Partial Unique Index의 기능을 활용하면 attendance_status 모델필드의 값이 cancelled 된 경우를 제외한 모든 동일 일자와 동일 타임슬롯인 경우를 중복으로 간주하는 제약을 구현 할 수 있습니다. __table_args__ = ( Index( "uq_active_booking_when_timeslot", "when", "time_slot_id", unique=True, postgresql_where=text("attendance_status <> 'CANCELLED'"), ), ) postgresql 일 경우, attendance_status 가 'CANCELLED' 가 아닌 모든 when + time_slot_id 조합에 고윳값 제약을 걸어줍니다.
픽스처 함수는 픽스처로, 픽스처 내부에서 사용되는 픽스처 함수는 객체로 표현하였습니다. ===== host_user_calendar 픽스처에서 refresh() 메서드를 통해 host_user 객체를 db와 동기화해서 host_user 객체가 calendar 객체의 존재를 아는 것으로 이해했는데요. 그런데 해당 host_user 객체는 반환되지 않고 host_user_calendar 픽스처에 남아있게 되어 접근할 수 없으니 무의미한 행동이라고 보여졌습니다. 그런데 refresh()를 사용하지 않으면 test_사용자가_변경하는_항목만_변경되고_나머지는_기존_값을_유지한다() 테스트 함수에서 update_calendar 엔드포인트 호출 시 404 에러가 발생하는 것을 확인했습니다. 즉, user.calendar로 접근 시 None으로 평가되는 것이지요. 그렇다면 host_user를 반환하지 않아도 해당 host_user 객체는 client_user_auth 픽스처에서 공유되는 것일까요? (혹은 동일한 객체일까요?) 그래야 refresh()를 진행했을 때 오류가 뜨지 않는다는 점이 설명이 되더라구여. 여기서 또하나 궁금한 점은 client_with_auth 픽스처보다 host_user_calendar 픽스처가 먼저 실행이 되어야 공유되는 host_user 객체가 calendar 정보를 가질 수 있다는 점이었습니다. 이 실행 순서를 결정하는 프로세스에 대해서도 궁금합니다!
Claude Code Custom Command 을 프로젝트 레벨로 등록 후 Max Plan을 구독중인데 5분만 사용해도 Context 가 소진되고 있습니다. 혹시 해당 Command 을 사용하지 않아도 토큰을 소비하는것일까요? 저의 생각이 맞다면 Command 의 내용을 간략화 하기 위하여 지침을 참조 문서로 변경하면 개선이 될까요? Skiil 로 변경하는것이 좋을까요? 참고로 제가 추가한 Command 입니다. # BlockNote Upgrade Command BlockNote 패키지를 최신 버전으로 업그레이드합니다. ## 실행 방법 이 명령은 다음 작업을 순서대로 수행합니다: 1. 현재 BlockNote 버전 확인 2. npm registry에서 최신 버전 조회 3. GitHub releases에서 변경사항 분석 4. Peer dependencies 호환성 검사 5. 사용자 확인 후 업그레이드 수행 6. 빌드 검증 --- ## 지시사항 ### Step 1: 현재 버전 확인 pnpm-workspace.yaml 파일에서 현재 BlockNote 버전을 확인하세요: ```yaml "@blocknote/core": &blocknote "X.X.X" ``` 관련 의존성 버전도 함께 확인: - @mantine/core - @tiptap/core - @shikijs/core ### Step 2: 최신 버전 조회 npm registry에서 최신 버전을 확인하세요: ```bash npm view @blocknote/core version ``` ### Step 3: 릴리스 노트 분석 GitHub releases 페이지에서 변경사항을 확인하세요: ``` WebFetch: https://github.com/TypeCellOS/BlockNote/releases ``` 다음 항목을 확인: - Breaking Changes 여부 - 새로운 기능 - 버그 수정 - Peer dependency 변경 ### Step 4: Peer Dependencies 확인 BlockNote가 의존하는 패키지들의 버전을 확인하세요. 확인할 파일들: | 패키지 | URL | 확인할 의존성 | |--------|-----|--------------| | @blocknote/mantine | https://raw.githubusercontent.com/TypeCellOS/BlockNote/main/packages/mantine/package.json | @mantine/core, @mantine/hooks | | @blocknote/core | https://raw.githubusercontent.com/TypeCellOS/BlockNote/main/packages/core/package.json | @tiptap/*, yjs | | @blocknote/react | https://raw.githubusercontent.com/TypeCellOS/BlockNote/main/packages/react/package.json | react, react-dom | | @blocknote/code-block | https://raw.githubusercontent.com/TypeCellOS/BlockNote/main/packages/code-block/package.json | @shikijs/* | 우선순위: 1. @blocknote/mantine → Mantine (가장 자주 변경) 2. @blocknote/core → Tiptap, Yjs 3. @blocknote/react → React 4. @blocknote/code-block → Shikijs WebFetch로 각 package.json을 확인하고 peerDependencies 섹션에서 버전 요구사항을 추출하세요. ### Step 5: 버전 비교 및 변경사항 정리 현재 프로젝트의 버전과 BlockNote가 요구하는 버전을 비교하여 표로 정리: | 패키지 | 현재 버전 | 필요 버전 | 업데이트 필요 | |--------|----------|----------|--------------| | @blocknote/* | X.X.X | Y.Y.Y | O/X | | @mantine/core | ^X.X.X | ^Y.Y.Y | O/X | | ... | ... | ... | ... | ### Step 6: 사용자 확인 변경사항을 사용자에게 보여주고 진행 여부를 확인하세요: - Breaking Changes가 있으면 경고 - 업데이트할 패키지 목록 표시 - 진행 의사 확인 ### Step 7: pnpm-workspace.yaml 수정 승인되면 pnpm-workspace.yaml을 수정하세요: ```yaml # BlockNote 버전 업데이트 "@blocknote/core": &blocknote "NEW_VERSION" # 필요시 관련 패키지도 업데이트 "@mantine/core": &mantine "^NEW_VERSION" ``` ### Step 8: Clean Install 메이저 의존성 업그레이드 시 기존 node_modules를 정리하고 새로 설치합니다: ```bash # node_modules 및 dist 폴더 삭제 pnpm clean # 의존성 새로 설치 pnpm install ``` > 이 단계는 캐시된 이전 버전 패키지로 인한 호환성 문제를 방지합니다. ### Step 9: 빌드 검증 ```bash pnpm --filter @collaboration/common build pnpm --filter @collaboration/editor build ``` ### Step 10: 결과 보고 업그레이드 결과를 보고: - 변경된 패키지 버전 - 빌드 성공 여부 - 다음 단계 안내 (개발 서버 실행, 기능 테스트) --- ## 롤백 안내 문제 발생 시 이전 버전으로 롤백하는 방법도 안내하세요: ```yaml # pnpm-workspace.yaml에서 이전 버전으로 변경 "@blocknote/core": &blocknote "PREVIOUS_VERSION" ``` ```bash pnpm install ``` --- ## 참고 문서 - 업그레이드 가이드: docs/blocknote-upgrade-guide.md - pnpm catalog 가이드: docs/pnpm-catalog-guide.md - BlockNote 공식 문서: https://www.blocknotejs.org/docs - GitHub 저장소: https://github.com/TypeCellOS/BlockNote
학습 설명중 /init 사용하여 claude.md 파일을 생성하면 해당 내용은 memory 파일이라고 강의를 들었습니다. 그렇다면 /init 을 사용하지 않고, 아래와 같이 작성한다면 생성된 ROADMAP.md 파일은 memory 파일이 아닌가요? "개발자 웹 이력서를 개발 할 수 있도록 ROADMAP.md 파일을 작성해 주세요. 기술스택: -html, css, javascript, tailwindcss 이력서 내용: -일반적인 내용으로 간단히 작성해줘"
강의를 완료한 후에 썸네일 이미지 작업을 진행하려고 합니다. 텍스트가 들어간 이미지를 받아서 제공받은 키워드를 추가해 대표 이미지로 만들 계획인데요, 이 과정에서 캔바 API를 활용하고 싶습니다. 현재 이미지 메이크 워크플로우의 어느 단계에 캔바 API 노드를 추가하면 좋을까요?
실습내용을 열심히 따라가다 보니 WSL에서 git push하려면 토큰 방식으로 생성된 비번을 입력하라고 하셨는데 하다 보니 아래 캡처와 같이 계속 에러가 나네요. 따라하다 무엇을 잘못한 걸까요? ㅠㅠ 참고로 토큰값 생성은 Tokens(classic)으로도 해보고, Fine-grained tokens로도 생성해서 해 봤습니다. 둘 다 안되네요. ㅠ
안녕하세요 현재 수동설치로 진행중인데 kubeadm, kubelet, kubectl 패키지까지는 설치가 잘 진행 되었습니다 문제는 클 러스터 초기화 및 pod network 세팅 과정인데요 kubeadm init --pod-network-cidr=20.96.0.0/12 --apiserver-advertise-address 192.168.56.30 명령어 실행 후에 다음과 같은 문제가 발생하였습니다 현재 이런 로그가 뜨는데 뭐때문에 그러는 건지 궁금합니다 그리고 vagrantfile에 kube패키지 설치하는 구간에서 SHELL $install_master = <<-SHELL 리눅스에서 명령어로 입력해도 안되는 것 같은데 의미가 궁금합니다
현재 flux_schnell 을 물려 사용하는데 api 문제라기보단 '이미지프롬프트에이전트'가 이미지의 프롬프트를 작성되는 글의 맥락과는 전혀 상관없는 것으로 리턴하고 있습니다. Blog-image-Maker의 테스트용 트리거를 변경해야 할 것같은데... 정확한 원인을 모르겠어요. 모든 이미지가 파이썬과 관련된 것들로 생성이 되고 있는데... 어찌해야 할까요, 이미지 생성 프롬프트는 남박사님이 작성하신 내용 그대로를 사용하고 있습니다.
본래의 생각대로 글쓰기는 airtable에서 yes한 목록을 순차적으로 스캐줄링 기능으로 자동화를 하고 싶은데 문제는 계속해서 사진에서처럼 에러가 발생하며 그냥 멈춰버립니다. 에이전트나 챗모델의 시간을 5000(최대값) 으로 줬는데도 멈춰버리는데 이러면 자동화가 어려운 것이 사실이잖아요. 혹시 이런 경우엔 어떻게 대처할 수 있을런지요?
안녕하세요. 해당 PRD 생성 강의를 듣고 나서 세부적으로 깊은 질문이 몇 가지 생겨서 질문드리고자 합니다. 서브에이전트 문서를 여러 개 강사님께 받아서 진행했습니다. 다만 이전에도 질문 드린 적 있지만 세부적으로 프론트엔드, 백엔드, AI 등의 개인 프로젝트가 아닌 팀프로젝트 단위에서의 서브 에이전트 구성이나 이런 부분은 수강생이 스스로 학습해나가야 하는 부분도 있지만 어떤 식으로 만들어야 되고 참고하면 좋다라고는 말씀하셨지만 실질적으로 개인/팀 단위일 때의 에이전트 및 PRD가 어떤 식으로 차이가 나는 지 알고 싶습니다. (강사님께서 올려주신 소스 코드에 있는 것이 기본적인 틀이 될 수 있다는 점은 알겠지만 응용 단계에서 헷갈리는 부분이 발생한 부분입니다!) PRD에 API, DB 구조 등이 들어가있어 약간의 틀로 보이는데 실제 대형 프로젝트 등을 진행했을 때에는 API, ERD 구조 및 각종 사용자/관리자 명세서 등을 일일이 구분해서 만들었던 경험이 있었습니다. 이러한 것을 세분화해서 각각 자세하게 만들지 않고 PRD 하나로 뭉쳤을 때의 장점 및 단점, 향후 저를 포함한 수강생들이 어떤 방향성을 가지고 활용을 하면 좋을 지 아직까지는 감이 잘 오지 않습니다 ㅠㅠ
79. 서브에이전트 활용: 프로젝트 초기화 안녕하세요~ 이 단원이 좀 복잡해서 다시 보는중인데요, 프로젝트를 초기화(스타터킷에서부터)하는데, PRD를 참고해서 초기화 하는 방식으로 진행을 하시는데요, 이렇게 하면 프로젝트가 완전 초기화가 아닌(그냥 next.js 와 기본 라이브러리만 깔린 상태가 아닌), 초기화를 하면서 PRD에 나와 있는 PRD의 프로젝트를 일부 만드는 것 아닌가요?(실제로 UI,일부 버튼들을 만들더군요). 그냥 (완전)초기화하고 PRD로부터 ROADMAP.map을 만들어서 처음부터 하나씩 만들어 나가는게 더 깔끔한 방식이 아닌가 해서요. 왜냐하면 prd를 기준으로 초기화를 하면 일정부분 화면UI도 나오고 일부 버튼도 동작하는데, 결국에는 ROADMAP.md에 나와 있는 작업 순서대로 다시 작업을 하게 되면 2중으로 작업을 하는게 아닌가 해서요 (심지어 복잡한 프로젝트, 큰 프로젝트의 경우 초기화하면서 PRD 기준으로 만든 뼈대? UI하고 나중에 로드맵 만들고 본격적으로 프로젝트를 만드는중에 코드가 꼬이는(?) 현상 같은게 나오지 않을까 해서요)
실제로 워프를 운영하고 있는 서버에서 N8N을 돌리고 싶은맘에 시놀로지 환경에서 운영하고 있습니다. 헌데 이것저것 만지다 N8N 연결이 깨져버렸네요. 제미나이 클로드 이놈들에 수많은 핑퐁을 했지만... 계속 사태가 커지는 것 같아 강의와 상관없는 내용이지만 질문 남겨봅니다. 프로젝터에 컨테이너가 0이 뜨고 있는데.... 클로드와 연결해서 이것저것 하다보니 뭔가가 꼬인것 같습니다. ㅜㅠ 현재 컨테이너도 이런 상태인데 어떤것이 켜져 있어야 하고 어떤 것이 꺼져 있어야 하는지.... 정상 상태를 모르겠네요. 현재 워크플로우와 노드에 접근은 되는데, 이런 상태라면 처음 단계에서 처럼 도커에 N8N을 다시 올리면 되 살릴 수 있을까요? 넘 초짜다보니...
안녕하세요 선생님 🙂 먼저 양질의 강의를 제공해주셔 정말 감사합니다. cross_encoder_retriever = ContextualCompressionRetriever( base_compressor=re_ranker, base_retriever=multi_query_custom_retriever, ) 위와 같이 re-ranker를 적용시킬때 retriever를 멀티쿼리로 적용을 해보았습니다. 랭스미스로 로깅을 해보니, 멀티 쿼리는 정상적으로 작동한것 같은데요, 각각의 쿼리에 대해 Runnable로 리랭킹을 하는게 아닌, 원본 쿼리를 기반으로 리랭킹을 한다는 느낌을 받았습니다. 아무래도 데이터셋이 테스트용이라 확답이 안서는데, 이 부분은 사용자의 "원본" 쿼리로만 리랭킹을 하는건지 궁금합니다. 만약 그렇다면 랭그래프로 해결을 할 수 있을듯 한데요, State에 멀티 쿼리의 문서 검색 결과를 저장한 뒤, 각 쿼리에 대한 리랭킹 노드를 하는 방법이 생각이 났는데 피드백 부탁드려도 될까요? (사실 오버 엔지니어링이라는 생각이 들지만 ㅎㅎ 실제 프로덕션에 적용시킨다면 어떤 아키텍쳐가 좋은지 궁금합니다!) 감사합니다 :)
안녕하세요. 프로젝트 2 섹션에 돌입하게 되어 프로젝트 소개 및 오리엔테이션을 수강을 시작한 뒤 의문점이 생겨 몇 가지 질문을 드리고자 합니다! 현재 Notion을 활용해서 견적서를 내는 프로젝트를 짐코딩님께서 강의를 쭉 촬영해서 올라와 있는 상태로 알고 있습니다. 하지만 아래 미션들을 보면 수강생들이 직접 아이디어를 내서 새로운 프로젝트를 생성하는 것을 미션으로 제출하고 있는 것으로 미리 확인을 했습니다. 그렇기 때문에 아무래도 pro 버전이라 실습을 하고 제 프로젝트도 따로 만들다보면 많은 토큰을 사용해서 Current Session 토큰이 부족해지거나 주간 토큰량을 초과하게 될까봐 걱정이 되는 상황이고, 또한 견적서는 학생인 저의 경우에는 실습까지 해두면 좋겠지만 토큰량이 걱정입니다. 이런 상황 속에서 아이디어를 미리 정하고 강사님의 강의를 들으면서 저의 프롬프트로 진행하는 것이 좋을 지 혹은 강사님의 커리큘럼대로 쭉 따라간 다음에 미션을 마지막에 진행해도 되는 지 여쭤보고 싶습니다. 현재는 섹션마다 강의를 듣고 미션을 바로바로 진행했는데(강의 실습 진행과 미션 진행을 동시에 => 그 이유는 스타터킷이라는 동일한 조건이기 때문에 실습 자료에 저의 생각을 넣어도 어차피 결과물은 다르게 나오기 때문에 괜찮다고 생각했습니다.) 생각보다 토큰이 빠르게 차서 중간에 작업을 중단해야 되는 경우가 발생했었기 때문에 질문을 드립니다. 위의 이유와 같이 스타터킷의 경우에는 저도 활용 가능하기 때문에 괜찮다고 생각했지만 견적서의 경우에는 당장 학생의 신분에서는 이 강의를 듣고 활용하기에는 어려움이 있지 않을까? 하는 의문이 생겼기 때문입니다!