본문 바로가기

Java/Spring Boot24

[Spring Boot] Boolean 타입이 계속 호출이 안될 때(@Getter) Lombok 사용 시 boolean 필드 Getter 문제 해결하기Spring Boot 프로젝트에서 Lombok의 @Getter를 사용하면 자동으로 getter 메서드가 생성된다. 하지만 boolean 타입 필드에서는 예상과 다르게 동작할 수 있다.문제 상황@Getter@AllArgsConstructor@NoArgsConstructor@Builderpublic class MedicineCreateRequestDTO { private boolean isPrescribed;}위처럼 boolean 타입 필드에 대해 @Getter를 적용했고서비스에서requestDto.isPrescribed()작성하고 postman에서 json형식으로"isPrescribed": true,이렇게 작성하여 호출하면 isPres.. 2025. 2. 27.
[Spring Boot] BaseEntity 만들기 1. 순수 JPA를 이용한 BaseEntity 구현@Setter@Getter@MappedSuperclasspublic class BaseEntity{ @Column(updatable = false) private LocalDateTime createdAt; private LocalDateTime updatedAt; @PrePersist public void prePersist(){ LocalDateTime now = LocalDateTime.now(); createdAt = now; updatedAt = now; } @PreUpdate public void preUpdate() { updatedAt = LocalDateTime.now(); }}MappedSuperclassBaseEntity.. 2024. 10. 22.
[Spring Boot] RequestBody vs RequestParam vs PathVariable 1. RequestBody클라이언트가 전송한 HTTP 요청의 본문(Body)을 Java 객체로 변환합니다. 일반적으로 JSON 또는 XML 데이터를 수신하는 데 사용한다.@PostMapping("/api/users")public ResponseEntity createUser(@RequestBody User user) { // user 객체를 사용하여 처리 return ResponseEntity.ok(user);}클라이언트가 전송한 JSON 데이터를 User 객체로 변환하여 메서드 매개변수로 전달한다. 이 방식은 POST, PUT, PATCH 요청에서 자주 사용한다.= 사용자가 입력한 값(데이터)2. RequestParamURL 쿼리 매개변수를 메서드 매개변수로 바인딩한다. 주로 GET요청에서 .. 2024. 10. 21.
[Spring Boot] 페이징(Paging) 1. 페이징(Paging)이란?Paging은 사용자에게 데이터를 제공할 때, 전체 데이터 중의 일부를 보여주는 방식이다. 이 방식은 사용자에게 편히를 줄 뿐만 아니라, 전체 데이터를 로딩할 필요가 없어서 처리 속도가 빨라진다. Spring Data JPA에서 페이징을 쉽게 구현할 수 있는 기능을 제공한다.2. 페이징의 기본 개념페이징은 보통 페이지 번호(page)와 페이지 크기(size) 으로 작동한다.page : 페이지 번호 (0부터 시작)size : 한 페이지 당 데이터 개수3. Spring Data JPA의 페이징 처리Spring Data JPA에서는 Pageable과 Page 인터페이스를 사용하여 페이징 처리를 할 수 있다.Pageable 인터페이스Pageable pageable = PageReq.. 2024. 10. 19.
[Spring Boot] Test Code 작성 + 롬복(LomBok) 1. 테스트 코드 소개1) TDD이란?테스트가 주도하는 개발로 TDD ≠ 단위 테스드(Unit Test) 2) 단위 테스트(Unit Test)란?TTD의 첫 번째 단계인 기능 단위의 데스트 코드를 작성하는 것 3) 테스트 코드의 장점개발단계 초기에 문제를 발견개발자나 나중에 코드를 리팩터링 하거나 라이브러리 업그레이드 등에서 기존 기능이 올바르게 작동하는지 확인기능에 대한 불확실성을 감소시스템에 대한 실제 문서를 제공2. JUnit를 사용하여 테스트 코드 작성1) 프로젝트 메인 클래스 생성하기package com.jojoldu.book.springboot;import org.springframework.boot.SpringApplication;import org.springframework.boot.au.. 2024. 9. 12.
[Day 19] 웹 페이지에서 댓글 삭제하기 1. 댓글 삭제의 개요댓글 [삭제] 버튼 추가[삭제] 버튼 클릭해 REST API 요청 보내기 ([삭제] 버튼을 통해 댓글의 id 값 전달)2. 댓글 삭제 버튼 추가하기resources > articles > Comments > _list.mustache 코드 추가3. 자바스크립트로 댓글 삭제하기resources > articles > Comments > _list.mustache 코드 추가 실행결과 2024. 8. 15.