spring 썸네일형 리스트형 private method Test 테스트 코드를 작성하다 보니 private method를 호출하여 사용할 상황이 생겼습니다. 테스트를 위해 해당 메소드를 public으로 바꿀 순 없어, 방법을 찾아보다 보니 reflect를 이용한 테스트 방법이 있었습니다. 위와 같이 private 변수는 reflect의 Field 값으로, private 메소드는 reflect의 Metho 값으로 호출하여 사용할 수 있습니다. 하지만, 내부 동작이 노출되는 것은 단일 책임 원칙(SRP, Single Responsibility Principle)에 위배되어 권장하지 않습니다. 참고: https://nowonbun.tistory.com/519 더보기 [Spring Hateoas1.2] ModelAssembler, ModelProcessor 이전 포스팅에서 https://halfstorage.tistory.com/61 더보기 [Spring Hateoas 1.2] RepresentationModel 테스트 https://docs.spring.io/spring-hateoas/docs/1.2.0-SNAPSHOT/reference/html/ Spring HATEOAS - Reference Documentation Example 47. Configuring WebTestClient when using Spring Boot @SpringBootTest @AutoConfigureWebTestClient (1) class WebClientBasedTests { @Test void exampleTest(@Autowired WebTestClient.Builder builder, @Autowired HypermediaWebTestClientConfigurer configure docs.spring.io 스프링 래퍼런스에 따.. 더보기 [Spring Hateoas 1.2] 소개 및 프로젝트 설정 1-1. HATEOAS 란? HATEOAS는 Hypermedia As The Engine Of Application State의 약자 하이퍼미디어를 REST API의 상태 정보를 관리하기 위한 메커니즘으로 활용하는 것 REST API에서 클라이언트에 리소스를 넘겨줄 때 특정 부가적인 리소스의 링크 정보를 넘겨주게 되며 이를 통해 REST API의 리소스 상태에 따른 관리 1-2. 사용하는 이유? HATEOAS를 쓰는 이유는 다음과 같은 기존 REST API의 단점을 보완 REST API는 앤드포인트 URL이 정해지고 나면 이를 변경하기 어렵다는 단점 존재, 만일 API의 URL을 변경하게 되면 모든 클라이언트의 URL까지 수정해야 하기 때문에 번거로워지므로 기존 다른 API를 지속적으로 추가하게 되어 U.. 더보기 [Spring Batch] cannot be cast to org.springframework.batch.item.~ 모니터링 배치를 만들 일이 생겼습니다. 미발송 데이터를 읽어 슬랙으로 알림 처리를 하는 배치인데, 리더를 구현 후 JUnit으로 테스트를 시도했더니 본 적 없던 에러가 발생했습니다. 늘 쓰던 JdbcPagingItemReader였는데... 레퍼런스의 예제와도 동일한데 아래와 같이 에러가 발생했습니다. java.lang.ClassCastException: com.sun.proxy.$Proxy254 cannot be cast to org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader java.lang.ClassCastException: com.sun.proxy.$Proxy254 cannot be cast to org.s.. 더보기 [Spring Batch] If you want to run this job again, change the parameters. 이전에 스프링 배치의 기본 개념을 설명한 글에서 JobParameter에 대한 간단한 설명을 한 적이 있습니다. https://halfstorage.tistory.com/31?category=857145 스프링 배치 기본 개념 스프링 배치는 스프링에서 기본적으로 제공하는 일괄처리를 위한 기능입니다. - Job 하나의 배치 작업을 Job이라고 하며, Job은 최소 하나 이상의 Step을 수행해야합니다. - JobInstance Job�� halfstorage.tistory.com "JobInstance와 JobParameters는 1:1 관계입니다." 1:1 관계를 지키지 않고 Job을 실행시키게 되면 처음 동작할 Job은 1:1 관계임으로 정상 동작하지만 두 번째 동작할 때부터는 아래와 같은 에러가 발생.. 더보기 [JUnit 5] @TestMethodOrder 테스트 순서를 정할 수 있는 @TestMethodOrder 어노테이션입니다. 아래와 같이 @Order(n)를 사용해서 먼저 실행될 메소드를 지정할 수 있습니다. 더보기 [Spring] 기본개념 및 어노테이션 - 스프링은 자바 플랫폼을 위한 오픈소스 애플리케이션 * 크기와 부하 측면에서 경량화 * IoC 컨테이너로 애플리케이션의 느슨한 결합 * 의존성 주입을 통해 각 계층이나 서비스들간의 의존성 동기화 * 자바의 리플렉션을 이용해서 객체의 생명주기를 관리 - MVC * Model: 핵심적인 비즈니스 로직으로 DB를 관리 * View: 사용자에게 보여주는 화면 * Controller: 모델과 뷰 사이에서 정보교환을 할 수 있도록 연결시키는 역할 - 스프링에서 AOP * 관점 지향 프로그래밍의 약자로 비즈니스 로직의 앞 뒤에서 원하는 지점에 공통 관심사가 수행할 수 있게 하면서 중복 코드를 줄이는 방식(모듈화) * Bean에만 등록 - 스프링 DI (Dependency Injection) * 데이터 주입만 담당하.. 더보기 이전 1 2 다음