Dev/Spring Boot (34) 썸네일형 리스트형 [Spring Security] 수동 로그인 구현하기 스프링 시큐리티를 사용해 프로젝트를 진행하던 중 카카오로 로그인 요청을 했을 때 회원가입이 안되어있으면 회원 가입을 하고 아니면 바로 로그인이 되는 기능을 구현하였다. @GetMapping("/auth/kakao/callback") public String kakaoCallBack(String code, HttpServletRequest request) throws ParseException { String username = loginService.requestKakaoToken(code); loginService.forcedLogin(username, request); return "redirect:/"; } 먼저 카카오 콜백 메소드이다. 유저네임 = 이메일을 카카.. [Spring Security] 스프링시큐리티의 기본 로그인을 사용하지 못했던 문제 스프링 시큐리티는 기본적으로 /login 에서 기본 로그인 화면을 지원한다. 그래서 난 SecurityFilterChain을 구성할 때 http.httpBasic(AbstractHttpConfigurer::disable) .csrf(AbstractHttpConfigurer::disable) .userDetailsService(userDetailService) .authorizeHttpRequests(auth -> auth .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .. [JPA] 인덱싱을 통한 SELECT 성능 향상 DB를 최적화함에 있어서 인덱싱은 가장 기본적인 방법이자 효과적이다. 인덱싱은 B+트리를 통해 SELECT 기능을 향상시키지만 그와 동시에 입력 및 수정 삭제의 기능은 떨어진다. 그러나 사용자가 건들일 필요가 없기 때문에 삽입 삭제가 잘 이뤄지지 않는 데이터라면 충분히 효과적이다. @Table(name = "Course_Table", indexes = @Index(name = "idx_name", columnList = "name"))public class course { @Id private String crsIdx; @Column(name = "NAME") private String name;} 인덱싱을 거는 방법은 간단하다. JPA를 사용한다면 Table 어노테이션에 inde.. Java로 문자열 xml 파일 파싱 xml 형태이지만 문자열로 저장된 코드에서 원하는 값을 파싱해 사용해야하는 상황이 발생했다. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document document = builder.parse(new InputSource(new StringReader(xml.toString()))); document.getDocumentElement().normalize(); NodeList tagLis.. Spring Boot JPA - BufferedReader로 CSV 파일을 읽어 DB에 저장하기 BufferedReader자바에서 입출력을 빠르게 받을 때 많이 사용했던 버퍼리더, 정확히 버퍼 리더가 무엇인가버퍼란 어떤 데이터가 전송 될 때 일시적으로 저장되는 영역이다. (캐시와는 다르다.) 어떤 데이터들을 한 번에 묶어서 전송하기 때문에 전송이 빠르다. BufferedReader br = Files.newBufferedReader(Paths.get(filePath));map을 사용해 임시 값 저장csv파일은 ,로 구분된 정보를 엑셀 형태로 보여주는 파일이다. 그러니까 텍스트로 옮기면이름, 나이, 사는곳김, 20, 서울박, 21, 부산이런식으로 구성되어 있다. 버퍼리더로 값을 받으면 한 행씩 정보를 받지 열(col)씩 받지 않기 때문에 맨 위 헤더들을 key값으로 갖는 hashm.. Spring Boot - RestClient 로 공공데이터 얻어오기 . Spring 새로운 HTTP 클라이언트 - RestClient Spring 프레임워크가 제공하는 REST Request 엔드포인트RestClient - synchronous client with a fluent API.WebClient - non-blocking, reactive client with fluent API.RestTemplate - synchronous client with template method API.HTTP Interface - annotated interface with generated, dynamic proxy implementation.RestClient가장 최근 추가된 HTTP 클라이언트로, RestTemplate의 불편함 때문에 사용하던 WebClient는 MVC에서 사용하기 위해 block처리를 해줘야하는 번거로움과 쓰지않는 라.. Java - Stream 으로 코드 최적화 List walkList = activityRepository.findByUsername(username); List res = new ArrayList(); for(Walk w : walkList){ res.add(new GetWalkDto(w.getDistance(), w.getAvg_heart_rate())); } return res; Walk 리스트를 가져와서 Dto에 맞게 리턴해주는 함수이다. 그러나 이것은 너무 길고 비효율적이다. stream 을 사용해 최적화할 수 있다. List walkList = activityRepository.findByUsername(username); return walkList.stream(.. 이전 1 2 3 4 5 다음