전체 글
-
[SpringBootTest] AssertJ List의 원하는 컬럼만 가져와서 포함됐는지 안됐는지 확인하기 - extracting/containsExactlyJAVA/Spring(Springboot) 2023. 4. 5. 14:47
이름(username)과 나이(age) 필드를 가진 Member라는 클래스가 있다. List result = new ArrayList(); result.add(new Member("memberA", 10)); result.add(new Member("memberB", 20)); 이때 resullt에 username에 "memberA"가 포함되었는지 확인할 수 있다. Assertions.assertThat( 리스트 ).extracting( 원하는 컬럼 ).containsExactly( 값 ); 문법을 사용하면 된다. Assertions.assertThat(result) .extracting("username") .containsExactly("memberA") .doesNotContain("teamC");..
-
[Spring] JPA Repository 커스텀하기 - Repository 분리, 쿼리 방식 다르게 등에 사용JAVA/Spring(Springboot) 2023. 4. 4. 10:58
JPA Repository 한 파일에 메서드를 정의하게 되면 중요한 핵심 로직과 단순한 조회 로직 등 여러 메서드가 섞여서 저장되기 때문에 유지보수하기에 어려운 점이 있다. 또한 한 Repository 안에서 Spring data jpa 를 사용할 수도 있고 기본 myBatis를 사용할 수도 있고, jdbc template를 사용할 수도 있다면 Repository 분리가 필요하게 된다. Repository 는 하나로 사용하되, custom된 interface를 상속받으면 된다. 코드로 살펴보자. 아래를 보면 MemberRepository 에 여러 메서드가 조회되어 있다. public interface MemberRepository extends JpaRepository { List findUser(Str..
-
[Spring] MessageResolver 의 메시지 코드JAVA/Spring(Springboot) 2023. 2. 25. 11:07
Spring에서 제공하는 BindingResult를 통해서 rejectValue() 함수 내에서 에러 코드를 가져올 때 내부적으로 MessageResolver를 사용한다. MessageResolver를 통해서 에러 코드를 어떤걸 생성하는지 살펴보자. Object Error public class MessageCodesResolverTest { MessageCodesResolver codesResolver = new DefaultMessageCodesResolver(); @Test void messageCodesResolverObject() { String[] messageCodes = codesResolver.resolveMessageCodes("required", "item"); for (String ..
-
[Spring] PRG(Post-Redirect-Get) 할 때 PathVariable, Url Encoding 신경쓰기 - RedirectAttributeJAVA/Spring(Springboot) 2023. 2. 21. 23:40
PRG 할 때 RedirectAttribute를 사용하면 편리하다. 예를 들어 상품을 등록한 후 상품 상세 페이지로 가고 싶을 때 코드를 살펴보자. @PostMapping("/add") public String addItem(Item item, RedirectAttributes redirectAttributes) { Item savedItem = itemRepository.save(item); redirectAttributes.addAttribute("itemId", savedItem.getId()); redirectAttributes.addAttribute("status", true); return "redirect:/basic/items/{itemId}"; } RedirectAttribute를 사용하..
-
윈도우 Service 등록하기카테고리 없음 2023. 1. 5. 14:57
bat 파일 실행과 같이 백그라운드에서 항상 실행하게 하고 싶을 때는 윈도우에 Service를 등록하면 된다. Service 목록은 시작>서비스 에서 확인할 수 있다. 그럼 이 Service를 어떻게 등록하는지 확인해보자. ▶Service 등록 cmd 창에서 아래와 같이 입력하면 service에 등록이 된다. sc create “서비스 이름” binPath=“파일 경로" 목록에 등록된 service를 클릭하면 Start 버튼을 클릭하면 백그라운드에서 실행이 된다. 만약 목록에 보이지 않는다면 아직 refresh가 안 된 것이므로 동작>새로고침 하면 된다. ▶Service 삭제 Service를 잘못 등록했다면 cmd창에서 삭제하면된다. sc delete “서비스 이름” 오류가 난다면 Service 창을 닫..
-
AWS 청구서/과금 문제 문의글 작성 및 환불 완료일상 2022. 12. 8. 08:37
공부목적으로 생성해둔 AWS 계정에 EC2와 RDS 설치 후 잊고 살고 있었는데,,,, 카드 청구내역이 문자로 날라왔다....... 분명 프리티어로 되게끔 설정해뒀는데 뭐지??? 싶어서 결제 대시보드를 들어가니까 GB-month of provisioned gp2 storage running MySQL??? MySQL 서버의 용량이 다 찼던건지? 요금이 부과된 것이다!! 원인을 확인해보니 아마도 RDS 백업파일 생성 유지 기간을 7일로 설정해뒀던 것이 용량을 초과했던건지 싶다..ㅜㅜ RDS의 스냅샷을 모두 삭제하고 유지기간을 0일로 설정하고 다음날 확인해 봤는데 요금이 계속 부과되길래,,,ㅜ 도저히 원인을 모르겠어서 결국 RDS를 삭제했고, AWS는 무서워서 못쓰겠다고 결정을 내렸다. 만원 돈도 안되길래 ..
-
[Java] Apache Poi 파워포인트 표 만들기JAVA 2022. 11. 21. 09:37
기존에 생성되었던 ppt파일에 표를 추가하는 예제를 작성해보겠다. 프로그램의 순서 1. 원본 ppt 파일을 불러온다. 2. 표를 삽입한다. 3. ppt를 저장한다. String original_filePath = "C:\\Users\\Downloads\\originalFile.pptx"; try { // 원본 ppt 불러오기 XMLSlideShow original_ppt = new XMLSlideShow(new FileInputStream(original_filePath)); List slides = original_ppt.getSlides(); XSLFSlide slide = slides.get(0); // 표 생성하는 함수 createTable(slide); // ppt 저장하기 String modi..