컴퓨터 프로그래밍 158

[Spring] RestTemplate

RestTemplate 을 이용하면 내 서버에서 카카오에서 만든 주소검색 API 라든지 로그인이라든지 기능을 가져와서 간편하게 구현할 수 있다. 이럴 때 우리의 Client 의 입장이 되어서 Kakao 서버에 요청을 진행해야한다.프로젝트 하나는 8080 포트, 하나는 7070 포트로 서버 코드를 만들어서 진행.RestTemplate 의 Get 요청 (단건 Get)client-controller@GetMapping("/get-call-obj")public ItemDto getCallObject(String query) { return restTemplateService.getCallObject(query);}client-servicepublic class RestTemplateService { ..

[Spring] Controller Test Code 작성

@PostMapping("/todos")public ResponseEntity saveTodo( @Auth AuthUser authUser, @Valid @RequestBody TodoSaveRequest todoSaveRequest) { return ResponseEntity.ok(todoService.saveTodo(authUser, todoSaveRequest));} 할 일을 등록하는 위 코드를 테스트 코드로 작성하려 한다. 우선 기본 세팅으로 @WebMvcTest(TodoController.class)class TodoControllerTest { private MockMvc mockMvc; @Autowired private ObjectMapper o..

[Spring] AOP

AOP(Aspect Oriented Programming)관점지향 프로그래밍은 복잡한 프로그래밍 세상에서 관심사를 분리하여 모듈로 사용하는데 목적이 있다. AOP 는 핵심기능과 횡단 관심사 (부가기능) 를 분리해서 관리하는 것AOP 의 키워드1. 어드바이스 ( Advice )2. 포인트컷 ( PointCut )3. 타겟 ( Target )4. 조인포인트 ( JoinPoint )5. 애스팩트 ( Aspect ) a. 어드바이스어드바이스는 실제로 실행되는 횡단관심사(부가기능) 코드를 의미b. 포인트컷 포인트컷은 AOP 에서 어드바이스를 적용할 구체적인 범위를 선택하는 규칙.해당 범위는 특정 패키지 내의 모든 메서드들일 수도 있고, 특정 패키지내의 클래스의 모든 메서드들일 수도 있음.c. 타겟 타겟은 AOP ..

[Spring] 통합 테스트

통합 테스트 (Integration Test)두 개 이상의 모듈이 연결된 상태를 테스트할 수 있음.모듈 간의 연결에서 발생하는 에러 검증 가능함.더보기@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) // 서버의 PORT 를 랜덤으로 설정합니다. @TestInstance(TestInstance.Lifecycle.PER_CLASS) // 테스트 인스턴스의 생성 단위를 클래스로 변경합니다. @TestMethodOrder(MethodOrderer.OrderAnnotation.class) class ProductServiceIntegrationTest {     @Autowired     ProductService produc..