DI (Dependency Injection), AOP (Aspect Oriented Programming)위처럼 클래스 내에서 직접 의존 클래스 인스턴스를 생성하면 생성한 구현 클래스들은 추후에 변경이 어렵다.클래스간의 결합도가 높다.아래는 JdbcUserReposi
횡단 관심사 (Cross-Cutting Concern) : 구현하고자 하는 비즈니스 로직과 다소 거리가 있으나 여러 모듈에 걸쳐 공통적이고 반복적으로 필요로 하는 처리 내용대표적 횡단 관심사 : 보안, 로깅, 트랜잭션 관리, 모니터링, 캐시 처리, 예외 처리횡단 관심사
데이터 소스는 애플리케이션이 데이터베이스에 접근하기 위한 추상화된 연결 방식, 즉 커넥션(java.sql.Connection)을 제공하는 역할을 한다.Commons DBCP, Tomcat JDBC Connection Pool 과 같이 서드파티가 제공하는 데이터 소스나
모델 : 애플리케이션 상태(데이터)나 비즈니스 로직을 제공하는 컴포넌트뷰 : 모델이 보유한 애플리케이션 상태(데이터)를 참조하고 클라이언트에 반환할 응답 데이털르 생성하는 컴포넌트컨트롤러 : 요청을 받아 모델과 뷰의 호출을 제어하는 컴포넌트스프링 MVC로 개발된 웹
클라이언트에게 제공할 정보는 웹에서 리소스로 공개. HTTP 프로토콜을 사용해서 리소스에 접근할 수 있다는 것을 의미.리소스에 리소스를 고유하게 식별할 수 있는 URI를 할당.리소스에 대한 CRUD 조작은 HTTP메서드 (GET, POST, PUT, DELETE)를 용
여러 요청이 같은 데이터를 공유해야하는 상황(온라인 쇼핑몰 장바구니 등)에 세션 활용 가능.스프링 MVC에서 HTTP 세션에 데이터 관리하는 방법 세 가지세션 속성(@SessionAttributes)세션 스코프 빈 이용HttpSession API 이용하나의 컨트롤러에서
단위 테스트: 테스트할 클래스의 구현 내용만 테스트. 테스트할 클래스가 의존하는 다른 컴포넌트를 mock이나 stub으로 만들어 테스트 대상 클래스의 실행 결과가 다른 컴포넌트의 실행 내용에 좌지우지 되지 않게 한다.통합 테스트: 목이나 스텁 사용하지 않고 실제 운영