Backend 개요
한 문장 정의
Backend는 request를 application rule과 persistence boundary로 변환하고, consistency·security·operability를 지키며 결과를 반환하는 설계 영역이다.
핵심 질문
- Spring container가 object wiring과 cross-cutting concern을 어떻게 분리하는가?
- 요청은 MVC와 security filter chain을 통과해 어디에서 transaction과 persistence로 이어지는가?
- propagation, isolation, audit policy는 어떤 consistency tradeoff를 만드는가?
- SQL control과 ORM abstraction 사이에서 MyBatis를 언제 선택하는가?
읽기 경로
- 컨테이너와 요청 처리의 책임을 먼저 구분한 뒤 트랜잭션·영속성을 읽는다. 객체 설계와 이력 모델은 해당 문제가 필요할 때 선택하는 경로이며, 번호는 런타임 실행 순서를 뜻하지 않는다.
- Spring Framework Core — IoC/DI, AOP, PSA와 container boundary.
- Spring MVC Controller — request dispatch와 controller responsibility.
- Spring Security Architecture — servlet filter와 security chain.
- Spring AOP → Spring Transaction — 프록시를 통한 부가 기능 적용에서 transaction boundary와 rollback으로 이어진다.
- Transaction Propagation → Database Isolation → Audit Log.
- 동시 요청의 중복 INSERT처럼 격리 수준으로 막을 수 없는 invariant는 Unique Constraint Duplicate Prevention으로 이어진다.
- MyBatis → Spring Boot Auto-Configuration.
- Console MVC Design, Custom Exception Design, First Class Collection.
- Domain Model Design → Layered Application Boundary → REST Architecture.
- Event History Model — 행동 분석용 이력 모델이 필요할 때.
전체 reusable pages
Spring application structure
- Spring Framework Core
- Spring AOP
- Spring MVC Controller
- Spring Security Architecture
- Spring Boot Auto-Configuration
- MyBatis
Transaction correctness
- Spring Transaction
- Transaction Propagation
- Database Isolation
- Audit Log
- Unique Constraint Duplicate Prevention