[ToDo] 20231124 정리

김준영·2023년 11월 24일

하루정리

목록 보기
4/7
post-thumbnail

오늘 해야할 일

1. [PerfumePedia] React - Spring boot Cors 해결 (완료)
2. [PerfumePedia] Controller를 위한 Service 기반 작성 (진행중)

해결한 일

1. React - Spring boot Cors 해결

  • React에 아래의 코드 추가

    const { createProxyMiddleware } = require('http-proxy-middleware');
  • Spring & React 개발환경 연동에서 자세히 볼 수 있음(경은 땡큐)

2. Controller를 위한 Service 기반 작성

  • Dto를 감싸기 위한 Record ResponseData 생성
    Record에 대해 공부 필요.

    public record ResponseData<T>(T data) {
       /**
        * 생성 및 초기화 진행
        * @param data T 객체
        */
       public ResponseData {
       }
    }
    
  • 자동완성 서비스 작성

    @Service
    @Transactional(readOnly = true)
    @RequiredArgsConstructor
    public class AutoCompleteService {
    
       private final WordRepository wordRepository;
    
       /**
        * 사용자가 입력한 keyword에 해당하는 검색어목록을 반환하는 함수입니다.
        * <p> word 엔티티로부터 weight 기준 내림차순으로 반환합니다.
        * @param keyword 사용자가 입력한 keyword입니다. 예) 조말론
        * @return AutoCompleteWordDto 객체를 반환합니다.
        */
       public ResponseData findKeywords(String keyword){
           AutoCompleteWordDto autoCompleteWordDto = new AutoCompleteWordDto();
    
           // WordRepository #findByAlias 사용
           // #findByAlias에 의해 Word 객체 List 반횐됨
           // 자동으로 5개 이하의 결과가 반환되며, desc sort 돼 있음
           List<Word> words = wordRepository.findByAlias(keyword);
    
           // AutoCompleteWordDto #set 메소드들을 활용해 초기화 진행
    
           // ResponseData 객체화
           ResponseData data = new ResponseData(autoCompleteWordDto);
    
           // 객체화한 ResponseData 반환
           return data;
       }
    }

0개의 댓글