본문 바로가기

분류 전체보기264

API 조회 성능 최적화 - 컬렉션(Fetch Join, distinct) 0. 개요 - 이전 포스팅에서 DTO 변환을 이용한 컬렉션 조회 방법을 알아보았다. - DTO 변환 방법을 사용하여 컬렉션 조회 시, 다수의 SQL 문이 발행된다는 문제점을 확인하였다. - 이 문제를 해결하기 위해 Fetch Join을 이용한 컬렉션 조회 방법을 알아보자. 1. DTO 변환 + Fetch Join a) Fetch Join 쿼리 작성 - 우선 Fetch Join을 이용하는 쿼리를 작성해보자. - 쿼리는 다음과 같다. public List findAllWithItem() { return em.createQuery("select o from Order o " + "join fetch o.member " + "join fetch o.delivery " + "join fetch o.orderIte.. 2023. 4. 18.
[검색엔진] 코난테크놀로지 konan search 4 소개 2023. 4. 17.
[Spring]Ajax에서 보낸 배열을 Controller에서 받기 비동기 전송을 위해서 Ajax를 사용하던중 클라이언트에서 배열을 담아서 보낼일이 생겼다. 이 전까지는 단순히 값만 json 형식으로 보냈었다. 그럼 배열은 어떤 형식으로 보내고 어떤 방식으로 받아야 하는 것일까? 먼저 checkBox를 이용해서 체크된 값들을 new Array()에 담는다. 그리고 자바스크립트 객체 형식으로 data에 담아서 보낸다. 이 때 반드시 post 형식으로 보내야 한다. var checkArr = new Array(); ... $.ajax({ url : "/shop/deleteCart", type : "post", data : { chbox : checkArr }, success : function(result){ if(result == 1) { location.href = "/.. 2023. 4. 13.
@RequiredArgsConstructor 어노테이션을 사용한 "생성자 주입" 의존성주입의 종류로는 Constructor(생성자),Setter,Field 타입이 있다. Constructor(생성자) public class ExampleCase { private final ChocolateService chocolateService; private final DrinkService drinkService; @Autowired public ExampleCase(ChocolateService chocolateService, DrinkService drinkService) { this.chocolateService = chocolateService; this.drinkService = drinkService; } } Setter public class ExampleCase{ private.. 2023. 4. 11.
Postsman 설치 개발된 API를 테스트하여 문서화 또는 공유 할 수 있도록 도와 주는 플랫폼이다. Postman은 모든 API 개발자를 위해서 다양한 기능을 제공한다. 변수 및 환경, request 설명, 테스트 및 사전 요청에 필요한 스크립트 작성 등 Postman은 현재 워크 플로우를 더 효율적으로 만들 수 있도록 고안되었다. URL을 통해서 테스트를 하는것은 한계가 있다. 실제로 개발할 경우, 클라이언트에서 버튼을 만들고, 이벤트를 만들고, 버튼에 이벤트를 등록하고, 버튼을 누르면 해당 이벤트를 실행하고, 이벤트에서는 요청을 하고, 요청을 한 이후에는 응답을 받고, 그 응답을 받은 내용을 화면에 출력하는 등의 작업이 너무 길어지게 된다. Authorization이나 Header, Body를 수정하는건 더더욱 제한이.. 2023. 4. 11.
loader 사용하기 1. 설치하기 # using npm $ npm install --save @ibsheet/loader # using yarn (https://yarnpkg.com/) $ yarn add @ibsheet/loader HTML 2. 설정하기 가장 많이 쓰는 아이템들을 기준으로 아래와 같이 등록합니다. 선택사항은 사용하지 않으면 등록하지 않아도 되지만, 필수 아이템들은 등록해주셔야 합니다. import loader from '@ibsheet/loader' // config 설정시 등록할 아이템 const ibsheetLib = { name: 'ibsheet', // 필수 baseUrl: '/ibsheet', // 필수 theme: 'default', // default // 선택 locales: ['ko'],.. 2023. 4. 11.