개발 (hub-eng)¶
개발 직무의 입구이자 첫날 온보딩 가이드. 이 페이지 하나로 역할(R&R)·로컬 셋업·읽는 순서·심화 문서를 잡는다. 에이전트에게는 "개발자처럼 사고"하기 위한 컨텍스트 묶음이다.
사고방식 한 줄: 소스코드가 SSOT이고 DB는 유연성 레이어다. 명령형과 조회형 아키텍처를 분리하고, N+1을 구조로 차단하며, 새 클래스보다 ENUM 한 줄을 택한다 — 컨벤션 목록보다 "왜 그렇게 정했는가"를 먼저 잡는다(engineering-principles).
시크릿(AWS 키·DB 비번·서버 IP·키 파일)은 여기 안 적는다 — 실제 값은 raw·Google Drive에만 두고, 이 페이지는 절차의 모양만 짚는다.
R&R (역할 · 책임)¶
| 역할 | 책임 |
|---|---|
| 백엔드 (BE) | Spring Boot API · DB 스키마 · Flyway · 인프라(온프레/AWS). |
| 프론트엔드 (FE) | Next.js 화면 · 상태관리(Zustand) · 드로잉 · BFF. |
| 공통 | 기능 단위(FDD) 정의→설계→구현→검증, 인수기준 충족 시 Close. QA 겸임. |
영역별 오너 매핑은 owner-registry. 기능 이슈는 해당 기능 담당자로 라우팅한다.
첫날 셋업 (로컬 환경)¶
백엔드 (IntelliJ). AWS Toolkit 플러그인 설치 → IAM Credentials에 Dev-back 액세스 키 입력(값은 raw) → 스프링 프로필을 local로 실행. DB 접속은 SSH 터널을 거친다(DBeaver/DataGrip 등) — DB dedu(온프레 Dev, 구 AWS RDS는 the_edu), User admin, TZ Asia/Seoul, SSH User ubuntu+공개키(호스트·키 파일은 raw).
프론트엔드. 환경변수·로컬 HTTPS(Caddy 프록시)는 raw 가이드 참조. 프론트는 SEO 자연유입이 핵심이라 Next.js를 도입했고(수업노트·Q&A를 검색 노출), 입문자는 다음 3축이면 흐름의 90%가 잡힌다(코드 디테일은 frontend-architecture):
- 렌더링(CSR/SSR/SSG) — Next는 CSR 기반 위에 SSR/SSG를 얹는다. SEO 의미 있는 페이지만 SSR로 HTML을 완성해 전달하고, 나머지는 CSR로 UX를 살린다. 물리 구조: 브라우저 ↔ 웹서버 ↔ Next 서버 ↔ 백엔드 WAS.
- 상태/캐싱 — 서버 상태는 React Query(브라우저 QueryClient 캐시,
queryKey식별·invalidateQueries로 무효화→리페칭), 복잡한 클라 상태는 Zustand/useReducer. - BFF —
shared/api/http.transport.ts의 axios 4클라이언트(privateHttp·publicHttp·clientToBffHttp·serverToBffHttp)가 환경별 쿠키/CORS를 흡수한다. 로컬은 origin이localhost라 SameSite 쿠키가 안 실려/api/v1BFF 라우트로 도메인을 위장한다(운영/dev는 서브도메인 same-site라 무관).
확인: 백엔드 Swagger(dev) …/swagger-ui/index.html · 프론트(dev) https://dev.d-edu.site/.
여기서 시작하라 (첫날 순서)¶
- 위 R&R·첫날 셋업으로 환경을 세운다.
- 자기 영역 진입점을 연다 — 백엔드 mvp-back:CLAUDE.md · 프론트 mvp-front:CLAUDE.md (코드 작업 시 매번 먼저 읽는 규칙 파일).
- engineering-principles로 "왜 이렇게 짜는가"를 잡고 → backend-architecture·frontend-architecture에서 실제 구조를 본다.
- infra에서 "어디서 뭐가 도나"(서버 토폴로지·CI/CD)를 훑는다.
- 첫 도메인 컨텍스트는 회원 도메인 (Member) §7(역할별 접근 권한 = 권한의 단일 기준)부터.
작업 흐름은 GitHub Flow — 브랜치를 따 PR·리뷰·머지하고, 머지가 곧 배포 트리거가 된다(version-control). 스택은 백엔드 Spring Boot 3.4.4 / Java 21 / MySQL, 프론트 Next.js 15 / React 19 / TanStack Query, 인프라는 온프레(Dev)+AWS(Prod) 하이브리드(ADR-0017)다. develop 머지로 Dev, main 머지로 Prod에 배포되고, DB·Redis는 CI/CD가 아니라 수동 compose로 운영한다(온프레 인시던트 교훈 → incidents).
여기 있는 것 (심화 문서)¶
| 노드 | 무엇 |
|---|---|
| engineering-principles | 엔지니어링 원칙 & 트레이드오프 |
| tech-decisions | 기술 의사결정 (ADR · 빌드 vs 바이) |
| ai-collab-apply | AI 협업 적용 (Claude Code 하네스) |
| infra | 시스템·인프라 아키텍처 — 전체 지도 + 서버·CI/CD·시크릿·DB·관측성 |
| backend-architecture | 백엔드 코드 아키텍처 — 헥사고날·JPA 조회·예외·JWT·미디어 |
| frontend-architecture | 프론트엔드 코드 아키텍처 — FSD·라우팅·IA/URL |
| version-control | 버전 관리·릴리즈 — 브랜치·PR·테스트·배포·릴리즈노트 |
| incidents | 인시던트 아카이브 |
도메인 모델 6종 — 권한의 단일 기준은 회원 도메인 (Member) §7, 나머지는 그 축을 따른다: 회원 도메인 (Member) · 스터디룸 도메인 (StudyRoom) · 수업노트 도메인 (TeachingNote) · 과제 도메인 (Homework) · 질문답변 도메인 (QnA) · 챌린지 도메인 (Challenge).
관련¶
페르소나 · 프로덕트 — 라인 × 기능 · tools-accounts · QA 플레이북 · ai-collaboration · methodology-literacy · glossary · owner-registry