1. Dependency 추가 io.springfox springfox-boot-starter 3.0.0 2. SwaggerConfig package com.kyhslam.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; @..
Arryas클래스는 배열을 다루는데 유용하다. binarySearch binarySearch()는 반드시 배열이 정렬된 상태에서만 올바르게 작동한다. 그리고 주의할 점은 배열에 검색한 값과 일치하는 요소들이 중복으로 있으면 어떤 것의 위치가 반환될지 알 수 없다. package org.kyhslam.collectEx; import java.util.Arrays; import java.util.List; public class arraysTest01 { public static void main(String[] args) { int[] arr = {3,2,0,1,4}; int[] arr2 = {3,2,9,10,43}; int[][] arr2D = {{11,12}, {21,22}}; int[][] arr2D..
https://programmers.co.kr/learn/courses/30/lessons/42748 코딩테스트 연습 - K번째수 [1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3] programmers.co.kr package com.hyosung.algo; import java.util.Scanner; public class pro_sort02 { static int[] buff; static void swap(int[]a, int x, int y) { int temp = a[x]; a[x] = a[y]; a[y] = temp; } static void quickSort(int[] a, int left, int right) { int ..
석유는 어떻게 세상을 지배하는가 - 최재웅 베조스 레터 - 스티브 앤더슨 아라비안나이트 - 르네볼 80일간의 세계일주 - 쥘 베른 걸리버 여행기 - 조나단 스위프트 로빈 후드의 모험 - 하워드파일 피터팬 - 제임스 매튜 배리 정글북 - 조지프 러디어드 키플링 햄릿 - 윌리엄 세익스피어 스트레스의 힘 - 켈리 맥고니걸 뉴 코스모스 - 데이비드 아이허 이상한 수학책 - 벤 올린 경제상식 오늘부터 1일 - 최진기 일 잘하는 사람은 단순하게 합니다. - 박소연 일 잘하는 사람은 단순하게 말합니다. - 박소연 하마터면 회계를 모르고 일할 뻔했다! - 김수헌 파인만에게 길을 묻다 - 레오나르드 믈로디노프 일단, 오늘 1시간만 공부해봅시다. - 양승진 지적대화를 위한 럽고 얕은 지식 팩트풀니스 - 한스 로슬링 나는 ..
BoardRepository.java public List findPage(int start, int total) { return em.createQuery("select b from Board b", Board.class) .setFirstResult(start) .setMaxResults(total) .getResultList(); } setFirstResult : 시작위치 setMaxResults : 출력개수 setFirstResult(10).setMaxResults(10)의 결과는 10번째부터 10개가 출력된다는 의미이다. BoardService.java public List findPage(int start, int total) { return boardRepository.findPage(sta..
OrderApiController.java package com.kyhslam.api; import com.kyhslam.domain.Order; import com.kyhslam.domain.OrderItem; import com.kyhslam.repository.OrderRepository; import com.kyhslam.repository.OrderSearch; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.RestController; import java.util.List; @RestController @RequiredArgsConstructor public class OrderApiCo..
Map 조회에는 3가지 방법이 있다 Iterator Entry KeySet Java8 forEach, Lambda 예제1 package com.kyhslam; import org.junit.Test; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class MapTest { @Test public void maptest() { HashMap map = new HashMap(); map.put("A", "TEST"); map.put("B", "TEST2"); map.put("C", "TEST3"); // 방법1: Iterator 사용 Iterator keys = map.keySet().iterator(); ..
package com.kyhslam; import com.kyhslam.domain.*; import com.kyhslam.domain.item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import javax.persistence.EntityManager; @Component @RequiredArgsConstructor public class InitDb { private final InitSer..
API 설계 시 주의점 API 파라미터 받을때나 보낼때는 절대로 엔티티를 사용하면 안된다. 항상 DTO를 만들어서 필요한 정보만 내보내도록 해야한다! 필수! import java.util.List; import java.util.stream.Collectors; @RestController @RequiredArgsConstructor public class MemberApiController { private final MemberService memberService; /** * 멤버 조회 * 문제점 : 엔티티 모든것이 노출 등 * @return */ @GetMapping("/api/v1/members") public List membersV1() { return memberService.findMem..
MemberApiController.java /** * 수정 API * @param id * @param request * @return */ @PutMapping("/api/v2/members/{id}") public UpdateMemberResponse updateMemberV2( @PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request){ memberService.update(id, request.getName()); Member findMember = memberService.findOne(id); return new UpdateMemberResponse(findMember.getId(), findMember.getN..
꼭 API스펙을 위한 별도의 DTO를 만들어 사용하는것이 제일 좋다. 실무에서는 API 만들때 엔티티를 직접 받지도 말고 보내지도 말라.(직접 노출X) MemberApiController.java package com.jpabook.api; import com.jpabook.domain.Member; import com.jpabook.service.MemberService; import lombok.Data; import lombok.RequiredArgsConstructor; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import o..
orderList.html 주문상태 option 검색 # 회원명 대표상품 이름 대표상품 주문가격 대표상품 주문수량 상태 일시 CANCEL OrderRepository.java public List findAllByString(OrderSearch orderSearch) { //language = JPQL String jpql = "select o from Order o join o.member m"; boolean isFirstCondition = true; //주문상태 검색 if(orderSearch.getOrderStatus() != null) { if(isFirstCondition) { jpql += " where"; isFirstCondition = false; }else{ jpql += " an..