NestJS & Test Boundaries
가드를 모킹한 테스트가 인증 실행 순서를 놓쳤다
튜터 resolver는 JWT 가드가 채운 로그인 값을 읽으므로 등록 순서가 동작 조건입니다. 항상 통과하는 가드 mock이 가린 의존을 실제 메타데이터 검사로 드러내고, 구성 검사와 HTTP 검증을 구분합니다.
글 읽기
Writing / 기술 기록
설계와 구현, 운영 과정에서 내린 판단과 선택의 근거.
무엇을 바꿨고, 어디까지 확인했는지 씁니다.
NestJS & Test Boundaries
튜터 resolver는 JWT 가드가 채운 로그인 값을 읽으므로 등록 순서가 동작 조건입니다. 항상 통과하는 가드 mock이 가린 의존을 실제 메타데이터 검사로 드러내고, 구성 검사와 HTTP 검증을 구분합니다.
글 읽기
NestJS & Module Boundaries
튜터 API 키의 존재를 묻는 가드가 루트 앱 모듈에 의존해 워커·예약 작업의 의존성을 넓혔습니다. 설정 조회로 그 연결을 제거하고, 남은 순환 처리와 실제 기동 검증의 범위를 나눕니다.
글 읽기
PostgreSQL & Schema Contracts
language 변경 SQL에 배열 기본값 제거가 섞이면서 필드를 생략하던 생성 경로의 계약이 바뀌었습니다. 스키마와 SQL 기본값을 함께 복구하고, 서비스 mock이 확인하지 못하는 DB 경계를 살펴봅니다.
글 읽기
React Query & Optimistic Updates
분리된 즐겨찾기 쿼리는 항목의 플래그뿐 아니라 목록 소속과 개수도 바꿔야 합니다. 제거 전 객체 스냅샷과 정렬 삽입을 연결하고, 무한 목록·다른 필터·겹친 변경에 남는 한계를 설명합니다.
글 읽기
Authorization & Query Scope
목록의 접근 제한은 별도 distinct 조회에 자동으로 적용되지 않습니다. 보이스 필터 옵션의 재료를 공용 데이터와 본인 클론으로 제한하고, 보조 조회와 테스트의 범위를 살펴봅니다.
글 읽기
SQLite & Source Identity
같은 본문만으로는 어떤 답변을 이미 저장했는지 판단할 수 없습니다. 출처 메시지 ID와 부분 유일 인덱스를 연결하고, 노트·대화 삭제와 동시 삽입의 경계를 살펴봅니다.
글 읽기
Authorization & Field Ownership
학교 운영자 화면에서 연동 토글을 숨겨도 요청 본문은 직접 만들 수 있습니다. Permission 모듈의 DTO·가드·JSON 병합을 통해 직접 쓰기 제한과 종속 규칙의 차이를 설명합니다.
글 읽기
DOM & Text Selection
구문 강조된 코드의 선택 끝점은 텍스트 노드가 아닐 수 있습니다. DOM Range로 오프셋을 계산하고, 여러 블록을 드래그했을 때 저장 범위와 복원의 한계를 정합니다.
글 읽기
Queue & Restart Policy
메모리 큐는 동시 실행을 제한하고 SQLite는 작업 상태를 남깁니다. 재시작 때 대기 작업은 다시 넣고 실행 중인 작업은 실패로 정리하며, 중복 실행을 막는 보장과 구분합니다.
글 읽기
Events & Derived Data
원본을 복제해도 조회용 컴포넌트가 갱신되지 않으면 화면의 데이터는 비어 있습니다. 기존 파생 갱신 경로를 연결하고, 과목별 실패를 허용한 전체 성공 상태의 의미를 나눕니다.
글 읽기