Spring의 새로운 WebClient에서 커스톰 에러 핸들링 방법을 알아보았습니다. 도움이 될만한 배경 지식은 아마 Angular 와(또는) RxJs 이지 않을까 싶네요. RestTemplate은 사용하지 않을 것을 추천드립니다. 오랫동안 스프링을 사용해오신분들은 서버에서 외부로 API 요청을 할때 RestTempate 을 많이 사용하셧을 거라고 생각합니다. 경력은 많지않지만 자바 7로 개발을 처음 시작한 저 또한 마찬가지구요. 거의 1년 전쯤 토이프로젝트에서 잠깐 사용했던 RestTemplate 최근 프로젝트에서 생겼습니다. RestTemplate보다는 더 Low하게 접근해서 "스프링이 제공하는 외부 API 요청 툴"을 검색해보았고, 스프링에서 이제는 RestTemplate대신 WebClient 사용..
Spring
Validation은 프로그래밍에서 중요한부분이다. 공식 홈페이지 ::: https://hibernate.org/validator/ Java에서는 null 값 접근에 대한 exception이 발생함으로, 이러한 부분을 방지 하기 위해서 미리 검증을 해야한다. 검증해야 필요성과 코드의 길이가 정비례로 많아진다. 비즈니스, 서비스 로직과는 다른 목적이므로 분리가 되야한다. 검증이 필요한 부분이 흩어져 있어 재사용의 한계가 있다. 구현에 따라 달라 질 수 있지만, 검증 Logic이 변경 되는 경우 테스트 코드 등 참조하는 클래스에서 Logic이 변경되어야 하는 부분이 발생할 수 있다. 자주 사용하는 Spring 검증 아노테이션 2.프로젝트에 추가하기 URL ::: https://mvnrepository.com..
Spring Spring에는 상당히 많은 프로젝트들이 존재한다. 단일 아키텍처 Monolithic에서 SpringCloud 활용 MSA 로 변환 많이 사용되는 것들로는 스프링부트 스프링 클라우드 스프링 데이터 스프링 배치 스프링 시큐리티 Spring의 과제는 "테스트의 용이성", "느슨한 결합"에 중점을 두고 개발 IoC의 등장 (Inversion of Control, 제어의 역행) 스프링과 다른 프레임워크와 가장 큰 차이점이 IoC를 통한 개발 진행 AOP AOP를 사용하여 로깅, 트랜잭션 관리, 시큐리티에서의 적용 등 AspectJ와 같이 완벽하게 구현된 AOP와 통 합하여 사용 가능하다. IoC (Inversion of Control) "제어의 역전" Java객체를 new로 생성하여 개발자가 관리하..
Spring 테스트 클래스 어노테이션으로 @RunWith(SpringRunner.class) 또는 @ExtendWith(SpringExtension.class) 을 사용합니다. (required = 필수이기때문에) 우선 이 두가지 어노테이션의 공통점을 보면 두 어노테이션 모두 스프링 부트 테스트 기능과 Junit의 브릿지 역할을 한다는 것. 그래서 Junit에서 스프링 부트 테스트 기능을 사용할 때 반드시 추가해주어야 합니다. 그리고 이 두가지 어노테이션의 차이점은...? @RunWith 는 Junit 4 에서 사용하고, @ExtendWith 는 Junit 5 (Jupiter)에 적용이 됩니다. "아래는 Junit 5 (jupiter)를 gradle.build 파일에 사용하는 모습." ***클린 코드를 ..