📝 Spring
글 19개
CGLIB와 프록시의 생성 방식은 어떻게 될까 ?
어떤 개념인가요 ? Proxy 프록시 프록시란 원본 객체를 대신해서 앞에 서는 대리 객체이다. 클라이언트는 프록시를 원본인줄 알고 호출하고, 프록시가 중간에서 일을 수행하고 원본에 위임한다.
Filter와 Interceptor는 어떻게 작동될까
어떤 개념일까? Filter vs Interceptor 둘은 둘다 요청을 가로채는 공통의 관심사 분리 도구이지만, 필터는 서블릿 컨테이너 레벨에서 DispatcherServlet 바깥을 감싸고, 인터셉터는 스프링 …
JDBCTest
어떤 개념인가요 ? JDBC 기반 컴포넌트만 격리해서 테스트하기 위한 Spring Boot의 슬라이스 테이스 어노테이션이다. 전체 애플리케이션을 띄우지 않고, JDBC 작업에 필요한 최소한의 것만 로드해서 테스트하는 …
Mock이란 무엇인가?
어떤 개념인가요 ? Mock이란 무엇일까? Mock은 테스트 대상이 의존하는 객체를 흉내내는 가짜 객체이다. 실제 객체처럼 호출할 수 있지만, 내부 동작은 우리가 미리 정의한 대로만 응답하게 된다.
queryForObject 호출시 조회결과가 비어있으면 어떤 상황이 발생할까
💥 의도적 파괴 학습 로그 날짜: YYYY-MM-DD 개념 / 대상 코드: 어떤 개념인가요 ? queryForObject 는 SQL 조회 결과가 정확히 1건일 것을 기대하는 메서드입니다. 0건 또는 2건 이상이면 …
RestController vs Controller, ControllerAdvice, RestControllerAdvice, ExceptionHandler vs GlobalExceptionHandler
어떤 개념인가요 ? Controller vs RestController Controller는 Spring MVC 부터 있었고, 메서드가 반환하는 문자열을 View 이름으로 해석한다. 즉, Server Side …
Service 통합테스트를 작성한다면 Repository 테스트는 필요없을까요?
어떤 개념인가요 ? 테스트를 할 때 계층별로 기준을 어디서부터 어디까지 나눠야 할지에 대해서 항상 생각을 많이 하는거 같다. 이 중에서 Service 통합테스트에 대해서 생각을 해보려고 한다. Service 통합테스 …
계층별 테스트 코드 작성 : 나만의 방법
1. Repository 계층 무엇을 검증하는가 직접 작성한 SQL/쿼리, 컬럼↔객체 매핑(RowMapper), DB 제약조건(unique·FK) 위반 시 기대한 예외. 어떻게 테스트 할까 @JdbcTest // …
테스트 격리는 어떻게 보장해야 할까
테스트 격리란? 테스트 격리 각 테스트가 다른 테스트의 상태에 영향을 주지도, 받지도 않게 만드는 것이다. 핵심은 한 테스트를 단독으로 돌리든, 1000개 중 하나로 돌리든, 순서를 섞어 돌리든 결과가 똑같아야 한다 …