Spring

    [Spring] Spring rest docs generated-snippets adoc 안 생김 문제

    [Spring] Spring rest docs generated-snippets adoc 안 생김 문제

    개요 Spring rest docs 에서 테스트 코드를 작성한 뒤 테스트 케이스를 실행했는데 특정 케이스만 adoc이 생성되지 않는 상황이 발생했습니다. 따로 어떤 에러도 발생하지 않았기에 원인을 찾는데 조금의 시간을 소요했습니다. 해결 문제는 간단하게 해결되었습니다. 저의 경우 deleteUser() 요청의 adoc이 생성이 안되고 있었는데 천천히 살펴보니 테스트를 복사해서 수정하는 형식으로 작성을 할 때에 document 이름을 변경을 하지 않았기 때문이었습니다. 각 테스트 케이스마다 고유의 document 이름으로( 테스트 기능 이름과 같이 하면 될듯 합니다. ) 수정해주어 문제를 해결 했고, 이후 테스트를 실행하니 모든 adoc 들이 잘 생성이 되었습니다. 복사를 이용해서 개발을 할 때에는 조금 ..

    [Spring] @RequiredArgsConstructor 이란?

    @RequiredArgsConstructor 이란 무엇일까? Spring Boot를 이용한 프로젝트를 진행하면서 빈번하게 사용하는 어노테이션 중에 하나인 @RequiredArgsConstructor 가 있습니다. @RequiredArgsConstructor는 Lombok 이라는 java 라이브러리의 어노테이션 중 하나입니다. @RequiredArgsConstructor는 주로 생성자를 이용한 의존성 주입을 할 때 사용하는데 @RequiredArgsConstructor을 사용할 경우 생성자 생성코드를 대신해주어 깔끔한 코드를 작성하는데 도움을 줍니다. Before @Service public class ProductService { private final ProductRepository productRe..

    [Spring] null check 잊지 않기, 메모는 바로바로 하기

    [Spring] null check 잊지 않기, 메모는 바로바로 하기

    문제 발견 어제 프로젝트에서 테스트를 진행하던 중 계속해서 해결되지 않던 문제가 있었습니다. 데이터 save를 테스트 하고 있었는데 계속해서 데이터가 들어가지 않는 것 처럼 보이는 상황이었습니다. 그러나 DB를 살펴보니 데이터가 들어가 있었고 save 자체에는 문제가 없었습니다. 위의 과정들을 진행해가며 문제점이 save 자체가 아니라 최근에 변경한 UserResponse로 변환하는 과정에서 error가 발생하는 것으로 판단을 하고 확인을 하기 시작했습니다. 해결 과정 일단 정확한 문제 발생 지점을 찾기 위해서 해당 save 요청이 실행되는 과정을 모두 체크 하였고, 단계 단계 마다 System.out.println(); 을 이용하여 디버깅을 진행하였습니다. 그 결과 생성한 객체를 UserResponse..

    [Spring] Spring Boot NoUniqueBeanDefinitionException 문제

    [Spring] Spring Boot NoUniqueBeanDefinitionException 문제

    문제 발생 Github에서 다른 분들이 작업한 프로젝트를 보며 공부를 하던 중 Service를 interface로 만든 뒤 구현을 ServiceImpl로 만든 뒤 사용하는 것을 보게 되었습니다. 저는 Service를 바로 클래스로 구현을 해서 사용하는 중이기 때문에 왜 Service를 interface로 만들어서 사용하는지 궁금했습니다. 그래서 찾아보니 이는 예전부터 Spring을 사용해오던 사람들과 또는 그로부터 Spring을 배우게 된 분들이 주로 사용하게 되는데 예전에 Spring은 proxy를 생성할 때에 interface 타입만을 사용하여 proxy를 생성할 수 있었고 이를 주입받아서 사용해야 했습니다. 하지만 요즘은 class 타입을 이용하여도 proxy를 생성할 수 있고 이를 이용해서 주입받..