일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 자료구조와 함께 배우는 알고리즘 입문
- 서버설정
- 처음 만나는 AI 수학 with Python
- 티스토리 쿠키 삭제
- 스프링부트핵심가이드
- 스프링 시큐리티
- 알파회계
- 코드로배우는스프링웹프로젝트
- 데비안
- /etc/network/interfaces
- iterator
- 자바편
- 자료구조와함께배우는알고리즘입문
- baeldung
- ㅒ
- 리눅스
- 친절한SQL튜닝
- GIT
- 처음 만나는 AI수학 with Python
- 네트워크 설정
- 페이징
- 선형대수
- 구멍가게코딩단
- 코드로배우는스프링부트웹프로젝트
- network configuration
- 이터레이터
- 목록처리
- Kernighan의 C언어 프로그래밍
- d
- resttemplate
- Today
- Total
목록Framework/Spring (57)
bright jazz music
요약 WebClientPostService.java를 생성하여 WebClient 요청, 응답 수신 로직을 작성한다. 응답을 브라우저에서 확인할 수 있도록 WebClientController.java 파일에 경로를 작성한다. 이해에 용이하도록 요청 측 controller - 요청측 service - 수신 측 controller - 결과 순으로 내요을 구성하였다. 1. WebClientController.java 작성(요청 측 컨트롤러 http://localhost:8080) //WebClientController.java package com.project.base.controller; import com.project.base.domain.MemberDto; import com.project.base.s..
1. WebClient란? Spring Web Flux가 제공하는 클라이언트. HTTP 요청을 수행한다. WebClient는 Reactor 기반으로 동작하는 API이다. 리액터 기반이므로 스레드와 동시성 문제를 벗어나 비동기 형식으로 사용할 수 있다. 2. WebClient의 특징 논블로킹(Non-Blocking) I/O를 지원 Reactve Stream의 Back Pressure 지원 적은 하드웨어 리소스로 동시성 지원 함수형 API 지원 동기, 비동기 상호작용 지원 스트리밍 지원 3. 사용 3.1 WebClient 사용을 위한 의존성 추가 WebFlux를 빌드 설정에 추가해 줘야 한다. //build.gradle dependencies { // https://mvnrepository.com/artif..
RestTemplate은 HTTPClient를 추상화 한다. HttpClient에는 여러 종류가 있으며, RestTemplate이 추상화 하는 HTTPTemplate은 RestTemplate은 기본적으로 커넥션 풀을 제공하지 않는다. 커넥션 풀 기능을 제공하지 않으면 매번 호출할 때마다 포트를 열어 커넥션을 생성한다. 따라서 TIME_WAIT 상태가 된 소켓을 사용하려고 접근하여도 재사용할 수 없다. 커넥션 풀 기능을 활성화 하는 가장 대표적인 방법은 HTTPClient가 추상화 하는 HTTPClient를 아파치에서 제공하는 HTTPClient로 대체하여 사용하는 것이다. 1. 아파치 HttpClient 의존성 추가 //build.gradle dependencies { // https://mvnrepos..
RestTemplate (Spring Framework 6.0.5 API) postForLocation Create a new resource by POSTing the given object to the URI template, and returns the value of the Location header. This header typically indicates where the new resource is stored. URI Template variables are expanded using the given URI v docs.spring.io 1. RestTemplate이란 스프링에서 HTTP 통신 기능을 간단히 사용하도록 설계된 템플릿이다. 기본적으로 동기 방식으로 기능한다. 비동기 방식을..
https://github.com/hojuncha997/bootBoard GitHub - hojuncha997/bootBoard: 코드로 배우는 스프링부트 웹 프로젝트 ch.5 코드로 배우는 스프링부트 웹 프로젝트 ch.5. Contribute to hojuncha997/bootBoard development by creating an account on GitHub. github.com 1. list.html에 아래 코드 추가 검색을 위한 폼과 버튼을 추가한다. 이 폼은 테이블 위에 존재할 것이다. ------- 제목 내용 작성자 제목 + 내용 제목 + 내용 + 작성자 Search Clear 이전 포스팅에서 게시했던 list.html은 내가 일부 코드를 빼먹어서 오류가 발생하였다. 따라서 수정하였다. ..
pageable의 Sort 객체는 JPQLQuery의 orderBy()의 파라미터로 전달되어야 하지만 JPQL에서는 Sort 객체를 지원하지 않는다 따라서 orderBy()의 경우 OrderSpecifier을 파라미터로 처리해야 한다 OrderSpecifier(Order order, Expression target) OrderSpecifier의 Order는 com.querydsl.coreTypes.Order 타입이다. Expression은 com.querydsl.core.Expression이다. 1. SearchBoardRepository 수정: sort / count 처리를 위해 추가되는 코드 //SearchBoardRepositoryImpl.java ///... //Order by : sort Sor..
파라미터로 전달되는 type 값은 '제목(t), 내용(c), 작성자(w)'를 하나 혹은 조합으로 만든 'tcw'와 같은 형태이다. 이 조건에 대해 BooleanExpression 처리한다. 이 조건은 이전 예제에서도 다룬 적이 있다. 1. BooleanExpression 사용하여 searchPage()에 코드 추가 변경한 부분은 파라미터에 따라 검색 조건을 추가할 수 있또록 BooleanBuilder와 BooleanExpression이 추가된 것이다. tuple.groupBy()의 경우 메서드의 하단에서 처리한다. //SearchBoardRepositoryImpl.java @Log4j2 public class SearchBoardRepositoryImpl extends QuerydslRepositoryS..
이전 포스팅에서 튜플 객체를 사용하여 여러 객체를 가져오는 것을 확인하였다. 이번 포스팅에서는 원하는 파라미터(Pageable)을 전송하고, Page를 만들어서 반환하는 것이다. 1. searchBoardRepository에 searchPage()를 설계 searchPage() 추가 PageRequestDTO 자체를 파라미터로 처리하지 않는 이유는 DTO를 가능하면 Repository 영역에서 다루지 않기 위해서이다. //SearchBoardRepository.java package com.example.bootboard.repository.search; import com.example.bootboard.entity.Board; import org.springframework.data.domain.Pa..
1. groupBy()를 사용한 집합 함수 처리 //searchBoardRepositoryImpl.java @Log4j2 public class SearchBoardRepositoryImpl extends QuerydslRepositorySupport implements SearchBoardRepository { //생성자 public SearchBoardRepositoryImpl(){ super(Board.class); //여기서 super는 querydslRepositorySupport이다. } @Override public Board search1() { log.info("search1............"); //JPQL 사용 //이제 로그가 찍힐 뿐만 아니라 아래의 JPQL도 실행된다. QBo..
1. SearchBoardRepositoryImpl에 JPQL 작성하기 :JPQLQuery객체 로그 찍히는 것을 확인했으니, 실제 JPQL을 ㅈ가성해 보자 이 과정에서 Querydsl 라이브러리 내에 JPQLQuery라는 인터페이스를 활용한다. //SearchBoardRepositoryImpl.java package com.example.bootboard.repository.search; import com.example.bootboard.entity.Board; import com.example.bootboard.entity.QBoard; import com.querydsl.jpa.JPQLQuery; import lombok.extern.log4j.Log4j2; import org.springframe..