Spring

    [에러] @DataJpaTest 할 때 UnsatisfiedDependencyException

    @DataJpaTest class AccountRepositoryTest { @Autowired AccountRepository accountRepository; @Autowired TestEntityManager testEntityManager; @Test void testFindName(){ //given String axl = "Axl Rose"; Account account = new Account(11L, axl, "10_000"); testEntityManager.persist(account); //when List actual = accountRepository.findByNumber(axl); //then assertThat(actual).hasSize(1); assertThat(actua..

    RestTemplate get 비교 시 객체 처리

    @Test @Order(2) void testGetStudent() throws Exception{ ResponseEntity result = restTemplate.getForEntity( "/students/{id}", Student.class, 1L); assertThat(result.getBody()) .isEqualTo(new Student(1L, "Dave", 100)); } Equals 메소드가 구현되어 있지 않으면 해쉬코드를 비교한다. @EqualsAndHashCode 어노테이션을 붙이거나 메소드를 구현하면 정상적으로 작동한다. public boolean equals(final Object o) { if (o == this) return true; if (!(o instanceof Stud..

    Spring Boot에서 RestTemplate 빈 등록을 해야할까?

    이 댓글 보고 찾아보았다. RestTemplateAutoConfiguration (Spring Boot 3.0.0 API) java.lang.Object org.springframework.boot.autoconfigure.web.client.RestTemplateAutoConfiguration docs.spring.io @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } 그냥 new해서 레스트 템플릿 만들면 동작은 하는데 서버에 올리면 장애가 날거다. accountOpenApi가 backendServer를 호출해서 작업하는 리소스가 부족해서 응답을 느리게 해주면 openApi는 무한대로 기다리게 된다. 해결 방법 RestTemp..

    [에러] Interface 기반 DTO Projection NULL 에러 원인과 해결 방법

    package com.academy.certificate.domain; import java.time.LocalDateTime; public interface ToBeResidentList { Long getResidentSerialNumber(); String getName(); LocalDateTime getBirthDate(); String getGenderCode(); } Resident 엔티티의 필드 중 주민 일련번호, 이름, 생년월일, 성별 코드를 가지고 오는 DTO Projection이다 데이터베이스에서 해당하는 값을 가지고 오는 JPQL 쿼리는 다음과 같았다. @Query("SELECT r.residentSerialNumber, r.name, r.birthDate, r.genderCode ..

    [스프링 시큐리티] 사용자 관리 UserDetails, UserDetailsService, UserDetailsManager

    사용자 관리 스프링 시큐리티에서 사용자를 기술하는 UserDetails 사용자가 실행할 수 있는 작업을 정의하는 GrantedAuthority UserDetailsService 계약을 확장하는 UserDetailsManager. 상속된 동작 외에 사용자 만들기. 사용자의 암호 수정이나 삭제 등의 작업도 지원한다. 사용자 관리를 위해서는 UserDetailsService 및 UserDetailsManager 인터페이스를 이용한다. UserDetailsService는 사용자 이름으로 사용자를 검색하는 역할만 한다. 이 작업은 프레임워크가 인증을 완료하는 데 반드시 필요한 유일한 작업이다. UserDetailsManager 는 대부분의 애플리케이션에 필요한 사웅자 추가, 수정, 삭제 작업을 추가한다. 개발자는..

    [스프링 시큐리티] 스프링 시큐리티의 흐름

    Redis Template Redis 데이터 액세스 코드를 단순화하는 도우미 클래스로, Redis 저장소에서 지정된 개체와 기본 이진 데이터 간에 자동 직렬화/역직렬화를 수행한다. >> 기본적으로 객체에 대해 Java 직렬화를 사용한다. >> 스레드로부터 안전하다. Rest Template (Spring Framework 5부터 Spring은 WebClient 라는 새로운 HTTP 클라이언트를 도입했습니다 .새 애플리케이션을 개발하거나 이전 애플리케이션을 마이그레이션하는 경우 WebClient 를 사용하는 것이 좋습니다 . 앞으로 RestTemplate 은 향후 버전에서 더 이상 사용되지 않습니다.) 정보는 왔다 갔다 하되 서버 사이드에서만 처리가 되게.... 스프링 시큐리티의 인증 흐름. > Authe..

    NHN mart

    1. public enum InquiryCategory >> ENUM의 요소 하나하나는 필드가 아니고 인스턴스다. 그 뒤에 괄호가 붙으면 생성자라는 의미 ENUM 필드를 만들고 생성자에서 설정해주기 2. html에서 드롭박스로 enum 바로 받기 i는 foreach에 i 같은거라 T로 하면 뭐든 다 받을 수 있다. The T operator is part of the Spring Expression Language for specifying an instance of a class or accessing static methods.

    Request Method 반환 값 & score 3일차 과제 메모

    9 HTTP methods and how to use them HTTP protocol works by clients sending requests to the servers and servers responding to the requests. We do CRUD operations (Create, Read, Update, Delete) by sending HTTP requests with different HTTP methods, sometimes called HTTP verbs. testfully.io Which HTTP Status Code to Use for Every CRUD App How to use best use the correct HTTP status code in API design..

    [SpringBoot] Git 연동하기

    1. Git 에서 토큰 번호를 추출해서 복사 =>git hub에서 로그인 =>오른쪽 상단의 이미지 아이콘을 눌러서 settings를 선택 =>하단으로 화면을 내려서 developer settings 를 클릭 =>Personal access Tokens를 클릭 =>Generate new token을 선택하고 비밀번호 입력 =>권한 설정 수행 =>키가 발급됩니다. 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 2.spring boot application upload - gradle 기반 =>git hub에서 repository를 생성하고 url을 복사 https://github.com/itggangpae/springsootsample.git =>sts 에서 git reposito..

    [SpringBoot] / 2022/05/31 ManyToMany

    YAML(Yaml Ain't Markup Language - 야믈) =>문자열을 표현하는 방법 중의 하나로 인간이 알아보기 쉬워서 최근에 많이 사용되는 포맷입니다. =>Spring Boot에서는 properties 파일 대신에 yml 파일을 만들어서 사용해도 됩니다. =>properties 파일 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/adam?useUnicode=yes&characterEncoding=UTF-8&serverTimezon=UTC spring.datasource.username=adam spring.datasource.password=..