목록springboot (5)
고코딩
[Spring Boot] when(), given(), any() 및 BDD 설명 패스트 캠퍼스 강의를 듣던 도중 테스트 구문 작성 코드에서 처음 보는 코드를 보았다. when(this.todoRepository.save(any(TodoEntity.class))) .then(AdditionalAnswers.returnsFirstArg()); //TodoRepository가 save()메소드를 호출해서 TodoEntity값을 받으면 받은 엔티티 값을 반환하도록 설정 원래 given-when-then 의 구조는 알고 있었지만 저렇게 스태틱 함수로 구현되어 있는 건 처음 봐서 이해가 되지 않았다. 여러가지 서치를 해보고 정리를 해본다. 용어 정리 TDD Test Driven Development의 약자로 테스..
SpringBoot JPA 순환 참조 문제 및 해결 토이 프로젝트를 진행하던 중 순환참조 문제에 마주하였다. 순환 참조란 무엇일 까? 순환 참조(Circular reference)란, 참조하는 대상이 서로 물려 있어서 참조할 수 없게 되는 현상을 말한다. JPA에서는 양방향으로 연결된 Entity끼리 조회하는 경우 서로의 정보를 순환하면서 조회하다가 stackoverflow가 발생하게 된다. 그럼 순환참조가 왜 일어나는 것일까? JPA에서 순환참조 이유 Spring Boot는 @ResponseBody를 선언 할시 Object를 json상태로 변환하기 위해 Jackson라이브러리를 이용합니다. Jackson은 직렬화를 이용해서 json 형태로 객체를 변환시키게 됩니다. 직렬화란? 객체의 직렬화는 객체의 내..
Swagger? 스웨거(Swagger)는 개발자가 REST 웹 서비스를 설계, 빌드, 문서화, 소비하는 일을 도와주는 대형 도구 생태걔의 지원을 받는 오픈 소스 스프트웨어 프레임워크입니다. 현재 진행하고 있는 프로젝트에 대해서 유지보수를 진행하거나 API를 만들게 될때 API서버가 어떤 스펙을 가지고 있는지 파악해야 한다. Swagger는 API의 명세와 문서를 대신 작성해 주는 아주 착한 친구 입니다. 스웨거의 공식 사이트입니다. 저 자세한 정보르 알고싶다면 위 링크에 접속해서 알아보시면 될거에요. 여러가지 환경에서 Swagger를 사용가능한데 이 글에서는 Spring Boot + Swagger 세팅을 해볼께요. Spring Boot + Swagger SpringBoot 스펙 JDK 8 Spring B..
SpringBoot로 간단한 정보를 보내야하는데 json 타입으로 보내야 할 일이 있었다. 처음에는 @GetMapping() public String getBirthYmd() throws Exception { ...생략... return "문자열"; } 위 처럼 보내면 json 방식으로 Response Body에 담겨서 날아가는 줄 알았는데 그냥 문자열만 날아갔다. 이렇게 날리면 받는 쪽에서는 원하는 정보를 빼내기 힘들다. 물론 new ResponseEntity(T,HttpStatus); 로 보내면 T타입 객체가 자동으로 json으로 파싱되지만 json 방식을 커스텀 하고 싶을때는 여간 귀찮은게 아니다. 다행히 좋은 라이브러리가 있다. SpringBoot 4.0.0 java 8 build 도구 : Mav..
eclipse로 SpringBoot 공부를 하던중 application.properties를 작성해줘야할 일이 생겼다. 문제는 원래 Ctrl+Space를 누르면 프로퍼티 목록을 볼수 있어햐 하는데 단축키 기능이 작동하지 않았다. 이 경우 에디터를 설정해줘야한다. application.prorpeties 파일을 선택하고 우클릭에서 Open With -> Spring Properties editor를 선택해줘야하는데 아래 처럼 해당 목록이 없는 경우가 있었다. 해결법은 Spring IDE - Spring IDE Boot Support 확장자를 설치해줘야 한다. Help -> InstallNew Software를 클릭 Work with에서 https://download.springsource.com/relea..