백엔드

  1. DTO는 record로 구현하고 간단한 entity 매핑 로직은 dto에서 static method로

  2. 서비스 DB 다루는 메서드 만들 때 트랜잭션 어노테이션 달기

  3. 어플리케이션 yml 관련 추적하도록 설정

  4. JPA할 때 Many-To-One, One-To-One만 사용 (One-To-Many는 사용하지 않기)

  5. 메서드 구현 시 가독성을 위해 적절한 공백 사용

  6. 코드 리뷰 우선순위 지정 (재일 ↔ 근호, 시웅 ↔ 윤재)

  7. 인자없는 생성자 만들 때 protected 명시하기 →  @NoArgsConstructor(access = AccessLevel.PROTECTED)

  8. 엔티티 pk 변수명은 그냥 id로 통일

  9. 코드 공백 라인 등은 인텔리제이 자동 정렬 기능으로 통일하기

    윈도우 기준  ctrl + alt + L
    맥 기준 option + cmd + L
    

프론트엔드

  1. 페이지 / 공용 컴포넌트 / 훅 / 유틸 / 상수 디렉토리 역할을 나눠서 사용하기

  2. 컴포넌트는 UI만 담당하고 비즈니스 로직은 커스텀 훅 + 유틸 함수로 분리하기

  3. 도메인 로직은 가능하면 순수 함수 유틸로 만들고, Vitest로 단위 테스트 작성하기

  4. 서버 상태는 React Query 훅으로 관리하고, 컴포넌트에서는 중복 상태(useState)로 저장하지 않기

  5. 네이밍 규칙 통일하기

  6. useEffect / useCallback 사용 시 의존성 배열을 정확히 맞추고,

    예외적으로 한 번만 실행해야 하는 부트스트랩 로직에서만 eslint-disable + 주석으로 의도 남기기

  7. 네비게이션/경로 로직은 useNavigate와 유틸을 통해 관리하고,

    하드코딩 대신 헬퍼(getNextQuizPath, getRedirectDelay 등)로 의미를 드러나게 하기

  8. 스타일은 Emotion + 공통 theme/spacing/colors를 사용하고, 인라인 스타일/매직 넘버는 지양하기